大型语言模型(LLM)的输出质量很大程度上取决于提示工程,即设计高质量的提示以指导模型生成准确输出的过程。本报告探讨了各种提示技术、最佳实践以及提示工程中可能遇到的挑战。
提示技术:
- 通用提示/零样本提示: 仅提供任务描述和一些初始文本,适用于模型能够理解任务并生成答案的情况。
- 单样本和少样本提示: 提供一个或多个示例,展示期望的输出模式,适用于需要特定结构或格式的任务。
- 系统提示: 定义模型的基本能力和总体目标,例如翻译语言或分类评论。
- 角色提示: 为模型分配特定角色,例如图书编辑或幼儿园教师,以生成更相关和更有信息的输出。
- 上下文提示: 提供与当前任务相关的具体细节或背景信息,帮助模型理解所提要求的细微差别。
- 后退提示(Step-back prompting): 通过首先考虑与具体任务相关的通用问题来激活相关的背景知识和推理过程,提升性能。
- 思维链(CoT): 通过生成中间推理步骤来提升 LLM 的推理能力,有助于生成更准确的答案。
- 自洽性: 结合采样和多数投票来生成多样化的推理路径,并选择最一致性的答案,提高 LLM 生成的响应的准确性和连贯性。
- 思维树(ToT): 允许 LLM 同时探索多种不同的推理路径,通过考虑多个视角并选择最一致的意见,获得更一致的正确答案。
- ReAct(推理与行动): 使 LLM 能够通过结合自然语言推理和外部工具(如搜索、代码解释器等)来解决复杂任务,允许 LLM 执行特定操作,例如通过交互外部 API 来检索信息。
- 自动提示工程(APE): 自动化提示编写过程,减轻人工输入的需求,并提升模型在各项任务中的性能。
最佳实践:
- 提供示例: 在提示中提供(单次/少量)示例,作为强大的教学工具,帮助模型学习并相应地调整其生成内容。
- 简洁设计: 使用描述动作的动词,保持提示简洁、清晰且易于理解和模型理解。
- 使用说明优于限制: 明确输出内容,使用积极的指令而非“不要做什么”的列表。
- 在提示中使用变量: 控制最大令牌长度,并重用提示使其更具动态性。
- 尝试不同的输入格式和写作风格: 实验不同的模型、模型配置、提示格式、词语选择和提交方式,找到最适合您特定任务的方案。
- 混合不同的类别: 在用于分类任务的少样本提示中,混合不同的类别,帮助模型学习识别每个类别的关键特征。
- 适应模型更新: 尝试使用较新版本的模型,并调整您的提示词以更好地利用新模型功能。
- 尝试不同的输出格式: 对于非创造性任务,试将输出以 JSON 或 XML 等结构化格式返回。
总结:
提示工程是 LLM 应用中的关键步骤,通过设计高质量的提示,可以显著提升模型的输出质量和任务性能。本报告提供的各种提示技术、最佳实践和实验方法,为 LLM 用户提供了宝贵的指导,帮助其更好地利用 LLM 的潜力。