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 模型或访问他们的技术博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/605614.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java面试八股文(MySQL篇)

数据库三范式 数据库事务介绍 索引介绍 SQL优化手段 mysql union 与 union all 语法及用法 并发事务带来的问题 大表如何优化 索引类型介绍 MYSQL数据库锁介绍

代码审计-PHP模型开发篇MVC层动态调试未授权脆弱鉴权未引用错误逻辑

知识点 1、PHP审计-动态调试-未授权安全 2、PHP审计-文件对比-未授权安全 3、PHP审计-未授权访问-三种形态动态调试优点 1、实时跟踪代码执行流程 2、实时获取变量接受数据 3、实时分析指定文件动态 环境配置:https://blog.csdn.net/m0_60571842/article/details/…

您可以使用WordPress创建的19种网站类型

当人们决定为什么他们应该使用WordPress时,我们经常会被问到“WordPress可以做[空白]吗?答案大多是肯定的。在本文中,我们将向您展示您可以使用WordPress创建的19种不同类型的网站,而无需学习任何编程技巧。 目录 隐藏 1 开始使用…

JS-拖拽元素放大缩小

效果左右布局&#xff0c;拖拽后&#xff0c;宽度放大缩小 其实自己写也可以&#xff0c;不过还是发现了两个好用的js库&#xff0c;既然不需要自己写&#xff0c;当然是能偷懒就偷懒 1、resizerjs 官网地址&#xff1a;https://github.com/eknowles/resizerjs <!doctype …

Milvus Cloud 的RAG 的广泛应用及其独特优势

一个典型的 RAG 框架可以分为检索器(Retriever)和生成器(Generator)两块,检索过程包括为数据(如 Documents)做切分、嵌入向量(Embedding)、并构建索引(Chunks Vectors),再通过向量检索以召回相关结果,而生成过程则是利用基于检索结果(Context)增强的 Prompt 来激…

C语言22行代码,让你的朋友以为中了病毒

1 **C语言介绍 ** C语言是一种计算机编程语言&#xff0c;由丹尼斯里奇&#xff08;Dennis Ritchie&#xff09;在1972年左右为UNIX操作系统设计并开发。它具有高效、可移植、灵活和强大的特点&#xff0c;在计算机科学领域中具有广泛的应用。C语言是一种结构化语言&#xff0…

【原创】不同RTOS中POSIX接口的实现差异

文章目录 前言POSIX简介RTOS对POSIX的实现情况ZephyrFreeRTOS RTOS提供的POSIX接口实时吗&#xff1f;nanosleepTimer-不同linux版本和xenomai的实现差异PREEMPT-RT Timer实现原理Xenomai Timer实现原理 总结参考 前言 在开发实时应用时&#xff0c;我们希望软件具备良好的跨平…

用于密集预测任务的通道知识蒸馏——关键字:蒸馏

摘要 https://arxiv.org/pdf/2011.13256 知识蒸馏(KD)已被证明是训练紧凑密集预测模型的简单有效工具。通过从大型教师网络转移而来的额外监督来训练轻量级学生网络。大多数先前的针对密集预测任务的KD变体都在空间域中对学生网络和教师网络的激活图进行对齐,通常是通过在每…

实验9:WLAN配置管理(课内实验)

实验9&#xff1a;WLAN配置管理 实验目的及要求&#xff1a; 掌握无线局域网络无线路由器和无线网络控制器的配置与应用。能够完成配置SSID隐藏、密码认证&#xff0c;远程站点WLAN配置和WLC配置等无线网络配置&#xff0c;完成网络连通性测试。 实验设备&#xff1a; 无线…

吴恩达2022机器学习专项课程C2(高级学习算法)W1(神经网络):2.5 更复杂的神经网络

目录 示例填写第三层的层数1.问题2.答案 公式&#xff1a;计算任意层的激活值激活函数 示例 层数有4层&#xff0c;不包括输入层。 填写第三层的层数 1.问题 你能把第二个神经元的上标和下标填写出来吗&#xff1f; 2.答案 根据公式g(wxb)&#xff0c;这里的x对应的是上…

C# IO下的文件和目录详解

文章目录 1、文件和目录的基本概念2、文件的操作方法打开文件&#xff1a;读取文件&#xff1a;写入文件&#xff1a;删除文件&#xff1a;文件权限 3、目录的操作方法创建目录&#xff1a;遍历目录&#xff1a;删除目录目录权限 4、文件和目录的属性与信息5、文件和目录的相对…

钟表——蓝桥杯十三届2022国赛大学B组真题

问题分析 这个问题的关键有两点&#xff1a;1.怎么计算时针&#xff0c;分针&#xff0c;秒针之间的夹角&#xff0c;2.时针&#xff0c;分针&#xff0c;秒针都是匀速运动的&#xff0c;并非跳跃性的。问题1很好解决看下面的代码就能明白&#xff0c;我们先考虑问题2&#xf…

数字图像处理知识点

数字图像处理知识点 一、绪论1、数字图像处理相关概念2、数字图像处理流程1.3 数字图像处理主要研究内容二、视觉与色度基础1、图像传感器与二维成像原理2、三基色2.1 三基色原理2.2 亮度方程3、HSI模型3.1 HSI模型优点3.2 RGB到HSI转换三、数字图像处理基础1、图像的数字化及表…

unreal engine5.3.2 Quixel bridge无法登陆

UE5系列文章目录 文章目录 UE5系列文章目录前言一、问题定位二、解决方法 前言 这几天unreal engine5.3.2 Quixel bridge无法登陆&#xff0c;输入epic 账号和密码&#xff0c;然后在输入epic发送的验证码&#xff0c;总是提示登录失败。就算是使用科学上网依然无法登录。而且…

linux Shell编程之条件语句

条件测试操作 test命令 条件测试操作 Shell环境根据命令执行后的返回状态值&#xff08;$?&#xff09;来判断是否执行成功&#xff0c;当返回值为0&#xff08;真true&#xff09;时表示成功&#xff0c;返回值为非0值&#xff08;假false&#xff09;时表示失败或异常。 t…

Python深度学习基于Tensorflow(5)机器学习基础

文章目录 监督学习线性回归逻辑回归决策树支持向量机朴素贝叶斯 集成学习BaggingBoosting 无监督学习主成分分析KMeans聚类 缺失值和分类数据处理处理缺失数据分类数据转化为OneHot编码 葡萄酒数据集示例 机器学习的流程如下所示&#xff1a; 具体又可以分为以下五个步骤&#…

转转小程序数据处理

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872&#xff0c;x30184483x…

[Cmake Qt]找不到文件ui_xx.h的问题?有关Qt工程的问题,看这篇文章就行了。

前言 最近在开发一个组件&#xff0c;但是这个东西是以dll的形式发布的界面库&#xff0c;所以在开发的时候就需要上层调用。 如果你是很懂CMake的话&#xff0c;ui_xx.h的文件目录在 ${CMAKE_CURRENT_BINARY_DIR} 下 然后除了有关这个ui_xx.h&#xff0c;还有一些别的可以简…

数据分析概念定义和发展前景

数据分析概念定义和发展前景 前言一、数据分析概念二、数据的定义数据的定义数据的分类定性数据定量数据 三、数据的价值数据为什么具有价值 四、数据分析的目的对于企业来说总结 五、数据分析类型的划分描述性统计分析探索性数据分析传统的统计分析方法验证性数据分析 六、 数…

springboot本地文件同步到nacos 本地文件上传到nacos 使用nacos

导入依赖 <!--配置文件使用nacos--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>nacos版本</version></dependency><dependency…