Advanced RAG
Advanced RAG는 Naive RAG의 검색 정확도 문제를 개선하기 위해, 검색 전후에 최적화 단계를 추가한 아키텍처입니다. 쿼리를 변환하여 검색 품질을 높이고, 검색된 문서를 재순위화하고 압축하여 LLM에 전달합니다.핵심 아이디어
Advanced RAG는 검색 파이프라인을 세 단계로 나누어 각각을 최적화합니다.- Pre-Retrieval (검색 전)
- Retrieval (검색)
- Post-Retrieval (검색 후)
사용자 질문을 검색에 적합한 형태로 변환합니다.
- 쿼리 재작성(Query Rewriting): 모호한 질문을 명확한 검색 쿼리로 변환합니다
- HyDE(Hypothetical Document Embeddings): LLM이 가상의 답변을 먼저 생성한 뒤, 그 답변을 검색 쿼리로 사용합니다
- 서브쿼리 분해(Sub-query Decomposition): 복잡한 질문을 여러 개의 단순한 질문으로 분해합니다
동작 방식
Naive RAG와 비교하면, 쿼리 변환(Pre-Retrieval)과 재순위화 + 압축(Post-Retrieval) 단계가 추가됩니다.LangGraph 구현
상태 정의
노드 함수
그래프 구성
실행
위 예제는 LLM 기반 재순위화를 사용합니다. 프로덕션 환경에서는 Cohere Rerank, BGE Reranker 등의 전용 Re-ranking 모델을 사용하면 더 높은 성능과 낮은 비용으로 운영할 수 있습니다.
HyDE (Hypothetical Document Embeddings)
HyDE는 Pre-Retrieval 기법 중 하나입니다. 사용자 질문에 대해 LLM이 가상의 답변을 먼저 생성하고, 그 답변의 임베딩으로 검색합니다. 질문보다 답변이 실제 문서와 의미적으로 더 유사하다는 가정에 기반합니다.참고 논문
| 논문 | 학회 | 링크 |
|---|---|---|
| Retrieval-Augmented Generation for Large Language Models: A Survey (Gao et al., 2023) | - | arXiv 2312.10997 |
| Precise Zero-Shot Dense Retrieval without Relevance Labels - HyDE (Gao et al., 2022) | ACL 2023 | arXiv 2212.10496 |

