RAFT: Adapting Language Model to Domain Specific RAG
关键字:Retrieval-Augmented Fine Tuning (RAFT) 、Large Language Models (LLMs) 、Domain Specific RAG 、Distractor Documents 、Chain-of-Thought
摘要
预训练大型语言模型(LLMs)在大量文本数据上已成为标准范式。在使用这些LLMs进行许多下游应用时,通常会通过基于RAG的提示或微调,将新知识(例如,时效性新闻或私有领域知识)融入预训练模型中。然而,模型获取这些新知识的最优方法仍然是一个开放问题。本文提出了一种名为Retrieval Augmented Fine Tuning(RAFT)的训练方法,它提高了模型在"开卷"领域特定设置中回答问题的能力。RAFT通过训练模型忽略那些对回答问题没有帮助的文档(我们称之为干扰文档),来实现这一点。RAFT通过引用相关文档中正确的序列来回答这个问题。RAFT的链式思维风格响应有助于提高模型的推理能力。在特定领域的RAG中,RAFT在PubMed、HotpotQA和Gorilla数据集上持续提高了模型的性能,为提高预训练LLMs在领域特定RAG中的表现提供了一种后训练方法。
核心方法
- Retrieval Augmented Fine Tuning (RAFT):RAFT是一种训练方法,旨在通过微调来适应特定领域的开卷考试设置,即领域特定的RAG。
- 区分文档类型:在训练数据中,区分"oracle"文档(包含问题答案的文档)和"distractor"文档(不包含答案相关信息的文档)。
- 链式思维风格答案:RAFT训练模型生成包含链式思维的答案,这些答案引用了上下文中的原始文档,并详细解释了如何基于引用得出结论。
- 处理干扰文档:在训练过程中,模型被训练以在存在干扰文档的情况下回答问题,这有助于提高模型在测试时对检索结果的鲁棒性。
实验说明
实验使用了多个数据集来评估RAFT模型的性能,包括PubMed QA、HotpotQA和Gorilla API Bench。实验结果显示,RAFT在所有专业领域中都显著提高了性能,尤其是在处理领域特定RAG任务时。实验还包括了对RAFT模型在不同数量的测试文档下的性能进行评估,以测试模型对检索结果中干扰文档的鲁棒性。
数据集 | GPT-3.5 + RAG | LLaMA2-7B | LLaMA2-7B + RAG | DSF | DSF + RAG | RAFT (LLaMA2-7B) |
---|---|---|---|---|---|---|
PubMed | 71.60 | 56.5 | 58.8 | 59.7 | 71.6 | 73.30 |
HotpotQA | 41.5 | 0.54 | 0.03 | 6.38 | 4.41 | 35.28 |
HuggingFace | 29.08 | 0.22 | 26.43 | 61.06 | 42.59 | 74.00 |
Torch Hub | 60.21 | 0 | 8.60 | 84.94 | 82.80 | 84.95 |
TensorFlow Hub | 65.59 | 0 | 43.06 | 86.56 | 60.29 | 86.86 |
结论
RAFT是一种旨在提高模型在特定领域内回答问题性能的训练策略。这种技术展示了一种针对基于选定文档集合的领域特定问题回答任务的LLMs微调配方。我们确定了一些关键设计决策,例如与干扰文档一起训练模型、组织数据集以便部分数据缺乏上下文中的oracle文档,以及以链式思维方式制定答案并直接引用相关文本。我们在PubMed、HotpotQA和Gorilla API Bench上的评估强调了RAFT的显著潜力。展望未来,我们预计领域特定的检索增强生成(RAG)将继续在工业和学术领域内获得关注。与一般RAG不同,我们的工作解决了LLMs被赋予使用领域特定知识回答问题的实际场景。与当前趋势一致,我们的发现表明,较小的微调模型能够在领域特定问题回答任务中表现得与它们的通用LLM对应物一样好。