논문 리뷰

[EMNLP 2023] Active Retrieval Augmented Generation / FLARE

공부하는묵 2025. 5. 13. 01:03

1. Introduction

  • RAG 방법론은 retrieve-and-generate 과정을 통해 LLM의 hallucination을 제거할 수 있다
  • short-form 생성에는 효과적으로 작동하지만, long-form 생성에는 잘 작동하지 않는다
  • 이는 생성 과정 중간에 추가적인 검색 과정을 통해 새로운 외부지식을 넣어줌으로써 해결할 수 있다
  • 본 논문에서는 LM이 생성하려는 문장을 통해 LM이 생성하려는 문장이 얼마나 confidence를 가지고 있는지 알아내고, 이를 통해 추가 검색을 수행할 지 말지 결정하는 FLARE 방법론을 제안한다

 

2. Retrieval Augmented Generation (RAG)

2.1 Single-time Retrieval Augmented Generation

  • 전체 문서 Corpus D와 사용자 질의 q가 주어졌을 때, 검색기를 통해 관련 문서 D_q를 뽑는다. (Retrieve)
  • 관련 문서와 사용자 질의를 LLM에 입력하여 응답 y를 생성하도록 한다.  (Generate)

2.2 Active Retrieval Augmented Generation

  • 본 논문에서 제안하는 방식으로, 언제 검색이 필요할지 파악해서 검색하는 방식
  • t번째 스텝에서, 사용자 질의 q_t는 사용자 입력 x와 이전 스텝까지의 생성 결과 y_<t를 통해 생성
  • q_t를 이용하여 검색기를 통해 t_번째 스텝에서 연관된 문서들을 찾아내고, 다시 최종 응답을 생성

3. FLARE: Forward-Looking Active REtrieval Augmented Generation

  • LM이 답변을 생성할 때, 외부지식이 필요하다고 판단될 때에만 검색을 할 필요성이 존재
  • 현재까지 생성된 문장이 아닌, 이후에 생성될 문장의 생성에 도움이 되는 질의를 생성해야할 필요성 존재
  • q_t를 생성하는 방식은 FLARE_instruct / FLARE_direct 2가지 제안

3.1 FLARE with Retrieval Instructions (FLARE_instruct)

  • LLM에게 검색이 필요할 때, search queries를 생성해달라는 지시문과 특정 task에 맞게 생성해달라는 지시문을 입력
  • LLM이 [Search(query)] 형식으로 생성하는 경우 query가 질의가 된다

3.2 Direct FLARE (FLARE_direct)

3.2.1 Confidence-based Active Retrieval

  • 일단, 임시로 다음 문장을 생성
  • 생성된 토큰들에 대해서 생성 확률이 낮다는 것은 LLM이 그만큼 low-confidence라는 것
  • 만일 모든 토큰의 생성 확률이 threshold 이상이라면, 그대로 응답으로 사용
  • 그렇지 않다면 생성된 문장을 바탕으로 질의 생성 및 검색 진행

3.2.2 Masked sentences as implicit queries

  • 생성된 문장에서 확률이 낮았던 토큰을 마스킹하고, 질의로 사용하는 방법

3.2.2 Generated questions as explicit queries

  • 생성된 문장에서 확률이 낮았던 토큰을 마스킹하고, 마스킹된 문장에 대한 질의를 LLM이 생성하도록 하는 방법

 

4. Experimental Setup

4.1 Multi-time Retrieval Baselines

  • Previous-window: 이전 l개의 토큰을 이용하여 검색 진행
  • Previous-sentence: 이전 문장을 이용하여 검색 진행
  • Question decomposition: 주어진 질의를 몇가지 sub-question으로 잘라서 진행, LLM에 지시문을 입력하여 진행

4.2 Task / Datasets

  • MultihopQA / 2WikiMultihopQA Dataset
  • Commonsense reasoning / StrategyQA dataset
  • Long-form QA / ASQA dataset
  • Open-domain summarization / WikiAsp

 

4.3 Results

  • FLARE는 모든 데이터셋에서 베이스라인보다 좋은 성능을 보였음
  • 하지만, ASQA, WikiASp에서는 낮은 성능 향상을 보였는데, 이는 open-ended라는 특성이 LLM에게 더 높은 난도를 만들었을 것으로 추정

  • 이미 생성된 문장과 문장을 임시로 생성하고 그것을 쿼리로 사용했을 때의 성능 차이
  • 생성 문장을 쿼리로 사용했을 때, 성능이 더 좋을 것을 보아, 생성 문장을 토대로 질의를 생성하는 것이 더 낫다는 것을 알 수 있다

  • 이미 생성된 문장을 쿼리로 사용하는 경우, 그 토큰의 갯수를 달리하며 진행한 실험
  • 토큰의 길이가 길어질 수록 오히려 성능의 하락이 있는 것으로 보아, 불필요한 정보는 오히려 안좋은 쿼리를 만들게 되어 생성에 악영향을 줄 수 있다. 

  • 생성 시, 검색 과정이 포함된 생성의 비율에 따른 성능 평가
  • 생성 비율이 높아지더라도 어느 정도 범위에서 수렴
  • LM이 확신을 가지고 생성했다면, 검색은 불필요한 과정일 수 있다