总结
本白皮书详细探讨了提示工程,从基础概念到具体技术,再到关键应用和未来方向,并以实用建议收尾。
引言
提示工程是设计高质量提示以引导大型语言模型(LLM)产生准确输出的过程。任何人都可以编写提示,但构建最高效的提示可能相当复杂,因为提示的有效性受多种因素影响,包括所使用的模型、模型的训练数据、模型配置、措辞选择、风格语调、结构以及上下文。提示工程是一个迭代的过程,不恰当的提示可能导致模糊、不准确的响应。
提示工程
提示工程是设计高质量提示以引导 LLM 产生准确输出的过程,涉及反复调试以找到最佳提示,优化提示长度,并评估提示的写作风格和结构与任务的关系。提示可用于实现各种理解和生成任务,例如文本摘要、信息提取、问答、文本分类、语言或代码翻译、代码生成以及代码文档编写或推理。
LLM 输出配置
选定模型后,需要确定模型配置。大多数 LLM 都带有各种配置选项,用于控制其输出,包括输出长度和采样控制(温度、Top-K 和 Top-P)。温度控制令牌选择中的随机程度,Top-K 和 Top-P 决定了如何处理预测的令牌概率以选择单个输出令牌。这些配置参数并非独立运作,它们的相互作用很复杂,理解这些相互作用对于可预测的控制至关重要。
提示技巧
本白皮书研究了各种提示技巧,帮助读者入门,并分享成为提示专家的技巧和最佳实践,包括:
- 通用提示 / 零样本:仅提供任务描述和一些供 LLM 开始使用的文本。
- 单样本 & 少样本:提供单个或多个示例,帮助模型理解要求。
- 系统、上下文和角色提示:系统提示设置语言模型的总体背景和目的;上下文提示提供特定细节或背景信息;角色提示为语言模型分配一个特定的角色或身份。
- 回退提示:提示 LLM 首先考虑与手头特定任务相关的更普遍的问题,然后将该普遍问题的答案输入到后续针对特定任务的提示中。
- 思维链 (CoT):通过生成中间推理步骤来提高 LLM 推理能力。
- 自我一致性:结合了采样和多数投票来生成多样化的推理路径,并选择最一致的答案。
- 思维树 (ToT):允许 LLM 同时探索多个不同的推理路径。
- ReAct (推理与行动):使 LLM 能够通过将自然语言推理与外部工具相结合来解决复杂任务。
- 自动提示工程 (APE):使用 LLM 本身来优化它们自己或其他系统的输入(提示)。
代码提示
本白皮书还研究了代码提示,包括编写代码的提示、解释代码的提示、翻译代码的提示和调试和审查代码的提示,展示了 LLM 在软件开发中的重要性。
多模态提示
本白皮书提及了多模态提示的存在,但明确将其排除在详细讨论之外,使白皮书专注于基于文本(包括代码)的提示工程。
最佳实践
本白皮书强调了以下最佳实践:
- 提供示例
- 简洁设计
- 具体说明输出
- 使用指令而非约束
- 控制最大令牌长度
- 在提示中使用变量
- 尝试不同的输入格式和写作风格
- 对于带分类任务的少样本提示,混合类别
- 适应模型更新
- 尝试不同的输出格式
- 与其他提示工程师一起实验
- CoT 最佳实践
- 记录各种提示尝试
总结
本白皮书讨论了提示工程的各种技术,例如零样本提示、少样本提示、系统提示、角色提示、上下文提示、回退提示、思维链、自我一致性、思维树、ReAct 和自动提示工程。白皮书强调了提示工程是一个迭代的过程,需要持续实验、分析和记录,以优化 LLM 的输出。