人人都是ChatGPT prompt 工程师

news2025/1/20 18:31:15

关于 Prompt ​

解释这个词之前,首先需要解释 prompt 这个词:

简单的理解它是给 AI 模型的指令。

它可以是一个问题、一段文字描述,甚至可以是带有一堆参数的文字描述。AI 模型会基于 prompt 所提供的信息,生成对应的文本,亦或者图片。

比如,我们在 ChatGPT 里输入 What is the capital of China? (中国的首都是什么?),这个问题就是 prompt。

Prompt是研究者们为了下游任务设计出来的一种输入形式或模板,它能够帮助PLM“回忆”起自己在预训练时“学习”到的东西,因此后来慢慢地被叫做Prompt了。

https://learnprompting.org/ 是一份关于与人工智能通信的免费开源课程,本文内容翻译自其基础部分。

Prompt入门

对于ChatGPT 这类 Chatbot 产品,你只需要登录 ChatGPT 后,在输入框内输入问题,或者指令即可,AI 会根据你的指令,返回相应的内容。

以下是两个提示的示例:

1) 文章摘要​

假设您正在阅读一篇关于佛罗里达州降雪的文章。您想快速了解文章的主要内容,因此您向 AI 展示您正在阅读的内容,并要求进行摘要2:

佛罗里达州很少下雪,特别是在中部和南部地区。除了州的极北部地区外,佛罗里达州大部分主要城市都没有记录到可测量的降雪量,尽管记录到了少量的痕迹,或者每个世纪观测到几次空气中的飘雪。根据国家气象局的数据,在佛罗里达群岛和基韦斯特群岛自欧洲殖民以来没有发生过飘雪的情况,已有超过300年时间。在迈阿密、劳德代尔堡和棕榈滩,超过200年中只有一次关于在空气中观察到飘雪的报告,发生在1977年1月。在任何情况下,自这次1977年的事件以来,迈阿密、劳德代尔堡和棕榈滩都没有看到过飘雪的情况。

以下是 AI 的回复。更简洁易读!

佛罗里达州很少下雪,除了州的极北部地区外,在过去的200年中迈阿密、劳德代尔堡和棕榈滩
这些主要城市中只有一次观察到空气中飘雪的报告。

2) 数学问题求解​

如果您有一个数学方程的数据集,您想让一个语言模型来解决,您可以通过提问 "什么是方程" 来创建提示。

对于一个给定的问题,您的完整提示可能是这样的:

1,000,000 * 9,000等于几?

对于这个提示,GPT-3 (text-davinci-002) (一种人工智能) 有时会回答 9,000,000(不正确)。这时候就有提示工程的用武之地。

提示工程

如果我们不是问 1,000,000 * 9,000等于几?,而是问 1,000,000 * 9,000等于几? 请确保输入正确数量的零,即使数量很多也要如此:,GPT-3 将会回答 9,000,000,000(正确)。为什么会这样?为什么在提示中额外指定数字的零的数量是必要的,以使 AI 能够得到正确的答案?我们如何创建能够产生最佳结果的提示?特别是最后一个问题是提示工程领域的重点,也是本课程的重点。

给出指令

最简单的提示方法之一就是直接给出指令。我们上一个部分中就已经看到了一个简单的指令(1,000,000 * 9,000等于几? 请确保输入正确数量的零,即使数量很多也要如此:)。然而,现代人工智能可以遵循更复杂的指令。

示例 1

AI 能够轻松地解决这个问题。使用指令提示,它可以解决许多其他简单和更复杂的问题。

示例 2​

这是一个更复杂的例子:

请阅读以下销售邮件。删除任何可用于识别个人身份的信息 (PII),并用相应的占位符替换它。例如,用"[姓名]"替换"John Doe"。


你好 John,


我写信给你是因为我注意到你最近买了一辆新车。我是一家当地经销商 (Cheap Dealz) 的销售员,我想让你知道我们有一辆新车的超值优惠。如果你有兴趣,请告诉我。


谢谢,


Jimmy Smith


电话:410-805-2345
电子邮件:jimmysmith@cheapdealz.com

以下是AI的回答:

你好 [姓名],


我写信给你是因为我注意到你最近买了一辆新车。我是一家当地经销商 ([经销商名称]) 的销售员,我想让你知道我们有一辆新车的超值优惠。如果你有兴趣,请告诉我。


谢谢,


[销售员姓名]


电话:[电话号码]
电子邮件:[电子邮件地址]

看到模型如何从指令中推断出结果真的很酷。例如,它知道将Cheap Dealz替换为[经销商名称],将Jimmy Smith替换为[销售员姓名],即使我们没有明确告诉它这样做。

角色提示

另一种提示技术是给 AI 分配一个角色。例如,您的提示可以以"你是一名医生"或"你是一名律师"开始,然后要求 AI 回答一些医学或法律问题。举个例子:

你是一个能解决世界上任何问题的杰出数学家。
试着解决下面的问题:


100*100/400*56 是多少?


答案是 1400。

AI (GPT-3 davinci-003) 的答案用绿色突出显示:

这是一个正确的答案,但是如果 AI 只是被提示100100/40056等于几?,它会回答280(错误)。

通过为 AI 分配一个角色,我们给它提供了一些上下文。这个上下文有助于 AI 更好地理解问题。通过更好地理解问题,AI 往往可以给出更好的答案。

这种技术在现代的 AI 中 (例如 GPT-3 davinci-003) 不再那么有效了。然而,我在这个例子中使用了 GPT-3 davinci-003,所以角色提示仍然至少是一个比较有效的工具。

“标准”提示

到目前为止,我们已经说过几种不同格式的提示。根据Kojima等人的说法1,我们将仅包含一个问题的提示称为“标准”提示。我们还认为仅包含问答形式为问题的提示也是“标准”提示。

我为什么要在意?​

我们引用的许多文章都使用这个术语。我们这么定义它的目的,以便我们可以讨论与标准提示不同的新型提示。

标准提示的两个示例:​

标准提示

法国的首都是哪里?

问答形式的标准提示

问:法国的首都是哪里?


答:

Few Shot标准提示​

Few shot标准提示就是只包含示例的标准提示。示例是提示要解决的任务的例子,这些示例包含在提示本身中。在研究中,Few shot标准提示有时简称为标准提示(尽管我们尝试在本指南中不这样称呼)。

Few Shot标准提示的两个示例:​

Few Shot标准提示

西班牙的首都是哪里?
马德里
意大利的首都是哪里?
罗马
法国的首都是哪里?

问答形式的Few Shot标准提示

问:西班牙的首都是哪里?
答:马德里
问:意大利的首都是哪里?
答:罗马
问:法国的首都是哪里?
答:

Few shot提示有助于“few shot”或称为“上下文中”的学习,即在不更新参数的情况下进行学习。

更多关于提示过程

正如我们在之前的页面中所看到的,提示的格式和复杂度可以不同。它们可以包含上下文、指令、多个问答样例,甚至包含其他的 Prompt(什么!?)。

以下是一个包含上下文、指令和多个示例的 Prompt 示例:

Twitter 是一个社交媒体平台,用户可以发布称为“推文”的短消息。推文可以是积极的或消极的,我们希望能够将推文分类为积极或消极。以下是一些积极和消极推文的示例。请确保正确分类最后一条推文。


Q: 推文:“多美好的一天!”
这条推文是积极的还是消极的?


A: 积极的


Q: 推文:“我讨厌这门课”
这条推文是积极的还是消极的?


A: 消极的


Q: 推文:“我喜欢牛仔裤上的口袋。”


A:

通过添加其他上下文/示例,我们可以在不同的任务中提高 AI 的性能。下一章将介绍稍微高级的提示技巧。

聊天机器人基础

最常见的一种使用提示的方法是与公开的聊天机器人(例如 ChatGPT)进行互动。请注意,ChatGPT 与 GPT-3 不同,他们之间的主要区别在于聊天机器人可以记住你的对话历史。就像 GPT-3 一样,它们也可以高水平地回答问题、提供写作摘要和分析、编写文案或代码等,这是一个令人兴奋的前景——但是聊天机器人的真正价值只有在你使用具体的提示时才能体现。在本文中,我们将探讨一些基本的方法,如使用风格指导、描述符和引导,让聊天机器人更好的发挥作用。

修改你的提示语​

风格指导(Style Guidance)​

风格指导就是要求 AI 以某种特定的风格来表达。如果没有给出风格指导的问题,ChatGPT 通常会返回一两个短段落的回答,少数需要更长的回答时会返回更多内容。

ChatGPT 的回答常以中性正式的语气表达,同时提供一些细节,这非常不错!不过,如果我们想要更好的回答,可以在提示末尾自定义 ChatGPT 的回答风格。如果我们想要更加随意的回答,可以要求它以友好或非正式的语气表达;如果我们想要更易读的格式,可以给出相同的问题,但要求以无序列表的形式回答;如果我们想要一个有趣的回答,可以要求它以连续的打油诗形式回答(这是我个人最喜欢的)。

一个更详细的风格提示的例子可能是:

[问题]“以拥有20多年经验和多个博士学位的[领域]专家的风格和水平写作。在回答中优先考虑有建设性的、不太知名的建议。使用详细的例子进行解释,尽量少离题和耍幽默。“

使用风格输入提示将大大提高回答的质量!

描述符(discriminator)​

如果你只想改变语气或微调提示而不是重新格式化,添加描述符是一个不错的方法。简单地在提示后面添加一两个词可以改变聊天机器人解释或回复您的信息的方式。你可以尝试添加形容词,如“有趣的”、“简短的”、“不友好的”、“学术语法”等,看看答案如何变化!

引导提示(Priming Prompt)​

聊天机器人对话的结构决定,你给 LLM 的第一个提示的形式将会影响后续的对话,从而让你能够添加额外的结构和规范。 举个例子,让我们定义一个系统,允许我们在同一会话中与教师和学生进行对话。我们将为学生和教师的限定说话风格,指定我们想要回答的格式,并包括一些语法结构,以便能够轻松地调整我们的提示来尝试各种回答。

“教师”代表一个在该领域拥有多个博士学位、教授该学科超过十年的杰出教授的风格。您在回答中使用学术语法和复杂的例子,重点关注不太知名的建议以更好地阐明您的论点。您的语言应该是精炼而不过于复杂。如果您不知道问题的答案,请不要胡乱编造信息——相反,提出跟进问题以获得更多背景信息。您的答案应以对话式的段落形式呈现。使用学术性和口语化的语言混合,营造出易于理解和引人入胜的语气。


“学生”代表一个具有该学科入门级知识的大学二年级学生的风格。您使用真实生活的例子简单解释概念。使用非正式的、第一人称的语气,使用幽默和随意的语言。如果您不知道问题的答案,请不要编造信息——相反,澄清您还没有学到这个知识点。您的答案应以对话式的段落形式呈现。使用口语化的语言,营造出有趣和引人入胜的语气。


“批评”代表分析给定文本并提供反馈的意思。 
“总结”代表提供文本的关键细节。 
“回答”代表从给定的角度回答问题的意思。


圆括号()中的内容表示您写作的角度。
花括号{}中的内容表示您所涉及的主题。
方括号[]中的内容表示您应该采取的行动。
例子:(学生){哲学}[回答] 在大学里选择这门课程相比其他课程有什么优势?


如果您理解并准备开始,请回答“是”。

以下是一个未引导的问题示例,询问 ChatGPT 关于哲学领域中最有趣的部分。它使用列表,通俗冷静地表达,然而在解释中不是非常具体。

在第二个例子中,我们提供了一个引导提示给 ChatGPT,并以正确的形式提出了问题。你应该注意到,它的回答与第一个例子有一些相似之处,例如,它为各个领域提供的例子问题是相似的,但它提供了更深入的背景信息,放弃了列表格式,而是采用连贯的段落,将例子与现实生活联系起来。

在提示中引入引导是一种更高级的与聊天机器人交互的方式。每个提示中添加规范仍然有帮助,因为模型随着时间的推移可能会失去对引导的追踪,但它将为你的 AI 交互提升很多清晰度!

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

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

相关文章

Spark SQL join操作详解

一、 数据准备 本文主要介绍 Spark SQL 的多表连接,需要预先准备测试数据。分别创建员工和部门的 Datafame,并注册为临时视图,代码如下: val spark SparkSession.builder().appName("aggregations").master("lo…

腾讯云服务器CVM标准型S5和S6区别性能评测

腾讯云服务器CVM标准型S5是次新一代云服务器规格,标准型S6是最新一代的云服务器,S6实例的CPU处理器主频性能要高于S5实例,同CPU内存配置下的标准型S6实例要比S5实例性能更好一些,但是目前标准型S5实例活动较多,云服务器…

【ChatGPT】预训练模型微调及其应用(ChatGLM-6B、duckduckgo_search、GPT在科研的应用等)

note instructGPT(基于提示学习的系列模型)——>GPT3.5(大规模预训练语言模型)——>ChatGPT模型(高质量数据标注反馈学习)。chatGPT三大技术:情景学习、思维链、自然指令学习。GPT4飞跃式…

ASEMI代理AD9833BRMZ-REEL原装ADI车规级AD9833BRMZ-REEL

编辑:ll ASEMI代理AD9833BRMZ-REEL原装ADI车规级AD9833BRMZ-REEL 型号:AD9833BRMZ-REEL 品牌:ADI/亚德诺 封装:MSOP-10 批号:2023 引脚数量:10 安装类型:表面贴装型 AD9833BRMZ-REEL汽车…

【都2023年了,还在问网络安全怎么入门】

前言 【都2023年了,还在问网络安全怎么入门】所以这一期就出一一个怎么学习网络安全的学习路线和方法,觉得有用的话点赞收藏下 首先咱们聊聊,学习网络安全方向通常会有哪些问题 1、打基础时间太长 学基础花费很长时间,光语言都有…

数据库系统概论--第二章课后习题

1.试述关系模型的三个组成部分。 答: 关系模型由关系数据结构、(关系操作集合)和(关系完整性约束)三部分组成。 2. 简述关系数据语言的特点和分类。 答:特点:1)集合操作方式; 2)高度非过程化; 3)集查询、DDL、DML、…

【C++STL精讲】string类的基本使用与常用接口

文章目录💐专栏导读💐文章导读🌷为什么要学习string类?🌷string类的基本使用🌷string类的常用接口🌺数据访问函数🌺容量相关函数🌺操作函数🌷迭代器与范围for…

“三步走”推动云原生转型之路

对于企业而言,如何平稳的从传统研发模式过渡到云原生时代,除了坚持结合云原生应用的特点,持续推动基础架构和应用架构的转型,还需要围绕“深度融合云技术能力、做厚业务基础能力、提升内建质量”等三个步骤,推进云原生…

SpringBoot 防护XSS攻击

目录 一、前言 1.1、XSS攻击流程 1.2、XSS攻击分类 1.3、攻击方式 二、解决方案 2.1、SPRINGBOOT XSS过滤插件(MICA-XSS) 2.2、MICA-XSS 配置 三、项目实战 3.1、项目环境 3.2、测试 3.2.1、测试GET请求 3.2.2、测试POST请求 3.2.3、测试POS…

优秀测试工程师必须掌握的关系型和非关系型数据库

写在前面 如果平时没有接触到数据库,或者接触数据库不够深入,那么这篇文章很适合你,这篇文章主要从关系性和非关系型数据库的适用场景出发,介绍了MySQL,MongoDB,Redis数据库的安装,备份和常用命令以及MySQL的性能测试…

CRM客户管理软件开发功能有哪些?

互联网技术的不断提高使得企业管理方式也发生了变化,企业CRM系统应用市场逐渐扩大,相关软件开发也引起越来越多商家企业的关注。因为企业CRM系统软件开发能够根据企业需求制作,帮助企业更好的追踪管理客户信息,实时更新并进行相关…

Amazon SageMaker简直就是机器学习平台的天花板

一、前言 最近参与了亚马逊云科技【云上探索实验】活动,通过Amazon SageMaker基于Stable Diffusion模型,非常简单快速搭建的第一个AIGC,一开始以为非常复杂,不懂动手操作,但实际上操作非常简单,没有想象中…

自己开发X86操作系统--LIUNUXOS

为了纪念Linus Torvalds创始开发的linux,我将自己开发的os命名为LIUNUXOS。 LIUNUXOS其原码分为两个部分,汇编工程和c/c工程,地址分别为: LIUNUXOS汇编工程原码地址 LIUNUXOS c/c工程原码地址 在这些工程中,源程序的…

Grafana获取URL地址中的json数据

官方教程:https://grafana.github.io/grafana-json-datasource/query-editor 文章目录配置Grafana的JSON API插件模拟URL路由配置插件展示json数据最终效果配置Grafana的JSON API插件 直接在界面中下载这个插件即可: 也可以使用命令安装: …

Python每日一练(20230411)

目录 1. 环形链表 🌟 2. 比较版本号 🌟🌟 3. 基本计算器 🌟🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏…

hbuildX运行uniapp项目到andiord真机调试

一、打开手机开发者模式 我的是小米手机,这里就介绍一下小米手机如何打开开发者模式。其他机型可以百度一下。 1、手机 桌面 找到【设置】点击打开 2、点击【我的设备】。 3、进入后上滑,看见【全部参数】的按钮,点击打开 4、进入后上滑…

内存管理、内存映射、mmap

内存管理 MMU:Memory Management Unit,内存管理单元,CPU中独立硬件,负责处理CPU的内存访问请求。虚拟地址到物理地址的转换(即虚拟内存管理)。 物理内存:真实存在的插在主板内存槽上的内存条&a…

springboot2.7.10整合neo4j -- 关系双向绑定(UNDIRECTED)

背景 依赖 springboot版本 2.7.10 本地neo4j安装的版本&#xff1a;4.4.19 依赖如下&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-neo4j</artifactId></dependency>sprin…

Java基础(七)面向对象编程(高级)

1. 关键字&#xff1a;static 回顾类中的实例变量&#xff08;即非static的成员变量&#xff09; class Circle{private double radius;public Circle(double radius){this.radiusradius;}public double findArea(){return Math.PI*radius*radius;} }创建两个Circle对象&…

NanoPC-T4 RK3399:(一)平台与框架介绍

概述:近几年工作一直围绕Rockchip进行,手里刚好有一块NanoPC-T4的板子,本专栏将围绕友善NanoPC-T4做一个深度探究和总结,涉及uboot,kernel,rootfs定制等知识点。 一:硬件介绍 NanoPC-T4不仅是世界上最小的全功能接口RK3399一体化主板, 而且是一款完全开源的高性能计算平…