RAFT: Adapting Language Model to Domain Specific RAG

预备知识

RAG介绍一文搞懂大模型RAG应用(附实践案例) - 知乎 (zhihu.com)

RAG的核心理解为“检索+生成

检索:者主要是利用向量数据库的高效存储和检索能力,召回目标知识;

生成:利用大模型和Prompt工程,将召回的知识合理利用,生成目标答案 

  • 数据准备阶段:数据提取——>文本分割——>向量化(embedding)——>数据入库
  • 应用阶段:用户提问——>数据检索(召回)——>注入Prompt——>LLM生成答案
  • 总的来说,在数据准备时候加入doc入dataset,在提问阶段根据dataset检索出prompt进行答案生成

RATF与RAG区别(chatgpt)

  1. 目标

    • 检索增强微调旨在利用大规模检索到的文本数据来增强模型的微调过程。它的主要目标是通过利用外部知识源来提高模型在目标任务上的性能。
    • 检索增强生成技术的目标是结合检索和生成两种技术,以生成与输入相关的连贯、准确的文本。它侧重于生成文本的质量和相关性。
  2. 方法

    • 检索增强微调通过将检索到的文本信息与目标任务的数据合并,然后在合并的数据集上进行模型微调。这种方法通常会使用一些特定的策略,例如数据蒸馏或伪标签生成,以更好地利用检索到的信息。(含有预训练过程)
    • 检索增强生成技术将检索到的文本信息作为上下文,结合生成模型以生成文本。它通常不涉及对模型参数的微调,而是利用检索到的信息来指导生成过程。

零次学习(Zero-Shot Learning)

希望我们的模型能够对其从没见过的类别进行分类,让机器具有推理能力,实现真正的智能。其中零次(Zero-shot)是指对于要分类的类别对象,一次也不学习。 

在训练阶段不存在与测试阶段完全相同的类别。

论文总结概括

RAFT

在训练阶段加入该领域的doc进行ft,生成阶段LLM与一个检索器配对,该检索器可检索到‘k’文档(或文档的特定片段)并附加到提示符prompt中。

surpervised ft  (SFT)

训练数据

每个数据点包含一个问题(Q),一组文档(Dk)和从其中一个文档(D∗)生成相应的思维链风格答案(A∗)---->Q、Dk、A*

文档分为两类:1. oracle(D*)可推断出问题答案的文档(可以为多个)

                          2.Di干扰文档

对于数据集:p%的数据  ---> 保存oracle文档和k-1个干扰文档

                      (1-p%)的数据--->仅包含干扰文档

baseline

1.zero-shot的Llama2-7b-chat,指令集微调模型,提供了书面的指令instruct,没有提供参考文档。

2.基于RAG的Llama2-7b-chat(LLM+RAG),多提供了参考文档。

3.zero-shot的(DSF)特定领域微调,没有上下文文档。

4.基于RAG特定领域微调(DSF+RAG),基于RAG微调模型储备外部知识。

RAFT与基线对比:将RAG引入Domain Specific Fine-tuning(DSF)->模型缺乏上下文处理和从中提取有用信息的训练。(数据集干扰文档的处理上面)

CoT(Chain-of-Thought )

生成问题时,整合出一个推理链,丰富模型的理解,提高整体准确性,增强训练鲁班性 。

top-K RAG

注意与train时的p%dataset区分开,此时是测试时的场景!!

解决LLM的检索能力——>oracle文档与干扰文档混合——>完善相关和不相关文档的比例

微调方法:结合高度相关文档和干扰文档。该模型使用不同数量的干扰物文档进行训练,但始终使用从检索器中获得的top-k文档进行评估。

现象:仅使用oracle文档进行微调会导致性能更差

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis的分片机制

Redis的分片机制 Redis是一个开源的内存数据结构存储系统,它支持键值对的存储方式。Redis的分片机制允许将数据在多个节点上进行分布式存储和处理,从而提高系统的性能和可扩展性。 Redis的分片机制是通过一致性哈希算法实现的。一致性哈希算法将所有的ke…

解决在命令行中输入py有效,输入python无效,输入python会跳转到microsoft store的问题| Bug

目录 如果你已经尝试过将python添加到系统变量在系统变量里把你自己的路径放到应用商店的路径之前删除windowsapps下的python.exe文件 如果你还未将python添加到系统变量没有python安装包且没有配置系统变量 如果你已经尝试过将python添加到系统变量 打开 运行,输入…

Idea 不能创建JDK1.8的spring boot项目

由于https://start.springboot.io/ 不支持JDK1.8,那么我们需要换idea的springboot创建源,需要换成 https://start.aliyun.com,这也是网上大部分教程说的,但是我这边会报这样的错误: Initialization failed for https:…

【C语言】结构体内存对齐问题

1.结构体内存对齐 我们已经基本掌握了结构体的使用了。那我们现在必须得知道结构体在内存中是如何存储的?内存是如何分配的?所以我们得知道如何计算结构体的大小?这就引出了我们今天所要探讨的内容:结构体内存对齐。 1.1 对齐规…

【数据结构】——线性表(顺序表加链表),万字解读(加链表oj详解)

前言 由于之前存在过对两者的区别考虑,所以把他们放在一起来说,更加容易区别和理解 对于有关线性表的概念这里就不展示了,这里主要是介绍线性表里面的这两个结构的知识点 一.顺序表 1.顺序表介绍 顺序表的存储结构和逻辑结构都是相邻的&a…

爬虫入门系列-HTML基础语法

🌈个人主页:会编辑的果子君 💫个人格言:“成为自己未来的主人~” HTML基础语法 bs4解析比较简单,但是呢,首先你需要了解一丢丢的html知识,然后再去使用bs4去提取,逻辑和编写难度就会非常简…

常用负载均衡详解

一、介绍 在互联网场景下,负载均衡(Load Balance)是分布式系统架构设计中必须考虑的一个环节,它通常是指将负载流量(工作任务、访问请求)平衡、分摊到多个操作单元(服务器、组件)上去…

小程序绕过 sign 签名

之前看到了一篇文章【小程序绕过sign签名思路】之前在做小程序渗透时也遇到了这种情况,但是直接放弃测试了,发现这种思路后,又遇到了这种情况,记录下过程。 并没有漏洞分享,仅仅是把小程序也分享出来,方便…

Redis如何设置键的生存时间或过期时间

键的生存时间或过期时间 概述。 通过EXPIRE命令或者PEXIPIRE命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间(Time To Live,TTL),在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间为0的键: 127.0.0.1:6379>…

酷开系统用电视为居家生活打开精彩窗口|酷开科技|酷开会员|

随着互联网的发展,电视也承载了更多的功能。相比于传统的电视,如今的智能电视屏幕更大、分辨率更高、色彩更加鲜艳,能够呈现出更加逼真的画面效果。当观众观看大屏电视时,仿佛置身于电影大幕的场景之中,感受到更为震撼…

神经网络(深度学习,计算机视觉,得分函数,损失函数,前向传播,反向传播,激活函数)

目录 一、神经网络简介 二、深度学习要解决的问题 三、深度学习的应用 四、计算机视觉 五、计算机视觉面临的挑战 六、得分函数 七、损失函数 八、前向传播 九、反向传播 十、神经元的个数对结果的影响 十一、正则化与激活函数 一、神经网络简介 神经网络是一种有监督…

EasyExcel模板填充list时按第一行格式合并单元格(含分页线设置)

前言: 在使用easyExcel填充list时,第一行存在合并单元格的情况下,后面使用forceNewRow()填充的行却没有合并样式。 模板: 填充后: 自定义拦截器: 根据官方文档的提示,我们需要自定义拦截器来…

【Redis】Redis常见原理和数据结构

Redis 什么是redis redis是一款基于内存的k-v数据结构的非关系型数据库,读写速度非常快,常用于缓存,消息队列、分布式锁等场景。 redis的数据类型 string:字符串 缓存对象,分布式ID,token,se…

MySQL分组查询与子查询 + MySQL表的联结操作

目录 1 MySQL分组查询与子查询 1.1 数据分组查询 1.2 过滤分组 1.3 分组结果排序 1.4 select语句中子句的执行顺序 1.5 子查询 2 MySQL表的联结操作 2.1 关系表 2.2 表联结 2.3 笛卡尔积 2.4 内部联结 2.5 外联结 2.6 自联结 2.7 组合查询 1 MySQL分组查询与子查询…

树莓派夜视摄像头拍摄红外LED灯

NoIR相机是一种特殊类型的红外摄像头,其名称来源于"No Infrared"的缩写。与普通的彩色摄像头不同,NoIR相机具备红外摄影和低光条件下摄影的能力。 一般摄像头能够感知可见光,并用于普通摄影和视频拍摄。而NoIR相机则在设计上去除了…

基于BusyBox的imx6ull移植sqlite3到ARM板子上

1.官网下载源码 https://www.sqlite.org/download.html 下载源码解压到本地的linux环境下 2.解压并创建install文件夹 3.使用命令行配置 在解压的文件夹下打开终端,然后输入以下内容,其中arm-linux-gnueabihf是自己的交叉编译器【自己替换】 ./config…

【云原生 • Kubernetes】认识 k8s、k8s 架构、核心实战

文章目录 Kubernetes基础概念1. 是什么2. 架构2.1 工作方式2.2 组件架构 3. k8s组件创建集群步骤一 基础环境步骤二 安装kubelet、kubeadm、kubectl步骤三 主节点使用kubeadm引导集群步骤四 副节点加入主节点步骤五 部署dashboard Kubernetes核心实战1. 资源创建方式2. Namespa…

Elasticsearch - Docker安装Elasticsearch8.12.2

前言 最近在学习 ES,所以需要在服务器上装一个单节点的 ES 服务器环境:centos 7.9 安装 下载镜像 目前最新版本是 8.12.2 docker pull docker.elastic.co/elasticsearch/elasticsearch:8.12.2创建配置 新增配置文件 elasticsearch.yml http.host…

EFcore的实体类配置

1 约定配置 约定大于配置,框架默认了许多实体类配置的规则,在约定规则不满足要求时,可以显示地定义规则 1 数据库表明在不指定的情况下,默认使用的是数据库上下文类【DBContext】中DbSet 的属性名; 2 数据库表列的名字…

笔记本8代i5和台式机12代i5的性能比较

一、 台式机12代i5 二、笔记本8代i5 在多核性能上差不多是2.4倍,所以跑大一点的Matlab或者别的程序,用台式机,后边实验室能用上超多核服务器另说。