Prompt 是指用于指导生成式人工智能模型执行特定任务的输入指令,这些指令通常以自然语言文本的形式出现。Prompt 的核心目的是清晰地描述模型应该执行的任务,以引导模型生成特定的文本、图像、音频等内容。
提示工程(Prompt Engineering)是一门较新的学科,关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域。掌握了提示工程相关技能将有助于用户更好地了解大型语言模型的能力和局限性。
指南:https://www.promptingguide.ai/zh
术语
Token
在 Prompt 进入大模型之前,需要将它拆分成一个 Token 的序列,其中 Token 是 承载语义的最小单元 ,标识具体某个词,并且每个 Token 由 Token ID 唯一标识
词表
为实现有效分词,首先需通过分词算法(分析语料库中的词频等信息来划分 Token)构建一个包含大语言模型所能识别的所有 Token 的词表,并依据该词表进行句子拆分
提示词要素
- 任务说明(指令)向模型明确提出具体的任务要求。任务说明应当清晰、直接,并尽可能详细地描述期望模型完成的任务
- 上下文向模型提供的任务相关背景信息,用以增强其对任务的理解以及提供解决任务的思路。上下文可以包括特定的知识前提、目标受众的背景、相关任务的示例,或任何有助于模型更好地理解任务的信息
- 问题(输入数据)向模型描述用户的具体问题或需要处理的信息。这部分应直接涉及用户的查询或任务,为模型提供一个明确的起点。问题可以是显式的提问,也可以是隐式的陈述句,用以表达用户的潜在疑问
- 输出指示期望模型给出的回答的展示形式。这包括输出的格式,以及任何特定的细节要求,如简洁性或详细程度。例如,可以指示模型以 JSON 格式输出结果
通用技巧
从简单开始
你可以从简单的提示词开始,并逐渐添加更多元素和上下文(因为你想要更好的结果)。因此,在这个过程中不断迭代你的提示词是至关重要的。阅读本指南时,你会看到许多示例,其中具体性、简洁性和简明性通常会带来更好的结果。
指令
可以使用命令来指示模型执行各种简单任务,例如“写入”、“分类”、“总结”、“翻译”、“排序”等,从而为各种简单任务设计有效的提示。
有些人建议将指令放在提示的开头。另有人则建议是使用像「###」这样的清晰分隔符来分隔指令和上下文
具体性
要非常具体地说明你希望模型执行的指令和任务。提示越具描述性和详细,结果越好。特别是当你对生成的结果或风格有要求时,这一点尤为重要。
Tip
在设计提示时,还应注意提示的长度,因为提示的长度是有限制的。想一想你需要多么的具体和详细。包含太多不必要的细节不一定是好的方法。
避免不明确
通常来说,具体和直接会更好。这里的类比非常类似于有效沟通——越直接,信息传达得越有效。
bad
good
做什么还是不做什么?
设计提示时的另一个常见技巧是避免说不要做什么,而应该说要做什么。这样(说要做什么)更加的具体,并且聚焦于(有利于模型生成良好回复的)细节上。