AI/AI 서비스 개발
[AI 서비스 개발] LLM + RAG
brave_sol
2024. 11. 15. 20:01
1. RAG란?
- Retrieval-Augmented Generation의 약자로, 텍스트 생성 모델과 정보 검색 시스템을 결합한 AI 기술
- 정보 검색(Retrieval)과 생성( Generation)의 단계로 나뉜다.
- 데이터베이스 사용 외에도 외부 api를 활용해 "검색"한 결과를 LLM에 전달하고 답을 "생성"하면 RAG라고 할 수 있다.
2. RAG 구현시 사용한 라이브러리
# 파일 읽어오기
from langchain.document_loaders import TextLoader # 텍스트 파일
from PyPDF2 import PdfReader # PDF 파일
# 문서를 청크로 분할
from langchain.text_splitter import RecursiveCharacterTextSplitter # 구분자(문단, 문장, 단어 등)로 분할, 의미 고려
from langchain.text_splitter import CharacterTextSplitter # 길이를 기준으로 분할
# 임베딩(텍스트를 숫자 벡터로 변환)
from langchain.embeddings import OpenAIEmbeddings
from langchain.embeddings import SentenceTransformerEmbeddings # 문장 유사성 및 의미 최적화
from langchain.embeddings import HuggingFaceEmbeddings # 감정 분석이나 도메인 특화작업 등 특정 목적에 필요한 모델 선택 가능
# 벡터DB에 저장
from langchain.vectorstores import Chroma # 메타데이터(데이터를 설명하거나 정의하는 데이터) 기반 필터링
from langchain.vectorstores import FAISS # 단순 유사도 기반
# 체인 생성
from langchain.chains import LLMChain # 일반적인 체인
from langchain.chains.question_answering import load_qa_chain # 검색용 체인
# 앞에서의 답변 내용을 기억하고 싶으면
from langchain.chains import ConversationChain
반응형