문제 정의
- Retrieval-Augmented Generation(RAG)
- 외부 지식 소스에서 질문과 관련된 정보를 검색하여 맥락으로써 결합
→ LLM이 학습 당시 보지 못한 질문에 답변할 수 있게 만듦
- 하지만, 생성 프로세스 전에 단 한 번의 검색만 수행
→ 복잡한 질의에 효과적으로 대응하는 데 한계
CoRAG
중간 검색 체인을 통해 LLM의 반복적인 검색과 추론을 수행하는 프레임워크

1. 거부 샘플링(rejection sampling)을 통해 검색 체인 자동 생성
- 모델 훈련
- 구축된 데이터셋을 바탕으로 모델이 하위 질의, 답변, 그리고 최종 답변 생성하는 법을 학습
- 독점 모델로부터의 지식 증류나, few-shot 프롬프팅에 의존 X
- 다양한 디코딩 전략
계산량과 모델 성능 간의 trade-off를 고려하여 선택
- Greedy Decoding
- 매 단계에서 가장 그럴 듯한 질문과 답변을 뽑아서 바로바로 진행
- Best-of-N Sampling
- 매 순간 서로 다른 N개의 검색 체인을 만들어보고, 그 중 가장 좋아보이는 걸 골라서 답 생성
- Tree Search
- 각 단계마다 여러 가지 질문들을 뽑아보고, 여러 갈래로 펼쳐서 탐색 ... (BFS)
Experiment Settings
-
태스크, 데이터셋, 메트릭
- 멀티홉 QA
- 2WikiMultihopQA, HotpotQA, Bamboogle, MuSiQue가 통합 (125k)
- EM, F1
- KIT(Knowledge-Intensive Task)
- KILT 벤치마크 서브 샘플링 (660k)
- 모델의 예측 결과를 공식 평가 서버에 제출한 후, 숨겨진 테스트 세트에서 다운스트림 지표 보고
-
생성 모델
-
검색 모델
- E5-large
- KILT 벤치마크의 경우, 검색기도 이에 맞춰 미세 조정
-
검색 문서
멀티홉 QA
Bamboogle를 제외한 모든 데이터셋에서 모든 베이스라인 모델들을 상당히 능가
하지만, 저자들도 모델을 멀티홉 QA 데이터셋에 미세 조정한 것이 성능 향상에 기여를 했음을 인정

KIT
FEVER를 제외하고는 SOTA의 성능을 찍음

Scaling Test-Time Compute
OpenAI o1과 유사하게 모델 가중치를 업데이트하지 않고도 테스트 시점에 계산량을 확장하여 더 나은 성능을 달성할 수 있도록 설계
L이 커질수록 성능 향상이 둔해지며, N을 증가시키는 효과는 데이터셋마다 상이함
- L: 검색 체인의 길이
- N: Best-of-N에서 샘플링할 체인의 개수
즉, 토큰을 더 쓰고, 검색을 더 쓴다고 해서 무조건 성능이 오르지 않음
태스크, 데이터셋마다 상이함
