当前位置: 首页 > news >正文

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 中发展

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

上海亚商投顾:沪指缩量调整 合成生物概念股持续爆发

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日缩量震荡调整,深成指、创业板指均跌超1%。细胞免疫治疗概念股大涨,冠昊生物、…...

Maven+Junit5 + Allure +Jenkins 搭建 UI 自动化测试实战

文章目录 效果展示Junit 5Junit 5 介绍Junit 5 与 Junit 4 对比PageFactory 模式编写自动化代码公共方法提取测试用例参数化Jenkins 搭建及配置参数化执行生成 Allure 报告Maven 常用命令介绍POM 文件效果展示 本 chat 介绍 UI 自动化测试框架的搭建: 运用 page factory 模式…...

docker学习笔记(三)搭建NFS服务实验

目录 什么是NFS 简单架构​编辑 一.搭建nfs服务器 二.新建共享目录和网页文件 三.设置共享目录 四:创建使用nfs共享目录的卷 五:创建容器使用nfs-web-1卷 六:测试访问 七:是否同步测试 什么是NFS NFS 服务器:ne…...

super关键字

super关键字 在Java中,super是一个关键字,它用于引用当前对象的父类。在继承的关系中,子类可以通过super关键字来调用父类的构造方法、成员方法和成员变量。 super关键字的主要用途 调用父类的构造方法: 在子类的构造方法中&…...

【经典算法】LeetCode 200. 岛屿数量(Java/C/Python3/Go实现含注释说明,中等)

目录 题目描述思路及实现方式一:深度优先搜索(DFS)思路代码实现Java版本C语言版本Python3版本Golang版本 复杂度分析 方式二: 使用广度优先搜索(BFS)思路代码实现Java实现C实现Python3实现Go实现 总结相似题…...

Hive SQL-DQL-Select查询语句用法详解

HQL Select用法详解 1.基础语法 (1)select_exp (2)ALL、DISTINCT (3)WHERE (4)分区查询、分区裁剪 (5)GROUP BY (6)HAVING &#xff0…...

沙盘Sandboxie v5.56.4

菜鸟高手裸奔工具沙盘Sandboxie是一款国外著名的系统安全工具,它可以让选定程序在安全的隔离环境下运行, 只要在此环境中运行的软件,浏览器或注册表信息等都可以完整的进行清空,不留一点痕迹。同时可以防御些 带有木马或者病毒的…...

Arcpy开发记录

一.GDB数据库相关 1.单独的shape更新时,不会有限制,数据会自动截取 2.在GDB下,使用UpdateCursor更新字段时,填入的数据长度必须与字段长度要求一致,否则报错: 二.Cursor相关 嵌套使用cursor时&#xff0c…...

Android使用itextpdf操作PDF文档

1、导入jar包: itext-asian.jaritextpdf-5.5.8.jar Paragraph 和 Phrase 的区别: 在 iTextPDF 库中,Paragraph 和 Phrase 是用于创建和组织文本内容的两个不同的类。 Paragraph(段落): Paragraph 是一个…...

llama_index微调BGE模型

微调模型是为了让模型在特殊领域表现良好,帮助其学习到专业术语等。 本文采用llama_index框架微调BGE模型,跑通整个流程,并学习模型微调的方法。 已开源:https://github.com/stay-leave/enhance_llm 一、环境准备 Linux环境,GPU L20 48G,Python3.8.10。 pip该库即可。…...

什么是限流?常见的限流算法

目录 1. 什么是限流 2. 常见限流算法 3. 固定窗口算法 4. 滑动窗口算法 5. 漏桶算法 6. 令牌桶算法 7. 限流算法选择 1. 什么是限流 限流(Rate Limiting)是一种应用程序或系统资源管理的策略,用于控制对某个服务、接口或功能的访问速…...

ZL-0895小动物活动记录仪可同时检测8只动物的活动量

简单介绍: 小动物活动记录仪是一种多用途、宽范围的小动物活动记录仪器,可用于小鼠、大鼠、豚鼠和兔的实验,小动物活动记录仪​具有不需对动物使用特别盛具的特点,可在不改变动物原生活环境的情况下,进行实时监测&…...

注册测绘师的前世今生

本文梳理了 注册测绘师 的前世今生,具体情况如下表: 历史线时间事件诞生2007年1月原人事部、国家测绘局联合印发《注册测绘师制度暂行规定》,注册测绘师制度建立。同时同步发布《注册测绘师资格考试实施办法》、《注册测绘师资格考核认定办法…...

Python中的异常处理:深入探索try-except-finally结构

Python中的异常处理:深入探索try-except-finally结构 一、引言 在Python编程中,异常处理是一个非常重要的部分。当程序遇到错误时,比如尝试除以零、文件读取失败等,Python会抛出一个异常。如果我们不捕获这些异常,程…...

【R语言】边缘概率密度图

边缘概率密度图是一种在多变量数据分析中常用的图形工具,用于显示每个单独变量的概率密度估计。它通常用于散点图的边缘,以便更好地理解单个变量的分布情况,同时保留了散点图的相关性信息。 在边缘概率密度图中,每个变量的概率密度…...

中国结(科普)

中国结是一种手工编织工艺品,它身上所显示的情致与智慧正是汉族古老文明中的一个侧面。 [1]它原本是由旧石器时代的缝衣打结,后推展至汉朝的仪礼记事,再演变成今日的装饰手艺。周朝人随身的佩戴玉常以中国结为装饰,而战国时代的铜…...

使用Android Studio 搭建AOSP FrameWork 源码阅读开发环境

文章目录 概述安装Android Studio编译源码使用Android Studio打开源码制作ipr文件直接编译成功后自动打开Android Studio 修改SystemUI验证开发环境 概述 我们都知道Android的系统源码量非常之大,大致有frameworka层源码,硬件层(HAL)源码,内…...

区块链 | IPFS:CID

🦊原文:Anatomy of a CID 🦊写在前面:本文属于搬运博客,自己留存学习。 1 CID 在分布式网络中与其他节点交换数据时,我们依赖于内容寻址(而不是中心化网络的位置寻址)来安全地定位…...

PostgreSQL(十二)报错:Tried to send an out-of-range integer as a 2-byte value: 51000

目录 一、报错场景二、源码分析三、实际原因(更加复杂)四、解决思路 一、报错场景 今天写了一个历史数据处理程序,在开发环境、测试环境都可以正常执行,但是放到生产环境上就不行,报了一个这样的错误: or…...

XML Group端口详解

在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...