当前位置: 首页 > news >正文

Automatic Prompt Engineering

让大模型自己生成prompt,生成提示(prompt)存在两种不同的操作方式。第一种方式是在文本空间中进行,这种提示以离散的文本形式存在。第二种方式是将提示抽象成一个向量,在特征空间中进行操作,这种提示是抽象的、连续的。

APE

论文地址:https://arxiv.org/abs/2211.01910

候选prompt自动生成

简单来说就是给答案,让LLM去反推prompt长什么样。典型例子如下:

由于LLM大多采用decoder-only结构,所以把需要生成的内容放在最后肯定是最合理的,作者管这种生成方法叫forward generation template。这个template看起来是作者自己设计的,这个template只是一个candidate生成器,评分的时候用的是生成的candidate,和这儿的template无关。

相应的,另一种叫reverse generation template,就是把需要生成的prompt放到文章中的任意位置。

最后一种是根据task不同来制定相应的模板,比如有的task就固定是某种问答结构,这时候你需要和task align一下。

所以这样我们就完成了prompt的自动生成。这里的prompt可以生成很多次(采样),从而生成一个候选集。

评估prompt分数

生成完了候选prompt,接下来就需要想个方法评价哪个prompt比较好。

我们需要先从训练集里取一个子集(就是取一些有gt的训练数据),然后把上一步生成的prompt丢进去。由于我们是有gt的,所以可以比对模型生成gt的概率,生成gt的概率越大说明prompt越好,从某种程度上说和PPL是差不多的东西。

重新采样

经过上述评估之后我们可以留下那些评分高的prompt(由你自己设置top k%),然后把这些好的prompt再送进LLM,让它生成意思相近的prompt,这样相当于再次扩充了候选集,之后可以再进行一轮评估。如此反复迭代即可。

APE针对的场景主要是那种短prompt+固定小任务。比如说我固定了我的任务是“找反义词”,那么我只需要用一些数据去找prompt,这个prompt固定下来之后就不用动了。

OPRO

论文地址:https://arxiv.org/pdf/2309.03409.pdf

在OPRO框架中,有两个主要的大型语言模型(LLM):一个担任评分者(scorer),负责对提示进行评分;另一个则作为优化器(optimizer),根据给定的提示模板来生成新的提示。

首先,我们向优化器提供一个问题描述(用紫色字体表示,如“做数学题”),以及一些已经过评分的提示和它们的分数(用蓝色字体表示,即这些提示已经被评分者评估过,以判断其准确性)。此外,还会提供一些额外的指令(用橙色字体表示)。

接下来,优化器的任务是根据问题描述和已评分的提示,生成一些新的提示。这些新生成的提示应当旨在获得尽可能高的分数。一旦生成了新的提示并获得了它们的分数,我们就会将这些新的提示-分数对加入到之前的蓝色字体部分。如果存在长度限制,我们可能会移除一些分数较低的提示-分数对,以保持提示集的精简和高效。

INSTINCT

如何给ChatGPT正确的prompt?

在强化学习中,我们面临着exploration-exploitation dilemma。想象一下,你想要出售一台二手电脑,你去了市场,第一个人出价50元,你可以选择立即卖给他(exploitation利用),但如果你认为价格不够理想,你可以选择继续寻找下一个买家(exploration探索)。然而,一旦你决定继续寻找,你就不能回头了。下一个买家的出价可能低于50元,也可能高于50元,这就是探索与利用之间的dilemma两难选择,也被称为bandit问题。通过bandit算法,你可以做出“某种选择”。

这个例子虽然简单,但在实际的强化学习场景中,搜索空间可能非常庞大(比如你有100件商品要卖,每件商品都有100个潜在的买家),在这种情况下,遍历整个搜索空间是不切实际的。为了克服这个难题,研究者们提出了一系列专门的算法,例如INSTINCT中采用的NeuralUCB算法,它就是一种bandit问题的算法。

迭代流程

INSTINCT的何改

INSTINCT的改进主要体现在两个方面:首先是提示生成的方式,其次是迭代逻辑的优化。

在提示生成方面,APE采用的传统方法是给定一个模板后生成候选提示;OPRO的提示生成方式本质上相似,但采用了更先进的生成技术(APE更像是随机抽样,而OPRO则通过不断更新条件来进行抽样)。INSTINCT则采用了全新的方法,它通过在隐空间中生成软提示(soft prompt)来得到所需的提示。这种方法的巧妙之处在于,尽管最终得到的提示是离散的,但在操作过程中却是在连续的提示空间中进行,这使得许多优化变得可能。

在迭代逻辑方面,APE的方法相对简单,它直接利用大型语言模型(LLM)根据现有提示生成语义相似的提示,而且这一步骤是可选的。OPRO的迭代方法更为先进,它提供了大量示例和评分;但是,将LLM作为优化器的方法似乎缺乏逻辑依据。

INSTINCT的迭代逻辑则更加现代化,它采用了NeuralUCB算法来迭代优化软提示,从而控制真实提示的生成。换句话说,在第一步训练的评分网络中,实际上蕴含了判断“哪个提示更好”的知识,然后通过NeuralUCB算法利用这些知识寻找“可能更好的提示”。如果找到了更好的提示,那自然是最理想的结果;即使没有找到,这也相当于对训练集进行了一次采样。

总的来说,INSTINCT的方法在技术上比前两者更为优雅,而且在结果上也表现得更好。

相关文章:

Automatic Prompt Engineering

让大模型自己生成prompt,生成提示(prompt)存在两种不同的操作方式。第一种方式是在文本空间中进行,这种提示以离散的文本形式存在。第二种方式是将提示抽象成一个向量,在特征空间中进行操作,这种提示是抽象…...

Spring高级面试题-2024

Spring 框架中都用到了哪些设计模式? 1. 简单工厂: ○ BeanFactory:Spring的BeanFactory充当工厂,负责根据配置信息创建Bean实例。它是一种工厂模式的应用,根据指定的类名或ID创建Bean对象。2. 工厂方法&#xff…...

用BSP优化3D渲染

3D渲染引擎设计者面临的最大问题之一是可见性计算:只必须绘制可见的墙壁和物体,并且必须以正确的顺序绘制它们(应该在远处的墙壁前面绘制近墙) 。 更重要的是,对于游戏等应用程序来说,开发能够快速渲染场景…...

Composer常见错误解决

Composer 是 PHP 社区广泛使用的一个依赖管理工具,它帮助开发者定义、管理和安装项目所需的库。在使用 Composer 的过程中,可能会遇到各种错误和问题。以下是一些常见的 Composer 错误及其解决方法: 1. 内存限制错误 错误信息:P…...

amazon中sns的使用

使用网页配置订阅 创建主题>使用标准>自定义名称>其他默认 点击创建即可 创建订阅 订阅策略配置(不配置,会推送给多个人,除非你每个都创建主题) 注意: 可以你可以随便写,后面的值只能是对象&am…...

web前端面试题----->VUE

Vue的数据双向绑定是通过Vue的响应式系统实现的。具体原理: 1. Vue会在初始化时对数据对象进行遍历,使用Object.defineProperty方法将每个属性转化为getter、setter。这样在访问或修改数据时,Vue能够监听到数据的变化。 2. 当数据发生变化时…...

计算机领域热门技术词汇

文章目录 计算机领域热门技术词汇1、机器学习 machine learning2、神经网络 neural network3、深度学习 deep learning4、自然语言处理 natural language processing5、计算机视觉 computer vision6、大数据 big data7、数据挖掘 data mining(DM)8、云计…...

jsp指令和动作

1.page指令:描述页面信息 pageENcoding:软件编码 contentType:浏览器编码 2.include指令:将多个网页合成一个网页,静态包含网页 问题:1.在网页源代码中,会形成错误的多遍代码,将主页面代码和…...

手撕算法-最小覆盖子串

描述 分析 滑动窗口。 参考力扣官方的题解思路 本问题要求我们返回字符串 s 中包含字符串 t 的全部字符的最小窗口。我们称包含 t 的全部字母的窗口为「可行」窗口。 我们可以用滑动窗口的思想解决这个问题。在滑动窗口类型的问题中都会有两个指针,一个用于「延伸…...

TrOCR—基于Transformer的OCR入门

导 读 本文主要介绍TrOCR:基于Transformer的OCR入门。 背景介绍 多年来,光学字符识别 (OCR) 出现了多项创新。它对零售、医疗保健、银行和许多其他行业的影响是巨大的。尽管有着悠久的历史和多种最先进的模型,研究人员仍在不断创新。与深…...

WIN使用LPD协议来共享打印机含统信UOS

打开“控制面板”,“程序和功能”,“启动或关闭Windows功能”,下拉找到“打印和文件服务”,勾选“LPD打印服务”和“LPR端口监视器”。确定之后重启电脑,共享主机和其它需要添加共享打印机的都开启功能和重启。 一、启…...

huawei 华为 交换机 配置 LACP 模式的链路聚合示例 (交换机之间直连)

组网需求 如 图 3-22 所示, SwitchA 和 SwitchB 通过以太链路分别都连接 VLAN10 和 VLAN20 的网络,且SwitchA 和 SwitchB 之间有较大的数据流量。用户希望 SwitchA 和 SwitchB 之间能够提供较大的链路带宽来使相同VLAN 间互相通信。在两台 Switch 设备上…...

c++ 有名对象和匿名对象

c 有名对象和匿名对象 有名对象就是有名字的对象&#xff0c;匿名对象就是没有名字的对象。 #define _CRT_SECURE_NO_WARNINGS 1 using namespace std; #include<iostream> class score { public:score(){math 100;chinese 100;english 100;}score(int _math, int _…...

day 36 贪心算法 part05● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

一遍过。首先把区间按左端点排序&#xff0c;然后右端点有两种情况。 假设是a区间&#xff0c;b区间。。。这样排列的顺序&#xff0c;那么 假设a[1]>b[0],如果a[1]>b[1]&#xff0c;就应该以b[1]为准&#xff0c;否则以a[1]为准。 class Solution { public:static bo…...

【数据结构与算法】快速排序(详解:快排的Hoare原版,挖坑法和双指针法|避免快排最坏时间复杂度的两种解决方案|小区间优化|非递归的快排)

引言 快速排序作为交换排序的一种&#xff0c;在排序界的影响力毋庸置疑&#xff0c;我们C语言中用的qsort&#xff0c;C中用的sort&#xff0c;底层的排序方式都是快速排序。相比于同为交换排序的冒泡&#xff0c;其效率和性能就要差的多了&#xff0c;本篇博客就是要重点介绍…...

三位数组合-第12届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第42讲。 三位数组合&#…...

Mongodb入门到入土,安装到实战,外包半年学习的成果

这是我参与「第四届青训营 」笔记创作活动的的第27天&#xff0c;今天主要记录前端进阶必须掌握内容Mongodb数据库,从搭建环境到运行数据库,然后使用MongodB; 一、文章内容 数据库基础知识关系型数据库和非关系型数据库为什么学习Mongodb数据库环境搭建及运行MongodbMongodb命…...

【C++初阶】之类和对象(下)

【C初阶】之类和对象&#xff08;下&#xff09; ✍ 再谈构造函数&#x1f3c4; 初始化列表的引入&#x1f498; 初始化列表的语法&#x1f498; 初始化列表初始化元素的顺序 &#x1f3c4; explicit关键字 ✍ Static成员&#x1f3c4; C语言中的静态变量&#x1f3c4; C中的静…...

Spring Boot 3 极速搭建OAuth2认证框架

本篇环境 Java 17Spring Boot 3.2.3Spring Authorization Server 1.2.3开发工具 SpringToolSuite4Spring Boot 3.2.3 需要JDK 17及之上的版本。 项目初始化 项目可以使用Spring的初始化器生成, 也可以创建一个Maven类型的项目。 项目创建后的目录结构如下: 项目配置 使用 …...

大数据开发(离线实时音乐数仓)

大数据开发&#xff08;离线实时音乐数仓&#xff09; 一、数据库与ER建模1、数据库三范式2、ER实体关系模型 二、数据仓库与维度建模1、数据仓库&#xff08;Data Warehouse、DW、DWH&#xff09;1、关系型数据库很难将这些数据转换成企业真正需要的决策信息&#xff0c;原因如…...

从论文到代码:手把手复现OpenPose手部检测(CMU开源模型),并教你用MediaPipe做个对比测试

从论文到实践&#xff1a;OpenPose与MediaPipe手部关键点检测深度评测 在计算机视觉领域&#xff0c;手部关键点检测技术正逐渐成为人机交互、增强现实和虚拟现实应用的核心组件。不同于面部或全身姿态估计&#xff0c;手部检测需要处理更精细的动作和更复杂的遮挡情况。本文将…...

.NET校招真实面经:手写代码、项目深挖、算法到底考什么

文章目录写在前面&#xff1a;校招面试就像相亲&#xff0c;你得先过了"眼缘"这一关第一部分&#xff1a;手写代码——别做"嘴强王者"&#xff0c;要做"手速达人"1.1 面试官为啥非要你手写代码&#xff1f;1.2 .NET校招手写代码到底考啥&#xf…...

极简音乐工具:重新定义纯粹听歌体验

极简音乐工具&#xff1a;重新定义纯粹听歌体验 【免费下载链接】tonzhon-music 铜钟 (Tonzhon.com): 免费听歌; 没有直播, 社交, 广告, 干扰; 简洁纯粹, 资源丰富, 体验独特&#xff01;(密码重置功能已回归) 项目地址: https://gitcode.com/GitHub_Trending/to/tonzhon-mus…...

Livekit Server分布式部署实测:手把手教你用Redis搞定多节点,并说清楚它和云服务的根本区别

Livekit Server分布式架构深度实战&#xff1a;Redis多节点部署与云服务本质差异解析 从单机到分布式&#xff1a;突破性能瓶颈的关键抉择 当你的Livekit单机服务开始出现CPU占用率持续超过80%、TURN服务延迟明显增加、房间创建响应时间超过500ms等现象时&#xff0c;就到了必须…...

3分钟,零代码!让Arduino看懂你的手势——Teachable Machine硬件魔法揭秘

3分钟&#xff0c;零代码&#xff01;让Arduino看懂你的手势——Teachable Machine硬件魔法揭秘 【免费下载链接】teachablemachine-community Example code snippets and machine learning code for Teachable Machine 项目地址: https://gitcode.com/gh_mirrors/te/teachab…...

wangEditor 5移动端兼容性深度解析:终极跨平台富文本编辑实战指南

wangEditor 5移动端兼容性深度解析&#xff1a;终极跨平台富文本编辑实战指南 【免费下载链接】wangEditor wangEditor —— 开源 Web 富文本编辑器 项目地址: https://gitcode.com/gh_mirrors/wa/wangEditor 在移动优先的时代&#xff0c;富文本编辑器的移动端兼容性已…...

显卡性能调优:从系统瓶颈到高效GPU资源分配的完整指南

显卡性能调优&#xff1a;从系统瓶颈到高效GPU资源分配的完整指南 【免费下载链接】Atlas &#x1f680; An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trending/atlas…...

石家庄整家定制哪个口碑好

在石家庄选择整家定制服务时&#xff0c;许多家庭会关注品牌的口碑、设计、环保与工艺。一个注重细节、提供系统解决方案的品牌&#xff0c;往往能更好地满足现代家居生活的需求。为什么整家定制受到青睐&#xff1f;整家定制能够根据户型、居住者习惯和审美偏好&#xff0c;提…...

路径规划算法大对决:A星、改进A星与新A星

A星 改进A星 新A星算法 路径规划 放在一张图上 对比 三天对比线在一张图 避障在路径规划领域&#xff0c;A星算法就像一位老将&#xff0c;一直以来都备受瞩目。而随着研究的深入&#xff0c;改进A星和新A星算法也相继登场&#xff0c;今天咱们就把这几位“选手”放在一…...

OpenRocket实战手册:从零到精通的火箭设计与仿真完全攻略

OpenRocket实战手册&#xff1a;从零到精通的火箭设计与仿真完全攻略 【免费下载链接】openrocket Model-rocketry aerodynamics and trajectory simulation software 项目地址: https://gitcode.com/GitHub_Trending/op/openrocket 你是否曾经梦想过设计自己的火箭&…...