您当前的位置:首页 > 电脑百科 > 程序开发 > 算法

强过AutoGPT!微软重磅研究提出APO算法,「自动提示」淘汰提示工程师

时间:2023-05-22 17:13:33  来源:  作者:新智元

新智元报道

编辑:桃子

【新智元导读】手写提示既费时又费力,微软研究人员的APO算法提供了一种自动化的解决方案。无需调整超参数或模型训练,APO可以显著提高提示的性能,并具有可解释性。

模型调教得好不好,提示(prompt)最重要。

在优化和改进提示工程的过程中,提示变得越来越精巧、复杂。

google Trends,提示工程在过去的6个月受欢迎程度急剧上升,到处都是关于提示的教程和指南。

比如,一个在网上爆火的提示工程指南Github已经狂澜28.5k星。

然而,完全用试错法开发提示可能不是最有效的策略。

为了解决这个问题,微软研究人员开发了一种全新提示优化方法,称为自动提示优化(APO)。

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

手写提示省了

近来,各种迹象表明,在大规模网络文本中训练的大型语言模型在跨越各种NLP任务中有时表现不佳。

这些LLMs都是通过提示来遵循人的指令。然而,编写这些自然语言提示仍然是一个手工试错的过程,需要人们付出巨大努力,甚至还得具备专业知识。

因此,还得需要自动,或半自动的程序来帮助程序员写出最好的提示。

最近的一些研究,通过训练辅助模型,或对提示进行可微表示来研究这个问题。

然而,这些工作假定可以访问到LLM的内部状态变量,而实操的人通常通过API与LLM进行交流。

其他的工作则通过强化学习或LLM基础反馈对提示进行离散操做。

这些算法也可能需要对LLM的低级访问,还会产生不可理解的输出,或依赖于无方向蒙特卡罗搜索(monte-carlo search)的语义空间上的提示。

对此,微软研究人员提出了自动提示优化(APO),一个通用的和非参数提示优化算法。

APO是一种受数值梯度下降(numerical gradient descent)启发的通用非参数提示优化算法,旨在自动化和改进LLM的快速开发过程。

APO算法的整体框架

这一算法建立在现有的自动化方法的基础上,包括训练辅助模型,或提示的可微表示,以及使用强化学习或基于LLM的反馈进行离散操作。

与以前的方法不同,APO通过在基于文本的苏格拉底对话(Socratic dialogue)中使用梯度下降法来解决离散优化的障碍。

它用LLM反馈代替了差异,用LLM编辑代替了反向传播。

更具体来讲,该算法首先利用小批量的训练数据获得自然语言「梯度」,以描述给定提示中缺陷的。

这些梯度指导编辑过程,在梯度的相反语义方向上编辑当前提示符。

然后,再进行更广泛的集束搜索(beam search),以扩大提示的搜索空间,将提示最佳化问题转化为集束候选的选择问题。

非参数「梯度下降」的离散提示优化

自动提示优化框架假设可以访问由输入和输出文本对(数字、类别、汇总等)组成的初始提示

训练数据:。

要注意的是,所有提示p都是从相干自然语言的空间中提取的。

研究人员假设访问了一个黑盒LLM API,,它返回由连接p和x组成的提示符可能的文本延续y (例如,少样本提示符和输入示例,或Chatbot角色和对话历史)。

在这种情况下,APO算法迭代精化了提示

以产生,对于某些度量函数

和域内测试或开发数据

,这是最佳提示的一个近似。

梯度下降

在研究的设置中,梯度下降法是指 (1) 用一批数据评估提示符的过程,(2) 创建一个局部丢失信号,其中包含关于如何改进当前提示符的信息,然后 (3) 在开始下一次迭代之前,在梯度的相反语义方向编辑提示符。

在此,研究人员使用一对静态LLM提示来完成这个过程,如图所示。

第一个提示是创建丢失信号「梯度」,叫做

虽然特定的内容可能会有所不同,但是

必须始终考虑当前提示

,以及

在一小批数据(特别是错误数据集)上的行为,并生成缺陷的自然语言摘要。这个摘要变成了梯度。

就像传统的梯度一样,梯度表示参数空间中的一个方向,这会使模型用当前提示描述缺陷的自然语言空间变得更糟糕。

第二个提示符叫做

,虽然这个提示符也是变化的,但它必须始终采用梯度和当前提示符,然后在与相反的语义方向上对执行编辑,即修复指示的问题。

与传统的机器学习设置不同,研究人员并没有生成一个单一的梯度或编辑,而是生成了一些方向,可以改善当前的提示。

集束搜索

接下来,研究者描述了梯度下降用于指导集束搜索在提示符空间上的运行。这个集束搜索是提示训练算法的外部循环。

集束搜索是一个迭代优化过程,在每次迭代中,当前提示符用于生成许多新的候选提示符。

接下来,一个选择过程就是用来决定哪些提示,值得继续进行到下一次迭代。这个循环允许对多个提示符候选进行增量改进和探索。

实验评估

为了评估 APO 的有效性,微软研究小组将其与三种最先进的NLP任务即时学习基线进行了比较,包括越狱检测、仇恨语音检测、假新闻检测和讽刺检测。

APO在所有四个任务中都持续超越基线,在蒙特卡洛(MC)和强化学习(RL)基线上取得了显著的进步。

平均而言,APO比MC和RL基线分别提高了3.9%和8.2% ,比原始提示

提高了15.3% ,比AutoGPT提高了15.2%。

结果表明,提出的算法可以提高初始提示输入31%的性能,超过最先进的提示学习基线平均4-8% ,而依赖较少的LLM API调用。

此外,研究人员还展示了优化过程的可解释性,并调查了算法的缺点。

值得注意的是,这些改进是在没有额外的模型训练或超参数优化的情况下完成的,这表明了APO如何有效改进了LLM的提示。

对于提示工程来说,APO的出现是非常兴奋的。

APO通过使用梯度下降法和集束搜索自动化快速优化提示过程,减少了快速开发所需的人力和时间。

实证结果表明,该模型能够在一系列自然语言处理任务中迅速提高质量。

越狱是一项新的任务,目标是确定用户对LLM的输入是否代表越狱攻击。我们将越狱攻击定义为一种用户互动策略,旨在让AI打破自己的规则。

发现微软研究员带来的改变游戏规则的自动提示优化(APO)!一个强大的通用框架,用于优化LLM提示。

参考资料:

https://arxiv.org/pdf/2305.03495.pdf



Tags:APO算法   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
强过AutoGPT!微软重磅研究提出APO算法,「自动提示」淘汰提示工程师
新智元报道编辑:桃子【新智元导读】手写提示既费时又费力,微软研究人员的APO算法提供了一种自动化的解决方案。无需调整超参数或模型训练,APO可以显著提高提示的性能,并具有可解...【详细内容】
2023-05-22  Search: APO算法  点击:(371)  评论:(0)  加入收藏
▌简易百科推荐
小红书、视频号、抖音流量算法解析,干货满满,值得一看!
咱们中国现在可不是一般的牛!网上的网友已经破了十个亿啦!到了这个互联网的新时代,谁有更多的人流量,谁就能赢得更多的掌声哦~抖音、小红书、、视频号,是很多品牌必争的流量洼地...【详细内容】
2024-02-23  二手车小胖说    Tags:流量算法   点击:(13)  评论:(0)  加入收藏
雪花算法详解与Java实现:分布式唯一ID生成原理
SnowFlake 算法,是 Twitter 开源的分布式 ID 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 ID。在分布式系统中的应用十分广泛,且 ID 引入了时间戳...【详细内容】
2024-02-03   一安未来  微信公众号  Tags:雪花算法   点击:(50)  评论:(0)  加入收藏
程序开发中常用的十种算法,你用过几种?
当编写程序时,了解和使用不同的算法对解决问题至关重要。以下是C#中常用的10种算法,每个算法都伴随着示例代码和详细说明。1. 冒泡排序 (Bubble Sort):冒泡排序是一种简单的比...【详细内容】
2024-01-17  架构师老卢  今日头条  Tags:算法   点击:(44)  评论:(0)  加入收藏
百度推荐排序技术的思考与实践
本文将分享百度在推荐排序方面的思考与实践。在整个工业界的推广搜场景上,特征设计通常都是采用离散化的设计,需要保证两方面的效果,一方面是记忆,另一方面是泛化。特征都是通过...【详细内容】
2024-01-09  DataFunTalk  微信公众号  Tags:百度推荐   点击:(77)  评论:(0)  加入收藏
什么是布隆过滤器?如何实现布隆过滤器?
以下我们介绍了什么是布隆过滤器?它的使用场景和执行流程,以及在 Redis 中它的使用,那么问题来了,在日常开发中,也就是在 Java 开发中,我们又将如何操作布隆过滤器呢?布隆过滤器(Blo...【详细内容】
2024-01-05  Java中文社群  微信公众号  Tags:布隆过滤器   点击:(87)  评论:(0)  加入收藏
面向推荐系统的深度强化学习算法研究与应用
随着互联网的快速发展,推荐系统在各个领域中扮演着重要的角色。传统的推荐算法在面对大规模、复杂的数据时存在一定的局限性。为了解决这一问题,深度强化学习算法应运而生。本...【详细内容】
2024-01-04  数码小风向    Tags:算法   点击:(95)  评论:(0)  加入收藏
非负矩阵分解算法:从非负数据中提取主题、特征等信息
非负矩阵分解算法(Non-negativeMatrixFactorization,简称NMF)是一种常用的数据分析和特征提取方法,主要用于从非负数据中提取主题、特征等有意义的信息。本文将介绍非负矩阵分解...【详细内容】
2024-01-02  毛晓峰    Tags:算法   点击:(63)  评论:(0)  加入收藏
再谈前端算法,你这回明白了吗?
楔子 -- 青蛙跳台阶一只青蛙一次可以跳上一级台阶,也可以跳上二级台阶,求该青蛙跳上一个n级的台阶总共需要多少种跳法。分析: 当n=1的时候,①只需要跳一次即可;只有一种跳法,即f(...【详细内容】
2023-12-28  前端爱好者  微信公众号  Tags:前端算法   点击:(108)  评论:(0)  加入收藏
三分钟学习二分查找
二分查找是一种在有序数组中查找元素的算法,通过不断将搜索区域分成两半来实现。你可能在日常生活中已经不知不觉地使用了大脑里的二分查找。最常见的例子是在字典中查找一个...【详细内容】
2023-12-22  小技术君  微信公众号  Tags:二分查找   点击:(78)  评论:(0)  加入收藏
强化学习算法在资源调度与优化中的应用
随着云计算和大数据技术的快速发展,资源调度与优化成为了现代计算系统中的重要问题。传统的资源调度算法往往基于静态规则或启发式方法,无法适应动态变化的环境和复杂的任务需...【详细内容】
2023-12-14  职场小达人欢晓    Tags:算法   点击:(165)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条