Share
Sign In
Lighthouse LLM
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'
Welcome to 'kpmg-lighthouse'!
By subscribing to my site, you'll be the first to receive notifications and emails about the latest updates, including new posts.
Join SlashPage and subscribe to 'kpmg-lighthouse'!
Subscribe
👍
Eunyoung Lee
Precise Zero-Shot Dense Retrieval without Relevance Labels
논문 개요 논문명: Precise Zero-Shot Dense Retrieval without Relevance Labels 링크 : https://arxiv.org/pdf/2212.10496 출간일 : 2022.12 출간 학회 : - 저자 : Luyu Gao, Xueguang Ma, Jimmy Lin, Jamie Callan 소속 : Carnegie Mellon University, University of Waterloo 인용 수 : 130 코드 : https://python.langchain.com/v0.1/docs/use_cases/query_analysis/techniques/hyde/ (비공식 코드) Abstract dense retrieval이 다양한 작업과 언어에서 효과적이고 효율적인 것으로 나타났지만, relevance label이 없는 상황에서 효과적인 fully zero-shot dense retrieval system을 만드는 것은 어려움 Hypothetical Document Embeddings (HyDE) 쿼리가 주어졌을 때, instruction-following language model(e.g. InstructGPT)가 hypothetical 문서를 생성하도록 함 문서는 relevance pattern을 포착하지만 비현실적이고 틀린 디테일을 가질 수 있음 supervised contrastively learned encoder(e.g. Contriever)가 문서를 임베딩, 벡터 유사도를 기반으로 하여 유사한 실제 문서를 retrieve 생성된 문서를 실제 코퍼스와 연결시키며, 인코더(contriever)의 dense bottleneck 현상이 부정확한 세부 사항을 필터링함 실험 결과, HyDE는 최신 unsupervised dense retriever인 Contriever의 성능 크게 능가, 다양한 작업(예: 웹 검색, QA, 사실 확인)과 언어(예: 스와힐리어, 한국어, 일본어)에서 fine-tuned된 retriever와 비교할 만한 강력한 성능을 보여줌 Introduction 기존 방법 Dense retrieval: 시멘틱 임베딩 유사도로 문서 검색 supervised dense retrieval model 성능 개선 방법 제시: negative mining, distillation, task-specific pre-training
Lighthouse
LiLT:A Simple yet Effective Language-Independent Layout Transformer for Structured Document Understanding
LiLT: A Simple yet Effective Language-Independent Layout Transformer for Structured Document Understanding 논문명 : LiLT: A Simple yet Effective Language-Independent Layout Transformer for Structured Document Understanding 링크 : https://arxiv.org/abs/2202.13669 출간일 : 2022.02 출간 학회 : ACL 저자 : Wang, Jiapeng, Lianwen Jin, and Kai Ding 소속 : South China University of Technology, Guangzhou, China IntSig Information Co., Ltd, Shanghai, China INTSIG-SCUT Joint Laboratory of Document Recognition and Understanding, China Peng Cheng Laboratory, Shenzhen, China 인용 수 : 117 코드 : https://github.com/jpWang/LiLT https://huggingface.co/docs/transformers/main/model_doc/lilt Abstract 문제 의식 : English 에 특화된 Structured Document Understanding (SDU) 모델들만 있음 → Multi lingual SDU 모델에 Contribution DLA 태스크를 명확히 말하지 않음. Semantic Entity Recognition (SER), Relation Extraction(RE) 에 한정해서 언급 Paragraph 단위의 SER 이 DLA Task 와 같은 것으로 보임
👍
1
Lighthouse
Improving Text Embeddings with Large Language Models
논문 개요 논문명: Improving Text Embeddings with Large Language Models 링크 : https://arxiv.org/pdf/2401.00368 출간일 : 2023.12 출간 학회 : ACL 저자 : Liang Wang, Nan Yang, Xiaolong Huang, Linjun Yang, Rangan Majumder, Furu Wei 소속 : Microsoft Corporation 인용 수 : 51 코드 : https://github.com/microsoft/unilm/tree/master/e5 Abstract 합성 데이터와 1K 학습 스텝보다 적은 스텝을 사용하여 높은 퀄리티의 텍스트 임베딩 얻는 방법 소개 기존 방법은 많은 양의 weakly-supervised text pair로 프리트레인을 하고 라벨링 된 데이터로 파인튜닝을 해야했음 proprietary(독자적) LLM을 활용하여 93개 언어에 걸쳐 임베딩 태스크를 위한 합성 데이터 생성 오픈 소스 디코더-only LLM을 합성 데이터로 standard contrastive loss로 파인튜닝 라벨링 데이터를 하나도 사용하지 않고 좋은 성능을 보임 합성 데이터와 라벨링 데이터를 섞어 파인튜닝을 더 진행하여 BEIR와 MTEB에서 sota 달성 Introduction 이전 연구들(Glove 등)에서 사전 학습된 단어 임베딩의 가중 평균이 semantic similarity를 측정하는 강력한 기준임을 보여줬지만, 이 방법들은 자연어의 풍부한 맥락 정보를 포착하지 못함(토큰 간의 관계 파악) 프리트레인 언어 모델 등장 이후 NLI 데이터셋에 BERT를 파인튜닝한 예시들: Sentence-BERT, SimCSE BGE, E5: multi-stage 학습 패러다임으로, 수십억 개의 weakly-supervised 텍스트 쌍에 대해 사전 학습 후 고품질 라벨 데이터셋에 대해 파인튜닝