[Google DeepMind] LARGE LANGUAGE MODELS AS OPTIMIZERS

news2025/1/21 12:19:17

Large Language Models as Optimizers

文章链接

在这里插入图片描述
总体架构Optimization by PROmpting (OPRO):最开始输入meta-prompt,这个初始的meta-prompt基本上只是对优化任务进行了描述(也会有few-shot example)。输入后LLM便会生成一个solution,这个solution由objective function评估并打分。(solution, score)组合成一对添加到meta-prompt中,如此完成一个循环。多次循环后取分数最高的solution作为优化结果。

meta-prompt design

meta-prompt分为两部分,问题描述和优化轨迹,问题描述就是用自然语言描述想要优化的问题,比如“generate a new instruction that achieves a higher accuracy”。而优化弹道(Optimization trajectory)则是指之前提到的(solution, score)对,即之前生成的解决方案和对应的分数,可以看作优化的“日志”。但是要注意这个弹道不是按时间顺序排的,而是按照打分升序排的。因为之前的研究也发现,越靠后的样例对输出的影响越大,所以把分数高的排在后面有利于LLM向其学习。

下图是一个meta-prompt的示例:
在这里插入图片描述

solution generation

稳定性:由于生成的solution并不一定就是好的,特别是在优化的初期,将这些烂solution加入meta-prompt可能对后续优化产生负面影响,这也会导致整个优化过程不稳定。所以作者让每个优化步生成多个solution,这样可以更好的explore找到好的方向。

explore-exploit tradeoff: 温度低的时候LLM倾向于exploit,而温度高的时候模型倾向于explore。

Application

整个优化框架甚至可以优化数值问题,比如线性回归和旅行商问题,在这里我们着重说一下其在prompt优化上的应用。

还是如上面贴的图所示,这基本上就是作者给LLM的meta-prompt的全部组成部分了。橙色的为meta-instruction,第一段告诉LLM prompt中的优化弹道是什么意思,第二段告诉LLM输入输出的格式,第三段则告知LLM它的任务是什么。蓝色的部分就是优化弹道没啥好说的,紫色的部分则是一些few-shot examples,配合第二段meta-instruction让LLM明白数据集是什么以及输入输出格式。这个样例可以是每个优化步随机采样得到的,也可以是上一个instruction做错的。

这个优化任务的打分就很简单了,直接用prompt在数据集上的正确率。优化弹道按照分数升序排列,在prompt的长度限制内,每次优化完更新并保留得分高的instruction。

测试的时候还比较了这个优化出来的instruction放在不同位置对表现的影响,分为Q_begin(放在问题前面), Q_end(放在问题后面), A_begin(放在答案第一句话)如下图:
在这里插入图片描述
实验结果如下:
在这里插入图片描述
可以看到基本上还是同种模型来自己优化自己效果好,跨模型的提升没有那么明显。

作者在GSM8K上做优化只用了3.5%的样例,整个GSM8K的训练集有7473条数据,也就是说只用了261条左右个问题就把prompt优化出来了。整个迭代次数也就80-200次,在BBH上则是20%的样例150-200次,整个收敛还是很快的,主要取决的LLM的速度。

消融实验

meta-prompt design

分析了meta-prompt中可能影响表现的因素

  • 优化弹道的顺序
    在这里插入图片描述
    显然升序效果比较好,降序最差,随机介于两者之间。

  • 打分的呈现形式
    在这里插入图片描述
    有百分制、二十分制和不给打分默认升序排列,可以看到效果没有那么明显,但基本上还是百分制有优势,说明给分给细一点更能让LLM明白不同问题的优劣区别。

  • 样例数量
    在这里插入图片描述
    从图上看,3个样例的效果最好,10个样例和无样例效果都远不如3个样例的效果好,作者分析说example很重要,因为它提供了有关任务的信息,并帮助优化器模型更好优化指令。 然而,更多的示例并不一定会提高性能,因为几个示例通常足以描述任务。 此外,包含更多样本会稀释meta-prompt的其他部分,分散 LLM 对其他重要部分(如优化弹道)的注意力。

初始prompt


影响不是很大,200轮基本都能收敛,起点好的要收敛的更快一些。

温度

在这里插入图片描述
跟前面分析的差不多,温度高explore多exploit少,温度低exploit多explore少,温度为1最好。

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

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

相关文章

解决SpringMVC在JSP页面取不到ModelAndView中数据

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 问题描述 ModelAndView携带数据跳转到指定JSP页面后在该页面通过EL表达式取不到原本存放在ModelAndView中的数据。 问题原因 在IDEA中创建Maven工程时web.xml中默认的约束…

贝叶斯网络实战(附代码)

贝叶斯网络实战 1. 建立虚拟环境2. 学生是否获得推荐信3. 泰坦尼克数据集预测存活人员参考 1. 建立虚拟环境 conda create -n BayesNN38 python3.8 conda activate BayesNN38 pip install pgmpy2. 学生是否获得推荐信 代码如下: from pgmpy.models import Bayesia…

Spring Boot集成EasyExcel实现数据导出

在本文中,我们将探讨如何使用Spring Boot集成EasyExcel库来实现数据导出功能。我们将学习如何通过EasyExcel库生成Excel文件,并实现一些高级功能,如支持列下拉和自定义单元格样式,自适应列宽、行高,动态表头 &#xff…

处理:对于移动类型Z21和帐户8051010100 供应商货物移动 (014)的不同的字段选择

对于移动类型Z21和帐户8051010100 供应商货物移动 (014)的不同的字段选择 消息编号 M7093 诊断 来自 移动类型Z21和 总帐科目8051010100的字段选择串的比较显示了在一点或更多点处有不兼容的字段选择组合。 字段选择不同的字段:供应商货物移动 范例 在移动类型屏幕上…

JavaScript逻辑题:输出1000之内的所有完数。所谓完数指的是:如果一个数恰好等于它的所有因子之和,这个数就称为完数。

// 定义函数function judgeNum(){// 定义数组存储完数let arr []// for循环1000以内的所有数for(let i 1;i<1000;i){// 定义sum存储一个数的因子之和let sum 0;// 内层循环一个数的因子for(let j 1;j<i;j){if(i % j 0){sum j;}}// 如果一个数和它的因子之和相等&am…

【idea】将已有项目文件夹添加为项目模块

前后效果 变更方法 适用场景 项目为maven项目适用&#xff0c;如果不是maven项目不适用

IDEA指定Maven settings file文件未生效

背景&#xff1a;在自己电脑上配置的时候&#xff0c;由于公司项目和我自己的项目的Maven仓库不一致&#xff0c;我就在项目中指定了各自的Maven配置文件。但是我发现公司的项目私有仓库地址IDEA总是识别不到&#xff01; 俩个配置文件分别是&#xff1a; /Users/sml/Mine/研发…

Vue3 快速入门和模板语法

vite方式建立项目 1.安装vue vite组件 # 安装组件或更新 npm i vite vue -g# 建立项目 npm init vue v301 cd v301 npm run dev# 建立项目 vue create vue v302 cd v302 npm run dev 2. 配置项目vite.config.ts import {fileURLToPath, URL} from node:urlimport {defineConfi…

web-案例

分页插件 登录 事务

Docker进阶:Docker Compose(容器编排) 管理多容器应用—实战案例演示

Docker进阶&#xff1a;Docker Compose&#xff08;容器编排&#xff09; 管理多容器应用—实战案例演示 一、Docker Compose简介二、Docker Compose安装三、Docker Compose卸载四、Docker Compose核心概念4.1、一文件原则&#xff08;docker-compose.yml&#xff09;4.2、服务…

时间序列场景下多种数据填充算法实践与对比分析

在时间序列建模任务中&#xff0c;模型往往对于缺失数据是比较敏感的&#xff0c;大量的缺失数据甚至会导致训练出来的模型完全不可用&#xff0c;在我前面的博文中也有写到过数据填充相关的内容&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a; 《python 基于滑动平均…

硬件学习 PAD9.5 day01 原理图布局开始设置, 元器件的调用和绘制, 新建库, 库添加元器件,

1. 原理图的布局设置 1.1 打开布局设置界面 1.2. 布局设置界面 1.3. 界面大小设置 自己 点击框里的 向下的箭头 获取更多的选择。 1.4 包括白框的的大小 2. 元器件的调用 和绘制 2.1. 打开一个库 和 新建一个库 1. 进入新建库的界面 和选择系统自带的库 2.2 绘制新的器件的…

【计算机视觉 | 目标检测】干货:目标检测常见算法介绍合集(四)

文章目录 四十六、Parallel Feature Pyramid Network四十七、ScanSSD四十七、RetinaMask四十八、CornerNet-Saccade四十九、CentripetalNet五十、Fast Focal Detection Network五十一、CornerNet-Squeeze五十二、Paddle Anchor Free Network五十三、Human Robot Interaction Pi…

[Rust GUI]eframe(egui框架)代码示例

-2、eframe代替品 你可以使用egui的其他绑定&#xff0c;例如&#xff1a;egui-miniquad&#xff0c;bevy_egui&#xff0c;egui_sdl2_gl 等。 -1、注意 egui库相当于核心库&#xff0c;需要借助eframe框架就可以写界面了。 eframe使用egui_glow渲染&#xff0c;而egui_glow…

华为云云耀云服务器L实例评测 | 强大性能与高可靠性的完美结合

华为云云耀云服务器L实例评测 | 瑞吉外卖下载与部署_软工菜鸡的博客-CSDN博客 上次发布了一篇手把手带领读者在华为云服务器搭建后端程序员无人不知的 瑞吉外卖 项目&#xff0c;效果良好&#xff0c;很多粉丝给我反馈还想学习别的项目以及其它软件的服务器部署&#xff0c;这不…

Mobpush与A/B测试:覆盖多应用场景下的精细化运营神器

在信息爆炸的移动应用领域&#xff0c;实现长效稳定的用户增长的关键在于能够和用户建立互信、持久的联系。而优质的推送内容不仅可以提高用户参与度和留存率&#xff0c;还有助于增加收入、改善用户体验&#xff0c;以及建立强大的用户社区。但千人一面的推送很难同时满足不同…

网络安全宣传周|探索AI数字人的魅力和价值所在

9月11日至9月17日是国家网络安全宣传周&#xff0c;在福州举办的安全博览会上有着多种人工智能模型产品亮相现场&#xff0c;吸引着众多参观者的目光&#xff0c;尤其是AI数字人面对不同的问题、不同的场景都可以进行实时响应&#xff0c;不同于冷冰冰的传统智能客服的对话场景…

c++day6---9.13

思维导图&#xff1a; 改变类型只需将选择功能函数中的Zhan<double> z;中的double改为相对的类型: 栈&#xff1a; 头文件&#xff1a; #ifndef ZHAN_H #define ZHAN_H #include <iostream>using namespace std;template<typename T> class Zhan { privat…

RK3399 android7.1 实现双wifi功能 STA+AP

wifi模组&#xff1a; 主板使用的wifi模块为海华AW-NM43438W模组以及客户提供了一款USB接口的5G双频无线网卡RTL8821CU。 双wifi功能实现效果&#xff1a; 主板自带的wifi模组作为station正常连接外部wifi,USB接口的外接网卡作为AP&#xff08;热点&#xff09;供其他设备连接…

JavaScript逻辑题:牙膏2元 牙刷5元 牙膏盒15元 请问正好花完100元 有多少情况?

// 定义牙膏 牙刷 牙膏盒分别的价格 let toothpaste 0;let toothbrush 0;let toothpastebox 0;// 定义sum用来存储几种情况let sum 0;//第一层循环 循环牙膏买多少for (let i 0; i < 20; i){toothpaste 5 * i;// 二层循环 循环牙刷的数量for (let j 0; j < 50; j…