提示工程速查手册
大型语言模型可以生成任何字符序列。实际上,任何字符序列。任何习语、数据格式或编程语言。
但生成的质量水平也有很大差异。它可能是一种典型的冷淡的模型响应,带有大量警告、冗长的解释或前天半幻觉的知识。或者是畅销小说的第一部分、完美品牌名称的提议、解决棘手问题的最强大、最优雅的 Python 函数。
甚至更多,更多:当你构建应用程序时,模型可以可靠而准确地回答来自客户的数百万个问题,全面处理保险索赔,或者每天顽固地翻阅新提交的专利申请,寻找与旧专利申请的冲突。
有一个前提:这只有在你在完美的提示中指定你的愿望时才有效。
这并不意味着你必须避免使用模棱两可的指令,就像所有这些浪费3个愿望的人一样。不,这要困难得多。要充分发挥我们的 AI 精灵和仙女的潜力,你需要精湛细致地制作提示。
当你使用模型处理日常琐事时,这项工程工作可能会有所帮助。
如果你正在使用 AI 构建应用程序,这是必须的。
我们的提示工程速查手册是一本精简版 (PDF) 咒语书,适用于这个有点神秘且通常很棘手的机器学习学科。
无论你是经验丰富的用户还是刚刚开始你的 AI 之旅,这份备忘单都可以作为使用大型语言模型进行许多通信领域的袖珍词典。
提示工程速查手册PDF电子书可以从这里下载,供你随身携带。
1、AUTOMAT 框架
AUTOMAT 框架描述了完美提示指令的关键要素:你需要什么,如何编写。
以及如何不编写它。
AUTOMAT 的首字母缩略词代表
- Act as:充当……
- User Persona & Audience:用户角色和受众
- Targeted Action:有针对性的行动
- Output Definition:输出定义
- Mode/Tonality/Style:模式/音调/风格
- Atypical Cases:非典型案例
- Topic Whitelisting:主题白名单
通过考虑每个元素,你可以引导 LLM 实现预期结果。想象一下你正在为聊天机器人编写脚本。你定义其角色 (A)、与谁交互 (U)、交互目标 (T)、应提供哪些信息 (O)、应如何沟通 (M)、如何处理边缘情况 (A) 以及哪些主题相关 (T)。此结构可确保你的 LLM 沟通清晰一致。
2、CO-STAR 框架
类似方法,但重点略有不同:
- Context:背景。设置场景!提供背景细节,让 LLM 了解情况。
- Objective:目标。您想要实现什么?明确定义任务以获得重点结果。
- Style & Tone:风格和语气。修饰!为你的 LLM 回复指定所需的写作风格和情感基调。
- Audience:受众。了解你的读者。确定你的目标对象,以定制 LLM 的输出。
- Response:回复。选择你的格式。定义 LLM 回复的输出格式(文本、代码等)。
输出格式的定义告诉模型如何提供响应。比告诉更好的是展示。提供输出的真实示例。
该模型可以模仿几乎所有可以想象的输出、任何现有格式以及你为特定任务定义的结构。以易于解析的格式(如 JSON)提供答案极大地简化了应用程序和自主 AI 工作者的构建。
通过以下方式进一步构造输出
- 为 AI 的响应指定允许的值和范围
- 指示 AI 在数据不可用、值缺失时该怎么做
3、少量学习
提示中的少量(few-shot)学习在模型开始实际工作之前向其展示了一些实际问题和解决方案:
- 标准案例:编织一些模型应如何将输入映射到输出的示例
- 特殊案例:向模型展示如何回答边缘情况或异常值。如果数据缺失、如果问了不相关的问题或用户不听话,它应该如何回答。
4、思维链
如果我们强迫模型在给出最终答案之前大声思考并进行一些考虑和推理,结果它会变得更好。
在这里,我们的AI能与六年级学生解决数学问题并没有什么不同。或者,让我们说,与一般人类没有什么不同。
顺便说一句,这不是我的想法,而是谷歌大脑团队的想法。
要从答案中过滤推理,再次在输出中使用 JSON。
5、提示模板
在构建AI应用程序时,你几乎永远不会使用不变的提示。
你将使用一个模板,其中包含根据情况设置的变量:特定用户问题、文档块、API 输出、当前时间、来自互联网的内容等。
在模板的每个步骤或调用中,变量都会被实际内容替换。
6、RAG — 检索增强生成
RAG 可能是过去两年在 LLM 领域开发的最重要的技术。这种技术允许 LLM 访问你的数据或文档来回答问题 — 克服了预训练数据中知识截断等限制。RAG 使我们能够利用极其广泛的内容基础,包括兆字节和千兆字节的数据,从而让 LLM 做出更全面、最新的响应。
7、格式和分隔符
模型不会重复阅读你的提示。
他们要么立即了解一条信息的用途 — 是示例、说明还是上下文信息?
或者他们不了解。那么他们的回答可能是错误的。
因此,请确保模型能够掌握提示的结构。与 Medium 故事的特权作者不同,你只能使用字符;你不能使用图形突出显示,例如标题、粗体或斜体。在构建各个部分时,请使用井号、引号和换行符。
8、组装零件
这是一个如何将它们组合在一起的真实示例。我正在使用提示的组件和我们上面讨论的分隔符来为提示提供结构。关于出现的顺序,从核心指令开始,然后是示例、数据、输出格式,最后是交互历史记录。
是的,带有示例和上下文信息的提示可能会很长。这就是为什么模型提供者为单个推理打开越来越多的上下文窗口的原因——在 AI 术语中,这是模型生成一个答案的最大输入长度。
9、多提示方法
在构建复杂应用程序(如处理保险索赔的自主 AI 工作者)时,一个提示通常是不够的。你可以构建一个提示,对索赔进行分类、检查保险范围、考虑客户的保险政策并计算报销金额。
但这不是最好的方法。将提示拆分为较小的单任务提示并构建模型请求链既更容易,又能返回更准确的响应。通常,你首先对输入数据进行分类,然后选择使用模型和确定性函数处理数据的特定链。
原文链接:The Perfect Prompt: A Prompt Engineering Cheat Sheet
汇智网翻译整理,转载请标明出处