2026년 8월 30일 일요일

RAG 종류 총정리 ④ — 질의 변환: HyDE·분해·step-back의 손익계산서

여기서부터 비용 구조가 바뀐다. 앞의 두 계층(검색·색인)은 질의당 LLM 호출이 늘지 않았지만, 질의 변환은 요청마다 LLM을 한 번 이상 더 부른다. 그래서 "정확도가 얼마나 오르나"만이 아니라 "지연이 몇 초 늘고 그만큼 값을 하나"를 같이 봐야 한다. 다행히 Fudan의 전수 비교가 점수와 지연을 함께 측정해 뒀다.

한 장의 표: 정확도와 지연을 같이 보기

구성 (TREC DL19)mAP쿼리당 지연
원본 질의 (dense)23.993.06초
+ 하이브리드47.143.20초
+ 질의 재작성44.56
+ 질의 분해41.9314.98초
+ HyDE50.877.21초
+ HyDE + 하이브리드52.1311.16초

읽는 법은 이렇다. 하이브리드는 +23.15점을 0.14초에 산다. HyDE는 거기서 +5점을 얻으려고 8초를 더 쓴다. 그리고 질의 재작성(44.56)과 분해(41.93)는 둘 다 하이브리드보다 낮다. 실시간 챗봇이라면 이 표만으로 결론이 난다 — 하이브리드에서 멈추고, 남는 예산은 리랭커에 쓴다.

HyDE — 라벨 없는 신규 도메인 전용 부스터

HyDE는 질의로 가짜 답변 문서를 생성해 그걸로 검색한다. 효과는 확실하다 — TREC DL19 nDCG@10이 Contriever 44.5 → 61.3, TREC-Covid는 27.3 → 59.3. 라벨이 전혀 없는 새 도메인에서 특히 강하다.

그런데 원논문에 지는 구간도 정직하게 적혀 있다. 파인튜닝된 리트리버가 있으면 HyDE가 진다 — FiQA 27.3 vs Contriever-FT 32.9, DBPedia 36.8 vs 41.3. 더 중요한 건 다국어다. Mr.TyDi 전 언어에서 mContriever-FT에 졌고 한국어는 30.6 vs 34.2였다. 자사 임베딩을 한국어로 튜닝했거나 KURE 같은 한국어 특화 모델을 쓴다면(②편), HyDE는 지연 +4초를 내고 점수를 잃을 수 있다. 가짜 문서를 8개로 늘리면 14.15초까지 가는데 수확은 체감한다.

Step-back — 대박 구간이 따로 있다

Step-back prompting은 구체적 질문에서 한 걸음 물러난 상위 개념 질문을 먼저 만든다("이 조건에서 압력은?" → "이상기체 법칙은?"). 이득의 분포가 극단적이다 — TimeQA 41.5 → 68.7(+27.2), 화학 70.9 → 81.8, 물리 66.4 → 73.2인데 StrategyQA는 82.8 → 86.4(+3.6)에 그친다. 시간·조건·제약이 붙은 질의("2023년 기준 규정은", "A 조건일 때 B는")에 몰빵하고 나머지엔 걸지 않는 게 맞다.

주의할 점 둘. 논문의 오류 분석에서 실패의 90% 이상이 추상화가 아니라 추론 단계였다 — 추론이 약한 소형 모델에서는 효과가 사라진다. 그리고 기존 오류 20~40%를 고치는 대신 새 오류를 5~12% 만든다.

멀티쿼리·RAG-Fusion과 후처리

실무에서 가장 많이 쓰이는 멀티쿼리(RAG-Fusion)는 정작 근거가 얇다. 원논문은 수동 평가 위주이고, 스스로 약점을 적어 뒀다 — "생성된 질의가 원 질의와 충분히 관련되지 않으면 답이 주제를 벗어난다." 비용은 확실히 는다: LLM 1회 + 검색과 임베딩이 N배. N=5면 벡터 DB 비용도 5배다.

후처리 쪽은 계산이 더 분명하다.

  • 순서 재정렬은 공짜다. Fudan 실험에서 Reverse repacking 0.560 vs Forward 0.542, OP-RAG는 검색 청크를 원문 순서로 유지하는 것만으로 128청크에서 F1 38.40 → 44.43. 추가 호출 0회다.
  • 압축에는 공짜 점심과 명시적 거래가 있다. LongLLMLingua는 토큰 약 4배 절감에 최대 +21.4%, 비용은 LooGLE 기준 $93.60 → $5.60(−94%), 지연도 1.4~2.6배 빨라진다. 반면 RECOMP의 요약형은 토큰을 5~10%로 줄이는 대가로 EM이 NQ −2.35, HotpotQA −4.60 떨어진다. 정확도 최우선 도메인에서는 후자를 쓰지 말 것.
  • 청크를 더 넣는 건 답이 아니다. Databricks 측정에서 recall은 0.097 → 0.916까지 계속 오르지만 정확도는 꺾인다 — GPT-4-turbo는 16k, Llama-3.1-405b는 32k에서 정점이고 DBRX는 32k에서 0.255로 붕괴했다(실패의 50.4%가 지시 무시). recall 곡선을 정확도 곡선으로 착각하지 말 것.

가장 저평가된 기법: 질의를 변환하지 않는 것

같은 Fudan 실험에 조용히 들어 있는 결과가 있다. BERT-base 다국어 분류기(정확도 0.95)로 "검색이 필요한 질의인가"를 먼저 거르면 평균 점수는 0.428 → 0.443으로 오르고 지연은 16.41초 → 11.58초로 줄어든다. 품질과 비용이 동시에 좋아지는 드문 케이스다. 다음 글은 이 아이디어를 끝까지 밀어붙인 계열 — 언제 검색하고 언제 다시 검색할지를 시스템이 판단하는 Adaptive·Self·Corrective RAG다.

— RAG 종류 총정리 시리즈 ④ / 다음 글: Adaptive·Self·Corrective RAG — 언제 검색을 건너뛸까

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

RAG 종류 총정리 ⑬ (완결) — 한국어 조건과 결정 트리

열두 편을 한 장으로 접는다. 먼저 한국어로 서비스할 때만 적용되는 조건을 모으고, 그다음 "우리는 무엇부터 하나"를 결정 트리로 정리한다. 한국어 RAG의 다섯 가지 조건 임베딩 기본값을 의심하되, 갈아타는 이득은 제한적이...