【LLM 论文】UPRISE:使用 prompt retriever 检索 prompt 来让 LLM 实现 zero-shot 解决 task

论文:UPRISE: Universal Prompt Retrieval for Improving Zero-Shot Evaluation
⭐⭐⭐⭐
EMNLP 2023, Microsoft
Code:https://github.com/microsoft/LMOps

一、论文速读

这篇论文提出了 UPRISE,其思路是:训练一个 prompt retriever,面对一个 task 的 input 时,可以通过 prompt retriever 从 prompt pool 中检索到一个最合适的 prompt 作为 in-context learning 中的 exemplars,然后把这些 exemplars + task input 一起输入给 LLM,从而得到 answer。

下图是一个 case:(下半部分是 UPRISE 改进后的)

在这里插入图片描述

二、Prompt Retriever

2.1 Prompt Retriever 是什么

prompt retriever 是这篇论文的关键创新点,它的提出思路是这样的:以往 prompt engineering 方法中,使用 LLM 解决每一个 downstream task 都需要预先设定一个对应的 prompt。但也有可能为某个 task 设定的 prompt 也能够泛化到其他未见过的 task 上,于是,这篇论文的工作首先构建了一个 prompt pool,里面存储了很多用于解决 downstream tasks 的 prompts,然后当一个 test input 到来时,prompt retriever 可以从中检索出最适合这个 task 的 prompt,然后把 retrieved prompt + task input 输入给 LLM 来得到 answer。

论文的关键是训练出能够满足要求的 prompt retriever,并期待它面对没有见过的 task(prompt pool 中也没有这个 task 的 prompt),也可以检索出一个合适的 prompt 并让 LLM 来回复这个 input,这也就是论文提出的 Cross-task retrieval。另外也期待这个 prompt retriever 可以用于多个不同系列的 LLM,这也是论文提出的 Cross-model retrieval

2.2 Prompt Retriever 的训练和 inference

在这里插入图片描述

分别介绍 prompt retriever 的训练和推理思路。

retriever 的训练

这里会使用一个 frozen LLM 用于 prompt retriever 的监督微调。

对于一个 prompt-input 的 pair,会将其视为 positive pair,然后更换其中的 prompt 制作出一些 negative pairs,之后:

  • 把一个 pair 给 retriever,retriever 是一个 bi-encoder 模型,prompt encoder 和 input encoder 分别对 prompt 和 input 进行编码
  • 把一个 pair 和 negative pairs 给 frozen LLM,让其输出一个 task score 来评估 prompt 的有效性

对 positive pair 和 negative pairs 都循环上述过程,并使用对比学习来训练 prompt retriever,损失函数使用的 InfoNCE 这样的对比损失函数。

inference 阶段

预先使用 prompt encoder 对所有 prompt 进行编码,存入 prompt pool 中。

在 inference 时,对于 task input x t e s t x_{test} xtest,对其使用 input encoder 进行编码,然后从 prompt pool 中检索出最相似的 K 个 prompts 并降序排列: P + = ( p 1 , … , p K ) P^+ = (p_1, \dots, p_K) P+=(p1,,pK),然后把这个些 prompts 和 input 连接在一起,形成 p k ⊕ ⋯ ⊕ p 1 ⊕ x t e s t p_k \oplus \dots \oplus p_1 \oplus x_{test} pkp1xtest作为给 LLM 的输入。

同时神奇的是,在多个 downstream tasks 上训练出来的 retriever,能够很不错的应对未见过的任务,并从 prompt pool 选出相对来说比较合适的 prompts 来与 input 组装从而输入给 LLM 获得好的 answer。

三、总结

总的来说,这篇论文提出了一个很新颖的思路:prompt retriever,从而提高 LLM 的 zero-shot 的能力。

同时还研究了 prompt retriever 从训练的任务类型推广到其他未见过的任务类型,以及从小的 LLM 推广到更大规模的

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

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

相关文章

代码随想录算法训练营第六十三天|84.柱状图中最大的矩形

代码随想录算法训练营第六十三天|84.柱状图中最大的矩形 84.柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: 输入&…

真正的AI 设备:M4 加持iPad Pro

M4来了 北京时间 5/7 晚上,Apple正式发布了其M4 芯片,其对本地化的神经网络加速是一次越级的提升,第一次落地选在iPad上进行部署,从行业的角度是一个明智的选择,相比Mac Pro, iPad 的创作属性更加纯正&…

【YOLO 系列】基于YOLO V8的金属表面缺陷检测检测识别系统【python源码+Pyqt5界面+数据集+训练代码】

前言: 金属表面缺陷的及时检测对于保障产品质量和生产安全至关重要。然而,传统的人工检测方法往往效率低下、耗时长,并且容易受主观因素影响。为了解决这一问题,我们提出了基于深度学习技术的金属表面缺陷检测系统。 本项目采用…

配置OpenSSH/stelnet

其他远程连接工具:telent、realVNC、RSH、RCP等,SSH更加安全可靠 一、配置OpenSSH/stelnet 1.配置服务端 # vim /etc/ssh/sshd_config //修改ssh配置文件 Port 22 //监听端口 AddressFamily any //使用哪种地址簇,any包含v4、v6&#xff0c…

目前市面上堡垒机厂家有哪些?会帮忙部署吗?

随着大家对于网络安全的重视,越来越多的企业准备采购堡垒机了。不少企业在问,目前市面上堡垒机厂家有哪些?会帮忙部署吗?这里我们小编就来简单为大家回答一下,仅供参考哈! 目前市面上堡垒机厂家有哪些&…

SAM轻量化应用Auto-SAM、Group-Mix SAM、RAP-SAM、STLM

1. Auto SAM(Auto-Prompting SAM for Mobile Friendly 3D Medical Image Segmentation) 1.1 面临问题 医学背景: (1)与自然图像相比,医学图像的尺寸更小,形状不规则,对比度更低。&…

接口测试用例设计思路(通俗易懂)

一、接口测试的流程: 需求分析(需求文档、开发提供接口文档)→测试设计→测试用例评审→测试执行→验收→预发布→上线 二、基本功能流程测试: 冒烟测试(主业务的正向流程)、正常流程覆盖测试(正常分支的业务流程进行覆盖→分支覆盖、路径覆盖、业务场…

零基础怎么快速进行单细胞分析?

近一段时间正在努力学习单细胞相关的理论知识,发现单细胞测序和普通的真核细胞的转录组非常相似。两者之间的最大的区别在于,一个测的是单个细胞的表达,一个测的是一堆细胞的表达之和。所以从这里就可以理解,为什么网上很多教程都…

【c++算法篇】双指针(下)

🔥个人主页:Quitecoder 🔥专栏:算法笔记仓 朋友们大家好啊,本篇文章我们来到算法的双指针的第二部分 目录 1.有效三角形的个数2.查找总价格为目标值的两个商品3.三数之和4.四数之和5.双指针常见场景总结 1.有效三角形…

解决 SyntaxError: Unexpected token ‘.‘ 报错问题

这个报错一般是编译问题&#xff0c;浏览器的版本过低没通过代码 解决办法&#xff1a; 在package.json文件中加上这个 "browserslist": ["> 1%","last 2 versions","not dead","not ie < 6","Android > 4&…

98、技巧-颜色分类

思路 这道题的思路是什么&#xff0c;首先典型荷兰国旗问题&#xff1a; 该问题的关键在于我们要将所有的0放到数组的前部&#xff0c;所有的1放在中间&#xff0c;所有的2放在后部。这可以通过使用两个指针&#xff0c;一个指向数组开头的“0”的最后一个位置&#xff0c;另…

如何确保UDP文件传输工具有最低稳定的传输速度?

在当前日新月异的数字时代背景下&#xff0c;文件传输工具已经成为我们日常生活与工作中不可或缺的一部分&#xff0c;尤其针对那些频繁涉及即时数据交互与多媒体流通的场景。 UDP协议&#xff0c;以其突出的高速传输与低延迟特性&#xff0c;脱颖而出成为众多用户的首选。不过…

Python管理PVE(Proxmox VE)云平台--节点资源统计

一、前言 写本脚本的初衷是因手动查看统计已分配的PVE资源过于耗时&#xff0c;因此写一个脚本一劳永逸&#xff0c;具体实现方法&#xff1a;利用Python的paramiko模块进行远程命令查看、统计PVE平台各节点已分配的cpu、内存、磁盘空间。 二、步骤 1.构建shell脚本 1.1 统计…

Ubuntu系统下编译OpenCV4.8源码

OpenCV4.8源码编译与安装 其实很简单&#xff0c;只要三步即可搞定&#xff0c;第一步是下载指定版本的源码包&#xff1b;第二步是安装OpenCV4.8编译需要的编译器与第三方库支持&#xff1b;第三步就是编译OpenCV源码包生成安装文件并安装。 01下载OpenCV4.8源码包 在Ubunt…

解锁楼宇自动化新维度西门子Insight+BACnet IP I/O控制器

数字城市的楼宇自动化已不再是一个遥不可及的概念&#xff0c;而是成为了现代建筑的标配。特别是在大型商业综合体、高端写字楼和公共设施中&#xff0c;高效的楼宇管理系统是确保环境舒适度与能源效率的关键。当提及楼宇自动化领域的佼佼者&#xff0c;西门子Insight楼宇自动化…

KMeans,KNN,Mean-shift算法的学习

1.KMeans算法是什么&#xff1f; 在没有标准标签的情况下&#xff0c;以空间的k个节点为中心进行聚类&#xff0c;对最靠近他们的对象进行归类。 2.KMeans公式&#xff1a; 2. 1.关键分为三个部分&#xff1a; 1.一开始会定义n个中心点&#xff0c;然后计算各数据点与中心点…

jenkins使用gitLab(极狐)认证登陆

jenkins安装 GitLab Authentication插件 我因为java版本和最新GitLab Authentication 1.19版本不兼容&#xff0c;选择了本地安装 找个历史版本1.13版本&#xff0c;然后下载到电脑上 - 本地上传插件并安装 在极狐上创建一个应用 - 配置应用信息 应用名&#xff1a;jenkinsLo…

你以为是个黄金程序员,结果是个王者

玩过王者荣耀的同学都知道&#xff0c;从青铜到王者&#xff0c;过程中需要步步修炼&#xff0c;可以说等级的提升是胜利的积累&#xff0c;也可以说是技术的提升。 而程序员行业也是这样&#xff0c;技术越高段位越高&#xff0c;当然段位越高技术也越高&#xff0c;这个行业大…

Oracle -在线回缩表

conn scott/tiger DROP TABLE EMP1 PURGE; CREATE TABLE EMP1 AS SELECT * FROM EMP; alter table emp1 enable row movement; -- 启动回缩特性 insert into emp1 select * from emp1; / / commit; -- 增加到14000行 -- 分析表的结构 analyze table emp1 comput…

小程序如何确定会员身份并批量设置会员积分或余额

因为一些原因&#xff0c;商家需要从其它系统里面批量导入会员&#xff0c;确定会员身份&#xff0c;然后给他们设置对应的账户余额。下面&#xff0c;就具体介绍如何进行这种操作。 一、客户进入小程序并绑定手机号 进入小程序&#xff1a;客户打开小程序&#xff0c;系统会自…