RAFT: Adapting Language Model to Domain Specific RAG
RAFT: 도메인 특화 RAG에 대한 언어 모델 적용 논문 리뷰
일반적으로 LLM(대형 언어 모델)을 다양한 애플리케이션에 적용할 때,
도메인별 지식이나 독점(proprietary) 데이터에 대해
🔧 Fine Tuning(파인튜닝)
🔎 RAG(Retrieval Augmented Generation, 검색 증강 생성)
방식을 적용합니다.
논문은 "open-book" 인 도메인 설정에서 질문에 답변하는 능력을 향상시킬 수 있는 RAFT(Retrieval Augmented Fine Tuning)을 제안합니다.
* open-book : 모델이 문서를 참조하여 질문에 답할 수 있는 패러다임
- RAFT는 RAT(Retriever Awareness Training)를 기반으로 설계되었으며,
- RAFT는 주어진 질문에 대답하는 데 도움이 되지 않는 문서를 무시하도록 모델을 훈련하여 방해 요소를 제거하는 방식으로 작동합니다.
- RAFT의 chain-of-thought-style은 모델의 추론 능력을 향상시킵니다.
- RAFT 소스코드 및 데모
https://github.com/ShishirPatil/gorilla
* RAFT 논문과 블로그 포스팅을 읽고 전체적으로 정리합니다.
1. Introduction
- LLMs(Large Language Models, 대규모 언어 모델)이 방대한 공개 데이터로 훈련되어 다양한 일반 지식 추론 작업에서 상당한 발전을 이루었습니다.
- LLM은 특정한 분야에서 작업을 지원하기 위해 사용되고 있으며, 이러한 환경에서 주요 목표는 일반적인 지식 추론보다는 주어진 문서에 기반한 정확도를 극대화하는 것입니다.
- LLM 적응 방법론
- RAG 기반 학습
- LLM이 문서를 참조하여 질문에 답변할 수 있게 하지만,
- 고정된 도메인 설정과 테스트할 문서(test documents)에 대한 초기 접근으로 제공되는 학습 기회를 활용하지 못합니다. ( = 훈련 과정에서 모델이 해당 도메인에 더 깊이 적용하고(adapt), 학습 기회를 최대한 활용하는 것에 제한적일 수 있습니다.)
- Supervised Fine-Tuning 기반 학습
- 문서의 더 일반적인 패턴을 학습하고 최종 작업 및 사용자 선호도에 더 잘 맞추는 기회를 제공하지만,
- 시험 시간(test time)에 문서를 활용하지 못하거나 훈련 중 검색 과정의 불완전성을 고려하지 못합니다.
- RAG 기반 학습
- 도메인 특화 RAG에서 성능을 향상시키는 방법론인 RAFT(Retrieval Augmented Fine Tuning)에 대해 소개합니다.
2. LLMs for Open-Book Exam
- RAFT는 LLM이 테스트할 도메인(문서)을 알지 못하는 일반적인 RAG와 다릅니다.
- 이를 시험을 준비하는 상황을 가정하여, LLM 배포와 사용에 대해 비유합니다.
- Closed-Book Exam
- LLM이 추가적인 정보 소스 없이, 사전에 훈련된 지식만을 바탕으로 질문에 답변할 수 있습니다.
- 이 환경에서 LLM의 성능은 오직 모델이 훈련 중에 접했던 정보와 얼마나 효과적으로 그 정보를 학습했는지에 의존합니다.
- Open Book Exam
- LLM이 외부 문서나 데이터를 참조하여 질문에 답변할 수 있습니다.
- 이 환경에서 LLM은 특정 질문에 가장 관련성이 높은 정보를 검색하고, 해당 정보를 기반으로 답변을 구성합니다.
- Domain Specific Open-Book Exam
- LLM이 테스트될 도메인을 사전에 알고 있고, 특정 도메인 내 정보를 활용하여 질문에 답변할 수 있습니다.
- 이 환경에서 LLM은 문서 컬렉션 내에서 찾을 수 있는 질문에 대해 답변하고, 검색 기술 자체는 메커니즘에 거의 영향을 미치지 않습니다.
논문은 주로 Domain Specific Open-Book Exam과 사전 훈련된 LLM에 대해
특정 도메인에 적용하는 방법(검색된 문서와 방해 요소의 수가 다양할 때 모델을 더욱 robust하게 만드는 방법)
을 연구합니다.
3. RAFT
- RAFT를 사용하여 LLM의 성능을 향상시키는 과정과 그 메커니즘을 소개합니다.
- Train RAFT: LLM이 긍정적 문서(답변에 도움이 되는 문서)와 부정적 문서(답변에 도움이 되지 않는 문서)를 구분하며, 이를 통해 모델이 더 효과적으로 정보를 추출하고 학습할 수 있도록 합니다.
- Train Golden Only: RAFT는 모델이 긍정적 문서에서 필요한 정보를 추출하고, 부정적 문서를 무시하는 방법을 학습하도록 만듭니다.
- Test RAG Top-k: 테스트 단계에서 RAFT 방법을 사용하는 모델은 일반적인 RAG을 따릅니다. (모델이 주어진 상위 k개의 검색된 문서를 통해 질문에 답변합니다.)
- RAFT의 훈련 데이터
- 질문(Q)
- 문서 세트(Dk)
- 문서 중 하나(D*)에서 생성된 Chain-of-Thought(CoT) 스타일 답변(A*)
- Chain-of-Thought: 환각을 방지하기 위해 답변에서 ##begin_quote##와 ##end_quote##를 사용하여 context에서 직접 복사한 인용구의 시작과 끝을 나타냅니다.
- 데이터 예시 - Berkeley Blog 블로그 예시와 동일
Question: The Oberoi family is part of a hotel company that has a head office in what city?
context: [The Oberoi family is an Indian family that is famous for its involvement in hotels, namely through The Oberoi Group]...[It is located in city center of Jakarta, near Mega Kuningan, adjacent to the sister JW Marriott Hotel. It is operated by The Ritz-Carlton Hotel Company. The complex has two towers that comprises a hotel and the Airlangga Apartment respectively]...[The Oberoi Group is a hotel company with its head office in Delhi.]
Instruction: Given the question, context and answer above, provide a logical reasoning for that answer. Please use the format of: ##Reason: {reason} ##Answer: {answer}.
CoT Answer: ##Reason: The document ##begin_quote## The Oberoi family is an Indian family that is famous for its involvement in hotels, namely through The Oberoi Group. ##end_quote## establishes that the Oberoi family is involved in the Oberoi group, and the document ##begin_quote## The Oberoi Group is a hotel company with its head office in Delhi. ##end_quote## establishes the head office of The Oberoi Group. Therefore, the Oberoi family is part of a hotel company whose head office is in Delhi. ##Answer: Delhi
- 여기서 답변을 도출할 수 있는 'oracle' 문서(D*)와 답변과 관련 없는 정보를 포함한 'distractor' 문서(Di)를 구분해야 합니다.
- 훈련데이터의 일부는 oracle 문서를 포함하고, (P%의 데이터)
- 다른 일부는 oracle 문서를 제외하고 distractor 문서만 포함시킵니다. (1-P%의 데이터)
- P % of data: Q + D* + D1 + D2 + ... + Dk => A*
- 1-P % of data: Q + D1 + D2 + ... + Dk => A*
- 이러한 방식으로 언어 모델에 Supervised Fine-Tuning(SFT, 지도 파인튜닝) 기법을 사용하여, 제공된 문서와 질문으로부터 답변을 생성하도록 학습합니다.
4. 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를 참조할 수 있습니다.
5. Conclusion
- RAFT는 특정 도메인의 "open book" 환경에서 질문에 답변하는 모델의 성능을 향상시키기 위해 설계된 훈련 전략으로, 선택된 문서를 기반하여 질의응답 작업을 위한 LLM의 파인튜닝 방안을 제시합니다.
- 중요한 설계 결정
- distractor 문서와 함께 모델을 훈련
- 데이터셋의 context에서 oracle 문서가 일부 부족하도록 구성
- 관련 텍스트의 직접 인용을 통해 chain-of-thought으로 답변을 공식화 등
- 일반적인 RAG와 달리, RAFT는 LLM이 특정 도메인 지식을 사용하여 질문에 답변하는 실질적인 시나리오를 다룹니다.
- 더 작은 파인튜닝된 모델도 일반적인 LLM에 비해 domain-specific question-answering tasks에서도 잘 수행할 수 있다는 것을 시사합니다 .
'IT > 인공지능' 카테고리의 다른 글
[LLM] Quiet-STaR: Language Models Can Teach Themselves to Think Before Speaking 논문 리뷰 (0) | 2024.03.30 |
---|---|
[TTS] 외래어와 수사를 고려한 한국어 텍스트 발음 변환 (1) | 2024.03.24 |
[생성형AI][LLM] vLLM: LLM 추론 및 배포 최적화 라이브러리 (1) | 2024.03.12 |
[GPU] RAPIDS: 대규모 데이터 세트 분석을 위한 GPU 가속 프레임워크 (0) | 2024.02.27 |
[생성형AI][LLM] RAG 기반 기술문서 QA Gemma 모델 (Hugging Face) (0) | 2024.02.24 |