当前位置: 首页 > 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…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage)&#xff1a…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

在rocky linux 9.5上在线安装 docker

前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

企业如何增强终端安全?

在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...