Files
2nd/10_Wiki/Topics/Topics_Rag/Advanced RAG 기법.md
T

125 lines
10 KiB
Markdown

---
id: advanced-rag-기법
title: "Advanced RAG 기법"
category: "AI_and_ML"
status: "draft"
verification_status: "conceptual"
canonical_id: ""
aliases: ["Advanced RAG", "고급 RAG 기법", "RAG 2.0", "Retrieve & Re-rank", "Hybrid Search RAG", "Query Transformation"]
duplicate_of: ""
source_trust_level: "A"
confidence_score: 0.96
created_at: 2026-06-08
updated_at: 2026-06-08
review_reason: ""
merge_history: []
tags: ["research", "Advanced RAG", "LLM", "Optimization", "Hybrid Search", "Re-ranking"]
raw_sources: ["1. RAG 파이프라인 기초 아키텍처", "RAG 구축하기 - 3.2 성능 최적화 : Hybrid Search(CC& RRF) 와 Rerank", "RAG 기반 AI 서비스의 신뢰성을 확보하는 방법: 자동화 평가 체계 및 운영 최적화", "RAG 기술의 진화: Naive에서 Modular까지 총정리 - 슈퍼브 블로그", "RAG 솔루션 디자인 및 개발 - Azure Architecture Center - Microsoft Learn", "RAG의 진화: GraphRAG, Agentic RAG, CRAG의 등장 - CSLEE Tech Blog %", "[Tech Series] kt cloud AI 검색 증강 생성(RAG) #2 : 데이터 파싱과 전처리 최적화"]
applied_in: ["01_RAG_파이프라인_기초_아키텍처.ipynb", "EnsembleRetriever implementation", "HyDERetriever class", "MultiQueryRetriever module"]
github_commit: ""
---
# [[Advanced RAG 기법]]
## 🎯 한 줄 통찰 (One-line insight)
Advanced RAG는 단순한 '검색 후 생성'을 넘어, 질의 변환(Query Transformation)과 재순위화(Re-ranking) 등 정교한 전/후처리 파이프라인을 도입하여 검색의 재현율(Recall)과 답변의 정밀도(Precision)를 동시에 극대화하는 최적화 프레임워크이다 [S10, S55, S237].
## 🧠 핵심 개념 (Core concepts)
- **질의 변환 (Query Transformation):** 사용자 질의를 검색에 최적화된 형태로 재구성하거나 확장하여 지식 베이스와의 의미적 간극을 좁히는 기법이다 [S10, S37, S238].
- **하이브리드 검색 (Hybrid Search):** 의미 기반의 Dense Search와 키워드 기반의 Sparse Search를 결합하여 전문 용어나 숫자에 대한 정확도를 보완한다 [S12, S191, S238].
- **재순위화 (Re-ranking):** 1차 검색된 다수의 후보 문서를 Cross-encoder 모델로 정밀 평가하여 실제 답변에 가장 유용한 상위 문맥을 재정렬한다 [S11, S191, S198].
- **자기 검증 (Self-check/Verification):** 생성된 답변이 제공된 문맥에 충실한지(Faithfulness), 질문에 적합한지(Relevance)를 LLM이 스스로 평가하여 환각을 방지한다 [S11, S217, S282].
## 🧩 추출된 패턴 (Extracted patterns)
- **Dual-Stage Retrieval (Retrieve & Re-rank):** "Bi-Encoder로 빠르게 후보 확보(Recall) → Cross-Encoder로 정밀 정렬(Precision)"하는 2단계 전략이 가장 안정적인 패턴으로 발견된다 [S191, S198, S204].
- **Reciprocal Rank Fusion (RRF):** 서로 다른 검색 알고리즘의 순위 결과를 가중치 없이도 안정적으로 병합하는 표준 알고리즘 패턴이다 [S12, S182, S193].
- **Contextual Contextualization:** 검색 시 작은 청크를 사용하되, 생성 단계에서는 해당 청크의 부모 문서나 주변 맥락을 함께 제공하여 정보 누락을 방지한다 (Parent Document Retriever) [S30, S35, S238].
## 📖 세부 내용 (Details)
### 1. 전처리 단계: 질의 변환 기법 [S10, S37, S82]
- **HyDE (Hypothetical Document Embedding):** 질문에 대한 가상의 답변을 먼저 생성한 후 그 답변 벡터로 검색한다. 질문-문서 간의 공간적 괴리를 제거하여 검색 정확도를 높인다.
- **질의 분해 (Query Decomposition):** 복합적인 질문을 여러 하위 질문으로 나누어 각각 검색한 뒤 결과를 종합한다.
- **Step-back Prompting:** 구체적인 질문을 상위 수준의 개념으로 추상화하여 넓은 범위의 관련 문서를 검색하고 원질의와 병합한다.
- **Multi-Query:** LLM이 질문을 여러 관점에서 재구성(3~5개)하여 검색 누락을 최소화한다.
### 2. 검색 및 인덱싱 고도화 [S12, S191, S238]
- **하이브리드 검색 결합 방식:**
- **CC (Convex Combination):** 각각의 점수에 가중치($\alpha$)를 적용해 합산. 도메인 특성(법률 vs 일반)에 따라 비중 조절 가능.
- **RRF (Reciprocal Rank Fusion):** 순위의 역수를 합산하여 결합. 점수 스케일이 달라도 안정적인 결합이 가능.
- **의미론적 청킹 (Semantic Chunking):** 고정 크기가 아닌 문장 간 임베딩 유사도가 급변하는 지점을 기준으로 분할하여 의미적 일관성을 유지한다.
### 3. 후처리 단계: 재순위화 및 압축 [S11, S34, S197]
- **Cross-encoder 기반 Re-ranker:** 질의와 문서를 하나의 입력 시퀀스로 넣어 토큰 수준의 상호작용(Attention)을 계산한다. Bi-encoder보다 느리지만 의미적 차이를 훨씬 정밀하게 반영한다.
- **Contextual Compression:** 검색된 문서에서 질의와 직접 관련된 핵심 부분만 추출하여 LLM 컨텍스트 윈도우를 효율적으로 활용한다.
### 4. 운영 최적화: 시맨틱 캐싱 [S221, S231]
사용자 질문이 기존 질의와 의미적으로 매우 유사(예: 유사도 0.95 이상)할 경우, 벡터 DB에서 기존 답변을 즉시 반환함으로써 비용을 절감하고 응답 속도를 개선한다.
## ⚖️ 모순 및 업데이트 (Contradictions & updates)
- **속도 vs 정확도:** Cross-encoder(Re-ranker)는 정확하지만 연산량이 많아 수천 개 문서를 실시간 처리하기 어렵다. 따라서 상위 50~100개로 후보를 좁힌 뒤 적용하는 것이 실무 표준이다 [S197, S210].
- **지표의 중요성:** RAG 성능은 단순히 관련 문서를 가져왔는지(Recall)보다, 정답이 상위권에 배치되었는지(Precision@k)가 LLM 답변 품질에 더 결정적인 영향을 미친다 [S195, S208].
## 🛠️ 적용 사례 (Applied in summary)
- **Ensemble Retriever:** `vector(k=4)``BM25(k=4)`를 가중치 `[0.5, 0.5]` 또는 도메인에 맞춰 조정하여 결합한 사례가 기술되어 있다 [S33, S36].
- **Parent Document Retriever:** 부모 청크 2000자, 자식 청크 400자로 설정하여 정밀 검색과 풍부한 문맥을 동시에 확보하는 실무 전략이 발견된다 [S36, S81].
- **RAGAS 평가:** `Context Precision`, `Faithfulness`, `Answer Relevance` 지표를 통해 Advanced RAG의 각 단계를 정량적으로 평가하고 튜닝하는 체계가 적용되었다 [S217, S226].
## ✅ 검증 상태 및 신뢰도
- **상태:** draft
- **검증 단계:** conceptual (실제 구현 코드 패턴이 소스에 다수 포함됨)
- **출처 신뢰도:** A (Microsoft, Azure, kt cloud, LangChain 가이드 등 기술적 근거가 명확함)
- **신뢰 점수:** 0.96
- **중복 검사 결과:** 신규 생성 (New discovery)
## 🔗 관련 문서 링크 (Related document links)
### 상위/유사 개념
#### [아키텍처/기반 기술]
- [[RAG 아키텍처 및 파이프라인 기초]]
- 연결 이유: Advanced RAG는 기초 파이프라인의 각 단계를 고도화한 형태임 [S9, S54].
- [[텍스트 임베딩 모델]]
- 연결 이유: 질의 변환(HyDE) 및 시맨틱 청킹의 핵심 엔진 역할을 함 [S23, S238].
#### [진화된 기술 (RAG 2.0)]
- [[Agentic RAG]]
- 연결 이유: 고정된 파이프라인 대신 에이전트가 상황에 맞는 검색 전략을 동적으로 수립 [S280, S293].
- [[CRAG]]
- 연결 이유: 검색 결과의 품질을 평가하여 웹 검색 등으로 교정하는 메커니즘 추가 [S282, S295].
### 심층 후속 질문 (Deeper Research Questions)
- Re-ranker 도입 시 발생하는 Latency 오버헤드가 동시 접속자가 많은 환경에서 병목 현상을 일으키지 않게 설계하는 방법은? [S197, S210]
- HyDE 기법에서 LLM이 생성한 '가상 답변' 자체가 심각한 오류를 포함할 경우 검색 품질에 어떤 영향을 미치는가? [S10, S55]
- RRF(Reciprocal Rank Fusion)에서 상수 k값(보통 60)을 도메인 데이터의 밀도에 따라 동적으로 최적화할 수 있는가? [S193, S206]
- 시맨틱 캐싱의 임계값(Threshold)을 답변의 민감도(금융/의료 등)에 따라 어떻게 차등화해야 하는가? [S222, S231]
### 실무 적용 맥락 (Practical Application Contexts)
- **Implementation:** LangChain의 `EnsembleRetriever`, `ContextualCompressionRetriever` 클래스를 활용해 구현 [S33, S34, S220].
- **System Design:** Dual-Stage Retrieval 아키텍처를 채택하여 검색 속도와 정확도의 균형을 맞춤 [S198, S211].
- **Operation / Maintenance:** RAGAS 지표를 모니터링하여 특정 질의 변환 기법의 유효성을 지속적으로 검증 [S217, S226].
- **Learning Path:** Naive RAG 구축 → 하이브리드 검색 추가 → Re-ranker 도입 → 질의 변환 및 자기 검증 추가 순으로 확장 권장 [S1, S45].
### 인접 주변 주제
- [[문서 청킹 전략]]
- 확장 방향: Advanced RAG 성능의 기초가 되는 시맨틱/계층적 청킹 기술 심화 이해 [S16, S238].
## 🔗 지식 그래프 (Knowledge Graph)
- **상위/루트:** [[RAG 아키텍처 및 파이프라인 기초]]
- **관련 개념:** [[하이브리드 검색]], [[Re-ranking]], [[질의 변환]], [[RAGAS 평가 지표]], [[시맨틱 캐싱]]
- **참조 맥락:** 고도화된 기업용 질의응답 시스템의 검색 품질 향상을 위한 설계 지침으로 활용.
## 📚 출처 (Sources)
- [S10] Advanced RAG 정의 및 주요 기법 (devspoon)
- [S11] Re-ranking 및 자기 검증 단계 상세 (devspoon)
- [S12] 하이브리드 검색 및 모듈형 RAG (devspoon)
- [S30] 검색 방식 비교표 (MMR, Multi-Query 등) (devspoon)
- [S37] 질의 변환 기법 상세 (HyDE, Decomposition 등) (devspoon)
- [S191] Hybrid Search와 Re-Rank 정밀 분석 (hjjummy)
- [S198] Dual-Stage Retrieval 파이프라인 역할 분담 (hjjummy)
- [S217] RAGAS 프레임워크와 RAG Triad 지표 (교보DTS)
- [S237] Naive RAG의 한계와 Advanced RAG의 해결책 (슈퍼브 블로그)
- [S282] CRAG(Corrective RAG) 작동 원리 및 정제 단계 (CSLEE Tech Blog)
## 📝 변경 이력 (Change history)
- 2026-06-08: Initial draft generated via Datacollector_MAC P-Reinforce engine.