Investment-Assistant 19

Streamlit과 Langchain을 활용한 실시간 온프레미스 투자 어시스턴트 구현하기 [19]

“투자 어시스턴트” 웹 애플리케이션을 Streamlit과 Hugging Face Transformers, Langchain 등의 라이브러리를 사용해 구축하는 과정을 보여줍니다. 실시간 질의에 대해 온프레미스(로컬) 환경에서 답변을 생성할 수 있도록 합니다.import streamlit as stimport transformersimport torch# Langchain 및 커뮤니티 모듈(베타)에서 BM25, FAISS, SentenceTransformer를 불러옵니다.from langchain_community.retrievers import BM25Retrieverfrom langchain_community.embeddings.sentence_transformer import SentenceTransf..

HuggingFace를 활용한 42dot_LLM-PLM-1.3B로 한국어 문장 생성 [18]

이 글에서는 Hugging Face의 transformers 라이브러리를 사용하여 42dot의 한국어 언어 모델인 42dot_LLM-PLM-1.3B를 활용해 문장을 생성하는 방법을 소개합니다. 간단한 Python 코드를 통해 삼성전자와 관련된 정보를 생성하는 과정을 설명하며, 모델의 사용법과 주요 파라미터 설정을 다룹니다.# Hugging Face Transformers와 PyTorch 라이브러리 가져오기import transformersimport torch# 사용할 모델 ID 설정 (Hugging Face Model Hub에 등록된 모델)model_id = "42dot/42dot_LLM-PLM-1.3B"# 텍스트 생성 파이프라인 구성# - "text-generation": 텍스트 생성 태스크 지정# ..

HuggingFace를 활용한 한국어 sLLM 모델 사용법 [17]

이 블로그에서는 Hugging Face 라이브러리를 활용해 한국어 기반의 sLLM 모델인 MLP-KTLim/llama-3-Korean-Bllossom-8B를 사용하는 방법을 소개합니다. Hugging Face의 transformers 라이브러리를 통해 손쉽게 텍스트 생성 파이프라인을 구축할 수 있으며, 간단한 프롬프트를 입력하여 모델의 성능을 확인할 수 있습니다.# Hugging Face Transformers와 PyTorch 라이브러리 가져오기import transformersimport torch# 사용할 모델의 ID 설정 (Hugging Face 모델 허브에서 가져옴)model_id = "MLP-KTLim/llama-3-Korean-Bllossom-8B"# 텍스트 생성 파이프라인 구성# - "tex..

Sentence Transformers를 활용한 문장 임베딩 및 FAISS 검색 시스템 구축 [16]

SBERT(Sentence-BERT)는 문장 수준의 임베딩을 생성하여 자연어 처리(NLP)에서 문장 간 유사도를 효율적으로 계산할 수 있도록 도와주는 강력한 도구입니다. 이번 블로그에서는 SBERT 모델 중 distiluse-base-multilingual-cased-v1을 활용하여 문장을 벡터화하고, FAISS(Vector Search Library)를 사용하여 효율적으로 유사 문장을 검색하는 시스템을 구축하는 방법을 알아보겠습니다.SBERT와 FAISS를 활용한 주요 작업 흐름문서 리스트 준비: 검색 대상이 되는 문서를 리스트 형태로 준비합니다.SBERT로 문장 임베딩 생성: 사전 학습된 다국어 SBERT 모델을 사용해 각 문장을 벡터화합니다.FAISS로 벡터 저장소 구성: 생성된 벡터를 FAISS ..

Sentence Transformers로 한국어 모델 사용해보기 [15]

Sentence Transformers란?Sentence Transformers(SBert)는 문장과 문서를 고차원의 임베딩 벡터로 변환하여 NLP 작업에 활용할 수 있는 강력한 라이브러리입니다. 특히, 다국어를 지원하는 모델을 제공하므로 한국어 NLP 태스크에서도 유용하게 사용할 수 있습니다.SBert 공식 웹사이트에서는 다양한 Pretrained Models를 제공합니다. 이번 글에서는 한국어 및 다국어 모델을 사용하는 방법을 다룹니다.다국어 모델: distiluse-base-multilingual-cased-v1distiluse-base-multilingual-cased-v1은 다국어를 지원하는 Sentence Transformers 모델 중 하나로, 50개 이상의 언어를 지원합니다. v1이 v2보..

Sentence Transformers 활용하기 [14]

Sentence Transformers란?Sentence Transformers(SBert)는 문장과 문서를 임베딩 벡터로 변환할 수 있는 라이브러리입니다. 이 라이브러리를 통해 문장 간의 의미적 유사성을 효과적으로 계산할 수 있습니다. SBert는 다양한 NLP 태스크에서 활용 가능하며, 사용자는 https://sbert.net/에서 자세한 정보를 확인할 수 있습니다.주요 기능 및 활용Sentence Transformers를 사용하면 다음과 같은 작업이 가능합니다:문서 및 문장 임베딩 벡터로 변환텍스트 데이터를 고차원의 벡터 표현으로 변환해 의미적 비교 및 검색에 활용할 수 있습니다.유사도 계산변환된 벡터를 활용해 문장 간 의미적 유사도를 측정할 수 있습니다.온프레미스 환경에서 구현 가능클라우드 연결 ..

RAG 코드 구현하기: 효율적인 정보 검색 [13]

최근 인공지능 모델이 생성하는 텍스트에서 '할루시네이션(Hallucination)' 문제가 빈번히 발생하고 있습니다. 이를 방지하기 위해 RAG (Retrieval-Augmented Generation) 기법이 주목받고 있습니다. 이번 포스트에서는 RAG를 구현하고, 이를 통해 어떻게 생성된 응답의 신뢰도를 높일 수 있는지 살펴보겠습니다.RAG란 무엇인가?RAG(Retrieval-Augmented Generation)는 검색과 생성이 결합된 AI 모델의 한 형태입니다. 단순히 대규모 언어 모델(LLM)이 질문에 답변을 생성하는 것과 달리, RAG는 다음 두 가지 단계로 동작합니다:정보 검색 (Retrieval)모델이 질문과 관련된 정보를 외부 데이터베이스나 문서에서 검색합니다.검색 결과는 질문과 관련성이..

문서 검색 성능 평가: BM25와 FAISS를 활용한 Hybrid Search 분석 [12]

문서 검색 시스템에서 성능 평가(Evaluation)는 매우 중요한 작업입니다. 오늘은 BM25와 FAISS 알고리즘을 결합한 Hybrid Search를 구현하고, 이를 평가하는 과정을 소개합니다. 이 글에서는 Python 코드 예제와 함께 정확도(Precision), 재현율(Recall), F1 점수를 계산하여 검색 성능을 분석하는 방법을 다룹니다.문서 검색 시스템 구성우리는 두 가지 검색 알고리즘을 결합한 Hybrid Search를 사용합니다.BM25: 단어 기반 검색 알고리즘으로, 검색어와 문서의 단어 겹침 정도를 바탕으로 검색.FAISS: OpenAI API의 Embedding을 활용하여 의미 기반 검색을 수행.from langchain_community.retrievers import BM25R..

LangChain으로 BM25와 FAISS를 활용한 Ensemble Retriever 실습 [11]

이번 실습에서는 BM25와 FAISS를 결합한 Hybrid Search(Ensemble Retriever)를 구현하고, 검색 결과를 테스트해 보겠습니다. 이 방법은 두 검색 알고리즘의 장점을 조합하여 더 나은 검색 결과를 제공할 수 있습니다.Hybrid Search란?Hybrid Search는 다양한 검색 알고리즘의 결과를 조합하여 최종 검색 결과를 도출하는 방법입니다.이번 실습에서는 BM25와 FAISS를 활용하며, 두 검색기의 결과를 가중치(Weights) 기반으로 결합하는 Ensemble Retriever를 구현합니다.BM25: 단어 기반 검색 알고리즘으로, 검색어와 문서 간 단어 겹침 정도를 기준으로 유사도를 측정합니다.FAISS: OpenAI API Embedding을 활용하여 벡터화된 문서를 ..

LangChain으로 BM25와 FAISS를 활용한 검색 알고리즘 비교 실습 [10]

단어 기반 검색 알고리즘(BM25)과 OpenAI API Embedding(FAISS)를 활용하여 동일한 데이터에 대해 검색 성능과 특징을 비교해 보았습니다.실습에 사용한 알고리즘BM25: 단어 기반 검색 알고리즘으로, 텍스트 데이터의 단어 빈도와 검색어와의 겹치는 정도를 바탕으로 유사도를 측정합니다.FAISS: OpenAI API의 임베딩을 활용하여 문서를 벡터화하고, 의미적으로 유사한 문서를 검색합니다.BM25와 FAISS 검색기를 설정하고 동일한 문서 리스트를 각각의 알고리즘에 입력하였습니다.BM25Retriever: 단어 빈도를 기반으로 검색FAISS: OpenAI API 임베딩을 활용하여 문서를 벡터화from langchain_community.retrievers import BM25Retrie..