RAFT: Adapting Language Model to Domain Specific RAG

RAFT: Adapting Language Model to Domain Specific RAG

相关链接:arXiv GitHub

关键字:Retrieval-Augmented Fine Tuning (RAFT)Large Language Models (LLMs)Domain Specific RAGDistractor DocumentsChain-of-Thought

摘要

预训练大型语言模型(LLMs)在大量文本数据上已成为标准范式。在使用这些LLMs进行许多下游应用时,通常会通过基于RAG的提示或微调,将新知识(例如,时效性新闻或私有领域知识)融入预训练模型中。然而,模型获取这些新知识的最优方法仍然是一个开放问题。本文提出了一种名为Retrieval Augmented Fine Tuning(RAFT)的训练方法,它提高了模型在"开卷"领域特定设置中回答问题的能力。RAFT通过训练模型忽略那些对回答问题没有帮助的文档(我们称之为干扰文档),来实现这一点。RAFT通过引用相关文档中正确的序列来回答这个问题。RAFT的链式思维风格响应有助于提高模型的推理能力。在特定领域的RAG中,RAFT在PubMed、HotpotQA和Gorilla数据集上持续提高了模型的性能,为提高预训练LLMs在领域特定RAG中的表现提供了一种后训练方法。

核心方法

  1. Retrieval Augmented Fine Tuning (RAFT):RAFT是一种训练方法,旨在通过微调来适应特定领域的开卷考试设置,即领域特定的RAG。
  2. 区分文档类型:在训练数据中,区分"oracle"文档(包含问题答案的文档)和"distractor"文档(不包含答案相关信息的文档)。
  3. 链式思维风格答案:RAFT训练模型生成包含链式思维的答案,这些答案引用了上下文中的原始文档,并详细解释了如何基于引用得出结论。
  4. 处理干扰文档:在训练过程中,模型被训练以在存在干扰文档的情况下回答问题,这有助于提高模型在测试时对检索结果的鲁棒性。

实验说明

实验使用了多个数据集来评估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对应物一样好。

相关推荐
ATM00634 分钟前
人机协作系列(四)AI编程的下一个范式革命——看Factory AI如何重构软件工程?
人工智能·大模型·agent·人机协作·人机协同
读创商闻1 小时前
极狐GitLab CEO 柳钢——极狐 GitLab 打造中国企业专属 AI 编程平台,引领编程新潮流
人工智能·gitlab
kailp1 小时前
语言模型玩转3D生成:LLaMA-Mesh开源项目
人工智能·3d·ai·语言模型·llama·gpu算力
marteker1 小时前
弗兰肯斯坦式的人工智能与GTM策略的崩溃
人工智能·搜索引擎
无心水2 小时前
大语言模型零样本情感分析实战:无需机器学习训练,96%准确率实现指南
人工智能·机器学习·语言模型
来自于狂人2 小时前
AI大模型训练的云原生实践:如何用Kubernetes指挥千卡集群?
人工智能·云原生·kubernetes
橡晟7 小时前
深度学习入门:让神经网络变得“深不可测“⚡(二)
人工智能·python·深度学习·机器学习·计算机视觉
墨尘游子7 小时前
神经网络的层与块
人工智能·python·深度学习·机器学习
Leah01057 小时前
什么是神经网络,常用的神经网络,如何训练一个神经网络
人工智能·深度学习·神经网络·ai
PyAIExplorer8 小时前
图像亮度调整的简单实现
人工智能·计算机视觉