검색 강화 생성(Retrieval-Augmented Generation, RAG)이 틀린 답을 낼 때 정답 문서는 이미 검색 결과에 있는 경우가 적지 않습니다. 정답 문서를 찾았는지, 그 안의 근거를 회수했는지, 모델이 근거를 읽고 썼는지를 따로 재야 실패 위치가 보입니다.
이 글은 RAG의 실패 위치를 세 단계로 나눕니다. 정답 문서를 후보에 넣는 문서 발견, 문서 안에서 답을 담은 구간을 찾는 근거 회수, 받은 근거를 답에 반영하는 근거 사용입니다. 2026년에 나온 측정 연구들은 뒤의 두 단계에서 생기는 손실이 크다는 쪽을 가리킵니다.
단계마다 고치는 방법이 다르므로 이 구분이 필요합니다. 실패가 근거 사용 단계에서 났다면 임베딩 모델이나 청킹을 바꿔도 답은 고쳐지지 않습니다. 아래에서는 각 단계를 따로 측정한 연구 네 편을 근거로, RAG 품질이 낮을 때 어느 지표부터 볼지 정하는 기준을 정리합니다.
문서를 찾고도 근거 페이지를 놓치는 경우
Kobeissi와 Langlais는 문서 발견과 근거 회수를 나누어 측정했습니다(arXiv:2602.17981, 2026-02). 데이터는 FinanceBench 공개 부분집합 150문항입니다. FinanceBench는 미국 증권거래위원회(SEC) 공시 문서에 대한 질문마다 정답 문서와 정답 페이지를 표시해 둔 데이터셋입니다.
이 글은 논문의 지표 중 상위 5개 청크에 대한 두 가지를 씁니다. DocRec@5는 정답 문서의 청크가 하나라도 들어 있으면 1이고, PageRec@5는 정답 페이지 중 상위 5개 청크에서 회수된 페이지의 비율입니다. 청크 크기는 1024토큰, 겹침은 128토큰입니다.
| 검색 구성 | DocRec@5 | PageRec@5 |
|---|---|---|
| BM25 | 0.32 | 0.07 |
| BGE-M3 밀집 검색 | 0.88 | 0.34 |
| BGE-M3 + Multi-HyDE + 리랭커 | 0.93 | 0.46 |
| 학습한 페이지 scorer | 0.95 | 0.55 |
| 후보를 정답 문서로 제한 | 1.00 | 0.60 |
BGE-M3 밀집 검색은 88%의 질문에서 정답 문서를 후보에 넣었지만, 정답 페이지 회수율은 평균 0.34였습니다. 가상 답변 문단을 만들어 그 임베딩으로 검색하는 Multi-HyDE와 크로스 인코더 리랭커를 붙이면 DocRec@5는 0.93으로 오르고 PageRec@5는 0.46에 그칩니다. 두 지표의 격차는 어느 구성에서도 사라지지 않았습니다.
가장 직접적인 근거는 후보를 정답 문서 안의 청크로 제한한 조건입니다. 문서 발견 실패를 없앤 이 조건에서도 BGE-M3의 PageRec@5는 0.60이었습니다. 정답 문서를 확실히 찾아도 근거 회수 단계에서 손실이 남는다는 뜻입니다.
논문은 페이지를 먼저 고르고 그 페이지 안에서 청크를 찾는 페이지 scorer로 PageRec@5를 0.55까지 올렸습니다. 지표형 질문에서는 0.81로 정답 문서 제한 조건의 0.68도 넘었으므로, 근거 회수는 문서 발견과 별개로 개선할 수 있는 단계입니다. 다만 실적 발표 콜 기록 14문항에서는 가장 강한 기준선의 0.36보다 낮은 0.10이었습니다.
근거를 회수해도 답이 맞는다는 보장은 없습니다. 후보를 정답 페이지로 제한한 조건에서도 Qwen-2.5-7B-Instruct의 숫자 일치율은 지표형 질문 50문항 기준 0.34였습니다. 숫자 일치율은 답과 정답에서 뽑은 숫자 중 한 쌍만 허용 오차(절대 0.03, 상대 3%) 안에 들어도 성공으로 칩니다.
청킹을 바꿔서 움직이는 폭
Śmigielski 외는 청킹 기법 8종을 같은 조건에서 비교했습니다(arXiv:2606.00881, 2026-05). 데이터는 공개 질의응답(QA) 데이터셋 8종과 문서를 하나로 합친 병합 변형 3종입니다. 검색은 BGE-M3와 bge-reranker-v2-m3로 했고, 답변 생성과 1~5점 채점은 모두 GPT-OSS-20B가 맡았습니다.
| 청킹 기법 | Accuracy@5 평균(%) | 답변 점수 평균 | 청킹 시간 평균 |
|---|---|---|---|
| 고정 크기(512, 겹침 50) | 87.71 | 3.76 | 1초 미만 |
| Recursive Semantic | 89.36 | 3.86 | 4.90분 |
| Max-min | 85.75 | 3.61 | 2.44분 |
| Sequential HAC(계층적 응집 군집) | 80.09 | 3.35 | 2.10분 |
표는 모든 데이터셋에서 실행을 마치고 답변 점수까지 있는 4개 기법만 담았습니다. Accuracy@5와 청킹 시간은 11개 변형의 평균이고, 답변 점수는 채점이 가능한 8개 변형의 평균입니다.
Accuracy@5 평균 1위인 Recursive Semantic과 고정 크기의 차이는 1.65%p였고, 답변 점수 차이는 5점 척도에서 0.10점이었습니다. Sequential HAC는 오히려 고정 크기보다 7.62%p 낮았습니다. 논문은 고급 기법의 이득이 한계적이고 단순한 방법도 여전히 경쟁력이 있다고 해석합니다.
대규모 언어 모델(LLM) 기반 기법인 Lumberchunker와 DenseX는 평균 8.37시간과 15.05시간이 걸렸고, 여러 데이터셋에서 48시간 제한을 넘겼습니다. 이들의 평균은 실행을 마친 데이터셋만으로 계산됐으며, 데이터셋별 값으로 다시 계산해 이를 확인했습니다. 따라서 위 표의 평균과 나란히 놓을 수 없고, 논문도 같은 이유로 Lumberchunker의 최고 답변 점수를 신중하게 해석하라고 적었습니다.
이 글의 주장과 더 직접 관련된 부분은 지표의 정의입니다. 논문은 정답 구간과 겹치는 청크를 관련 청크로 세지만, 추출형 정답이 없는 경우에는 정답 문서의 모든 청크를 관련 청크로 셉니다. 이 경우 상위 k개의 관련 청크를 세는 Accuracy@5는 근거 회수보다 문서 발견에 가까운 값을 잽니다.
LiteraryQA의 결과는 이 경우와 맞아떨어집니다. 고정 크기 청킹의 Accuracy@5는 85.91%였지만 Recall@10은 4.53%, 답변 점수는 1.93점이었습니다. 논문은 어느 질문에 어느 정의를 적용했는지 밝히지 않았고, 두 지표의 계산식도 PIRB 벤치마크를 따른다고만 적었습니다. 따라서 이 해석은 추정입니다.
근거를 받고도 읽지 않는 모델
Walters, Chen, Toni의 Retrieved but Not Read는 근거 사용 단계를 직접 측정했습니다(arXiv:2610.21731, 2026-10). 평가 대상은 모델의 학습 컷오프 이후 값이 바뀐 사실 225건입니다. 도메인은 미국 식품의약국(FDA) 의약품 라벨, 금융, 스포츠, 인물, SEC 공시, 화학물질 분류의 6개입니다. 사실마다 오래된 값과 현재 값이 있어 오래된 답을 가려낼 수 있습니다.
핵심 장치는 고정 검색(frozen retrieval)입니다. 225건 중 223건에 대해 Brave Search로 한 번 만든 10개 결과 목록을 모든 모델이 똑같이 받고, 어떤 질의를 보내도 같은 목록이 돌아옵니다. 정답 페이지가 상위 10개에 없으면 목록에 끼워 넣었으므로, 이 조건의 실패는 문서 발견 단계에서 나지 않습니다.
같은 목록으로 GPT-5.6 Luna와 오픈 가중치 모델 6개 구성을 평가했습니다. 페이지를 하나도 열지 않고 검색 결과 스니펫만으로 답한 에피소드의 비율은 gpt-oss-120b의 2.6%부터 qwen3-8b의 76.0%까지 벌어졌습니다. Luna를 자체 웹 검색으로 실행한 배포 조건에서는 1,747개 에피소드 모두 검색을 했지만, 53.6%의 에피소드에서 페이지를 열지 않았습니다.
| 읽기 깊이 | 오래된 답 | 불충실 인용 |
|---|---|---|
| 스니펫만 보고 답함 | 6.4% (87/1366) | 6.4% (62/962) |
| 페이지를 열었지만 인용하지 않음 | 1.7% (17/990) | 1.6% (11/683) |
| 연 페이지를 인용함 | 1.3% (8/632) | 2.3% (29/1258) |
표는 고정 검색의 7개 구성과 모든 프롬프트 유형을 합산한 값입니다. 불충실 인용은 인용한 페이지가 답이 주장한 값과 모순되는 경우입니다. 스니펫만 본 경우는 두 지표가 모두 가장 높았고, 논문은 이 관계를 연관으로 보고합니다.
연 페이지를 인용한 답에서도 불충실 인용은 2.3%(29/1258) 남았으므로, 페이지를 여는 것만으로 근거 사용이 보장되지는 않습니다. 열었지만 인용하지 않은 경우의 1.6%와의 차이는 유의성 검정이 없어 해석하지 않습니다. 검색 자체는 도움이 됐으며, 검색을 켜면 주장 검증 정확도가 구성에 따라 27~42%p 올랐습니다.
스니펫에 어떤 값이 들어 있는지도 측정됐습니다. 스포츠 사실 47건 중 70%는 스니펫에 오래된 값이, 72%는 현재 값이 들어 있었습니다. 두 값이 함께 보이면 페이지를 열지 않은 모델은 어느 쪽이 최신인지 가릴 근거를 스니펫 안에서 찾지 못할 수 있습니다.
페이지를 프롬프트에 넣어도 남는 실패
저자들은 스포츠 이적 주장 50건으로 근거 전달 방식을 바꿔 봤습니다. 이 50건에는 논문이 이후 정답 검토로 제외한 3건이 포함됩니다. 주장에는 이전 소속 팀이 들어 있어 정답 판정은 항상 "부정확"입니다. 아래 표는 오래된 주장을 승인한 건수를 채점 건수로 나눈 값입니다.
| 조건 | gemma-4-31b | gpt-oss-20b | qwen3-8b |
|---|---|---|---|
| 모델이 검색 목록에서 직접 찾아야 함 | 14/50 | 11/47 | 16/49 |
| 같은 위키백과 페이지를 프롬프트에 넣음 | 0/50 | 1/50 | 8/49 |
이 실험에서 gemma-4-31b는 페이지를 한 번도 열지 않았고, 같은 페이지를 프롬프트에 넣어 주자 승인 건수가 14건에서 0건이 됐습니다. 두 결과를 묶으면 이 모델의 실패는 페이지를 열지 않는 결정에서 나왔다고 볼 수 있습니다. qwen3-8b는 페이지를 받아도 8건이 남았으므로, 근거를 받은 뒤의 처리에서 실패했습니다.
저자들은 남는 실패를 모델 내부에서도 살폈습니다. 오픈 모델 3개의 스포츠 이적 사례에서 logit lens와 Jacobian lens로 레이어별 두 팀 이름의 점수를 읽었습니다. 실패 사례에서도 페이지는 새 팀의 점수를 올렸지만 오래된 팀의 점수는 충분히 내리지 못했고, gemma-4-31b에서는 전혀 내리지 못했습니다.
이 분석은 상관 분석이며, 논문은 activation patching 같은 인과 검증을 하지 않았다고 밝힙니다. 출처를 요구하는 문구를 더해도 뚜렷한 개선은 없었고, qwen3-8b는 페이지를 넣은 조건에서 8/49가 12/49로 늘었습니다.
효과를 보인 완화책 하나는 열어 본 페이지마다 원래 질문을 다시 붙이는 방식입니다. 참인 문장 사이에 섞인 오래된 문장 하나를 찾는 검사에서, 실패한 157건 중 41건(26.1%)을 회복했습니다. 구성별 회복률은 4.5~57.1%였습니다.
실패를 단계별로 귀속한 결과
Hu, Singh, Tandon, Arora의 TREK는 실패 단계를 자동으로 판정하는 TrekTrace를 제안했습니다(arXiv:2610.25323, 2026-10). TrekTrace는 먼저 답을 담은 정답 근거가 검색 결과에 들어왔는지 확인합니다. 그다음 정답 근거만 준 재실행과, 실제 검색 결과에 정답 근거를 더한 재실행으로 검색 뒤의 실패를 나눕니다.
정답 근거만 줘도 틀리면 해석 실패이고, 정답 근거만으로는 맞히지만 다른 결과와 섞였을 때 틀리면 방해 실패입니다. 한 사례가 검색 이전·검색 단계의 라벨과 검색 뒤 단계의 라벨을 함께 받을 수 있습니다. 사람이 검토한 시스템 관련 오류 94건에서 TrekTrace와 사람의 판정은 Cohen κ 0.930으로 일치했습니다.
TREK의 검색 이전 실패와 검색 실패는 모두 답을 담은 근거가 결과에 없는 경우이며, 질의가 그 근거를 겨냥했는지로 둘을 나눕니다. 둘을 합치면 이 글의 문서 발견과 근거 회수에 해당합니다. 빠르게 바뀌는 지식을 묻는 실제 질문 144개(TrekBench-Wild)에서 결과는 검색 뒤 단계로 기울었습니다.
검색과 높은 추론 수준을 켠 GPT-5.4에서는 검토한 실패의 88.9%가 검색 뒤 실패를 포함했습니다. 검색 이전 또는 검색 단계 실패를 포함한 비율은 27.8%였습니다. Gemini-3.1-Pro는 각각 100.0%와 23.1%였습니다.
통제 실험(TrekBench-Ctrl)은 섞는 방해 문서의 종류를 바꾸며 손실을 쟀습니다. GPT-5.4-mini의 정답률은 정답 근거만 받았을 때 70.8%였습니다. 오래된 문서만 섞으면 64.6%였고, 무관 문서와 재게시·조작 문서를 더하고 출처 URL을 숨기면 34.0%였습니다.
의미 점수와 시간 점수로 문서를 재정렬한 기준선은 같은 두 조건에서 62.5%와 33.3%로, 재정렬 없이 답한 경우보다 낫지 않았습니다. 리랭커의 학습 목표를 생성기 유용성으로 옮기는 흐름은 리랭커 목적 함수의 이동에서 다뤘습니다. 정답 근거만 준 조건에서도 약 29%는 틀렸으며, 후보의 순서를 바꾸는 재정렬로는 이 손실을 줄이기 어렵다고 봅니다. 이는 판단입니다.
이 주장이 성립하지 않는 조건
검색기가 약하면 병목은 문서 발견입니다. FinanceBench 실험에서 BM25의 DocRec@5는 0.32였고, 이 구성에서는 문서 발견 실패가 가장 큽니다. TREK에서도 GPT-5.4의 검토한 실패 중 27.8%에는 검색 이전이나 검색 단계 실패가 포함됐습니다.
근거 사용 실패를 직접 측정한 두 연구는 모두 빠르게 바뀌는 사실을 다룹니다. 오래된 값이 모델의 사전 지식과 스니펫에 남아 새 값과 경쟁하는 조건입니다. 값이 잘 바뀌지 않는 사내 문서 RAG에서는 이 경쟁이 약해 근거 사용 실패의 비율이 더 낮을 수 있으며, 이는 추정입니다.
정적인 SEC 공시를 다룬 FinanceBench에서도 정답 페이지 조건의 숫자 일치율은 0.34였습니다. 다만 이 값은 계산 오류와 근거 사용 실패를 구분하지 않으므로, 정적 문서에서 근거 사용 손실이 얼마나 큰지는 보여 주지 못합니다.
표본과 조건도 제한적입니다. Retrieved but Not Read의 상용 모델은 GPT-5.6의 가장 가벼운 티어 하나이고, 심한 실패는 스포츠 도메인에 몰려 있습니다. 논문은 검색 없는 사전 등록 검사에서 답변 형식 지시가 Luna의 거짓 승인을 17.5%p 낮췄다고 보고했습니다. 이를 근거로 배포 조건의 실패율이 하한일 가능성이 높다고 적었습니다.
FinanceBench 실험은 150문항 중 74.7%가 10-K 문서이고 생성기는 7B 모델 하나입니다. 청킹 비교는 답변 생성과 채점에 같은 GPT-OSS-20B를 썼습니다. TREK의 귀속 결과는 영어 144문항과 두 모델의 실패 검토에 근거합니다.
소스가 답하지 못한 것도 있습니다. 실패 사례 하나하나를 이 글의 세 단계로 귀속한 연구는 없으므로, 단계별 손실의 비율은 데이터와 모델에 따라 달라질 수 있습니다.
근거 사용 실패의 완화책도 검증이 부족합니다. 질문 재제시는 실패한 검사의 26.1%를 회복했습니다. TREK에는 추론 모델로 문서를 거르는 필터링 기준선이 있습니다. 출처를 숨긴 조건에서 이 기준선은 GPT-5.4-mini의 정답률을 34.0%에서 43.1%로 올렸지만, GLM-4.7-Flash에서는 28.6%에서 18.9%로 낮췄습니다.
어느 지표부터 볼지 정하는 기준
해석 순서는 문서 발견, 근거 회수, 근거 사용입니다. 세 지표는 한 번의 평가 실행에서 함께 기록할 수 있으므로, 측정은 한 번에 하고 해석만 순서대로 합니다. 근거 회수율은 정답 문서를 찾은 질의만으로 계산해야 문서 발견 실패와 섞이지 않습니다. 앞의 FinanceBench 수치는 150문항 전체의 평균이므로 이 방식으로 계산한 값과 다릅니다.
flowchart TD
Q["평가 질의<br/>정답 문서와 근거 위치 라벨"] --> D{"정답 문서가<br/>상위 k개에 있는가"}
D -- "아니오" --> F1["문서 발견 실패<br/>검색기, 질의 재작성"]
D -- "예" --> E{"근거 구간이<br/>상위 k개에 있는가"}
E -- "아니오" --> F2["근거 회수 실패<br/>페이지·구간 단위 검색"]
E -- "예" --> G{"정답 근거만 주면<br/>맞히는가"}
G -- "아니오" --> F3["해석 실패<br/>생성기, 근거 형식"]
G -- "예" --> N{"실제 후보와 함께 줘도<br/>맞히는가"}
N -- "아니오" --> F4["방해·열람 실패<br/>열람 확인, 질문 재제시"]
N -- "예" --> OK["통과"]
| 단계 | 지표 | 측정 방법 | 이 글의 근거 |
|---|---|---|---|
| 문서 발견 | DocRec@k | 상위 k개에 정답 문서가 있는 질의 비율 | BM25 0.32, BGE-M3 0.88 |
| 근거 회수 | PageRec@k, 근거 구간 재현율 | 정답 문서를 찾은 질의만으로 계산 | 정답 문서로 제한한 BGE-M3 0.60 |
| 근거 사용(해석) | 정답 근거만 준 정답률 | 정답 근거만 넣어 재실행 | GPT-5.4-mini 70.8% |
| 근거 사용(방해·열람) | 실제 후보 정답률, 스니펫만 본 비율, 불충실 인용률 | 정답 근거 조건 대비 하락폭, 도구 호출 기록 | 오래된 답 6.4% 대 1.3% |
판단은 다음 질문에 차례로 답하며 내립니다.
- 검색 지표가 문서 단위인가, 근거 단위인가? 정답 문서의 모든 청크를 관련으로 치는 정의라면 문서 발견만 잽니다.
- DocRec@k가 높은데 답이 틀리는가? 근거 회수율을 봅니다. 격차가 크면 페이지나 구간 단위 검색이 후보이고, 문서 구조를 인덱스 시점에 계산하는 방법은 검색기에서 컴파일러로 가는 RAG에 정리했습니다.
- 근거 회수율이 높은데 답이 틀리는가? 정답 근거만 넣은 정답률을 잽니다. 이 값도 낮으면 검색기를 바꿔도 답은 고쳐지지 않으므로 생성기나 근거 전달 형식을 바꿔야 합니다.
- 정답 근거만으로는 맞히는데 실제 파이프라인에서 틀리는가? 방해 문서와 열람 행동을 봅니다. 검색 도구를 쓰는 에이전트라면 페이지를 연 비율과 인용 페이지가 답을 지지하는지를 기록합니다.
DocRec@k 자체가 낮다면 그때 1차 검색기를 손봅니다. 1차 검색기 설계는 DPR 기반 RAG 밀집 검색에, 2단계 재순위의 기본 구조는 RAG 크로스 인코더 재순위에 있습니다.
참고 자료
- Decomposing Retrieval Failures in RAG for Long-Document Financial Question Answering, arXiv:2602.17981 (2026-02)
- Chunking Methods on Retrieval-Augmented Generation - Effectiveness Evaluation Against Computational Cost and Limitations, arXiv:2606.00881 (2026-05)
- Retrieved but Not Read: Understanding Why Search-Augmented LLMs Fail to Use Available Evidence, arXiv:2610.21731 (2026-10)
- Where and Why Search-Augmented LLMs Fail When Reasoning over Rapidly Evolving Knowledge, arXiv:2610.25323 (2026-10)
모든 수치는 2026-10 기준으로 각 원문에서 대조했습니다.
정리
RAG 실패는 문서 발견, 근거 회수, 근거 사용의 세 단계로 나눌 수 있고, 2026년의 측정 연구들은 뒤의 두 단계에서 큰 손실을 보고합니다. FinanceBench에서는 후보를 정답 문서로 제한해도 BGE-M3의 정답 페이지 회수율이 0.60이었고, 고정 검색 실험에서는 스니펫만 본 답이 오래된 값을 더 자주 냈습니다. TREK는 두 프런티어 모델의 검토한 실패 대부분에 검색 뒤 실패가 포함됐다고 판정했습니다.
이 결과는 빠르게 바뀌는 사실, 금융 공시, 특정 모델 세대라는 조건에서 나왔고, 검색기가 약하면 문서 발견이 여전히 병목입니다. 그래서 RAG 품질이 낮을 때는 검색기를 바꾸기 전에 DocRec@k, 근거 회수율, 정답 근거만 준 정답률을 함께 재야 합니다. 세 값의 차이가 고칠 단계를 알려 줍니다.