微软发布!提示工程进化为位置工程,有效提升RAG与上下文学习

别再光顾着优化提示工程啦!微软最近推出位置工程研究思路,只需调整token的索引位置,而不修改文本本身,就能显著提高任务性能。

提示工程通过添加、替换或删除段落和句子改变提示,调整语义信息,激发LLMs的推理能力。比如CoT通过在问题的结尾附加“Let's think step by step”这几个词,鼓励模型生成推理过程。

而微软这篇工作发现在tokens之间引入占位符token可改变其他token的相对位置。这些占位符token不参与注意力分数的计算,但占据了token索引位置。因此可能优化提示中不同段落之间的注意力权重。

图片

▲提示工程与位置工程的比较。"Para"指的是提 示中的段落,"Sent"指的是句子。

通过在两个广泛使用的LLM场景中——检索增强生成(RAG)和上下文学习(ICL)——对位置工程进行了评估。结果表明,位置工程在两种情况下都显著优于基础模型。

又一充分激发LLMs能力的新策略出现啦,说不定也是一个产出论文的好方向!

 GPT-3.5研究测试:

https://hujiaoai.cn

GPT-4研究测试:

https://higpt4.cn

Claude-3研究测试(全面吊打GPT-4):

https://hiclaude3.com

论文标题:
Position Engineering: Boosting Large Language Models through Positional Information Manipulation

论文链接
https://arxiv.org/pdf/2404.11216.pdf

位置工程:在提示中更改位置信息

为什么改变token的位置有奇效,先来了解一下LLMs如何整合位置信息。

前置知识

令表示输入到语言模型的tokens,用表示相应的token嵌入。首先,注意力层计算(查询)、(键)和(值):

图片

其中, 和  分别是token的位置索引。自注意力计算如下:

图片

其中, 是一个标量,表示查询中第个toekn与值和键集中第个token之间的注意力分数。表示注意力层的维度,而表示第个查询token的输出。

然后通过引入与和相关的位嵌入向量引入绝对定位:

图片

位置嵌入的第和维度的计算方法如下:

图片

而近期的大模型如Llama和Mistral多采用RoPE(Relative Position Embedding),一种相对位置嵌入。它利用一个特定设计的矩阵(维度为d × d,参数化为i),对查询和键向量进行如下修改:

图片

矩阵 有一个独特性质,即,这导致:

图片

因此, 在公式(2)中, 模型只关注相对位置, 而不是绝对位置和。

位置工程

本文所提到的位置工程仅对公式(1)中使用的位置信息进行调整。目标是找到一个位置编辑函数,改变并融入模型中的token位置信息,提升LLM的表现:

图片

其中ττ。确保(1)两个不同的token不会被赋予相同的新的位置索引;(2) 语言建模中的因果关系保持不变,只有索引更大的查询向量可以访问索引相等或更小的键和值向量,反之则不行。

具体来说在需要改变位置关系的token之间插入位置占位符,定义为θθθ,比如在RAG任务重θ表示在指令和文档段之间插入θ个占位符token,而θ则表示在文档段和问题之间插入占位符token。

占位符token不参与注意力分数计算,但分配了位置索引。当按照公式(2)中的描述计算,并且第或个 token被识别为占位符时,常规计算会被跳过,被设置为 0。

如图下图b所示,将占位符token插入句子1和2之间影响了它们之间的相对位置信息,进而影响两个句子中tokens之间的注意力分数计算。

图片

实验

作者在LLMs两大流行任务检索增强生成(RAG)和上下文学习(ICL)上评估了位置工程的有效性,主要测试模型为是Llama-13B-chat。

1. RAG的位置工程

RAG方法首先涉及与用户查询相关的文档检索。随后,检索到的内容被提供给生成模型,以形成响应。

数据集

作者使用了四个开放域问答数据集:NQ open、EntityQuestions、TrivialQA和WebQuestions。从每个数据集的原始训练集中随机选取了300个问答对构建位置工程训练集。同时,从它们的原始测试集中随机选取了2,000对作为测试集;若某个数据集没有测试集,则使用其评估集替代。

检索模型:采用了经过MS-MARCO数据集微调的Contriever模型。检索源来自维基百科,每个文档段落限制为100个词。检索了k个文档段落,其中k分别取值为1、3、5,并将这些段落连接起来后输入到LLMs中。

评估指标:采用了最佳精确匹配准确率,即判断输出中是否包含正确答案。

搜索空间

RAG的提示输入分为三个部分:指令、检索到的文档与问题。

图片

通过在指令和文档段之间插入θ 临时占位符token,以及在文档和问题段之间插入 θ临时占位符 token。如下图所示:

图片

为了缩小搜索空间,限定 θ 和 θ 的值在预定义集合{0, 100, ..., 2500} 内。同时,由于上下文窗口大小的限制,要求 θθ。

作者在 Llama-13B-chat 模型的训练集上评估所有组合的性能,然后将最佳配置应用到测试集。结果如下表所示:

图片

结果表明,位置工程显著提升了RAG在所有设置下的性能。其中,在WebQuestions数据集中,仅使用一个检索到的文档时,性能提升最为显著,达到了15.4%。

θ和θ在所有考察的数据集中的最佳参数都表现出一致的趋势

θ 通常取值在1,000到2,000的较大范围内,而 θ则是一个相对较小的数值,其范围大致在200到600之间。这些参数设置对于优化RAG的性能起到了关键作用。

2. RAG通用位置工程设置探索

作者还探讨了在“确定一个单一的位置设置“的情况下,能否普遍提升RAG在不同数据集和各种检索文档数量下的性能。

作者可视化了每个位置配置θθ的平均百分位值,如下图所示。这些值首先通过聚合给定数据集和特定检索文档数量的全部准确率得分得到,然后计算百分位分并对所有配置进行平均。

图片

基线配置θθ的平均百分位数为31.6。大约68%的配置可以通过简单地调整位置信息来超过基准性能。

通常,在1300到2000的范围内选择θ值,并将θ设置在300到500的范围内是有利的。将θ设置为过高的数值(例如超过1500)会显著降低性能,可能是因为它导致忽略提示中的文档信息。此外,固定θ值,增加θ通常性能会更好。

在训练集上,θ,θ表现出最高的百分位值为92.9。将这个配置应用于所有数据集和检索文档数量的测试集。如下表所示,相比基线,性能都有所提高。

图片

3. 移除指令段探索

从上节的实验结果可以看出,为了达到最佳性能,偏好较大的θ。θ表示指令段和文档段之间的间隔。较大的θ减少了指令段的影响。这引出了一个问题:完全移除指令段是否会进一步提升性能?结果如下表所示:

图片

移除指令段的性能与基线设置相当。在使用一个检索到的文档时,WebQuestions 数据集上的最大提升达到了 2%。然而,同一体验设置下的位置工程改进幅度为 15.4%。

因此,为了实现最佳性能,我们的策略应当是削弱指令段的影响,而非完全消除它。对于位置工程而言,这相对容易实现。但对于提示工程来说,这却是一个挑战。

4. ICL的位置工程

在上下文学习(ICL)中,LLMs通过观察多个上下文示例来学习新任务的能力。

数据集

作者选用TREC和SST2两个数据集。主要关注TREC数据集中6个粗分类问题,SST2数据集包含电影评论,目标是将其分类为正面或负面。训练集从TREC和SST2的原始训练集中随机选择300个样本。测试集使用TREC的全部500个 样本测试集。SST2数据集使用其验证集的全部842个样本作为测试集。

对每个测试样本,从训练集中每个类别随机选择3个示例作为上下文 示例,TREC为18个,SST2为6个。采用精确匹配分数作为评估指标。

搜索空间

提示模板如下图所示,分为三个部分指令段、 示例段和查询段。对于TREC数据集,使用类似的提示模板,仅将"Review"替换为"Question","Sentiment"替换为"Question Type",

图片

作者在指令段和示例段之间插入了θ占位符,在示例段和查询段之间插入了θ占位符,以及在示例之间插入了θ占位符,如下图所示:

图片

在实验过程中,为θ和θ的候选值设置了集合{0, 100, ..., 600},尝试从0到600的多个不同间隔,以找出最佳的位置配置。对于θ,设定了值集{0, 20, ..., 100},以探索示例之间的最佳间隔。结果如下表所示:

图片

  • 在两个数据集上都实现了性能提升,TREC 数据集上的绝对提升为 3.6%,SST2 数据集上的绝对提升为 1.9%。

  • 最优的位置θθθ在不同的数据集之间有所变化。TREC 需要将 θ 调整为 40,同时设置θ 和 θ 为 0;而对于 SST2,最优设置是将θ 设置为 100,同时 θ 和 θ 保持为 0。

  • 当θ值设置在{200, 300, ..., 600}范围时,模型性能明显下降,这与RAG任务中的观察结果相吻合。θ主要调节示例段对模型的影响。对于SST2任务(即对评论情感进行分类),由于LLM可能已具备相关基础知识,选择θ可以适度降低示例段的影响。而对于TREC任务(需LLM从示例中学习问题类型),保持θ则更为合适。

结论

本文提出了一种创新方法——位置工程,通过微调提示中的位置信息,显著提升了任务表现。在多种任务和模型上的实验均验证了其有效性。

与需在复杂文本空间进行搜索的提示工程相比,位置工程更易于优化。更重要的是,位置工程仅涉及更新LLMs的输入位置索引,无需增加总体计算开销。

此外,位置工程与提示工程可以有机结合,共同发掘LLMs的潜在能力,使其性能得到充分发挥。有兴趣的同学可以沿着这个方向多研究研究。

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

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

相关文章

javaWeb项目-校园志愿者管理系统功能介绍

项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog 1、SpringBoot框架 …

docker容器搭建chatglm2-6b

服务器环境: 显卡驱动:Driver Version: 530.30.02 CUDA版本:CUDA Version: 12.1 显卡:NVIDIA GeForce RTX 3090共4张 注意:最好把显卡驱动升级到530,CUDA版本之前使用11.7有问题。 docker-compose.yml…

运动学与动力学基础知识导读

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言一、运动学基础--坐标转换(1)Eigen的使用及常用的位姿变换实现(2)小车底盘运动…

“生成元”问题——穷举生成“查找表”

【题目描述】 如果x加上x的各个数字之和得到y,就说x是y的生成元。给出n(1≤n≤100000),求最小生成元。无解输出0。例如,n216,121,2005时的解分别为198,0,1979。 【题目…

【运维基础一】 Linux Centos 常用命令

CentOS(Community ENTerprise Operating System)是一个基于Red Hat Enterprise Linux源代码构建的开源企业级Linux发行版。在CentOS系统中,有很多常用的命令可以帮助用户进行系统管理、文件操作、网络配置等任务。以下是一些CentOS中常用的命…

Java程序员必须掌握的数据结构:HashMap

HashMap底层原理实现是每个Java Boy必须掌握的基本技能,HashMap也是业务开发每天都需要遇到的好伙伴。如此基础且核心的底层数据结构,JDK也给其赋予了线程安全的功能类,我们来看看~ 文章目录 1. HashMap内部结构1.1 键值的添加流程1.2 红黑树…

蚂蚁 2025届暑期实习 多模态LLM 面经

文章目录 写在前面一面/技术面 2024/4/7 晚上19:00-20:00二面/技术面 2024/4/23 早上11:15-12:15三面/HR面 2024/4/25 11:00-11:50 写在前面 学校情况:211本中9硕,本硕都是计算机科班,但研究方向并不是NLP,而是图表示学习论文情况…

垃圾分类子项目-识别垃圾类型

思路: 阿里云图像识别 语音模块实现 主程序: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> // access() #include <error.h> // remove() #include "uartTool.h" #include "garbage.h&qu…

DFS和回溯专题:全排列 II

DFS和回溯专题&#xff1a;全排列 II 题目链接: 全排列 II 参考题解 代码随想录 题目描述 代码纯享版 class Solution {public List<List<Integer>> list_all new ArrayList();public List<Integer> list new ArrayList();public int[] res;public Lis…

【笔试训练】day11

1.游游的水果大礼包 思路&#xff1a; 枚举。假设最后的答案是x个a礼包&#xff0c;y个b礼包&#xff0c;得到一个式子&#xff1a;ansa*xb*y 我们可以枚举x的数量&#xff0c;这样就能变相的把y的求出来。呃这就是鸡兔同笼问题嘛 x最大的范围是多少呢&#xff1f;也就是a礼…

常见Linux操作系统SSH配置详解

SSH&#xff08;Secure Shell&#xff09;是一种网络协议&#xff0c;用于加密方式远程登录和操作计算机系统。Linux用户经常需要通过SSH来安全地管理系统。本文将详细介绍在不同Linux发行版&#xff08;CentOS、Ubuntu、RedHat、Debian、Fedora&#xff09;上配置SSH服务的步骤…

竞赛报名赛事管理系统技术分析

竞赛报名赛事管理系统是一个复杂的应用&#xff0c;涉及到用户管理、赛事信息管理、报名管理、成绩管理等多个方面。使用PHP框架来开发这样的系统&#xff0c;可以大大提高开发效率&#xff0c;保证代码的可维护性和可扩展性。以下是对基于PHP框架的竞赛报名赛事管理系统进行功…

vue3第二十四节(JSX用法)

vite 创建项目的情况下 安装 npm i vitejs/plugin-vue-jsx -D配置vite.config.js import { defineConfig } from vite import vue from vitejs/plugin-vue import vueJsx from vitejs/plugin-vue-jsx // https://vitejs.dev/config/ export default defineConfig({plugins: […

网络编程——TCP的特性之自动重传/流量控制/拥塞控制,一篇说清楚

文章目录 1. ARQ自动重传协议1.1 停止等待ARQ1.2 连续ARQ1.3 总结 2. TCP的流量控制3. TCP的拥塞控制3.1 慢开始算法3.2 拥塞避免算法3.3 快重传算法3.4 快恢复算法 1. ARQ自动重传协议 自动重传请求&#xff08;Automatic Repeat-reQuest&#xff09;&#xff0c;通过使用确认…

前端获取文件后缀名

function getFileExtension(filename) {var parts filename.split(.);if (parts.length > 1) {return parts.pop();} else {return ;} }// 使用例子 var filename "example.png"; var extension getFileExtension(filename); console.log(extension); // 输出:…

免费的在线视频编辑工具,mp4转gif工具

在线视频编辑&#xff1a;https://online-video-cutter.com/change-video-speed&#xff0c;可以加速视频。 mp4转gif&#xff1a;MP4轉GIF轉換器。在线自由 — Convertio MP4 To GIF | Convert MP4 To GIF Images Online - XConvert

flex:1给了我工作机会

今天就跟大家讲讲flex&#xff1a;1是什么的缩写&#xff0c;怎么去理解这个样式。 首先要知道flex:1就是 flex-grow: 1; flex-shrink: 1; flex-basis: 0;的缩写&#xff0c;首页要理解它们的作用&#xff0c;先看dom解构 <div class"parent"><div class&q…

vivado Versal 串行 I/O 硬件调试流程、使用 Vivado Serial I/O Analyzer 来调试设计

Versal 串行 I/O 硬件调试流程 Versal ™ ACAP 无需再生成 IBERT IP &#xff0c; 因为使用系统内串行 I/O 调试所需的必要逻辑现已集成到 GTY 收发器架构内。使 用 GTY 收发器的任何设计均可用于串行 I/O 硬件调试。 Versal 串行 I/O 硬件调试流程具有 2 个不同阶…

lesson04:类和对象(下)

1. 再谈构造函数 2.static成员 3.友元 4.内部类 5.匿名对象 1. 再谈构造函数 1.1构造函数体内赋值 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; class Date { public:Date(int year, int month, int day){_year year;_month mont…

Oceanbase体验之(二)Oceanbase集群的搭建(社区版4.2.2)

资源规划 3台observer CPU:4C及以上 内存&#xff1a;32G及以上 硬盘操作系统500G 存储盘1T及以上 虚拟机可以直接划分&#xff0c;物理机需要提前规划好资源 一、上传oceanbase安装包 登录ocp选择软件包管理 上传Oceanbase软件包&#xff08;软件包获取路径 官网免费下载社…