再见了,提示~ 谷歌发布自适应提示方法,从此告别提示工程!

news2024/11/28 17:36:42

图片

 夕小瑶科技说 原创
 作者 | 谢年年、ZenMoore

大模型虽好,但却存在着一个恼人的问题:大模型回答得好不好,取决于我们问题问得怎么样。一个好的、详细的问题往往可以产生惊人的效果...

所以... ChatGPT 问世之后,最火的书可能不是《ChatGPT 技术原理》,而是《提示工程(Prompt Engineering)指南》(如何让 ChatGPT 更能听懂你的问题)。

一时间,全球人民都捧起了这本“咒语”教程,开始背诵各种各样的“施咒”技巧,比如“Let's take a breath...”,比如“You are my grandma...”,比如...

但是够了!真正的人工智能是不需要解释的,你解释得越多,智能就越智障。理想的情况是,大模型可以帮你对问题进行合理的解释,帮你把一个简陋的问题变成一个好问题,就像 DALL·E 3 的原理那样(p.s., DALL·E 3 使用 GPT-4 来优化用户提示,从而提升图像和用户需求的一致性)。

幸运的是,最近谷歌发布了一篇博客,一口气介绍了两篇相关论文,可能有望帮助我们摆脱繁琐的提示工程...

文章概览

LLM在少样本学习和零样本学习中所展现的问题解决能力令人惊喜,这大大降低了对标注数据的强依赖性。仅需一点点prompt魔法,就可以获得不错的效果。

比如零样本方法可以直接提出需求而不需要提供样例示范,其操作简单且普适性强,但对模型的指导完全依赖模型内部知识,性能通常较弱。

少样本学习相比零样本来说,通过提供示范能更好地指导LLM输出答案,但前提是给出的是一个高质量的示范,否则可能比没有示范还要糟糕。

来看一个数学推理问题的例子:给问题添加一个正确的示范可以引导出对测试问题的正确解答(Demo1与问题),而添加一个错误的示范(Demo2与问题,Demo3与问题)会导致错误的答案。其中Demo2是一个正确但推理过程重复的示范,这也导致了最终输出重复;Demo3提供的则是一个答案错误的示范。

图片

由此可见,样本示范的选择对LLM生成质量有很大的影响。

但对于复杂任务来说人工构造高质量示范样本难度很大,特别是对于需要领域知识的任务,如长文章摘要或医疗问题回答。因此自动生成可靠示范是非常有必要的。

为了解决这个困境,谷歌团队提出了一种名为 Consistency-Based Self-Adaptive Prompting(COSP)的方法,无需人工构造样本,仅使用无标签样本(通常容易获取)和模型自身的预测输出,即可构建LLM的伪示范,在推理任务中大大缩小了零样本和少样本之间的性能差距。同时本文还将这个思想扩展到广泛的通用自然语言理解(NLU)和自然语言生成(NLG)任务,在多个任务上展示了其有效性。这两篇工作分别被 ACL2023 和 EMNLP 2023 接收。

谷歌博客
https://blog.research.google/2023/11/zero-shot-adaptive-prompting-of-large.html

论文一标题
Better Zero-shot Reasoning with Self-Adaptive Prompting

论文一链接
https://aclanthology.org/2023.findings-acl.216/

论文二标题
Universal Self-Adaptive Prompting

论文二链接
https://arxiv.org/pdf/2305.14926.pdf

论文一:COSP

如果LLM对自己的答案很“自信”,那么应该在多次调用下输出相同答案,如果是这样,就说明该答案更可能是正确的,其置信度就比较高。因此可以考虑使用高置信度的输出及其输入作为伪示范。之所以叫做伪示范,是因为示范样例的答案仍然是LLM生成的并且没有经过真实答案检验。

基于此设想,COSP 方法的步骤如下:

  1. 将每个无标签的问题输入到LLM中,通过多次采样,模型将获得多个包含问题、生成的推理过程和答案的示范,并为其分配一个分数,以反映答案的一致性。输出次数越多的答案分数越高。

  2. 除了偏好更一致的答案外,COSP还惩罚回答中的重复问题(即重复的词语或短语),并鼓励选择多样性的示范。将一致的、非重复和多样化输出的偏好编码为一个评分函数,该函数由三个评分的加权和组成,用于选择自动生成的伪示范。

  3. 将伪示范与测试问题一起输入LLM中,并获得该测试问题的最终预测答案。

图片

论文二:USP

COSP专注于推理问答任务,这些问题有唯一答案很容易测量置信度。但是对于其他任务,比如开放式问答或生成任务(如文本摘要),则会变得困难。为了解决这个限制,作者引入了USP(Uncertainty-based Self-supervised Prompting),将该思想推广到其他常见的NLP任务上。

选择伪示范的方法因任务类型变化而有所不同:

  • 分类(CLS):LLM生成预测,使用神经网络计算每个类别的 logits, 并基于此选择置信度较高的预测作为伪示范。

  • 短文本生成(SFG):这类问题类似于问答任务,可以使用COSP中提到的相同步骤进行处理,LLM生成多个答案,并对这些答案的一致性进行评分。一致性较高的答案被选择作为伪示范。

  • 长文本生成(LFG):这类问题包括摘要和翻译等任务,通常是开放式的,即使LLM非常确定,输出也不太可能完全相同。在这种情况下使用重叠度度量,计算不同输出对于相同查询的平均ROUGE分数,选择具有较高重叠度的作为伪示范。

图片

总的来说,在第一个阶段,针对不同的任务类型,调用语言模型对无标签数据生成输出,并基于 logit 熵值、一致性或者重叠度等指标进行置信度打分,最后选择置信度高的样本作为上下文示范。在第二阶段,将这些伪的上下文示范作为语言模型输入的一部分,对测试数据进行预测。

实验结果

图片

▲图1

如图1所示,通过三个LLM在六个算术和常识推理问题上进行比较,相同的计算资源条件下,COSP方法在零样本设置下取得了更好的性能。通过自动生成的示范和策略性的选择示范,COSP能够提供更一致和相关的答案,从而提高了模型的推理能力。

图片

▲图2

如图2所示,对于USP,作者将分析扩展到更广泛的任务范围,包括超过25个分类任务、短文生成和长文生成任务。可以看到在不同的任务中,USP超越了zero-shot基准。

图片

▲图3

本文还针对BIG-Bench Hard任务进行了测试,如图3所示,每一行代表一个任务。以前LLM在这些任务中表现不如人类,而现在大部分任务上LLM都超越了人类的平均表现。而USP同样优于基线,即使是与人工制造的提示样本(图中3-shot)相比也具备一定的竞争力。

结论

总的来说,本文提到的COSP和USP方法通过自动构造伪样本的方式弥合了零样本与少样本之间的差距,对自然语言理解与生成一系列广泛的任务都适用。

加上前几天,我们解读的一个小妙招从Prompt菜鸟秒变专家!加州大学提出PromptAgent,帮你高效使用ChatGPT!文章中提到模型可以自动迭代优化Prompt,将平平无奇的prompt打造成媲美专家设计的prompt。现下,模型还可以自动生成伪示范,提升零样本的能力。继续发展下去,prompt工程师一职会不会也快要失业了呢?

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

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

相关文章

文心一言 VS 讯飞星火 VS chatgpt (128)-- 算法导论11.1 3题

三、用go语言,试说明如何实现一个直接寻址表,表中各元素的关键字不必都不相同,且各元素可以有卫星数据。所有三种字典操作(INSERT、DELETE和SEARCH)的运行时间应为O(1)(不要忘记 DELETE 要处理的是被删除对象的指针变量,而不是关键…

没想到这么齐全!这份 Python 实战干货yyds

今天我分享一些Python学习神器资料,有需要的小伙文末自行免费领取。 1.200Python练手案例: 2.Python全套视频教程等: 3.浙大Python学习套装: * 4.Python实战案例: 5.Pandas学习大礼包 6.学习手册大礼包 Python知识…

cocosCreator微信小游戏 之 登录流程(三)

creator版本: 3.8.0 语言: TypeScript 环境: Mac 流程 微信小游戏在微信平台中运行,第一步操作就是登录。在登录之后才能: 更方便的获取微信提供的用户身份标识更方便的验证数据传递的合法性 在微信平台中&#x…

如何在苹果Mac系统设置中查看Wi-Fi密码?

在 Mac 上查找保存的 Wi-Fi 密码的最简单方法之一是从系统设置内的高级 Wi-Fi 首选项页面。您可以通过下面的方式访问此页面来查找您保存的 Wi-Fi 密码。 1.在 Mac 上,选取「苹果菜单」选择「系统设置」。 2.从侧边栏中选择「Wi-Fi」,单击「高级」。 3.…

Git同时配置Gitee和GitHub

Git同时配置Gitee和GitHub 一、删除原先ssh密钥二、生成密钥 这里的同时配置是针对于之前配置过单个gitee或者github而言的,如果需要看git从安装开始的配置,则可以看这一篇文章 git安装配置教程 一、删除原先ssh密钥 在C盘下用户/用户名/.ssh文件下找到…

golang实现极简todolist

ToDoList 最近跟着qimi老师做了一个ToDoList,我做的GitHub地址贴在这里,但由于前端出了点问题,所以都是用postman进行测试 原项目地址 部分功能展示 删除代办 查找代办 下面给出思路 思路 其实这是一个很简单的增删改查的实现&#xff…

Linux命令--mkdir创建目录的方法

原文网址&#xff1a;Linux命令--mkdir创建目录的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Linux创建目录命令--mkdir的用法。 格式 mkdir [选项] 目录… -m, –mode模式&#xff0c;设定权限<模式> (类似 chmod)&#xff0c;而不是 rwxrwxrwx 减 umask-p, --p…

【java学习—十三】处理流之二:转换流(2)

文章目录 1. 相关概念2. 转换输入流3. 转换输出流 1. 相关概念 转换流提供了在字节流和字符流之间的转换。 Java API 提供了两个转换流&#xff1a;     InputStreamReader 和 OutputStreamWriter     当字节流中的数据都是字符时&#xff0c;转成字符流操作更高效。…

Python---字符串中的查找方法--rfind()与rindex()方法----括号里是要获取的字符串

r right&#xff0c;代表从右开始查找 基本语法&#xff1a; 字符串序列.rfind(子串) 字符串序列.rindex(子串) 强调&#xff1a; rfind()方法 与 rindex()方法 适合于查找子串在字符串中出现了多次的情况 rfind()方法 案例&#xff1a; 有一个文件名称叫20210310…

深度学习之基于Tensorflow卷积神经网络花卉识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 深度学习是一种机器学习方法&#xff0c;它通过模拟人脑神经网络的结构和功能来实现对数据的自动分析和学习。卷积神…

差生文具多之(一)eBPF

前言 在问题排查过程中, 通常包含: 整体观测, 数据采集, 数据分析这几个阶段. 对于简单问题的排查, 可以跳过前两个步骤, 无需额外收集数据, 直接通过分析日志中的关键信息就可以定位根因; 而对于复杂问题的排查, 为了对应用的行为有更完整的了解, 可以通过以下形式收集更多的…

程序员成长树

- 10年以后我在做什么&#xff1f; 成为项目负责人&#xff08;管理事、管理人&#xff09; - 如何处理同事的关系: 平时生活中最简单的一句问候&#xff0c;闲暇时间的聊天了解&#xff0c;互帮互助 - miss yang: - 1、软件UI设计 - 2、需求分析 - 3、协调推进任务的安排 …

linux 驱动——字符设备驱动(自动生成设备节点文件)

文章目录 字符设备驱动字符设备 APP生成 dev 节点的原理配置内核自动创建设备节点模块使用 字符设备驱动 #include "linux/device/class.h" #include "linux/export.h" #include "linux/uaccess.h" #include <linux/types.h> #include &l…

10 DETR 论文精读【论文精读】End-to-End Object Detection with Transformers

DETR 这篇论文&#xff0c;大家为什么喜欢它&#xff1f;为什么大家说它是一个目标检测里的里程碑式的工作&#xff1f;而且为什么说它是一个全新的架构&#xff1f; 大家好&#xff0c;今天我们来讲一篇 ECC V20 的关于目标检测的论文。它的名字想必大家都不陌生&#xff0c;也…

Python---字符串中的查找方法--index()--括号里是要获取的字符串

index()方法其功能与find()方法完全一致&#xff0c;唯一的区别在于当要查找的子串没有出现在字符串中时&#xff0c;find()方法返回-1&#xff0c;而index()方法则直接 报错。 find()方法相关链接&#xff1a;Python---字符串中的查找方法--find&#xff08;&#xff09;--括…

排序——冒泡排序

冒泡排序的基本思想 从前往后&#xff08;或从后往前&#xff09;两两比较相邻元素的值&#xff0c;若为逆序&#xff08;即 A [ i − 1 ] < A [ i ] A\left [ i-1\right ]<A\left [ i\right ] A[i−1]<A[i]&#xff09;&#xff0c;则交换它们&#xff0c;直到序列…

【漏洞复现】Nginx_(背锅)解析漏洞复现

感谢互联网提供分享知识与智慧&#xff0c;在法治的社会里&#xff0c;请遵守有关法律法规 文章目录 1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞扫描3、漏洞验证 1.5、深度利用GetShell 1.1、漏洞描述 这个漏洞其实和代码执行没有太大关系&…

基础Redis-Java客户端操作介绍

Java客户端操作介绍 2.基础-Redis的Java客户端a.介绍b.Jedisc.Jedis连接池d.SpringDataRedise.SpringDataRedis的序列化方式f.StringRedisTemplate 2.基础-Redis的Java客户端 a.介绍 Jedis 以Redis命令作为方法名称&#xff0c;学习成本低&#xff0c;简单实用。但是Jedis实例…

C++: 类和对象(中)

文章目录 1. 类的6个默认成员函数2. 构造函数构造函数概念构造函数特性特性1,2,3,4特性5特性6特性7 3. 析构函数析构函数概念析构函数特性特性1,2,3,4特性5特性6 4. 拷贝构造函数拷贝构造函数概念拷贝构造函数特性特性1,2特性3特性4特性5 5. 运算符重载一般运算符重载赋值运算符…

大模型进展的主要观点综述

大模型模式的意义可以用两个词来概括&#xff1a;涌现和同质化。涌现意味着一个系统的行为是隐含诱导的&#xff0c;而不是明确构建的;它既是科学兴奋的源泉&#xff0c;也是对意外后果的一种焦虑。同质化表示在广泛的应用程序中构建机器学习系统的方法的整合;它为许多任务提供…