CoT Best practices
思维链最佳实践
在思维链提示中,将答案置于推理过程之后是必要的,因为推理过程的生成会改变模型预测最终答案时所依据的标记。
使用思维链与自洽性方法时,需确保能从提示中分离出与推理过程独立的最终答案。
对于思维链提示( CoT),将温度参数设置为 0。
思维链提示基于贪心解码策略,即根据语言模型分配的最高概率预测序列中的下一个词。一般而言,进行推理以得出最终答案时,很可能存在唯一正确答案,因此温度参数应始终设为 0。
记录各类提示尝试
虽然本章前文已提及最后这条建议,但其重要性再怎么强调都不为过:详细记录您的全部提示尝试细节,这样才能持续了解哪些方法有效、哪些无效。
提示输出可能因模型差异、采样设置不同,甚至同一模型的不同版本而产生变化。此外,即使向同一模型发送完全相同的提示,输出语句的格式和措辞也可能存在细微差异。(例如前文所述,若两个标记的预测概率相同,可能会随机打破平局,这将影响后续预测标记)。
我们建议以表 21 为模板创建 Google 表格。这种方法的优势在于,当您不可避免地需要重新审视提示工作时(您会惊讶地发现,即使短暂休息后也会遗忘许多细节),可以拥有完整记录 —— 无论是为了将来继续(您可能会忘记很多细节)、测试不同版本模型的提示性能,还是帮助调试未来出现的错误。~
除了表格中的字段外,记录提示版本(迭代)、用于标记结果是否通过( OK/NOT OK/ SOMETIMES OK)的字段以及反馈字段也很有帮助。如果您有幸使用 Vertex AI Studio,请保存提示(使用文档中列出的相同名称和版本),并在表格中跟踪保存提示的超链接。这样,您只需点击一下即可重新运行提示。
在 retrieval augmented generation 系统上工作时,您还应记录影响提示内容的具体 RAG 系统细节,包括查询、分块设置、分块输出及其他信息。
当您觉得提示词接近完美时,将其应用到项目代码库中。在代码库中,将提示词与代码分开保存在独立文件中,以便于维护。最终,理想情况下您的提示词应成为可操作化系统的一部分。作为提示工程师,您应依赖自动化测试和评估流程来了解提示词对任务的泛化效果。
提示工程是一个迭代过程。创建并测试不同提示词,分析结果并记录。根据模型表现优化提示词。持续实验直至获得理想输出。当更换模型或调整模型配置时,需重新用先前使用过的提示词进行实验验证。
全站分卷索引 · 34 卷
- 1Introduction
- 2Prompt engineering
- 3LLM output configuration
- 4Sampling controls
- 5Top-K and top-P
- 6Putting it all together
- 7Prompting techniques
- 8One-shot & few-shot
- 9System, contextual and role prompting
- 10System prompting
- 11Role prompting
- 12Contextual prompting
- 13Step-back prompting
- 14Chain of Thought (CoT)
- 15Self-consistency
- 16Tree of Thoughts (ToT)
- 17ReAct (reason & act)
- 18Automatic Prompt Engineering
- 19Code prompting
- 20Prompts for explaining code
- 21Prompts for translating code
- 22Prompts for debugging and reviewing code
- 23What about multimodal prompting?
- 24Design with simplicity
- 25Be specific about the output
- 26Control the max token length
- 27Experiment with input formats and writing styles
- 28Adapt to model updates
- 29JSON Repair
- 30Working with Schemas
- 31Experiment together with other prompt engineers
- 32CoT Best practices
- 33Summary
- 34Endnotes