지금까지는 "어떻게 잘 찾을까"였다. 이 글은 다른 질문을 던진다 — 애초에 찾아야 하나? 그리고 찾은 게 쓸모없으면 어떻게 하나? 검색 여부·횟수·재시도를 시스템이 판단하는 계열(Self-RAG, CRAG, Adaptive-RAG)인데, 여기서부터는 크리틱 호출이 붙으므로 산수를 먼저 해야 한다.
"일단 검색"이라는 기본값은 정확도까지 깎는다
두 개의 실측이 같은 방향을 가리킨다. KAIST의 Adaptive-RAG가 GPT-3.5로 6개 데이터셋을 평균한 결과, 검색을 안 한 쪽이 EM 35.77로 단일 스텝 검색 34.73보다 높았다. FLARE의 StrategyQA에서도 무검색 72.9 > 1회 검색 68.6이었다. 모델이 이미 아는 걸 물었을 때 관련 없는 문서를 밀어 넣으면 오히려 방해가 된다.
프로덕션 트래픽에서 이 비율은 생각보다 크다. Self-Route 측정에서 질의의 57~77%가 RAG만으로 해결됐고 63%는 RAG와 롱컨텍스트의 답이 완전히 동일했다. 나머지에만 비싼 경로를 쓰는 것만으로 토큰 비용이 38.6~61.6% 줄었다. 게다가 Self-Route의 라우팅 판단은 첫 호출 프롬프트에 한 줄 얹는 것이라 추가 호출이 사실상 0이다.
세 갈래 계보: 비판하기, 고치기, 나누기
- Self-RAG — 제너레이터 안에 판단을 넣는다. reflection 토큰 4종(Retrieve / IsREL / IsSUP / IsUSE)으로 검색 여부와 근거 품질을 스스로 판정한다. PopQA 54.9, Bio FactScore 81.2로 좋지만 대가가 크다 — 7B 크리틱 학습 + 15만 쌍으로 제너레이터 재학습이 전제다. 자체 파인튜닝 파이프라인이 없으면 선택지가 아니다.
- CRAG — 파이프라인 옆에 평가기를 붙인다. 0.77B T5 평가기가 검색 결과를 Correct/Incorrect/Ambiguous로 분류하고, Incorrect면 웹 검색으로 대체한다. 재학습이 필요 없는 plug-and-play인데 효과가 크다 — LLaMA2-7B 기준 PubHealth 48.9 → 59.5(+10.6), ARC 43.4 → 53.7(+10.3). 대가는 지연 0.363초 → 0.908초(2.5배). 가성비 1위.
- Adaptive-RAG — 진입점 앞에서 나눈다. 770M 분류기가 질의를 무검색(A)/단일(B)/멀티스텝(C)으로 라우팅한다. GPT-3.5 6개 데이터셋 평균 EM 34.73 → 37.97, 지연은 멀티스텝(3.33배) 대비 1.46배. 멀티스텝 이득(+3.40 EM)의 95%를 추가 지연의 20%로 회수한다.
판단을 어디에 두느냐 — 제너레이터 안 / 파이프라인 옆 / 진입점 앞 — 가 곧 도입 비용을 결정한다.
추가 호출 산술: 크리틱 한 번에 얼마인가
LangGraph의 레퍼런스 구현(라우터 → 문서별 grader → 생성 → 환각 grader → 답변 grader → 실패 시 재작성)은 질의당 최소 4 + k회 호출이다. 청크 5개 × 600토큰 입력, 출력 300토큰, 본답변 Sonnet 5 기준으로 계산하면:
| 구성 | 질의당 추가 |
|---|---|
| 관리형 groundedness 게이트(Bedrock) | $0.0012 |
| 리랭커 1회(100청크) | $0.002 |
| Haiku 크리틱 1패스 | $0.0033 |
| 풀 Adaptive 그래프(Haiku grader) | $0.007 (+78%) |
| 같은 그래프, Sonnet grader | +145% |
여기서 나오는 실무 규칙: 실패 원인이 "순위"면 리랭커가 3배 싸고, "근거 없음"이면 관리형 게이트가 자체 grader보다 2.75배 싸다. 자체 LLM grader를 만들 근거는 도메인 특수 규칙이 있을 때뿐이다. 그리고 재작성 루프가 한 번만 돌아도 이 비용은 다시 배가 된다.
그런데 복잡한 파이프라인이 필요 없을 수도 있다
적응형 검색 35종을 6개 데이터셋 × 10개 지표로 전수 비교한 2025년 연구의 결론이 냉정하다 — "단순 불확실성 추정 기법이 복잡한 파이프라인보다 효율성과 self-knowledge에서 앞서면서 QA 성능은 비슷하다." 로짓 엔트로피 임계값 하나면 학습 0, 추가 호출 0이다. 첫 실험은 여기서 시작해야 한다.
분류기 자체가 새로운 오류원이라는 점도 있다. Adaptive-RAG의 실제 EM 37.97 vs Oracle 분류기 47.70 — 라우팅 오류가 EM 9.7점(상대 26%)을 태운다. 게다가 Oracle은 평균 0.50 스텝인데 실제는 1.03 스텝이니 오분류는 정확도와 비용을 동시에 악화시킨다. 임계값 캘리브레이션 비용도 무시할 수 없다 — CRAG의 임계값이 데이터셋마다 (0.59,−0.99) / (0.5,−0.91) / (0.95,−0.91)로 제각각이고 FLARE의 θ도 0.4~0.8이다. 논문 기본값을 그대로 쓰면 게이트가 열린 채 혹은 닫힌 채 고정된다.
도입 순서, 그리고 "모르겠습니다"
권장 순서는 이렇다. (1) 로그에서 무검색으로 풀리는 질의 비율을 재고(57~77%가 기준선), (2) 엔트로피 임계값으로 무검색 경로를 먼저 열고, (3) 실패를 "순위 실패 vs 근거 실패"로 분류해 리랭커 또는 grounding 게이트를 배정하고, (4) 그다음 CRAG, (5) 마지막에 멀티스텝 라우팅. 앞선 "사용자 의도 분석과 LLM 라우팅" 시리즈의 분류기가 여기서 그대로 쓰인다.
마지막으로 기권(abstention)은 부산물이 아니라 기능이다. CRAG의 Incorrect 판정, Adaptive-RAG의 A 라우트, groundedness 게이트가 전부 같은 문제의 다른 구현이고, 기권 서베이는 이를 환각 완화·안전성의 핵심 수단으로 규정한다. ⑨편에서 볼 RGB 벤치마크가 지적하듯 현행 LLM이 가장 못하는 것 중 하나가 "근거 없을 때 거절하기"다. 다음 글은 비용 자릿수가 완전히 달라지는 계층, GraphRAG다.
— RAG 종류 총정리 시리즈 ⑤ / 다음 글: GraphRAG와 구조화 데이터 — 색인에 1,000배를 쓸 것인가
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.