什么是提示工程?
提示工程,就是创建一堆指令,提示(询问、指导)ChatGPT 这类语言模型输出语料文本。提示工程帮助用户控制语言模型输出,生成适合的特定需求。
提示公式(prompt formular)
提示的特定格式,一般包含 3 个主要元素:
- 任务(task):一份清晰简洁的陈述,提示要求模型生成的内容。
- 指令(instructions):在生成文本时,模型应该遵循什么。
- 角色(role):在生成文本时,模型应该扮演什么。
指令提示技术
指令提示技术的要点是需要向模型提供清晰简洁的模型任务(task)、模型要遵循的具体指令(instructions)。
举个例子,如果你正在生成客户服务响应,需要提供如下两项:"生成对客户查询的响应"之类的任务(task)、"回复应当专业并提供准确信息"之类的指令(instructions)。
【示例】
- 生成客户服务响应: 任务:生成对客户咨询的响应 ,指令:回答应当专业,提供信息应当准确。提示公式:"按照这些指令,对客户咨询做出专业的、准确的回复:回答应当专业,提供信息应当准确。"
- 生成法律文件: 任务:生成法律文件, 指令:文件应当符合相关法律法规。 提示公式:"按照以下指令,生成符合相关法律法规的法律文件:该文件应当符合相关法律法规。"
角色提示技术
角色提示技术(role prompting technique),通过为模型提供特定角色,指导 ChatGPT 输出。生成针对特定上下文,生成的文本量身定制,此技术相当有用。若想用好它,需要向模型提供明确、具体的角色。 例如,生成客户服务响应,要具备"客户服务代表"之类的角色。
【示例】
- 生成客户服务响应: 任务:生成对客户咨询的响应 ,角色:客户服务代表。 提示公式:"作为客户服务代表,生成对客户咨询的响应。"
- 生成法律文件: 任务:生成法律文件, 角色:律师。 提示公式:"作为律师,生成法律文件。"
使用【指令提示】、【种子词提示】的【角色提示技术】,将增强 ChatGPT 的输出。
【示例】
任务:为新智能手机生成产品描述 ,指令:描述应提供信息、具有说服力并突出智能手机的独特功能 ,角色:营销代表 ,种子词:"创新"。 提示公式:"作为营销代表,生成内容丰富、有说服力的产品描述,突出新智能手机的创新功能。智能手机具有以下功能[插入您的功能]"
标准提示技术
标准提示,可以看做是一种常用的默认值,指导 ChatGPT 通过为模型提供特定的任务输出。
【示例】
- 生成一篇新闻摘要: 任务:总结这篇新闻文章 。提示公式:"生成这篇新闻文章的摘要"
- 生成一篇产品评论: 任务:写一篇新智能手机的评论。 提示公式:"生成对这款新智能手机的评论"
零样本、单样本、小样本提示技术
零样本、单样本、小样本提示技术,在没有示例、最少示例的情况下,帮助 ChatGPT 生成文本。任务适用范畴:可用数据有限、具体任务不明确、全新且定义不明确。
要点:
- 当没有可用于任务(task)的示例时,使用零样本提示技术。 该模型提供一个通用任务,根据理解生成文本。
- 当只有一个示例可用于任务时,使用一次性提示技术。 该模型随示例一起提供,根据理解生成文本案例。
- 当任务数量有限时,使用小样本提示技术。 该模型随示例一起提供,根据理解生成文本案例。
"让我们想一下"提示技术
"让我们想一下"这个提示,生成的文本具备反思能力、深度思考,对写散文、写诗歌、创意写作的群体来说,很有帮助。
要点:只需要在"让我们想一下"之后跟一个主题、问题。
【示例】
- 写篇反思性文章: 任务:写一篇关于个人成长的反思性文章。 提示公式:"让我们想一下:个人成长"
- 写一首诗: 任务:写一首关于四季变化的诗。 提示公式:"让我们考虑一下:季节的变化"
要在 ChatGPT 中使用"让我们想一下",需遵循以下步骤:
- 确定讨论的主题、构思。
- 制定的提示,需要把主题、想法阐明,并开始对话、生成文本。
- 在提示前加上"让我们想一下"或"让我们讨论一下",表明讨论已经发起了
【示例】
- 提示:"让我们想一下气候变化对农业的影响"
- 提示:"让我们讨论下人工智能的现状"
- 提示:"让我们谈一下远程工作的好处和坏处"
自洽提示技术
自洽提示技术,确保 ChatGPT 的输出与提供一致,在事实核查、数据验证、文本生成中,检验前后是否一致。
要点:输入文本后跟进指令"请确保以下文本是自洽的",或者可以提示模型生成与提供的输入一致的文本。
【示例】
- 文本生成 :任务:生成产品评论, 指令:审核应与输入中提供的产品信息一致 。提示公式:"生成与以下产品信息[插入产品信息]一致的产品评论"示例
- 文本摘要:任务:总结一篇新闻文章 ,指令:摘要应与文章提供的信息一致。 提示公式:"以与提供的信息一致的方式总结以下新闻文章[插入新闻文章]"
- 文本补全: 任务:补全一个句子, 指令:补全要与输入中提供的上下文一致。 提示公式:"以与提供的上下文一致的方式补全以下句子[插入句子]"
- 事实核查: 任务:检查给定新闻文章的一致性, 输入文本:"文章说这个城市的人口是 500万,后来又说人口是 700 万。" 提示公式:"请确保以下文字自洽:文章说这个城市的人口是500 万,但后面说人口是 700 万。"
- 数据验证: 任务:检查给定数据集中的一致性, 输入文本:"数据显示 7 月平均气温为 30 度,但最低气温记录为 20 度。" 提示公式:"请确保以下文字自洽:数据显示7月平均气温为 30度,最低气温记录为 20 度。"
种子词提示技术
种子词提示,提供特定种子词、短语,控制 ChatGPT 输出。
要点:种子词、种子词组,后面跟着指令"请根据以下种子词生成文本"。
【示例】
- 文本生成: 任务:生成一个关于龙的故事, 种子词:"龙"。 提示公式:"请根据以下种子词生成文本:龙"
- 语言翻译: 任务:将一个句子从英语翻译成西班牙语, 种子词:"你好"。 提示公式:"请根据以下种子词生成文本:你好"
种子词提示可以结合角色提示、指令提示,生成更具体、更有针对性文本。 通过提供种子词、种子短语,模型可生成的文本关联。外加有关所需输出和角色的信息,模型生成的文本、阐述,可与角色的特定风格、特定语气一致。 允许用户对生成的文本进行更多控制,且可用于广大的应用程序。
【示例】
- 文本生成:任务:生成一首诗, 指令:该诗应与种子词"爱"相关,并应以十四行诗的形式书写, 角色:诗人 。提示公式:"以诗人的身份生成与种子词'爱'相关的十四行诗"示例 。
- 文本补全:任务:补全一个句子, 指令:补全内容应与种子词"科学"相关,书写形式应为研究论文, 角色:研究员。 提示公式:"以与种子词'科学'相关的方式,作为研究人员论文的风格,补全以下句子:[插入句子]"示例。
- 文本摘要: 任务:总结一篇新闻文章, 指令:摘要应与种子词"政治"相关,以中立和公正的语气撰写, 角色:记者。 提示公式:"以记者的中立和公正的语气,以与种子词'政治'相关的方式总结以下新闻文章:[插入新闻文章]"。
知识生成提示技术
知识生成提示,用于从 ChatGPT 中获取新鲜且原始的信息。
要点:"请生成关于 X 的新的和原始的信息",这里的 X 是感兴趣的主题。
这种技术,使用模型里预先存在的知识,用来生成新信息、回答问题。
要在 ChatGPT 中使用知识生成提示,应向模型提供问题或任务作为输入,以及一组预定义选项作为潜在答案。 提示还应包括有关的输出信息,例如要生成的文本类型、任何特定要求或约束。
【示例】
- 知识生成:任务:生成有关特定主题的新信息, 指令:生成的信息应准确且与主题相关。 提示公式:"生成关于[特定主题]的新的准确信息"。
- 问答:任务:回答一个问题, 指令:答案应准确并与问题相关 。提示公式:"回答以下问题:[插入问题]"。
- 知识整合: 任务:将新信息与现有知识相结合, 指令:整合应准确并与主题相关。 提示公式:"将以下信息与关于[特定主题]的现有知识相结合:[插入新信息]"。
- 数据分析: 任务:从给定的数据集中生成有关客户行为的见解, 提示公式:"请从该数据集中生成有关客户行为的新的原始信息"。
知识整合提示技术
知识整合提示,使用模型的预先存在的知识,来集成新信息、连接不同的信息片段。
要点:输入新信息、现有知识;以及有提示,指定生成文本的任务或目标。 提示应包括有关所需输出的信息,例如要生成的文本类型、任何特定要求或约束。
【示例】
- 知识整合: 任务:将新信息与现有知识相结合, 指令:整合应准确并与主题相关 。提示公式:"将以下信息与关于[特定主题]的现有知识相结合:[插入新信息]"
- 连接信息片段: 任务:连接不同的信息片段 ,指令:连接应该是相关的和逻辑。提示公式:"连接以下信息 以一种相关且合乎逻辑的方式:[插入信息 1] [插入信息 2]"
- 更新现有知识 :任务:用新信息更新现有知识, 指令:更新的信息应该是准确和相关的。 提示公式:"使用以下信息更新关于[特定主题]的现有知识:[插入新信息]"
多项选择提示技术
多项选择提示,提供了一个模型,包含一个问题或任务,以及一组预定义选项,作为可能的答案。
如果生成仅限于一组特定选项的文本,多项选择提示很有用,比如问答、文本完成、其他任务;也可以生成仅限于预定义选项的文本。
要在 ChatGPT 中使用多项选择提示,应向模型提供问题、任务,以及一组预定义选项作为潜在答案。 提示还应包括关联的输出信息,例如文本类型、任何特定要求或约束。
【示例】
- 问答 :任务:回答多项选择题 ,指令:答案应该是预定义的选项之一。 提示公式:"通过选择以下选项之一回答以下问题:[插入问题] [插入选项 1] [插入选项 2] [插入选项 3]"。
- 文本补全: 任务:用预定义的选项之一补全一个句子, 指令:补全应该是预定义的选项之一。提示公式:"通过选择以下选项之一补全以下句子:[插入句子] [插入选项1] [插入选项2] [插入选项3]"
- 情感分析: 任务:将文本分类为正面、中性、负面 ,指令:分类应该是预定义的选项之一。 提示公式:"通过选择以下选项之一将以下文本分类为正面、中性或负面:[插入文本] [正面] [中性] [负面]"
可解读软提示技术
可解读软提示,在生成的文本同时,为模型提供一些灵活性。为模型提供一组受控输入、一些附加信息。用此技术,生成的文本更具可解读性、可控性。
【示例】
- 文本生成 :任务:生成一个故事, 指令:故事应该基于一组给定的角色和特定的主题。 提示公式:"根据以下人物生成故事:[插入人物]和主题:[插入主题]"。
- 文本补全: 任务:完成一个句子, 指令: 完成应以特定作者的风格完成。 提示公式:"按照[具体作者]的风格完成下列句子:[插入句子]"。
- 语言建模: 任务:生成特定样式的文本, 指令: 文字要采用特定时期的风格。 提示公式:"生成[特定时期]风格的文字:[插入上下文]"。
受控生成提示技术
受控生成提示,生成的文本输出,具有高度控制性。输入特定内容,例如模板、特定词汇表、一组约束,这些输入可用于指导生成过程。
【示例】
- 文本生成 :任务:生成一个故事, 指令:故事应基于特定模板 。提示公式:"根据以下模板生成故事:[插入模板]"。
- 文本补全: 任务: 补全一个句子, 指令: 补全时应使用特定的词汇。 提示公式: "使用以下词汇补全以下句子:[插入词汇]:[插入句子]"。
- 语言建模 :任务:生成特定样式的文本, 指令:文本应遵循一组特定的语法规则 。提示公式:"生成遵循以下语法规则的文本:[插入规则]:[插入上下文]"。
答疑提示技术
问答提示,回答特定问题、特定任务。输入问题、任务,以及输入可能与之相关的一切其他信息。
【示例】
- 定义 :任务:提供一个词的定义, 指令:定义要准确。 提示公式:"定义以下词:[插入词]"。
- 信息检索 :任务:从特定来源检索信息 ,指令:检索到的信息应该是相关的。提示公式:"从以下来源检索有关[特定主题]的信息:[插入来源]"。
- 回答事实: 任务:回答一个有关事实的问题, 指令:答案应准确且相关 。提示公式:"回答以下事实问题:[插入问题]"。
摘要提示技术
摘要提示,生成给定文本的较短版本,同时保留其主要思想和信息。
【示例】
- 文章摘要: 任务:总结一篇新闻文章, 指令:摘要应该是对文章要点的简要概述。提示公式:"用一句话总结以下新闻文章:[插入文章]"。
- 会议记录: 任务:总结会议记录, 指令:摘要应突出会议的主要决定和行动 。提示公式:"通过列出主要决定和采取的行动来总结以下会议记录:[插入记录]"。
- 书籍摘要:任务:总结一本书, 指令:摘要应该是对本书要点的简要概述 。提示公式:"在一小段中总结以下书籍:[插入书名]"。
对话提示技术
对话提示,生成模拟两个、多个实体之间对话的文本。通过为模型提供上下文,提供一组角色、一组实体,以及角色、背景,并要求模型在它们之间生成对话。
需要为模型提供上下文,包含一组字符、一组实体,以及它们的角色、背景。该模型还应提供输出的信息,例如对话、对话类型,以及任何特定要求、约束。
【示例】
- 对话生成: 任务:生成两个角色之间的对话, 指令:对话应该自然并且与给定的上下文相关。提示公式:"在以下上下文[插入上下文]中生成以下字符[插入字符]之间的对话"
- 故事写作: 任务:在故事中生成对话, 指令:对话要与故事中的人物和事件保持一致。 提示公式:"在下面的故事[插入故事]中生成下列人物角色[插入角色]之间的对话"
- 聊天机器人开发: 任务:为客户服务聊天机器人生成对话 ,指令:对话要专业,提供准确信息 。提示公式:"当客户询问 [插入主题] 时,为客户服务聊天机器人生成专业且准确的对话"对话生成、故事写作、聊天机器人开发,该技术很香。
对抗性提示技术
对抗性提示,生成的文本可抵抗某些类型的攻击、偏见。该技术训练后的模型,更稳固、更顽健,且能抵抗某些类型的攻击或偏差。
应当为模型增加提示,旨在使模型难以生成与所需输出一致的文本。 也包含输出的文本类型,以及任何特定要求或约束。
【示例】
- 文本分类的对抗性提示 :任务:生成分类为特定标签的文本, 指令:生成的文本应该很难归类为特定的标签。 提示公式:"生成难以归类为[插入标签]的文本"
- 情绪分析的对抗性提示: 任务:生成难以归类为特定情绪的文本, 指令:生成的文本应该很难归类为特定的情感 。提示公式:"生成难以归类为具有[insert sentiment]情感的文本"
- 语言翻译的对抗性提示: 任务:生成难以翻译的文本, 指令:生成的文本应该很难翻译成目标语言 。提示公式:"生成难以翻译成[插入目标语言]的文本"
聚类提示技术
聚类提示,根据某些特征、独特性,将相似数据点分组扎堆。通过为模型提供一组数据点,将其分组到集群中,参考依据是数据的某些特征、独特性。这种技术对于数据分析、机器学习、自然语言处理的任务,效果杠杠滴。
如何嫁接到 ChatGPT:该模型应当被提供一组数据点(评论、文章、论文),并要求根据某些特征(情绪、主题、研究领域)将它们分组到集群中。提示内容还应当包含所需输出的信息,例如要生成的聚类数量、任何特定要求或约束。
【示例】
- 客户评论的聚类: 任务:将相似的客户评论分组在一起, 指令:应根据情绪对评论进行分组。提示公式:"根据情绪将以下客户评论分组:[插入评论]"
- 新闻文章的聚类: 任务:将相似的新闻文章分组在一起, 指令:文章应根据主题分组。 提示公式:"将以下新闻文章根据主题分组:[插入文章]"
- 科学论文的聚类: 任务:将相似的科学论文分组在一起, 指令:论文应按研究领域分组。 提示公式:"根据研究领域将以下科学论文分组:[插入论文]"
强化学习提示技术
强化学习提示,让模型从过去的行为中学习,随着时间的推移,还能提高其性能。
要将强化学习提示与 ChatGPT 一起使用,应当为提供一组输入和奖励,并允许模型获得奖励后,调整其行为。提示应当包含所需输出,例如要完成的任务、任何特定要求或约束
做决策、玩游戏、自然语言生成,用上它很巴适。
【示例】
- 文本生成的强化学习: 任务:生成与特定样式一致的文本, 指令:根据生成与特定样式一致的文本,获得了奖励,模型应调整其行为。 提示公式:"使用强化学习生成符合以下风格的文本[插入风格]"
- 语言翻译的强化学习: 任务:将文本从一种语言翻译成另一种语言 ,指令:根据其因产生准确翻译,获得了奖励,模型应调整其行为。 提示公式:"使用强化学习将以下文本[插入文本]从[插入语言]翻译成[插入语言]"
- 用于问答的强化学习: 任务:生成问题的答案 ,指令:根据产生准确答案,获得了奖励,模型应调整其行为 。提示公式:"使用强化学习生成以下问题的答案[插入问题]"
课程学习提示技术
课程学习,让模型通过首先在较简单的任务上进行训练,并逐渐增加难度来学习复杂任务的技术。要在 ChatGPT 中使用,需提供一系列难度逐渐增加的任务。提示应当包含所需输出,例如要完成的最终任务、任何特定要求或约束。自然语言处理、图像识别、机器学习,这技术贼好用。
【示例】
- 用于文本生成的课程学习: 任务:生成与特定样式一致的文本, 指令:在转向更复杂的样式之前,应先对模型进行简单样式的训练。 提示公式:"使用课程学习按以下顺序[插入顺序]生成符合以下样式[插入样式]的文本"
- 用于语言翻译的课程学习: 任务:将文本从一种语言翻译成另一种语言, 指令:在转向更复杂的语言之前,应先对模型进行简单语言的训练。 提示公式:"使用课程学习按以下顺序[插入顺序]从以下语言[插入语言]翻译文本"
- 课程学习的问答: 任务:生成问题的答案, 指令:在转向更复杂的问题之前,应先对模型进行简单问题的训练。 提示公式:"使用课程学习按以下顺序[插入顺序]生成以下问题[插入问题]的答案"
情感分析提示技术
情感分析,让模型确定一段文本的情绪基调、情绪态度,例如它是积极的、消极的、中立的。要将情绪分析提示与 ChatGPT 一起使用,应向模型提供一段文本,根据其情绪对文本分类。提示还应包括输出信息,例如要检测的情绪类型(例如正面、负面、中性),以及任何特定要求或约束。
【示例】
- 客户评论的情感分析: 任务:确定客户评论的情绪, 指令:模型应当将评论分类为正面、负面、中性。 提示公式:"对以下客户评论 [插入评论] 进行情绪分析,并将其分类为正面、负面、中性。"
- 推文(推特文字)的情感分析: 任务:确定推文的情绪, 指令:模型应该将推文分类为正面、负面、中性 。提示公式:"对以下推文 [插入推文] 进行情绪分析,并将其分类为正面、负面、中性。"
- 产品评价的情感分析: 任务:确定产品评价的情绪, 指令:模型应当将评论分类为正面、负面、中性 。提示公式:"对以下产品评论 [插入评论] 进行情绪分析,并将其分类为正面、负面、中性。"
命名实体识别提示技术
命名实体识别 (NER) ,该技术可识别、分类文本中的命名实体(例如人员、组织、位置、日期)。要在 ChatGPT 中使用,应向模型提供一段文本,并要求模型识别、分类文本中的命名实体。提示应当关联输出,例如要识别的命名实体的类型(例如人员、组织、位置、日期)、任何特定要求或约束。
【示例】
- 新闻文章中的命名实体识别: 任务:识别和分类新闻文章中的命名实体 ,指令:该模型应当识别和分类人员、组织、地点、日期 。提示公式:"对下面的新闻文章[插入文章]进行命名实体识别,并对人员、组织、地点、日期,进行识别、分类。"
- 法律文件中的命名实体识别 :任务:识别和分类法律文件中的命名实体, 指令:该模型应当识别和分类人员、组织、地点、日期 。提示公式:"对以下法律文件[插入文件]进行命名实体识别,并对人员、组织、地点、日期,进行识别、分类。"
- 研究论文中的命名实体识别 :任务:识别和分类研究论文中的命名实体, 指令:该模型应当识别和分类人员、组织、地点、日期。 提示公式:"对以下研究论文[插入论文]进行命名实体识别,并对人员、组织、地点、日期,进行识别、分类。"
文本分类提示技术
文本分类,允许模型将文本分类为不同层级、不同类别的技术。该技术对于自然语言处理、文本分析、情感分析,很有用。
要在 ChatGPT 中使用文本分类提示,应向模型提供一段文本,并要求其根据预定义的类别、标签对其进行分类。 提示还应包括有关所需输出的信息,例如类或类别的数量,以及任何特定要求或约束。
【示例】
- 客户评论的文本分类: 任务:将客户评论分为不同的类别,例如电子产品、服装和家具 ,提示:模型应该根据评论的内容,对评论进行分类 。提示公式:"对以下顾客评论[插入评论]进行文本分类,根据内容,将其分为电子、服装、家具的不同类别。"
- 新闻文章的文本分类: 任务:将新闻文章分类为不同的类别,例如体育、政治和娱乐, 提示:模型应该根据文章的内容对文章进行分类 。提示公式:"对以下新闻文章[插入文章]进行文本分类,根据内容,将其分为体育、政治、娱乐的不同类别。"
- 电子邮件的文本分类: 任务:将电子邮件分类为不同的类别,例如垃圾邮件、重要邮件或紧急邮件 ,提示:模型应该根据邮件的内容和发件人对邮件进行分类。 提示公式:"对以下邮件[插入邮件]进行文本分类,根据内容和发件人,将其分为垃圾邮件、重要邮件、紧急邮件的不同类别。"
文本生成提示技术
文本生成提示,与本书提到的其他几种提示技术相关,如:零样本、单样本、小样本提示,受控生成提示、翻译提示、语言建模提示、句子补全提示。
文本生成提示可用于微调预训练模型,或为特定任务训练新模型。
【示例】
- 故事写作的文本生成 :任务:根据给定的提示生成故事 ,指令:故事应至少 1000 字,包括一组特定的角色和情节 。提示公式:"根据以下提示[插入提示],生成一个至少1000字的故事,包括人物[插入人物]和情节[插入情节]。"
- 语言翻译的文本生成 :指令:将给定的文本翻译成另一种语言,说明:翻译应该准确和地道。提示公式:"将以下文本 [插入文本] 翻译成 [插入目标语言] 并确保它是准确和地道的。"
- 用于文本补全的文本生成: 任务:完成给定的文本, 指令:生成的文本应与输入文本连贯一致。 提示公式:"完成以下文字[插入文字],并确保与输入的文字连贯一致。"