
(本文翻译自微软官方博客)
想要最大化大型语言模型的潜力?提示词工程是关键。
在这个人人都可构建智能应用程序的时代,我们本期推出提示词工程指南,15个 Tips 帮助开发人员、数据科学家,以及富有兴趣的新手朋友创建有效的提示词。
🧑🏻💻🧑🏻💻🧑🏻💻
#1 掌握基础知识
文本提示是用户与大语言模型交互的基本方式,其目的是生成最有可能从给定输入文本中得出的下一个词语序列。简而言之,这就类似于询问模型:“当我说 <提示> 时,你会想到什么?”
如以下示例——
💡
提示词
Prompt
生存还是毁灭
📝
补全
Completion
,这是个问题...
通过为模型提供大众熟知的内容作为初始文本,它可以准确地继续生成文本,展示了其理解和生成连贯语言的能力。
#2 识别提示组件
构建提示时,识别底层组件将会很有帮助。这包括了指令、主要内容、示例、提示和支持性内容等要素。指令指导模型应该做什么,主要内容是正在处理的主要文本,示例演示了期望的行为,提示充当了输出的启动器,支持性内容提供额外信息以影响输出。
#3 创建明确的指令
指令通常用于提示并引导模型的行为。指令要具体,尽可能减少解释的空间。使用类比和描述性语言,来帮助模型理解您期望的结果。
💬 简单指令
💡
提示词
Prompt
为我们新的基于云的协作工具编写一个简短的产品描述。
📝
补全
Completion
ContosoSync 简介
ContosoSync 是一款先进的基于云的协作工具,旨在为各种规模的企业简化团队工作流程并提升生产力。利用实时文档编辑、无缝文件共享和集成任务管理功能,ContosoSync 使团队轻松协作,无论员工在办公室还是分布在全球其它各地。
💬 复杂指令
💡
提示词
Prompt
撰写一封引人注目的电子邮件,邀请潜在客户参加我们即将举行的 ContosoSync 产品发布会。包括参会的收益,以及表达对客户支持的感谢。
📝
补全
Completion
向上滑动阅览
#4 使用「示例」
示例在提示工程中扮演着至关重要的角色。通过输入和输出对,您可以调整模型根据当前推理作出预期响应。在您提供的所需响应的示例中,通过零样本学习或小样本学习技术,可以显著提高模型的输出准确性。
🧑🏻💻 零样本学习(Zero-shot)
💡
提示词
Prompt
标题:教练确信伤病不会拖垮勇士队
话题:
📝
补全
Completion
教练确信伤病不会拖垮勇士队的赛季。球队仍然专注于他们的目标,并且他们将继续努力去实现这些目标。
🧑🏻💻 小样本学习(Few-shot)
💡
提示词
Prompt
向上滑动阅览
📝
补全
Completion
篮球
#5 注意提示线索
提示是模型输出的起点,有助于引导模型生成预期响应。在提示词中包含线索可以帮助引导模型生成符合您意图的输出。
🔔 提示数量:0
💡
提示词
Prompt
绩效评估是 Contoso 绩效和开发方法的核心组成部分。[…]
总结上述电子邮件消息:
📝
补全
Completion
这封电子邮件的目的是告知员工绩效评估体验的最新变更,这是 Contoso 绩效与发展方法的一部分。这些变更包括改进的结构、升级的工具内用户体验和有针对性的提示。此外,现在还增加了一个可选的“启动对话”部分,供员工标记他们想与经理讨论的主题。
🔔 提示数量:1
💡
提示词
Prompt
绩效评估是 Contoso 绩效和开发方法的核心组成部分。[…]
总结上述电子邮件消息:
该信息的主要要点是:
📝
补全
Completion
该信息的主要要点是 Contoso 正在改进绩效评估体验,使其更加关注核心优先事项、期望和影响。此外,他们正在升级工具内用户体验,提供提示、资源和指导。最后,他们正在添加关于如何激活公司范围内的核心优先事项的指南。
🔔 提示数量:2
💡
提示词
Prompt
绩效评估是 Contoso 绩效和开发方法的核心组成部分。[…]
总结上述电子邮件消息:
要点:
📝
补全
Completion
Contoso 根据员工的反馈正在对绩效评估体验进行改进。
• 这些变更包括更加关注核心优先事项、期望和影响;升级的用户体验;以及有关公司范围内核心优先事项的新指导。
• 绩效评估是反思过去表现和学习,以及规划未来优先事项和增长机会。
• 员工和经理应该在绩效评估会议之前提前撰写评论。
• 每年至少应进行两次绩效评估。
• 每次评估的时间投入应保持大致相同。
#6 测试排布顺序
提示词中信息呈现的顺序会影响模型的输出。尝试不同的指令、主要内容、示例和提示排列方式,以达到预期结果。要注意近因偏差,即模型更多地受到最近信息的影响。
#7 给模型一个“出口”
有时,模型可能难以准确完成任务。为了缓解这种情况,请为模型提供替代路径或指令,供模型在找不到满意的响应时遵循。这有助于防止生成虚假或荒谬的答案。
💡
系统消息
你是一个帮助人们查找信息的 AI 助手。尽可能用简短的语言回答。
📝
用户
John Smith 与 Lucy Smith 结婚。他们有五个孩子,他在微软担任软件工程师。我应该执行哪些搜索查询来对此进行事实检查?## 一种可能的搜索查询是:
🙋🏻
GPT助手
“John Smith 与 Lucy Smith 结婚,生了五个孩子,微软软件工程师”
#8 注意 Token 限制
提示的大小受模型能处理的 Token 数量限制。Token 代表单个文本单元。通过考虑数据包含的表格式和优化空白使用等因素,有效地利用空间。例如,Azure OpenAI text-davinci-003 模型的 Token 限制为4097个,包括输入和输出。考虑到我们希望有大约250个单词的输出,一个 Token 代表大约半个单词,我们将为完成响应保留500个 Token。这就留下了大约3500个 Token 用于输入,或者大约1700个单词。任何超过1700个单词的源文本都需要手动编辑以适应限制。

#9 采用负责任的 AI 来减轻风险
缓解大型语言模型可能带来的风险需要采取迭代的、分层的方法,包括实验和持续测量。我们建议使用微软的负责任的 AI 的最佳实践来制定缓解计划。

#10 实验和迭代
提示工程是一门需要实验和反复尝试的艺术。练习并积累经验,为不同任务制定提示。每个模型的行为可能不同,因此相应地调整提示工程技术非常重要。
💡💡💡
想要成为高阶玩家?
了解使用 Azure OpenAI 服务
进行提示工程的
5 个高级技巧
#11 了解不同的API
根据您正在使用的模型,例如 GPT-35-Turbo 或 GPT-4,您需要针对Chat Completion API 或 Completion API 设置不同的输入格式。熟悉每个 API 的具体要求,以确保正确的提示设计。
#12 从清晰的系统消息开始
系统消息为模型设置上下文和指令。描述助手的角色、限制和预期的响应格式。明确定义模型应该回答和不应该回答的内容,并提供生成准确和有帮助的响应的指南。
💡
系统消息
你是一个 AI 助手,可以帮助人们查找信息并以押韵的方式做出回应。如果用户问您一个您不知道答案的问题,请直接说出来。
📝
用户
你能告诉我一些关于我的事情吗,Clippy?
🙋🏻
GPT助手
亲爱的 Clippy,我很抱歉,但我今天没有你的消息。
我只是一个有知识的 AI ,
但没有你的输入,我无法解释。所以请告诉我更多你想要的东西,我会尽我所能给你一个独特的答案。
#13 利用小样本学习
小样本学习涉及提供一组训练示例作为提示的一部分,来为模型提供额外的上下文。Chat Completions API,使用用户和助手之间的一系列消息作为示例,来引导模型的行为并为常见问题提供答案。
💡
系统消息
Assistant 是一款智能聊天机器人,旨在帮助用户回答与税务相关的问题。
指令
如果用户询问应该何时报税,请提醒他们截止日期是 4 月 15 日。
📝
用户
我应该什么时候报税?
🙋🏻
GPT助手
您应该在 4 月 15 日之前报税。
#14 使用显式约束
显式约束有助于引导模型的行为和响应。例如,您可以规定模型必须以特定格式回答,比如诗歌或推特,以符合您的应用需求。
💡
系统消息
Assistant 是一种经过训练可以提供简短的推特式响应的 AI 。做出相应的回应。
📝
用户
法国的首都是哪里?
🙋🏻
GPT助手
巴黎,浪漫与灯光之城。
#15 结合多种技术处理复杂任务
对于更复杂的任务,您可以结合各种技术,如小样本学习、显式约束和明确的指令,以有效引导模型的行为。并进行实验和迭代,找到适合您用例的最佳组合。





