Prompt 技巧指南-让 ChatGPT 回答更准确

news2024/11/27 10:24:36

随着 ChatGPT 等大型语言模型 (LLM)的兴起,人们慢慢发现,怎么样向 LLM 提问、以什么技巧提问,是获得更加准确的回答的关键,也由此产生了提示工程这个全新的领域。

提示工程(prompt engineering)是一门相对较新的领域,用于开发和优化提示以有效地将语言模型 (LM) 用于各种应用程序和研究主题。即时的工程技能有助于更好地理解LLM的功能和局限性。研究人员使用提示工程来提高 LLM 在广泛的常见和复杂任务(例如问题回答和算术推理)上的能力。开发人员使用提示工程来设计与 LLM 和其他工具交互的强大且有效的提示技术。

本指南介绍一些常见的 prompt 高级方法,可以帮助你从 LLM 得到更加准确的回答。


Zero-shot (零样本)

即不提供任何参考回答案例,直接问问题,这是最简单的,也是人机交互或者聊天时,最常见的方式。

Prompt:

1 Classify the text into neutral, negative, or positive. 
2 
3 Text: I think the vacation is okay.
4 Sentiment:

输出:

Neutral

Few-Shot (少样本)

虽然大型语言模型已经展示了卓越的零样本能力,但在使用零样本设置时它们仍然无法完成更复杂的任务。为了改进这一点,使用少量提示作为一种技术来启用上下文学习,在提示中提供样例以引导模型获得更好的性能。这些样例用作后续示例的条件,我们希望模型在这些示例中生成响应。

Prompt:

1 A "whatpu" is a small, furry animal native to Tanzania. An example of a sentence that uses
2 the word whatpu is:
3 We were traveling in Africa and we saw these very cute whatpus.
4 To do a "farduddle" means to jump up and down really fast. An example of a sentence that uses
5 the word farduddle is:

输出:

When we won the game, we all started to farduddle in celebration.

我们可以观察到,该模型仅通过提供一个示例(即 1-shot)就以某种方式学会了如何执行任务。对于更困难的任务,我们可以尝试增加样例(例如,3-shot、5-shot、10-shot 等)。


Chain-of-Thought(CoT)

当我们问一个稍微复杂的问题,可能会得到错误的回答。

Prompt:

1 The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1. 
2 
3 A: 

输出:

Yes, the odd numbers in this group add up to 107, which is an even number.

这不是正确的回答,这个例子表现出了原始模型的局限性,也意味着需要更高级的提示工程。

思想链 (CoT)提示可以通过中间推理步骤启用复杂的推理能力。我们可以将它与少量提示结合使用,以便更复杂的推理任务中获得更好的结果。比如在上面的例子中,我们用 CoT 方法即可得到正确的结果。

Prompt:

1 The odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.
2 A: Adding all the odd numbers (9, 15, 1) gives 25. The answer is False.
3 
4 The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1. 
5 A:

输出:

Adding all the odd numbers (15, 5, 13, 7, 1) gives 41. The answer is False.

Zero-Shot CoT

Zero-shot 可以和 CoT 结合起来用,即不给例子,直接让 LLM 在回答里带上一步步思考,并得到最后的答案。这样即省了 token 的消耗,又可以得到准确的答案。最常见的一种方式是在问题后面加上 "Let's think step by step"。

Prompt:

1 I went to the market and bought 10 apples. I gave 2 apples to the neighbor and 2 to the repairman. I then went and bought 5 more apples and ate 1. How many apples did I remain with?
2 
3 Let's think step by step.

输出:

1 First, you started with 10 apples.
2 You gave away 2 apples to the neighbor and 2 to the repairman, so you had 6 apples left.
3 Then you bought 5 more apples, so now you had 11 apples.
4 Finally, you ate 1 apple, so you would remain with 10 apples.

Automatic Prompt Engineer (APE)

 

自动提示工程 (Automatic Prompt Engineer,APE )将“用 prompt 生成问题”定义为“自然语言合成”,是一个黑盒优化问题。它首先使用一个大型语言模型(作为推理模型)提供输出样例,以生成任务的候选 prompt。这些候选解决方案将指导搜索过程。APE 最后会使用目标模型执行 prompt,然后根据计算的评估分数选择最合适的 prompt。


PAL (Program-Aided Language Models)

Program-Aided Language Models(程序辅助语言模型)使用 LLM 阅读自然语言问题,并生成程序作为中间推理步骤的方法。(PAL) 与思维链提示的不同之处在于,它不是使用自由格式的文本来获得解决方案,而是将解决方案步骤变为编程代码运行,提高了结果的准确性。该方法的缺点是需要较长的提示样例,通常也是一些程序代码,这样才能让 LLM 也用代码回答。

 

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

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

相关文章

Milk-V Duo开发板之TF扩容

起因 开发板正式进入系统后,然后通过SSH的方案登录进入,进入以后,使用df -h命令查看,会发现ROOTFS的容量仅仅只有245.9MB,而我们的boot分区的容量也不过128MB,那么我的TF卡一共32GB,剩下的容量…

windows mysql 自动启动bat脚本

上一篇:windows mysql服务自动启动 错误模块名称:ntdll.dll_csdn_aspnet的博客-CSDN博客 根据上一篇文章进行手动启动mysql服务补充,由于演示机器系统安装的为win11家庭版,为了安全起见,在项目演示期间,避免数据库使用…

基于 Junit 的接口自动化测试框架实现

目录 前言: 分层的自动化测试 接口测试的意义 接口测试框架选型 我们封装的接口测试框架 接口测试关键实践 测试代码规范 (仅供参考) 前言: 基于JUnit的接口自动化测试框架可以实现对接口进行自动化测试,并提供了丰富的断言和报告功能…

PALO ALTO NETWORKS 的新一代防火墙如何保护企业安全

轻松采用创新技术、阻止网络攻击得逞并专注更重要的工作 IT 的快速发展已改变网络边界的面貌。数据无处不在,用户可随时随地从各类设备访问这些数据。同时,IT 团队正在采用云、分析和自动化来加速新应用的交付以及推动业务发展。这些根本性的转变带来了…

Kakfa - 多副本架构

文章目录 基本架构Kafka 多副本架构概念优点缺点 图解多副本架构小结 基本架构 Kafka 多副本架构 概念 Kafka 是一个高性能、分布式的消息系统,被广泛应用于各种场景中。在 Kafka 中,多副本架构是保证数据可靠性的重要手段之一。 多副本架构指的是将同…

【动手学深度学习】--12.深度卷积神经网络AlexNet

文章目录 深度卷积神经网络AlexNet1.AlexNet2.模型设计3.激活函数4.模型实现5.读取数据集6.训练AlexNet 深度卷积神经网络AlexNet 学习视频:深度卷积神经网络 AlexNet【动手学深度学习v2】 官方笔记:深度卷积神经网络(AlexNet) …

Qt的三大优势,打造高效工业软件开发:

强大的跨平台特性:Qt拥有优良的跨平台支持,可以在众多操作系统上运行,包括Microsoft Windows、Linux、Solaris、HP-UX、FreeBSD、QNX等等。这使得开发者可以轻松地将应用程序部署到不同的平台上,提高开发效率和覆盖范围。 面向对…

基于R语言的水文、水环境模型优化技术及快速率定方法与多模型案例实践

在水利、环境、生态、机械以及航天等领域中,数学模型已经成为一种常用的技术手段。同时,为了提高模型的性能,减小模型误用带来的风险;模型的优化技术也被广泛用于模型的使用过程。模型参数的快速优化技术不但涉及到优化本身而且涉…

linux之Ubuntu系列(七)用户管理 终端命令 su 切换用户

# 切换用户 zenxx:su - sup # 录入sup 密码 supxx:$ 切换root用户

Bard:Google AI开始支持中文对话和看图说话了

说起时下火爆的生成式AI,并不是只有ChatGPT。Bard也是一个很优秀的产品,并且刚刚发布的很多有趣的新功能。文末告诉你如何访问Bard。 Google AI在最近的更新中发布了Bard,一个新的语言模型。Bard支持多种语言,包括中文&#xff0…

linux之Ubuntu系列(五)用户管理、查看用户信息 终端命令

创建用户 、删除用户、修改其他用户密码的终端命令都需要通过 sudo 执行 创建用户 设置密码 删除用户 sudo useradd -m -g 组名 新建用户名 添加新用户 -m:自动建立用户 家目录 -g:指定用户所在的组。否则会建立一个和用户同名的组 设置新增用户的密码&…

7、PHP语法要点2

1、or 和 ||,&& 和 and 都是逻辑运算符,效果一样,但是其优先级却不一样。&&、||的优先级在赋值运算符之前,or和and在赋值运算符之后。 2、字符串变量及数组可以在echo输出时双引号内、双引号外均可引用&#xff…

Android Studio Flutter 开发配置

近来比较闲,就研究下Flutter 开发,在此记录下studio 配置过程,时间是2023.7.19 在 Windows 操作系统上安装和配置 Flutter 开发环境 1.首先下载 Flutter SDKhttps://storage.flutter-io.cn/flutter_infra_release/releases/stable/windows/…

【极简,亲测,解决】Too many levels of symbolic links

前言(与内容无关) 帖子看多了,让我产生一种错觉,就是生产这些帖子的人都是机器人吗?是活着的吗?乱七八糟的转载和明显错误的结论太多了。 原因 原因是 链接的层数过多,已经产生了回路。 大概…

【案例教程】基于Python机器学习、深度学习技术提升气象、海洋、水文领域实践应用能力

Python是功能强大、免费、开源,实现面向对象的编程语言,能够在不同操作系统和平台使用,简洁的语法和解释性语言使其成为理想的脚本语言。除了标准库,还有丰富的第三方库,Python在数据处理、科学计算、数学建模、数据挖…

C++:const修饰指针

const修饰符常常需要在c中使用到&#xff0c;需要注意到他对于指针修饰的时候的不同区别。 #include<iostream> using namespace std; int main() {//1.const修饰指针int a 10;int b 10;const int* p &a;//指针指向的值不可以改&#xff0c;指针的指向可以改// …

麒麟系统开发笔记(十二):在国产麒麟系统上编译GDAL库、搭建基础开发环境和基础Demo

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/131805718 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

ifconfig不是eth0(eth1/2/3/4其他网卡)的解决办法

1. 编辑你网卡的配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0&#xff0c;更改eth0中HWADDR 更改为eth1网卡的信息&#xff08;这里是16位的mac地址&#xff09; 2. 编辑配置文件 vi /etc/udev/rules.d/70-persistent-net.rules 打开该文件&#xff0c;这时你会发现&…

思政课程,如何提升学习体验?

学校思政课程是中国高等教育中的一门重要课程&#xff0c;旨在培养学生的马克思主义理论素养、思想道德素质和社会责任感。 学校思政课程的开展&#xff0c;对于培养学生的全面发展和提升社会主义核心价值观具有重要意义。它不仅帮助学生理解和把握社会历史发展规律&#xff0c…

切面+注解方式实现sql注入,实现数据权限控制

前言&#xff1a;诸君谨记&#xff0c;你知道的越多&#xff0c;你就知道越少&#xff0c;良好的代码前篇一律&#xff0c;靠谱的架构&#xff0c;可以让程序开发效率提高&#xff0c;且运行稳如老狗&#xff0c;哈哈&#xff0c;言归正传 话说面试官问你&#xff0c;你对系统数…