Paper

[Paper Review] Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection

Giliit 2024. 10. 25. 21:27
728x90

오늘은 RAG에 대해 좀 더 진화한 Self-RAG에 대해 알아보았고 페이퍼 리뷰를 적어보려고 한다.

논문링크
https://arxiv.org/abs/2310.11511

 

Introduction

최근의 State-Of-The-Art(SOTA) 모델들은 사실적 오류(할루시네이션 등)에 대해 방지하고자 Retrieval-Augmented Generation(RAG) 방식을 사용하고 있다. 하지만 이런 방식은 Large Language Models(LLMs)의 다재다능과 불필요한 정보들을 추가할 수 있기 때문에 오히려 문제가 생길 수 있다. 특히, 품질이 떨어지는 정보들을 가져올 수 있기 때문이다. 그래서 여기서는 Self-Reflective Retrieval-augmented Generation(SELF-RAG) 방식을 사용하고 있다. 이 방식은 간단히 설명해서 정보가 필요할 하는지에 대해 판단하고, 가져왔다면 정보가 문제를 푸는데 실질적으로 도움주는지에 대해 판단하는 시스템이다. 이를 통해 더욱 중요한 정보만을 가져와서 모델의 정확성을 향상하는 방식이다. 순서를 나열하면 다음과 같다.

  1. Retrieval Token 생성 : 주어진 입력 프롬프트 + 이전 입력을 바탕으로 추가적인 정보 검색이 필요한지 판단한다.
  2. 검생된 문서의 처리 및 출력 생성 : 검색이 필요한 경우, Self-RAG은 여러 개의 검색된 문서를 처리한다.
  3. Critique Token을 이용한 자체 평가 : 생성된 결과물에 대해 품질을 평가하여 가장 알맞은 결과물을 가져온다.

여기서 사용하는 inference algorithm은 다음을 할 수 있게 했다.

  • 각 downstream task에 대해 융퉁성 있게 검색할 수 있다.
  • segment-level beam search를 이용해 모델의 선호도를 변화할 수 있다. 

논문에서는 총 6가지 Task에 실험을 진행했다. Open-domain QA, Reasoning, Fact Verification, Long-from Generation 등등

 

Abuot Self-RAG

Self-RAG에 대한 Overview

Retrieve Token & Critique Token

각 토큰에 대한 설명이다.

Problem Formalization and Overview

Inference Overview

SELF-RAG의 추론(inference) 과정은 다음과 같다.

  1. Retrieval Token 평가: 주어진 입력 $x$와 이전 생성 $y_{<t}$에 대해, 모델은 검색이 필요한지 판단하기 위해 retrieval token을 디코딩한다. 검색이 필요하지 않으면 모델은 표준 언어 모델처럼 다음 출력 세그먼트를 예측한다.
  2. 검색 및 Critique Token 생성: 만약 검색이 필요하다고 판단되면, 모델은 검색된 문서의 관련성을 평가하는 critique token을 생성한다. 이 모델은 다음 응답 세그먼트를 생성하고, 해당 응답이 검색된 문서로부터 지원되는지 비평하는 또 다른 critique token을 생성한다.
  3. 전체 응답 평가: 마지막으로, 모델은 응답의 전체적인 유용성을 평가하는 새로운 critique token을 생성한다. 이러한 과정을 통해, SELF-RAG는 생성된 각 세그먼트가 검색된 문서와 어떻게 연관되는지를 스스로 평가한다.
  4. 병렬 처리: SELF-RAG는 여러 검색된 문서를 처리하고, 자체적으로 생성한 reflection tokens를 사용해 생성된 출력을 제어한다. 예를 들어, 그림 1에서는 문서 $d_1$이 처음 선택되고, $d_2$는 직접적인 증거를 제공하지 않으며($d_2$는 "Irrevant"으로 표시), $d_3$는 부분적으로만 지원되는 반면 $d_1$은 완전히 지원된다.

Training Overview

SELF-RAG의 훈련 과정은 다음과 같다.

  1. Reflection Token 생성 훈련: SELF-RAG는 확장된 모델 어휘(원래 어휘 + reflection tokens)를 사용해 reflection tokens를 생성하는 방법을 훈련한다. 이를 위해 generator model $M$을 훈련하는데, 이때 retriever model $R$이 검색한 문서와 critic model $C$이 예측한 비평 토큰들이 함께 사용된다.
  2. Critic Model 훈련: Critic Model $C$은 검색된 문서와 주어진 작업 출력의 품질을 평가하는 reflection tokens를 생성하도록 훈련된다. 이를 통해 모델은 검색된 문서가 관련성이 있는지, 출력이 해당 문서로부터 충분히 지원받고 있는지를 스스로 평가할 수 있게 된다.
  3. Final Generator Model 훈련: Critic Model을 통해 학습된 데이터를 바탕으로, Final generator Model $M$은 기존 언어 모델 목표로 훈련되어, 추론 시 Critic 모델에 의존하지 않고도 reflection tokens를 자체적으로 생성할 수 있게 된다.

Training 

여기서 2가지 모델을 훈련시킨다. Critic Model $C$와 Generator Model $M$ 2가지이다.

Training the Critic Model

데이터 예시

Data collection for critic model : 사람이 하나하나 라벨링 하기에는 비용이 매우 많이 발생하기에 GPT4를 이용하여 라벨링을 진행했다. 데이터를 생성하는 지시문에 대해서는 부록을 참고하면 된다. 여기서 알아둬야 할 점은 Input과 output에서 여러 토큰과 그에 대해 필요한 정보들을 추가했다는 것이다.

Critic Learning : 이 목표는 우도(likelihood)를 최대화하는 방식으로 훈련되며, 주어진 입력에 대해 올바른 출력을 예측하는 확률을 최대화하는 방향으로 모델을 학습시킨다. 다음 토큰 예측에 대해 학습을 진행한다.

여기서 사용되는 Critic Model은 Llama2-7B 모델을 사용했다. 여기서 reflection token 카테고리는 GPT-4 기반 예측과 90% 이상의일치를 보여주었다. 이것은 상당히 높은 정확도로 문서의 관련성을 평가한다는 것이다.

Training the Generator Model 

Data collection for Generator model :  밑의 그림을 보게되면 기본적인 데이터는 왼쪽이지만 Generator Model을 위해 오른쪽과 같이 데이터를 변형시킨다. 이러한 방식으로 데이터를 모았다. 

데이터를 모으는 알고리즘은 다음과 같다. 

데이터 추론 알고리즘과 데이터 모으는 알고리즘은 동일하다.

Generator Learning : 여기서는 2가지를 예측한다.

  • target output 예측
  • Reflection token 예측(Critique, Retrieve)

 

 

Experiments

Results

without retrieval

SELF-RAG의 성능 우위: SELF-RAG는 모든 작업에서 감독 학습으로 미세 조정된 대형 언어 모델(LLM)보다 성능이 뛰어났으며, PubHealth, PopQA, 전기 생성(biography generation), ASQA와 같은 작업에서는 ChatGPT보다도 더 나은 성능을 보였다.

동시 연구 모델과의 비교: SELF-RAG는 CoVE(Dhuliawala et al., 2023)와 같은 다른 동시 연구 모델들보다 전기 생성 작업에서 우수한 성과를 보였다. SELF-RAG의 7B와 13B 모델이 이를 능가한 성과를 냈습니다.

with retrieval

RAG 모델 대비 우수성: SELF-RAG는 기존의 Retrieval-Augmented Generation (RAG) 모델들에 비해 대부분의 작업에서 더 나은 성능을 발휘했다. 특히 open-source 모델 중에서 최고 선능을 달성했다.

Citation Precision: SELF-RAG는 인용 정확도 측면에서 ChatGPT를 능가했다. 특히 ASQA 작업에서 SELF-RAG는 높은 인용 정밀도와 재현율을 기록하며, ChatGPT를 제외한 모든 모델을 압도했다.

Analysis

Ablation studies 

 

  • No Retriever 모델은 검색된 문서를 사용하지 않고 표준 입력-출력 쌍으로만 훈련되며, SELF-RAG에 비해 성능이 크게 떨어진다. 이는 검색된 문서의 중요성을 나타낸다.
  • No Critic 모델은 Critic 없이 검색된 문서만 사용해 훈련된다. 이 모델도 성능이 떨어지며, Critic 모델이 성능 향상에 큰 역할을 한다는 점을 시사한다.

 

Effects of inference-time customize

 

  • No Retrieval는 검색 없이 추론을 진행하는 방식으로, 성능이 크게 떨어진다. 이는 필요할 때 검색을 하지 않으면 모델 성능이 저하될 수 있음을 보여준다.
  • Hard Constraints는 검색이 필요할 때 항상 검색을 강제하는 방식인데, 동적으로 검색을 조정하는 SELF-RAG 방식이 더 나은 결과를 보인다.
  • Retrieve Top 1은 검색된 문서 중 상위 한 개 문서만 사용하는 방식으로, ASQA와 PopQA에서 성능이 크게 떨어진다. 이는 상위 문서만이 항상 최선이 아님을 나타낸다.

 

Conclusion

SELF-RAG는 reflection tokens을 활용하여 추론(test) 시 모델의 동작을 세밀하게 조정할 수 있다. 여러 작업에서 다양한 평가 지표를 사용해 SELF-RAG를 평가한 결과, 더 많은 매개변수를 가진 LLM들이나 기존의 검색 기반 생성 모델들보다 성능이 우수하다는 점을 입증하였다. 이는 SELF-RAG가 기존 방식보다 효율적이며, 더욱 정확한 결과를 제공할 수 있음을 보여준다.

 

이 논문은 상당히 좋은 논문 같다. LLM에게 직접 생각을 하도록 유도해서 더욱 좋은 성능을 나타낸다. 하지만 모델의 편향성이나 아얘 없는 정보에 대해 어떻게 처리할지도 있는 논문도 나왔으면 좋겠다.