---
tags: [AI-Agent, RAG, 평가]
---

# RAG 실패 진단과 개선

> RAG 개선은 "더 좋은 모델로 교체"가 아니라 **부러진 단계를 특정해 그 단계만 고치는 일**이다. 증상 확인 없이 고급 패턴(08_개선패턴)부터 도입하는 것은 진단 없는 수술이다.

## 첫 이분법 — 검색 실패인가, 생성 실패인가

틀린 답 하나를 잡았으면 **그때 모델에게 주어진 컨텍스트를 연다** (이게 가능하도록 검색 결과 로깅은 필수):

| 판정 | 조건 | 다음 |
|------|------|------|
| **검색 실패** | 정답 근거가 컨텍스트에 없음 | 아래 단계별 진단으로 |
| **조립 실패** | 근거가 후보까진 왔는데 잘리거나 노이즈에 묻힘 | [[Context Engineering]] — 배치·압축·개수 예산 점검 |
| **생성 실패** | 근거가 온전히 있는데 답이 틀리거나 무시함 | [[Grounding]] 거절·출처 규칙 강화 |

경험칙: 초기 시스템 실패의 다수는 검색 실패다. 프롬프트만 만지며 검색을 방치하는 것이 가장 흔한 시행착오.

## 검색 실패의 단계별 진단 — 위에서부터

| 순서 | 질문 | 확인 방법 | 고치는 곳 |
|------|------|----------|----------|
| 1. 파싱 | 정답 문서가 인덱스에 온전히 있나? | 인덱스에서 해당 문서의 청크를 직접 조회 | [[문서 수집과 파싱]] |
| 2. 청킹 | 정답이 청크 경계에서 잘렸나, 맥락을 잃었나? | 해당 청크 원문을 눈으로 확인 | [[Chunking]] · [[Contextual Retrieval]] |
| 3. 검색 | top-50까지 넓히면 정답 청크가 나오나? | k를 키워 재검색 | 안 나오면 [[Hybrid Retrieval]] · [[Query Transformation]] |
| 4. 랭킹 | 후보엔 있는데 top-k 밖으로 밀렸나? | 순위 로그 확인 | [[Re-ranking]] 도입·교체 |

**k 확장 테스트가 첫 갈림길이다**: 3에서 나오는데 최종 top-k에 없으면 후보 이후 구간(리랭킹·융합·컨텍스트 예산) 문제, 3에서도 안 나오면 인덱싱·검색(필터·신선도 포함) 문제. 더 쪼개려면 후보 생성→랭킹→조립 각 구간을 로깅한다.

## 증상 → 처방 표

| 증상 | 처방 |
|------|------|
| 고유명사·코드·제품번호 질문을 놓침 | [[BM25]] 추가 → [[Hybrid Retrieval]] |
| 모호한 구어체·대명사 질의에 약함 | [[Query Transformation]] (재작성) |
| 여러 문서를 거쳐야 하는 멀티홉 질문 실패 | 질의 분해([[Query Transformation]]) → 그래도 안 되면 [[Agentic RAG]] |
| 검색이 빗나가도 그대로 생성해 환각 | [[Grounding]] 거절 규칙 → [[Corrective RAG]] |
| "전체 요약·경향" 질문에 파편적 답변 | [[GraphRAG]] 또는 문서 요약 인덱스 병행 |
| 인사말·단순 계산에도 검색이 돌아 낭비 | [[Adaptive RAG]] / [[Self-RAG]] 식 검색 게이트 |
| 답이 낡음 | 인덱스 신선도 → [[실시간 지식 파이프라인]] |
| top-k가 같은 문서의 사본들로 도배됨 | 중복 제거(dedupe) → [[문서 수집과 파싱]] |
| 권한 없는 문서가 답에 인용됨 | ACL 메타데이터 필터 — 품질 아닌 **보안 결함**으로 취급 → [[문서 수집과 파싱]] |

## 골든셋 회귀 — 개선의 전제

- 질문–정답 근거(문서/청크) 쌍 20~50개로 시작 ([[Ground Truth]]). 실제 사용자 질문 로그에서 뽑는 것이 창작보다 낫다.
- **검색 지표와 생성 지표를 분리 측정**: recall@k(정답 근거가 후보에 들어오나) / faithfulness(답이 근거에 충실한가) → [[RAG Evaluation]]. 합쳐서 재면 어디를 고칠지 알 수 없다.
- 모든 변경(청킹 크기·임베딩 모델·리랭커…)은 골든셋 재실행으로만 채택한다 — 인상 평가는 방금 본 한 사례에 과적합된다.

## 운영에서 아는 것들

- **임베딩 모델 교체 = 전체 재임베딩**: 서로 다른 모델의 벡터는 호환되지 않는다. 교체 비용에 재색인 시간·비용을 포함해 계획.
- **지연 예산**: 리랭킹·질의 변형·반복 검색은 전부 지연을 산다 — 단계별 지연을 따로 측정 → [[레이턴시 엔지니어링]].
- **나쁜 답 신고 버튼**: 운영 중 골든셋을 키우는 가장 싼 수집 경로.

## 관련 문서

- [[RAG 구축 지도]] — 파이프라인 전체
- [[RAG Evaluation]] · [[Ground Truth]] · [[LLM-as-a-Judge]] — 측정 방법
- [[Hallucination Detection]] — 생성 실패 탐지
