[Paper Review] RAFT: Adapting Language Model to Domain Specific RAG 논문 리뷰
업데이트:
Abstract
- 특정 도메인에서 LLM을 사용할 때 새로운 지식을 RAG-based-prompting이나 fine-tuning을 통해 추가하는 것이 일반적임
- RAFT(Retrieval Augmented Fine Tuning)는 특정 도메인 RAG에 대해 언어 모델의 성능을 향상시키기 위한 훈련 기법
- RAFT는 질문에 대답하는데 도움이 되지 않는 문서(distractor documents)를 무시하도록 모델을 훈련시킴
- RAFT는 관련 문서에서 질문에 대답하는데 도움이 되는 올바른 시퀀스를 인용하고, chain-of-thought 스타일 응답을 통해 모델의 추론 능력을 향상시킴
- RAFT는 PubMed, HotpotQA, Gorilla 데이터셋에서 지속적으로 성능을 향상시킴
1. Introduction
- How to adapt pre-trained LLMs for Retrieval Augmented Generation (RAG) in specialized domains?
- 이 논문에서는 특정 도메인에서 “open-book” 설정으로 질문에 답하는 모델의 능력을 향상시키는 RAFT를 제안함: RAG + SFT
- RAFT는 fine-tuning을 통해 특정 domain의 답변을 잘하게 할 뿐만 아니라 리트리벌이 잘못 뽑혔을때, robustness하게 답변하도록 학습 (retrieval된 output들 중 도움이 되지 않는 distractor 문서를 무시하도록 훈련함)
2. LLMs for Open-Book Exam
- Closed-Book Exam에서 LLM은 질문에 답하기 위해 추가 문서나 참조 자료에 접근할 수 없음
- Open Book Exam에서는 LLM이 질문에 답하기 위해 외부 정보 출처를 참조할 수 있음
- Domain Specific Open-Book Exam
- 이 논문에서는 general open book exam이 아닌, domain specific open book exam에 집중. → pre-trained LLM을 특정 도메인에 adaptation 시키고, retrieved documents & distractors에 대해 robust하게 만듦
3. RAFT
- Supervised Fine-tuning(SFT)은 Dataset(D)에서 유도된 Question(Q)과 Answer(A) 쌍을 통해 모델을 훈련시킴
- classical SFT에서 모델은 pre-training phase에서 학습한 knowledge의 Q에 대답하는 능력을 향상시키도록 학습
- Inference 시에 RAG를 활용하여 학습된 지식에 대해 더 대답을 잘 하도록 하기도 함.
- RAFT에서는 모델이 RAG된 결과를 잘 활용하도록 fine-tuning data를 준비
- question(Q), documents(D_k), Chain-of-thought 스타일 answer(A*)
- 2가지 타입의 documents
- ‘oracle’ documents (D*): 질문에 대한 답을 할 수 있는 문서
- ‘distractor’ documents (D_i): 답과 관련 없는 정보의 문서
- P% 비율의 데이터는 distractor 문서와 함께 oracle 문서(
D∗
)를 포함하고, (1-P)% 비율은 oracle 문서 없이 distractor 문서만 포함함- P % of data: Q + D∗ + D2 + . . . + Dk → A∗
- (1 − P) % of data: Q + D1 + D2 + . . . + Dk → A∗
- training quality를 높이는데 가장 중요한 factor는 CoT와 같은 reasoning process를 도입한 것
4. Evaluation
- RAFT의 성능을 여러 baseline과 비교 실험함
- Baseline
LLaMA2-7B-chat model (w/ 0-shot prompting)
: reference doc 없이 instruction을 통한 QALLaMA2-7B-chat model (w/ RAG)
: ref doc 있음 (나머진 1 세팅과 비슷)domain specific finetuning (DSF) (w/ 0-shot prompting)
: doc 없이 supervised finetuningdomain specific finetuning (DSF) (w/ RAG)
: RAG를 통해 뽑힌 doc과 함께 SFT (RAFT 세팅과 다르게 distractor 문서가 없음)
- Datasets
- Natural Questions (NQ), Trivia QA, HotpotQA (Wikipedia 기반) - general domain
- HuggingFace/Torch Hub/TensorFlow Hub (APIBench 데이터셋) - specific domain
- PubMed QA (bio관련 QA) - specific domain
4.1 Results
- RAFT가 모든 도메인 특화 데이터셋 (PubMed, HotpotQA, HuggingFace, Torch Hub, TensorFlow Hub)에서 baselines보다 훨씬 좋은 성능을 보임
- GPT-3.5와 비교해도 RAFT가 유의미한 성능 향상을 보임
- DSF만으로는 QA 스타일에 align되는 것에는 도움이 되지만 context에서 정보를 추출하는 데에는 한계가 있음
- RAFT는 QA 스타일 align과 document processing을 동시에 잘하도록 학습시킬 수 있음
4.2 Effect of CoT
- QA만 제공하는 것보다 reasoning chain을 함께 제공하는 것이 모델 성능 향상에 큰 도움이 됨
- Chain-of-thought를 활용하면 학습 안정성도 높일 수 있음
4.3 Qualitative Analysis
- DSF는 질문에 대한 답을 직접적으로 제공하지 못하고 엉뚱한 답변을 하는 경우가 있음
- RAFT는 주어진 context에서 정확한 답을 찾아낼 수 있음
- 이는 QA pair로만 학습하는 것보다 context를 함께 고려하며 학습하는 것이 중요함을 시사함
4.4 Should we train the LLM always with the oracle context for RAG?
- 실험을 통해 학습 데이터의 p%에만 oracle document를 포함시키고 (1-p)%에는 포함시키지 않는 것이 성능 향상에 도움이 된다는 것을 발견함
- 이는 oracle document만으로 학습하는 것보다 일부 학습 데이터에서는 oracle document 없이 학습하는 것이 모델의 RAG 성능을 높이는 데 도움이 된다는 것을 의미함
5. RAFT Generalizes to Top-K RAG
- Retriever가 제공하는 문서의 개수가 몇 개인지에 따라 RAFT의 robutness가 어떻게 달라지는지 실험함
- LLM은 irrelevant text에 취약하다고 알려져 있는데, 이는 LLM+RAG에서 특히 중요한 문제임 (top-k RAG가 높은 recall을 위해 자주 사용되기 때문)
- 이러한 문제를 다루기 위해 RAFT에서는 학습 시 distractor document를 함께 사용함
5.1 Making Model Robust to top-K RAG
- Oracle document와 함께 다양한 개수의 distractor document로 학습시키는 것이 모델이 test time에 다양한 개수의 문서가 주어졌을 때에도 robust하게 만드는 데 도움이 됨
- 실험 결과, oracle document만으로 학습시키는 것보다 distractor document와 함께 학습시키는 것이 더 좋은 성능을 보임
- RAFT에서는 일반적으로 1개의 oracle document와 4개의 distractor document로 학습시키는 것이 가장 좋은 밸런스를 보임
5.2 Generalization to a variable number of test-time documents
- 학습 시 사용한 distractor document의 개수에 따라 모델이 test time에 다양한 개수의 문서가 주어졌을 때 얼마나 잘 generalize되는지 실험함
- 실험 결과, 학습 시 distractor document를 사용하는 것이 test time에 다양한 개수의 문서가 주어졌을 때에도 일관된 성능을 보일 수 있도록 해줌
- 이는 실제 응용에서 마주칠 수 있는 다양한 상황에 대한 robustness를 높여줌
6. Conclusion
- RAFT는 특정 도메인에서 “open-book” 설정으로 질문에 답하는 모델의 성능을 향상시키기 위한 훈련 전략
- ⭐️ Distractor 문서와 함께 모델을 훈련시키고, 데이터셋의 일부가 oracle 문서 없이 구성되도록 하며
(1-p)%
, chain-of-thought 방식으로 관련 텍스트에서 직접 인용하여 답변을 생성하게 함 - domain specific QA task에서 작은 모델 fine-tuning을 잘 하면 LLM만큼 성능이 좋을 수도 있다
댓글남기기