FLARE: 능동적 검색 증강 생성(Active Retrieval Augmented Generation)
지난주에 Lewis 등이 발표한 기초적인 RAG 논문을 읽었습니다. 한 번 검색하고 결과를 앞에 붙인 뒤 생성하는 방식이죠. 이 방식은 효과가 있지만, 무엇이 필요할지 미리 알고 있다는 가정을 전제로 합니다. FLARE(EMNLP 2023)는 그 가정을 정면으로 공격합니다. 모델이 불확실해지기 시작하는 문장 중간이 검색하기 가장 적절한 시점이라면 어떨까요? 이 질문은 단일 컨텍스트 창에 담을 수 없는 장부 내역을 추론해야 하는 Beancount 에이전트와 같은 시스템에 매우 중요한 고민입니다.
논문 내용
Zhengbao Jiang, Frank F. Xu, Luyu Gao, Zhiqing Sun, Qian Liu, Jane Dwivedi-Yu, Yiming Yang, Jamie Callan, Graham Neubig이 발표한 "Active Retrieval Augmented Generation"은 FLARE(Forward-Looking Active REtrieval augmented generation)를 제안합니다. 이들이 해결하려는 문제는 긴 문장을 생성하는 동안 모델이 확 장된 출력 전체에 걸쳐 여러 지식을 끌어와야 할 때 발생하는 환각(hallucination) 현상입니다. 표준 RAG는 쿼리 시점에 한 번만 검색하며 검색된 구절이 생성에 필요한 모든 내용을 담고 있기를 바랍니다. 이는 짧은 답변에는 괜찮지만, 여러 단락으로 구성된 응답에는 취약합니다.
FLARE는 생성을 문장 단위의 단계로 나눕니다. 각 단계에서 다음 문장 후보를 생성합니다. 만약 해당 후보의 어떤 토큰이라도 예측 확률이 임계값 θ 미만이라면, FLARE는 이러한 낮은 신뢰도 구간을 검색 신호로 간주합니다. 이를 마스킹하거나 완성된 형태로 사용하여 쿼리를 구성하고, 위키피디아에서 검색한 뒤 검색된 컨텍스트와 함께 문장을 다시 생성합니다. 결과적으로 모델은 불확실한 시점과 위치에서만 검색을 수행하며, 필요하지도 않은 콘텐츠를 위해 미리 검색을 몰아서 하지 않게 됩니다. 모든 실험은 미세 조정 없이 GPT-3.5(text-davinci-003)에서 수행되었습니다.
핵심 아이디어
- 검색 트리거로서의 신뢰도: 토큰 확률이 θ 미만이면 모델이 환각을 일으킬 가능성이 높다는 신호입니다. 검색은 기본값이 아니라 이때만 트리거됩니다. 저자들은 문장의 40~80%에서 트리거가 발생할 때 일반적으로 가장 효과적이라는 것을 발견했습니다.
- 미래 예측형 쿼리(Forward-looking queries): 이미 생성된 내용만을 쿼리로 사용하는("이전 창" 방식) 대신, FLARE는 예측된 다음 문장(모델이 말할 것으로 생각하는 내용)을 훨씬 더 정밀한 검색 쿼리로 사용합니다.
- 두 가지 변형: FLARE-instruct는 낮은 신뢰도 토큰을 마스킹하고 마스킹된 구간을 쿼리로 사용합니다. FLARE-direct는 예측된 문장 전체를 사용합니다. 2WikiMultihopQA에서 direct 변형은 51.0 EM을 달성한 반면, instruct 변형은 42.4를 기록했습니다.
- 단일 검색 대비 성능 향상은 확실하지만 균일하지 않음: 2WikiMultihopQA에서 FLARE-direct는 51.0 EM을 기록하며 단일 검색(39.4)이나 검색 없음(28.2) 대비 결정적인 개선을 보여주었습니다. 하지만 ASQA에서는 격차가 훨씬 작았으며(41.3 대 40.0), WikiAsp(UniEval 53.4 대 52.4)는 거의 차이가 없었습니다.
- 명시적인 실패 사례: 저자들은 짧은 출력이 위주인 Wizard of Wikipedia와 ELI5에서는 다단계 검색이 이점 없이 오버헤드만 추가하여 성능 향상이 없었다고 보고했습니다.
- 비용: 생성과 검색이 엇갈려 나타나기 때문에 각 사례마다 여러 번의 LM 완료 호출과 검색 호출이 발생할 수 있습니다. 캐싱이 간단하지 않습니다.
유효한 점과 그렇지 않은 점
미래 예측형 프레이밍은 진정으로 영리한 부분입니다. 예측된 콘텐츠를 검색 쿼리로 사용하는 것은 접두사(prefix)만 사용하는 것보다 더 유익합니다. 특히 중간 결론이 다음에 필요한 사실을 결정하는 멀티홉(multi-hop) 작업에서 더욱 그렇습니다. 2WikiMultihopQA에서의 51.0 대 39.4 EM 격차가 이를 뒷받침합니다.
하지만 FLARE의 신뢰도 신호는 전적으로 모델의 캘리브레이션(calibration) 정도에 달려 있습니다. text-davinci-003과 같은 기본 완료 모델의 토큰 확률은 불확실성과 어느 정도 상관관계가 있습니다. 그러나 지시어 튜닝(instruction-tuned)이나 RLHF 미세 조정을 거친 채팅 모델은 종종 과잉 확신(overconfident)을 보입니다. 즉, 환각을 일으키면서도 높은 확률의 토큰을 내뱉습니다. 2024년 후속 연구인 Unified Active Retrieval(UAR, arXiv:2406.12534)은 더 넓은 검색 결정 스위트에서 FLARE를 벤치마킹했으며, UAR의 분류기 기반 접근 방식이 85.32%를 기록한 반면 FLARE는 다양한 시나리오에서 56.50%의 정확도만 달성했음을 발견했습니다. 캘리브레이션 문제는 예외적인 사례가 아니라 이 방법론이 근거하고 있는 핵심 가정에 관한 문제입니다.
또한 논문에서 충분히 다루지 않은 검색 세분성(granularity) 문제도 있습니다. 문장 단위 트리거는 합리적인 휴리스틱이지만, 어떤 사실은 절(clause) 경계에 걸쳐 있고 어떤 사실은 단일 엔터티 이름에 국한됩니다. 수치 토큰(달러 금액, 날짜)의 낮은 확률은 연결어의 낮은 확률과는 다르게 검색을 트리거해야 할 것입니다. 논문은 모든 낮은 신뢰도 토큰을 대칭적으로 취급합니다.
마지막으로 "불확실할 경우 다시 생성"하는 루프는 지연 시간(latency)을 유발합니다. 저자들은 이를 인정하지만 대화형 또는 실시간에 가까운 애플리케이션에서 중요한 지연 시간 예산과 비교하여 정량화하지는 않았습니다.