【LLM之RAG】RAFT论文阅读笔记

news2024/10/6 10:36:53

研究背景

论文针对的主要问题是如何将预训练的大型语言模型(LLMs)适应特定领域的检索增强生成(RAG)。这些模型通常在广泛的文本数据上进行预训练,已经表现出在广义知识推理任务上的优越性能。然而,在特定领域,如法律、医学或最新新闻等,普遍的知识推理不足以满足精确性的要求,因此需要对这些模型进行适应性调整以增强其在这些领域内的应用性能。

研究目标

研究的主要目标是通过新的训练方法——RAFT(Retrieval Augmented Fine Tuning)提高LLMs在特定领域的性能。RAFT方法旨在通过链式思考风格的答案生成来提高模型对问题的理解和回答质量,同时确保模型能够有效地从相关文档中提取信息,并忽视那些无助于问题解答的干扰文档。

相关工作

研究背景部分详细讨论了现有的技术和挑战,特别是在RAG和监督式微调(SFT)的应用上。现有的RAG方法允许模型在回答问题时引用文档,但这些方法未能利用固定领域设置中的学习机会。监督式微调提供了学习文档中更通用模式的机会,更好地与结束任务和用户偏好对齐,但现有的微调方法在测试时未能考虑检索过程中的不完美。

方法论

数据处理

在RAFT中,训练数据的准备非常关键。每个数据点包括一个问题(Q)、一组文档(Dk),以及一个从文档中生成的链式思考风格的答案(A*)。这些文档分为“oracle”文档(D*),即可以从中推导出问题答案的文档,和“干扰”文档(Di),即不包含答案相关信息的文档。示例如下:
在这里插入图片描述

解决方案

RAFT的核心是一个修改版的一般指令微调方法。通过精心设计的训练数据和模型微调过程,模型被训练为基于问题和提供的文档来生成答案,同时忽略那些干扰文档。这种方法的目标是提高模型在特定域内的性能,即在域特定的开放书本设置中更有效地使用RAG。
在这里插入图片描述

实验

实验设计

实验部分使用多个数据集来评估RAFT的性能,并将其与其他基线模型进行比较,例如LlaMA2-7B聊天模型和域特定的微调模型。这些数据集包括自然问题(NQ)、Trivia QA和HotpotQA等,涵盖从通用知识到特定领域的不同类型。

数据:

数据描述
PubMed医学QA问题。(二分类问题)
Natural Questions (NQ)通用领域
HotpotQA通用领域
Trivia QA通用领域
HuggingFace编程的api领域
Torch Hub编程的api领域
TensorFlow Hub编程的api领域

实验结论

  1. RAFT在多个评估任务上表现出色,尤其是在包含干扰文档的设置中。实验结果显示,与其他基线相比,RAFT在提取信息和处理干扰文档方面具有更高的鲁棒性和准确性。
    

在这里插入图片描述
注:DSF是指对LlaMA2-7B-chat直接进行SFT(query-answer,预测时没有参考内容),预测时直接输入问你题。
2. 有了思维链,结合推理链不仅可以引导模型找到答案,还可以丰富模型的理解,从而提高整体准确性。 在实验中,整合思想链显着增强了训练的稳健性。
在这里插入图片描述
3. 训练集中适当包含一定比例的不相关文档,会提高性能,但数量并不是绝对的,需要看具体的数据集,如在NQ数据集上,正负配比是1:3,HotpotQA数据上是1:1。

在这里插入图片描述

参考资料

  • 原文
  • 代码

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

wms仓库管理系统对海外仓管理有帮助吗,有必要自己开发吗?

作为链接国内电商和国外消费者的中间环节,海外仓的重要性自然是不言而喻的。而要想服务好这些出海的商家,提供更加快捷、高效率的仓储物流服务,就需要海外仓企业自己不断提升效率,精细化管理模式。 wms仓库管理系统作为现代仓储物…

Docker 国内镜像源更换

实现 替换docker 镜像源 前提要求 安装 docker docker-compose 参考创建一键更换docker国内镜像源 Docker 镜像代理DaoCloud 镜像站百度云 https://mirror.baidubce.com南京大学镜像站

ArcGIS 10.8软件安装包免费下载及安装教程

安装包获取: 【软件名称】:ArcGIS 10.8 【安装包链接 】: 链接:https://pan.quark.cn/s/2240330bf935 提取码:Yixn 【备用链接】: 链接:https://pan.baidu.com/s/13V5o_igcK0suW4SFsWkxeQ?pwdj6kx 提取码…

Docker 基础使用(5)Compose

文章目录 Docker Compose 基础认识Docker Compose 基础语法Docker Compose 基础指令Docker Compose 使用实例 Docker 基础使用(0)基础认识 Docker 基础使用(1)使用流程概览 Docker 基础使用(2)镜像与容器 Docker 基础使用(3)存储卷…

MySQL-数据处理函数(-1)

033-数据处理函数之获取日期时间 now():获取的是执行select语句的时刻。sysdate():获取的是执行sysdate()函数的时刻。 select now(), sleep(2), sysdate();获取当前日期 select curdate(); select current_date(); select current_date;获取当前时间…

30岁迷茫?AI赛道,人生新起点

前言 30岁,对于许多人来说,是一个人生的分水岭。在这个年纪,有些人可能已经在某个领域取得了不小的成就,而有些人则可能开始对未来的职业方向感到迷茫。如果你正处于这个阶段,那么你可能会问自己:30岁转行…

numpy创建二维数组

1.numpy.array(object, dtypeNone, copyTrue, orderK, subokFalse, ndmin0) # 创建一个数组,将输入对象转换为数组。 # 如果输入对象是列表,元组或数组,则创建一个数组,并将输入对象中的元素复制到数组中。 arr np.array([[1, 2…

低代码平台与无代码平台,有哪些相同点和不同点

低代码和无代码 低代码(Low-Code)是一种软件开发方法,它使得开发人员能够通过图形界面、拖放组件和模型驱动的逻辑,快速地构建和部署应用程序,而无需编写大量的代码。而低代码平台就是使用低代码的方式进行开发&#…

STL——Stacks容器

一、stack 1.操作 语法: <><>!所有的这些操作可以被用于堆栈. 相等指堆栈有相同的元素并有着相同的顺序。 2.empty 语法: bool empty();如当前堆栈为空&#xff0c;empty() 函数 返回 true 否则返回false. 3.pop 语法: void pop();pop() 函数移除堆栈中最顶层元…

Nginx 版本升级方案

因 nginx发现漏洞、需 Nginx 的版本进行更新&#xff0c;需要用到Nginx服务器提供的平滑升级功能。 一、Nginx安装 Linux服务器 离线安装 nginx_linux 离线安装nginx 依赖包 百度云-CSDN博客 二、查看已安装的 Nginx 版本信息&#xff0c;configure 配置信息 ## nginx 目录 /…

数据爱好者的综合指南——Google篇

在数据驱动的决策世界中&#xff0c;获取准确而全面的信息至关重要。Google 搜索结果抓取是一种强大的技术&#xff0c;可以让企业、调查人员和研究人员从搜索引擎结果中提取可靠的数据。本综合指南将深入研究 Google 搜索结果的最佳实践、工具和道德考量&#xff0c;以确定能够…

C# Interlocked 原子操作

目录 注解 方法 适用于 案例 1&#xff1a;Add 对两个整数进行求和并用和替换第一个整数&#xff0c;上述操作作为一个原子操作完成 2&#xff1a;Exchange Exchange(UInt32, UInt32) 以原子操作的形式&#xff0c;将 32 位无符号整数设置为指定的值并返回原始值。 参考…

【python - 函数】

一、测试 如果我们写出一下一些泛化的函数&#xff0c;①计算边长为r的正方形面积②半径为r的圆的面积③边长为r的六边形面积。 我们运行代码计算一下边长为10的六边形面积&#xff0c;可以看到它约等于260&#xff0c;但是我们计算一下边长为-10的六边形面积它也同样成功了&…

帝国CMS火车头采集发布模块详细使用方法

火车头采集文章数据发布到帝国CMS系统操作步骤如下&#xff1a; 1. 下载火车头采集帝国cms发布模块&#xff1a;帝国cms发布模块接口下载地址&#xff08;免登录&#xff09;-CSDN &#xff1b; 2. 帝国cms发布模块导入火车头采集软件&#xff1b; 3. 填写帝国cms数据库中相…

基于(C++)VTK9.3.0+Microsoft Visual Studio2017的DICOM影像VR体绘制完整实现代码

开发基于(C++)VTK9.3.0+Microsoft Visual Studio2017的DICOM影像VR体绘制程序的前提是: 1、已编译完成VTK9.3.0,可在VTK官网下载VTK9.3.0源码,官网下载地址:Download | VTK 选择所需的VTK版本进行下载 具体编译VTK的过程我就不详细介绍了,有需要可以提供支持。下面直接…

php yield使用

一&#xff0c;概念 yield简单的调用形式看起来像一个return申明&#xff0c;不同之处在于普通return会返回值并终止函数的执行&#xff0c;而yield会返回一个值给循环调用此生成器的代码并且只是暂停执行生成器函数。yield只有在调用的时候才会执行&#xff0c;并不产生多余的…

【2024Python教程】Python文件打包成exe,如果有图片怎么打包?有手就会的超简单教程

目录 pyinstaller模块打包exe&#xff08;无图片或其他文件打包版&#xff09; 第一步 安装pyinstaller模块&#xff1a; 第二步 找到需要打包的主程序文件夹 第三步 打包exe文件 第四步 确认exe文件是否可以打开 pyinstaller模块打包exe&#xff08;有图片打包版--方法一…

瑞幸携陈建斌迎“白月光”回归,品牌联名为何屡试不爽?

要说品牌联名看谁家&#xff0c;那真不得不提瑞幸。一招“酱香拿铁”直接“热翻”各大平台&#xff0c;不少网友感慨“人生第一杯茅台&#xff0c;居然是瑞幸给的”。而上个月瑞幸又上了一波“大招”&#xff0c;携手“大胖橘”陈建斌老师回归初代产品“橘金气泡美式”&#xf…

一文读懂数据中台

前言&#xff1a;数据中台的目标是让数据持续用起来&#xff0c;通过数据中台提供的工具、方法和运行机制&#xff0c;把数据变为一种服务能力&#xff0c;让数据更方便地被业务所使用。下图所示为数据中台总体架构图&#xff0c;数据中台是在底层存储计算平台与上层的数据应用…

Qt——窗口

目录 概述 菜单栏 创建菜单栏 创建子菜单 添加分割线 添加图标 工具栏 创建工具栏 设置初始位置和停靠位置 设置浮动属性 设置移动属性 状态栏 创建状态栏 显示实时消息 添加控件 浮动窗口 创建浮动窗口 对话框 创建对话框 对话框的分类 Qt 内置对话框 …