RAFT:引领 Llama 在 RAG 中发展

2024-05-09 08:44
文章标签 引领 发展 llama raft rag

本文主要是介绍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 中发展的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/972928

相关文章

从戴尔公司中国大饭店DTF大会,看科技外企如何在中国市场发展

【科技明说 | 科技热点关注】 2024戴尔科技峰会在8月如期举行,虽然因事未能抵达现场参加,我只是观看了网上在线直播,也未能采访到DTF现场重要与会者,但是通过数十年对戴尔的跟踪与观察,我觉得2024戴尔科技峰会给业界传递了6大重要信号。不妨简单聊聊:从戴尔公司中国大饭店DTF大会,看科技外企如何在中国市场发展? 1)退出中国的谣言不攻自破。 之前有不良媒体宣扬戴尔将退出中国的谣言,随着2

国产游戏行业的崛起与挑战:技术创新引领未来

国产游戏行业的崛起与挑战:技术创新引领未来 近年来,国产游戏行业蓬勃发展,技术水平不断提升,许多优秀作品在国际市场上崭露头角。从画面渲染到物理引擎,从AI技术到服务器架构,国产游戏已实现质的飞跃。然而,面对全球游戏市场的激烈竞争,国产游戏技术仍然面临诸多挑战。本文将探讨这些挑战,并展望未来的机遇,深入分析IT技术的创新将如何推动行业发展。 国产游戏技术现状 国产游戏在画面渲染、物理引擎、AI

【IT】软件行业发展的前瞻性和希望的广度

我说一下我对程序应用的一个看法就是 我其实个人不太建议自动驾驶技术的发展因为这个东西它说到底还是什么那么一点安全隐患 ,虽然我们平常考虑用同时实行各种各样的高级的自动作用, 但是自动驾驶可能是个特例,其实我个人觉得程序可以在以下方面发展 1.医学(包括诊断 治疗 手术等)因为现在也有很多的疾病是医学还没有能力去解决的 ,2.国防 有的时候因为国家安全真的非常重要的,因为我们每个人

Python安装llama库出错“metadata-generation-failed”

Python安装llama库出错“metadata-generation-failed” 1. 安装llama库时出错2. 定位问题1. 去官网下载llama包 2.修改配置文件2.1 解压文件2.2 修改配置文件 3. 本地安装文件 1. 安装llama库时出错 2. 定位问题 根据查到的资料,发现时llama包中的execfile函数已经被下线了,需要我们手动修改代码后

系统架构的发展历程之模块化与组件化

模块化开发方法 模块化开发方法是指把一个待开发的软件分解成若干个小的而且简单的部分,采用对复杂事物分而治之的经典原则。模块化开发方法涉及的主要问题是模块设计的规则,即系统如何分解成模块。而每一模块都可独立开发与测试,最后再组装成一个完整软件。对一个规约进行分解,以得到模块系统结构的方法有数据结构设计法、功能分解法、数据流设计和面向对象的设计等。将系统分解成模块时,应该遵循以下规则: (1)最高模

Llama 3.1大模型的预训练和后训练范式解析

Meta的Llama大型语言模型每次出新版本,都会是一大事件。前段时间他们不仅发布了3.1的一个超大型的405亿参数模型,还对之前的8亿和70亿参数的模型做了升级,让它们在MMLU测试中的表现更好了。 不同模型在MMLU基准测试中的表现 他们还出了一个92页的技术报告《Llama 3 Herd of Models》(https://arxiv.org/abs/2407.21783),里

llama.cpp demo

git clone https://github.com/ggerganov/llama.cppcd llama.cpp 修改Makefile使能mfma参数     MK_CFLAGS   += -mfma -mf16c -mavx     MK_CXXFLAGS += -mfma -mf16c -mavx 安装python3依赖 cat ./requirements/requirem

2024 年,数据中台引领企业走向何方?

2024 年,数据中台引领企业走向何方? 前言数据中台引领企业走向何方 前言 在当今数字化时代,数据已成为企业发展的核心资产。随着企业业务的不断扩展和数据量的急剧增长,如何有效地管理和利用数据,成为企业面临的重要挑战。数据中台作为一种新兴的技术解决方案,应运而生,为企业提供了数据整合、管理和分析的一体化平台,帮助企业实现数据驱动的决策和业务创新。 深入探讨了数据中台的概念、功能

我的第2个AI项目-RAG with Gemma hosted on HuggingFace and Weaviate in DSPy

目录 项目简介概述时间kaggle地址主要工作和收获技术栈数据集模型表现 未来项目说明思路和原则为什么不把现在的项目做深一点?博客风格转变 bug修复版本兼容问题 项目简介 概述 本项目简要介绍了如何使用 DSPy 构建一个简单的 RAG 管道,且利用了托管在 Hugging Face 上的 Gemma LLM模型 和 Weaviate 向量数据库。 时间 2024.09

《中国全屋智能行业发展现状与投资前景研究分析报告》

报告导读:本报告从国际全屋智能发展、国内全屋智能政策环境及发展、研发动态、供需情况、重点生产企业、存在的问题及对策等多方面多角度阐述了全屋智能市场的发展,并在此基础上对全屋智能的发展前景做出了科学的预测,最后对全屋智能投资潜力进行了分析。  订购链接:https://www.yxresearch.com/ 第一章全屋智能行业概念界定及发展环境剖析 第一节全屋智能行业相关概念界定 一、智能家