Sign In
AI

SELF-RAG: Learning to Retrieve, Generate and Critique Through Self-Reflection

L
Lighthouse
안녕하세요!
KPMG 라이트하우스 AI Engineer들은 매주 쏟아지는 LLM 및 모델관련 논문 스터디를 수행하고 실무에 적용해오고 있습니다.
그 중 일부를 발췌하여 여러분들께 공유드립니다.

SELF-RAG: Learning to Retrieve, Generate and Critique Through Self-Reflection

Abstract

LLM은 자체 매개변수 지식에 의존하기 때문에 부정확한 답변을 생성하지만 RAG로 이런 문제를 줄일 수 있음
문서가 관련성이 있는지 확인하지 않은 무분별한 검색과 고정된 수의 검색 문서 통합은 성능을 저하시킴
Self-Reflective Retrieval-Augmented Generation 소개
LM을 on-demand로 상황에 맞게 검색할 수있게 학습시키고, ‘reflection token’을 사용하여 검색한 문서와 생성물을 성찰
reflection token 생성으로 추론 단계에서 LM을 제어하고 다양한 작업 요구사항에 맞춰 LM의 동작을 조정 가능

1. Introduction

SELF-RAG: 온디맨드 검색과 self reflection을 통해 LLM의 생성 품질과 정확성 향상
임의의 LM을 end-to-end 방식으로 주어진 작업 입력에 대해 자체 생성 과정을 성찰하도록 학습, 태스크 아웃풋과 중간에 특별한 토큰(reflection token) 출력
Reflection 토큰은 retrieval과 critique 토큰으로 나뉘며 검색 필요성과 생성 성능을 표시
SELF-RAG 작동 방식:
1.
입력 프롬프트와 이전 생성물을 바탕으로 검색한 문서들로 생성을 하는 것이 도움이 될지 판단
2.
도움이 된다고 판단되면 '검색' 토큰을 출력하여 온디맨드로 검색 모델 호출
3.
여러 개의 검색된 문서의 relevance(연관도)를 평가하고 태스크 아웃풋 생성
4.
아웃풋을 평가하기 위해 critique 토큰 생성하고 제일 좋은 아웃풋 선정
각 출력 세그먼트에 대한 인용을 제공하고 출력이 문서로 뒷받침되는지에 대한 평가가 제공되어 fact verification이 수월
확장된 모델 어휘로부터 next token prediction하도록 통합하여 LM이 reflection token과 함께 텍스트 생성하도록 학습
reflection 토큰은 학습된 critique 모델을 통해 기존 코퍼스에 삽입되어 최종적으로는 generator 모델이 reflection 토큰까지 생성
critique 모델은 GPT-4와 같은 propriety LM을 프롬프팅하여 수집한 데이터셋으로 부분적으로 지도 학습
SELF-RAG는 맞춤형 디코딩 알고리즘 지원을 통하여 reflection token 예측으로 강하거나 약한 제약 조건을 맞출 수 있음
인퍼런스 타임 알고리즘은 다양한 다운스트림 적용에 대해 검색 빈도를 유연하게 조정 가능하며, reflection token으로 사용자 선호도에 맞는 모델 맞춤 가능 (segment-level beam 검색을 통하여)
SELF-RAG가 RAG ChatGPT 보다 4가지 태스크에서 성능이 뛰어남

2. Related Work

Concurrent RAG work

RAG 성능 높이기 위한 방법
retriever와 언어 모델LM을 instruction-tuning 데이터셋으로 파인 튜닝
요약 모델을 사용하여 검색된 문서를 필터링하거나 압축한 후, 이를 언어 모델에 입력하여 출력을 생성

3. Self-RAG: Learning to Retrieve, Generate and Critque

retrieval, self-reflection을 통해 LLM의 품질과 사실성을 향상시키면서도 LLM의 창의성과 다재다능함을 유지
언어 모델 M이 검색된 문서를 바탕으로 텍스트를 생성하고, reflection token을 생성하는 방법을 학습하여 출력을 비판하게 함
reflection token은 검색이 필요함을 알리거나 출력의 관련성, 지지, 또는 완전성을 확인하는 역할

3.1 Problem formalization and overview

reflection token의 네가지 타입, 아래 3개는 critique 토큰의 종류, 굵은 글씨는 desirable critique tokens
[Retrieve]: 검색이 필요한지 여부
[IsRel]: 검색된 문서가 현재 생성 중인 텍스트와 관련이 있는지
[IsSup]: 생성된 응답 세그먼트가 검색된 문서에 의해 뒷받침되는지
[IsUse]: 생성된 응답이 전체적으로 유용한지
Inference overview
1.
모든 입력 x와 선행하는 generation $y_{<t}$에 대해 모델이 retrieval의 유용성 평가를 위해 retrieval token을 해독
2.
→ retrieval이 필요하지 않다면 일반 LM처럼 다음 텍스트 생성
3.
→ retrieval이 필요하다면, 모델이
{검색된 문서의 연관도를 평가하기 위한 critique token(IsRel),
다음 response segment,
response segment의 정보가 문서로 뒷받침이 되는지 평가하기 위한 critique token(IsSup)} 을 생성
4.
새로운 critique token이 새로운 응답의 전반적인 유용성 평가 (IsUSE)
각 세그먼트를 생성하기 위해 SELF-RAG는 여러 문서를 병렬로 처리하고 자체 생성된 reflection token을 사용하여 생성된 작업 출력에 대해 soft or hard constraint를 시행
Training overview
SELF-RAG는 임의의 언어 모델이 다음 토큰 예측으로 reflection token을 생성할 수 있도록 함
1.
생성 모델 M을 retriever R이 검색한 문서와 critique 모델 C가 예측한 reflection token이 혼재된 데이터셋으로 학습시킴
2.
critique 모델 C를 사용하여 검색된 문서와 주어진 task output의 품질을 평가하기 위한 reflection token을 생성하도록 학습
3.
critique 모델을 사용하여 reflection token을 task output에 오프라인으로 삽입하여 학습 데이터셋을 업데이트
4.
최종 생성 모델 M을 전통적인 LM 목표대로 학습하여 추론 시 critique 모델에 의존하지 않고 M이 reflection token을 스스로 생성할 수 있도록 함

3.2 Self-RAG Training

supervised data collection, training of two models critic C and generator M
3.2.1 Training the critic model
Data collection for critic model
GPT-4 프롬프팅으로 reflection token을 생성, 각 타입(Retrieve, IsRel, IsSup, IsUse)마다 4k-20k 개의 지도 학습 데이터를 수집하고 합쳐서 학습 데이터 구성
Critic learning
학습 데이터 D_critic 수집 후, 프리트레인 된 모델 C를 D_critic으로 학습(knowledge distillation)
가능도(likelihood)를 최대화하는 일반적인 conditional language modeling 목적으로 학습
이전 토큰들이 주어졌을 때, 다음 토큰의 확률을 최대화하도록 학습
Llama2 7B 사용, GPT-4의 예측과 90% 이상 일치
3.2.2 Training the generator model
Data collection for generator
인풋-아웃풋 페어 (x, y)가 주어졌을 때, retrieval 및 critique 모델을 사용하여 기존 출력 y를 보강, SELF-RAG 프로세스를 정확하게 모방하는 지도 데이터를 생성
각 문장 y 마다 아래의 프로세스 수행
retrieval이 필요하면 [Retrieve]=Yes 토큰이 추가되어, R이 top K 문서 검색(D)
각 문서에 대해 C는 문서가 relevant한지 평가 [ISREL] 토큰 예측
문서가 relevant하면 C는 문서가 생성된 아웃풋을 뒷받침하는지 평가하고 [ISSUP] 토큰 예측
critique 토큰인 [ISREL]과 [ISSUP]이 검색된 문서나 생성된 아웃풋 뒤에 붙음
C는 전반적 유용성 토큰인 [ISUSE] 토큰 예측
증강된 아웃풋(reflection token과 인풋-아웃풋)이 $D_{gen}$에 전달됨
Generator learning
generator 모델 M을 reflection token들인 $D_{gen}$으로 증강된 curated corpus로 학습
standard next token objective 사용
M은 타겟 아웃풋과 reflection token을 함께 예측하도록 학습
학습 과정에서 손실을 계산하기 위해 retrieved text chunk를 마스킹(<p></p> 사용)
Connections to prior work on learning with critique
PPO는 훈련 중에 별도의 보상 모델에 의존
SELF-RAG는 오프라인에서 critique를 계산하고 이를 training corpus에 직접 삽입하여 generator LM이 standard LM objectvie를 가지고 훈련되도록 함 → PPO에 비해 훈련 비용이 크게 절감
각 세그먼트가 생성된 후 자체 예측을 평가하기 위해 특수 토큰을 생성하는 방법을 학습하여 추론 시 soft re-ranking 매커니즘 혹은 hard constraints 사용 가능

3.3 SELF-RAG Inference

inference 시 각기 다른 목적(정확도가 중요 vs 창의성이 중요)에 맞게 컨트롤하는 방법
Adaptive retrieval with threshold
threshold를 설정해서 넘으면 retrieve하는 방식
Tree-decoding with critique tokens
segment level beam search: 빔 크기 B로 세그먼트 시퀀스를 얻고, 가장 좋은 시퀀스 반환
hard constraint: 원하지 않는 critique token 생성 시 세그먼트 생성하지 않도록 필터링
soft constraint: critique token(ISREL, ISSUP, ISUSE)의 가중치를 조정하여 모델의 행동 조정

4. Experiments

Experimental Setting

Training data: 150k instruction-output pairs
Training model:
base LM: Llama2 7B, 13B
critic LM: Llama2 7B
retriever model: Contriever-MS Marco
Inference settings:
Isrel, Issup, Isuse에 가중치 1.0, 1.0, 0.5
5개 문서 retrieve

5. Results and analysis

Main results

SELF-ARG가 ChatGPT보다 성능이 좋기도
다른 RAG 방법들보다 성능이 좋다
짧은 답변이 grounded하기도 해서 7B가 13B보다 성능이 좋기도

Analysis

Ablation studies
위에는 training ablation, 밑은 inference ablation
ablation은 모델의 구성 요소를 수정하고 기존 모델과 성능을 비교하며 각 요소의 중요성 평가하는 방법
모든 요소가 모델의 성능에 영향을 끼침
Effects of inference-time customization
[ISSUP] 토큰(how supported the output is by text passage)의 가중치를 평가
가중치를 늘리면 인용 정확도가 상승
Mauve는 줄어듦: when generation gets longer and more fluent, there are often more claims that are not fully supported by citations, consistent with findings

Conclusion

SELF-RAG: LLM을 retrieval과 self-reflection으로 LLM 성능을 높이는 프레임워크
LM이 retrieve, generate, critique text passage and own generation을 하도록 학습
reflection token을 통하여 LM의 행동을 제어
SELF-RAG는 다른 LLM보다 성능이 좋음
Kp
Subscribe to 'KPMG Lighthouse'
Subscribe to my site to be the first to receive notifications and emails about the latest updates, including new posts.
Join Slashpage and subscribe to 'KPMG Lighthouse'!
Subscribe
😍
1