本文主要是介绍RAFT:引领 Llama 在 RAG 中发展,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/
引言
经过广泛训练的预训练模型(如 Meta Llama 2)可以对各种问题生成有用的回答。然而,许多应用场景要求模型针对特定领域进行专业化,并在生成回答时利用领域特定的信息。
目前有两种方法可以实现:
1. 领域特定的监督微调(DSF):
在一组代表领域知识的文档上对现有基础模型进行训练。
2. 检索增强生成(RAG):
将这些文档存储在向量数据库中,在查询时检索与问题语义相似的文档,并将其内容作为 LLM 生成回答的上下文。
本文将探讨这两种方法的局限性,并介绍加州大学伯克利分校的研究人员 Tianjun Zhang 和 Shishir G. Patil 提出的一种更优方法。他们提出的 RAFT 方法(Retrieval Augmented Fine Tuning,检索增强微调)在论文中详细阐述,展示了如何使用 Meta Llama 2 和 Azure AI Studio 上的 MaaS 进行研究和实施。
伯克利团队还发表了一篇博客文章,详细解释了前述方法的优缺点,以及 RAFT 方法如何实现更高效的结果。其 RAFT 实现已在 GitHub 仓库公开。
了解 RAFT 方法
在传统 RAG 中,当模型接到查询时,它会从索引中检索可能包含答案的文档,并使用这些文档的内容作为生成回答的上下文。
在微调的情况下,模型回答问题类似于学生在闭卷考试中作答;而 RAG 则类似于学生参加开卷考试,有完整的教科书可供查阅。开卷考试比闭卷考试更容易,因此 RAG 的效率和普及度较高。
然而,这两种方法都有其局限性。微调让模型只限于它所接受的训练内容,并且容易出现偏差和幻觉。RAG 将模型的回答与语料库中的参考文档相结合,但这些参考文档是根据查询的语义相似性检索的,模型并不知道哪些文档真正相关,哪些只是干扰项。这些“干扰”文档可能会被纳入模型的上下文,即使它们无法提供准确答案的参考。
Tianjun 和 Shishir 希望改进 RAG 的不足之处。他们假设,提前学习教科书的学生在开卷考试中比只在考试期间翻阅教科书的学生表现更好。对于 LLM 来说,如果模型能够提前“学习”文档内容,RAG 的表现是否会有所提高?他们的 RAFT 方法旨在使模型在 RAG 设置之前先适应特定领域。
他们使用 Meta Llama 2 7B 语言模型,首先准备一个合成数据集,其中每个样本包含:
- - 一道问题
- - 一组参考文档,包括包含相关信息的文档和不包含任何相关信息的文档(可忽略)
- - 从文档中生成的答案
- - 包含相关文档摘录的 Chain-of-Thought(CoT)解释
该数据集用于使用标准监督训练对 Meta Llama 2 7B 进行微调,使模型更好地适应领域,不仅能够将语气和风格与领域数据集保持一致,还能更好地从检索的上下文中提取有用信息。Chain-of-Thought 推理的加入防止了过拟合,提高了训练的稳健性。
RAFT 处于 RAG 和 DSF 之间。它既让 LLM 适应领域知识和风格(类似 DSF),又提高了生成答案的质量。由于像 Meta Llama 2 这样的预训练模型在多样化领域进行了训练,RAFT 可以使它们更适合医疗保健或法律数据集等小众领域。
与 RAFT 研究人员的问答
我们有幸采访了伯克利团队,了解他们在 RAFT 中使用 Meta Llama 2 的经验。
为什么选择 Meta Llama 2 7B?
**RAFT 研究人员:**我们选择 Meta Llama 2 7B 是因为我们专注于 RAG 任务,该任务需要模型具备推理、理解语言、低延迟推理的能力,并能够轻松适应多种环境。Meta Llama 2 7B 很适合许多通用知识问答任务,具备良好的数学技能,并且能够处理 4096 令牌的上下文长度。它也是一个适合在四个 A100-40G GPU 上训练、单个 GPU 上服务的完美模型。在性能和部署难度的帕累托曲线上,Meta Llama 2 模型在性能、易用性和许可方面都非常适合 RAFT 任务。在微软 AI Studio 的帮助下,我们也很高兴探索 Meta Llama 2 13B 或 Meta 70B。
**对于尝试微调 Meta Llama 的人,有什么建议?在微调 LLM 过程中有哪些最佳实践?**
**RAFT 研究人员:**微调 Meta Llama 通常是一项复杂的任务,包括数据收集、数据清理和实际微调。在数据方面,我们建议针对您的领域收集各种问题,并构建 Chain-of-Thought(CoT)答案(详见我们的 RAFT 论文)。我们还建议存储中间检查点,这有助于提前停止微调。设定比预训练时低一个数量级的微调学习率也很关键。此外,通常的最佳实践如 16 位精度、不超过 3 轮训练以及使用大批量大小也都值得推荐。
**微调是否应针对每个领域?或者微调后的模型是否在多个领域的 RAG 中表现更好?**
**RAFT 研究人员:**微调模型的性能取决于领域(它所训练的文档),但在一定程度上可以在行为上跨领域泛化。准确性与泛化之间存在一定的权衡。通常针对某一领域进行微调是个好做法,但针对有限的企业文档进行微调可能会带来更好的表现,因为其知识范围更狭窄。
**总结**
RAFT 方法在语言模型微调领域取得了重大进展,不仅提高了生成答案的质量,还增强了模型从检索上下文中提取有用信息的能力。因此,它在许多领域的未来应用中具有巨大潜力。
在这项研究中使用 Meta Llama 2 7B 语言模型展示了其在处理多样任务时的多功能性和适应性。团队的经验和建议为那些希望微调 Meta Llama 或类似模型的研究者提供了宝贵的见解。
Azure AI Studio 进一步让最先进的生成式 AI 功能更容易获取。该平台简化了微调、测试和部署流程,使开发人员和企业无需深入的机器学习知识即可创建创新且定制化的解决方案。
**了解更多 RAFT 和 Meta Llama 在 Azure 模型即服务(MaaS)上的信息**
- - 关于 Meta Llama 的更多信息:[Llama.meta.com](https://llama.meta.com)
- - Azure AI Studio 上的 Llama-2-7b-chat : Azure AI Studio
- - 在 Azure 上微调 Meta Llama 2:在 Azure AI Studio: Fine-tune a Llama 2 model in Azure AI Studio - Azure AI Studio | Microsoft Learn 中微调 Llama 2 模型或访问他们的技术博客
这篇关于RAFT:引领 Llama 在 RAG 中发展的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!