•
Advanced RAG 종류
◦
Pre-Retrieval
▪
Query Expansion
◦
Retrieval
▪
Multi-Hop Retrieval, Sentence Window REtrieval
◦
Post-Retrieval
▪
Reranking
◦
Generation
▪
Critique
◦
Combined Techniques
▪
Self-RAG
▪
CRAG(Corrective RAG)
•
Self RAG
◦
스스로 정보를 검색하고 결과 생성 + 평가!
◦
응답까지 20초 이상 걸린다.
◦
RAG 에 질의 할지 여부 판단은 ML로 처리
•
CRAG
◦
자체 평가를 통해 정보를 실시간으로 보정
▪
인터넷에서 실시간으로 정보를 가져온다.
◦
AWS 내 웹 검색 API가 있나?
▪
없다. Tavily 추천
•
RAG 구현에 활용하는 오픈소스.zip
◦
LLM Framework
▪
LangChain
▪
LlamaIndex
▪
haystack
•
검색엔진 및 질문 답변 서비스
◦
Document Loader
▪
PDF로 변환후 인덱싱하는 게 BMT에서 성능이 좋게 나온다.
▪
한글 처리 문제는 없다.
▪
일반적 → PYPDFium2, 테이블이 많다 → pdfplumber
▪
PyPDFium2
•
구글의 PDFium 엔진 기반
▪
PyMuPDF
•
MuPDF 엔진 기반
•
가장 성능이 좋다.
•
AGPL 라이선스로 인한 상업적 사용 제한(별도 라이선스 구매 필요)
▪
PyPDF2
•
순수 Python으로 작성
▪
PDFMiner
▪
PDFPlumber
•
텍스트 추출 정확도가 높다.
◦
Splitter
▪
CharacterTextSplitter
•
문자 수 기준 분할, 단순하고 빠르나 문맥 유지에 제한적
▪
RecursiveCharacterTextSplitter
•
다양한 구분자로 계층적 분할, 범용적이며 chunk_size와 overlap 조절 가능
▪
TokenTextSplitter
•
토큰 수 기준 분할, LLM 토큰 제한 고려에 유용
▪
MarkdownHeaderTextSplitter
•
마크다운 헤더 기준 분할, 문서 구조 유지에 적합
◦
Embedding model
▪
Amazon Titan Text Embeddings V2
•
다국어, 한국어 잘 지원함
▪
OpenAI text-embedding-3-large
▪
Upstage Solar Embedding-1-Large
▪
HuggingFAce bge-large-en-v1.5, gte-large 등
◦
Vector Store
▪
OpenSearch
▪
Chroma
•
임베딩 저장 및 검색에 최적화
•
프로토타이핑 적합
▪
Weaviate
•
GraphQL 유사 API 제공
•
자연어 검색과 벡터 검색 지원
▪
milvus
•
대규모 벡터 데이터 처리
•
성능이 좋다.
•
GPU 가속화 지원으로 높은 성능 제공
◦
기타
▪
LangGraph
•
self-rag, CRAG 의 구현체로 사용
▪
AutoRag
•
RAG 파이프라인 자동 최적화
▪
Langfuse
•
LLM 애플리케이션을 위한 관찰 및 모니터링 플랫폼
▪
ragas
•
RAG 시스템 평가를 위한 프레임워크