总结
引言
大型语言模型(LLM)的输入和输出依赖于文本提示,无需专业背景即可编写提示,但 crafting 高效提示需要考虑模型选择、配置、措辞、结构和上下文等因素。本文详细探讨了提示工程,包括各种提示技术、最佳实践和挑战。
LLM 输出配置
LLM 的输出受多种配置选项控制,包括:
- 输出长度: 生成长度受计算资源、响应时间和成本限制。应根据需求调整长度,并注意避免重复循环问题。
- 采样控制: 温度、Top-K 和 Top-P 控制预测 token 的随机性和多样性。
- 温度: 控制随机性,低温度适合确定性响应,高温度产生更多样化的结果。
- Top-K: 选择概率最高的 K 个 token,高 Top-K 更具创意,低 Top-K 更具事实性。
- Top-P: 选择累积概率不超过 P 的 token,P 越接近 1 越具创意。
- 组合设置: 温度、Top-K 和 Top-P 的设置相互影响,需根据任务和预期结果进行调整。
提示技术
本文介绍了多种提示技术,帮助 LLM 生成准确和相关的输出:
- 零样本提示: 仅提供任务描述和示例文本。
- 单样本和少样本提示: 提供一个或多个示例,展示所需输出模式。
- 系统提示: 设置 LLM 的整体上下文和目的。
- 角色提示: 为 LLM 分配特定角色,以生成符合该角色的响应。
- 上下文提示: 提供与当前任务相关的具体信息。
- 后退提示: 先考虑一般性问题,再将其答案作为上下文输入到特定任务提示中。
- 思维链(CoT): 生成中间推理步骤,提高推理能力。
- 自洽性: 结合采样和多数投票,生成多样化的推理路径并选择最一致的答案。
- 思维树(ToT): 允许 LLM 同时探索多个推理路径。
- ReAct: 结合推理和行动,使 LLM 能够使用外部工具解决问题。
代码提示
LLM 可用于编写、解释、翻译和调试代码。本文提供了相关提示示例,并强调了测试和验证生成代码的重要性。
多模态提示
多模态提示使用多种输入格式(如文本、图像、音频)指导 LLM,但本文主要关注文本提示。
最佳实践
本文分享了提示工程的最佳实践:
- 提供示例
- 保持简洁
- 明确输出要求
- 使用指令而非约束
- 控制最大 token 长度
- 使用变量
- 尝试不同的输入格式和写作风格
- 少样本分类任务中混合类别
- 适应模型更新
- 尝试不同的输出格式
- 使用 JSON 修复工具
- 使用 JSON 架构定义输入结构
- 与其他提示工程师合作
- CoT 最佳实践
- 记录提示尝试
结论
提示工程是一个迭代过程,需要不断测试、分析和改进提示。通过理解 LLM 的工作原理、掌握各种提示技术并遵循最佳实践,可以有效地利用 LLM 生成准确和相关的输出。