https://arxiv.org/abs/2403.10131
RAFT: Adapting Language Model to Domain Specific RAG
Pretraining Large Language Models (LLMs) on large corpora of textual data is now a standard paradigm. When using these LLMs for many downstream applications, it is common to additionally bake in new knowledge (e.g., time-critical news, or private domain kn
arxiv.org
Abstract
- 특정 도메인에서 LLM을 사용할 때 새로운 지식을 RAG-Based-Prompting 이나 fine-tuning을 통해 추가하는 것이 일반적임
- RAFT(Retrieval Augmented Fine Tuning)는 특정 도메인 RAG에 대해 언어 모델의 성능을 향상시키기 위한 훈련 기법
- RAFT는 질문에 대답하는데 도움이 되지 않는 문서(Dustractor documents)를 무시하도록 모델을 훈련시킴
- RAFT는 관련 문서에서 질문에 대답하는데 도움이 되는 올바른 시퀀스를 인용하고, chain-of-thought 스타일 응답을 통해 모델의 추론 능력을 향상시킴
- RAFT는 PubMed, HotpotQ, Gorilla데이터 셋에서 지속적으로 성능을 향상시킴
→ test domain을 알고 있다면, 모델을 도메인에 특화하여 retriever가 가져온 문서를 스스로 필터링 하도록 훈련할 수 있다.
Introduction
- how to adpt pre-trained LLMs for Retrieval Augmented Generation (RAG) in specialized domains?
- 이 논문에서는 특정 도메인에서 "Open-book" 설정으로 질문에 답하는 모델의 능력을 향상시키는 RAFT(RAG+SFT)를 제안함
- RAFT는 fine-tuning을 통해 특정 domain의 답변을 잘하게 할 뿐만 아니라 Retrueval이 잘못 뽑혔을 때, robustness하게 답변하도록 학습(retrieval된 output들 중 도움이 되지 않는 distractor 문서를 무시하도록 훈련함)
- LLM 적응 방법론
- RAG 기반 학습
- LLM이 문서를 참조하여 질문에 답변할 수 있게 하지만,
- 고정된 도메인 설정과 테스트할 문서(test documents)에 대한 초기 접근으로 제공되는 학습기회를 활용하지 못한다.
- -> 훈련과정에서 모델이 해당 도메인에 더 깊이 적용하고(adpat), 학습 기회를 최대한 활용하는 것에 제한적
- Supervised Fine-Tuning 기반 학습
- 문서의 더 일반적인 패턴을 학습하고, 최종 작업 및 사용자 선호도에 더 잘 맞추는 기회를 제공하지만,
- 시험 시간(test time)에 문서를 활용하지 못하거나 훈련 중 검색 과정의 불완전성을 고려하지 못함
- RAG 기반 학습
LLMs for Open-Book Exam
- Closed-Book Exam
- LLM이 추가적인 정보 소스 없이, 사전에 훈련된 지식만을 바탕으로 질문에 답변할 수 있다.
- 이 환경에서 LLM의 성능은 오직 모델이 훈련 중에 접했던 정보와 얼마나 효과적으로 그 정보를 학습했는지에 의존
- Open Book Exam에
- LLM이 외부 문서나 데이터를 참조하여 질문에 답변할 수 있다.
- 이 환경에서 LLM은 특정 질문에 가장 관련성이 높은 정보를 검색하고, 해당 정보를 기반으로 답변을 구성
- Domain Specific Open-Book Exam
- LLM이 테스트될 도메인을 사전에 알고 있고, 특정 도메인 내 정보를 활용하여 질문에 답변할 수 있다.
- 이 환경에서 LLM은 문서 컬렉션 내에서 찾을 수 있는 질문에 대해 답변하고, 검색 기술 자체는 매커니즘에 거의 영향을 미치지 않음
→ 논문은 주로 Domain Specific Open-Book Exam과 사전 훈련된 LLM에 대해
특정 도메인에 적용하는 방법(검색된 문서와 방해 요소의 수가 다양할 때 모델을 더욱 Robust하게 만드는 방법)을 연구함
RAFT
- Supervised Fine-tuning(SFT)는 Dataset(D)에서 유도된 Question(Q)과 Answer(A)쌍을 통해 모델을 훈련시킴
- classical SFT에서 모델은 pre-training Phase 에서 학습한 Knowlegde의 Q에 대답하는 능력을 향상시키도록 학습
- inference시에 RAG를 활용하여 학습된 지식에 대해 더 대답을 잘 하도록 하기도 함
- RAFT에서는 모델이 RAG된 결과를 잘 활용하도록 Fine-tuning data를 준비
- Question(Q), documnets(D_k), Chain-of-thought 스타일 answer(A*)
- Chain-of-Tought(CoT): 환각을 방지하기 위해 답변에서 ##begin_quote##와 ##end_quote##를 사용하여 context에서 직접 복사한 인용구의 시작과 끝을 나타냄
- 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*
- 이러한 방식으로 언어 모델에 supervised Fine-Tuning(SFT, 지도 파인튜낭) 기법을 사용하여, 제공된 문서와 질문으로부터 답변을 생성하도록 학습
- Question(Q), documnets(D_k), Chain-of-thought 스타일 answer(A*)
Evaluation
- 데이터셋
- Natural Questions (NQ), Trivia QA, Hotpot QA: Wikipedia 기반의 오픈 도메인 질문, 일반 지식(예: 영화, 스포츠 등)
- HuggingFace, Torch Hub, TensorFlow Hub: Gorilla 논문에서 제안된 APIBench에 포함된 데이터셋, 문서 기반으로 정확하고 기능적인 API 호출을 생성하는 방법
- PubMed QA: 생물의학 연구 질문 응답(의료 및 생물학)
- 모델
- LlaMA2-7B-chat 모델 with 0-shot prompting: QA 작업에 사용되는 지시문이 포함된 모델로, 참조 문서 없이 명확하게 작성된 지시사항을 사용합니다.
- LlaMA2-7B-chat 모델 with RAG (Llama2 + RAG): 도메인 특화 QA 작업에서 사용되는 참조 context를 추가된 모델입니다.
- Domain-Specific Finetuning with 0-shot prompting (DSF): context 없이 표준 지시문 파인튜닝을 수행합니다.
- Domain-Specific Finetuning with RAG (DSF + RAG): domain-specific finetuned 모델에 RAG를 사용하여 외부 지식을 통합하기 때문에 모델이 알지 못하는 "지식"에 대해서도 context를 참조할 수 있습니다.
Results
- RAFT가 모든 도메인 특화 데이터셋 (PubMed, HotpotQA, HuggingFace, Torch Hub, TensorFlow Hub)에서 baseline보다 훨씬 좋은 성능을 보임
- GPT-3.5와 비교해도 RAFT가 유의미한 성능 향상을 보임
- DSF만으로는 QA스타일에 align되는 것에는 도움이 되지만 context에서 정보를 추출하는데에는 한계가 있음
- RAFT는 QA 스타일 Align과 document processing을 동시에 잘하도록 학습시킬 수 있음
Effect of CoT
- QA만 제공하는 것보다 reasoning chain을 함께 제공하는 것이 모델 성능 향상에 큰 도움이 됨
- Chain-of-thought를 활용하면 학습 안정성도 높일 수 있음
Qualitative Analysis
- DSF는 질문에 대한 답을 직접적으로 제공하지 못하고 엉뚱한 답변을 하는 경우가 있음
- RAFT는 주어진 context에서 정확한 답을 찾아낼 수 있음
- 이는 QA pair로만 학습하는것보다 context를 함께고려하며 학습하는것이 중요함을 시사함
Should we train the LLM always with the oracle context for RAG?
- 실험을 통해 학습 데이터의 p%에만 oracle document 를 포함시키고 (1-p)%에는 포함시키지 않는 것이 성능 향상에 도움이 된다는 것을 발견함
- 이는 oracle document만으로 학습하는 것보다 일부 학습 데이터에서는 oracle document없이 학습하는 것이 모델의 RAG성능을 높이는데 도움이 된다는 것을 의미함
RAFT Generalizes to Top-K RAG
- Retriever가 제공하는 문서의 개수가 몇 개인지에 따라 RAFT의 robutness가 어떻게 달라지는지 실험함
- LLM은 irrelevant text가 취약하다고 알려져 있는데, 이는 LLM + RAG에서 특히 중요한 문제임 (top-k RAG가 높은 recall을 위해 자주 사용되기 떄문)
- 이러한 문제를 다루기 위해 RAFT에서는 학습 시 distractor document를 함께 사용함
Making Model Robust to top-K RAG
- Oracle documnet 와 함께 다양한 개수의 distractor document로 학습 시키는 것이 모델이 test time에 다양한 개수의 문서가 주어졌을 때에도 robust하게 만드는데 도움이 됨
- 실험 결과, Oracle document만으로 학습시키는 것보다 distractor document와 함께 학습시키는 것이 더 좋은 성능을 보임
- RAFT에서는 일반적으로 1개의 oracle document와 4개의 distractor document로 학습시키는 것이 가장 좋은 벨런스를 보임
Generalization to a variable number of test-time documents
- 학습 시 사용한 distractor document 의 개수에 따라 모델이 test time에 다양한 개수의 문서가 주어졌을 때 얼마나 잘 generalize되는지 실험함
- 실험 결과, 학습 시 distractor document를 사용하는 것이 test time에 다양한 개수의 문서가 주어졌을 때에도 일관된 성능을 보일 수 있도록 해줌
- 이는 실제 응용에서 마주칠 수 있는 다양한 상황에 대한 robustness를 높여줌
Conclusion
- RAFT는 특정 도메인에서 "open-book" 설정으로 질문에 답하는 모델의 성능을 향상시키기 위한 훈련 전략으로, 선택된 문서를 기반으로 하여 질의응답 작업을 위한 LLM의 파인튜닝 방안을 제시
- 중요한 설계 설정
- distractor 문서와 함께 모델을 훈련
- 데이터셋의 context에서 oracle문서가 일부 부족하도록 구성
- 관련 텍스트의 직접 인용을 통해 chain-of-thought으로 답변을 공식화 등
- 일반적인 RAG와 달리, RAFT는 LLM이 특정 도메인 지식을 사용하여 질문에 답변하는 실질적인 시나리오를 다룸
- 더 작은 파인튜닝된 모델도 일반적인 LLM에 비해 domain-specific question-answering tasks에서도 잘 수행할 수 있다는 것을 시사
도메인별 특수한 경우에 활용하면 좋을 것으로 보임
실제로 아래의 코드를 적용해보며 실험하면서 적용가능한지 확인 해볼 필요가 있어보임.
https://github.com/ShishirPatil/gorilla
GitHub - ShishirPatil/gorilla: Gorilla: Training and Evaluating LLMs for Function Calls (Tool Calls)
Gorilla: Training and Evaluating LLMs for Function Calls (Tool Calls) - ShishirPatil/gorilla
github.com
참고 :
https://gorilla.cs.berkeley.edu/blogs/9_raft.html
https://happy-jihye.github.io/nlp/nlp-25/
'Paper Review' 카테고리의 다른 글
[paperReview]:LoRA: Low-rank adaptation of large language models (0) | 2024.11.18 |
---|---|
[PaperReview]FinGPT: Open-Source Financial Large Languge Models(2023) (8) | 2024.11.13 |
what is Review paper? (3) | 2024.11.06 |
Surrvey paper (0) | 2024.11.05 |