Self-consistency
在本章的最佳实践部分,我们将学习一些专门针对思维链提示的最佳实践。
自洽性
尽管大型语言模型在各种自然语言处理任务中展现出令人瞩目的成就,但其推理能力常被视为仅靠扩大模型规模无法克服的局限。正如我们在前一节思维链提示中所学,模型可被提示像人类解题般生成推理步骤。然而思维链采用简单的 ‘ 贪婪解码 ’ 策略,限制了其有效性。自洽性 11 结合抽样与多数表决机制,生成多样化推理路径并选择最一致的答案,从而提升大语言模型生成响应的准确性与连贯性。
自洽性为答案的正确性提供了伪概率似然,但显然成本高昂。
其步骤如下:
- 生成多样化推理路径:多次向大语言模型提供相同提示。高温设置促使模型对问题产生不同
的推理路径和视角。
- 从每个生成的响应中提取答案。
- 选择最普遍的答案。
以邮件分类系统为例,该系统将邮件标记为重要或非重要。零样本思维链提示会多次发送给大语言模型,观察每次提交后响应是否不同。请注意邮件中友好的语气、措辞选择及使用的讽刺手法,这些都可能导致大语言模型误判。
提示EMAIL:
``` Hi, I have seen you use Wordpress for your website. A great open source content management system. I have used it in the past too. It comes with lots of great user plugins. And it's pretty easy to set up.
I did notice a bug in the contact form, which happens when you select the name field. See the attached screenshot of me entering text in the name field. Notice the JavaScript alert box that I inv0k3d.
But for the rest it's a great website. I enjoy reading it. Feel free to leave the bug in the website, because it gives me more interesting things to read.
Cheers, Harry the Hacker.
``` Classify the above email as IMPORTANT or NOT IMPORTANT. Let's think step by step and explain why.
继续下一页 ...
输出** 步骤 1:明确邮件目的。** 示例 1该邮件的目的是通知收件人网站联系表单中存在一个漏洞发件人还提到他们很喜欢浏览该网站并且目前暂时保留该漏洞不作处理
** 步骤 2:评估该漏洞的潜在影响。** 联系表单中的漏洞可能允许攻击者在网站上执行任意 JavaScript 代码。这可能导致攻击者能够窃取õ ~ 控制网站、窃取敏感信息或篡改网站内容。
** 步骤 3:评估发件人的可信度。** 邮件发件人自称是名为 Harry 的黑客。但无法验证其身份真实性。~ 该发件人可能是试图帮助收件人的合法黑客,但也可能是企图诱骗收件人点击恶意链接的不法分子。
链接或下载恶意文件。
** 结论:重要 ** 根据该漏洞的潜在影响及发件人的可信度,此邮件应归类为 ** 重要 **。收件人应立即采取行动修复漏洞,保护网站免受攻击。
输出** 说明 :** 尝试 2
- ** 缺乏紧迫性 :** 邮件未传达任何紧迫感或
时间敏感性。它以随意问候开头,并以平铺直叙的语气呈现信息。
- ** 非关键性错误报告 :** 联系表单中报告的
错误被描述为有趣但不关键。发件人甚至暗示 ~ 网站所有者可以选择保留该漏洞。
- ** 缺乏个人影响:** 邮件未表明对网站所有者有任何直接或
个人层面的影响。仅提及发件人喜欢阅读该网站内容。
转下页 ...
输出4. ** 无行动请求 **:邮件未明确要求任何 A 项 2网站所有者的行动。它并未要求修复该漏洞或提供任何具体的改进建议。
- ** 发送者意图:** 发送者的意图似乎更侧重于
分享观察结果并表达对网站的兴趣,而非提出严重关切或请求帮助。
** 结论:不重要 ** 输出** 步骤 1:明确邮件目的。** A empt 3该邮件的目的是通知收件人,其网站的联系表单中存在一个缺陷。发件人还提到,他们很喜欢浏览该网站,n 并暂时保留该缺陷不予修复。
他们暂时保留这个漏洞不修复。
** 步骤 2:评估该漏洞的潜在影响。** 联系表单中的漏洞可能允许攻击者执行任意 JavaScript 代码。这可能导致攻击者能够控õ ~ 制网站、窃取敏感信息或篡改网站内容。
** 步骤 3:考虑发件人的可信度。** 邮件发送者自称是名为 Harry 的黑客。但没有任何~ 验证发送者身份的方法。发送者可能是合法的试图帮助接收者的黑客,但也可能是试图利用该漏洞谋取私利的恶意行为者。
** 结论:** 基于上述因素,该邮件应归类为 ** 重要 **。
联系表单中的漏洞是严重的安全风险,且发送者的可信度~ 发件人身份未知。收件人应立即采取行动修复漏洞并核实发件人的主张。
表 14. 自洽性提示示例
您可以使用上述提示语尝试观察其是否返回一致的分类结果。根据所用模型及温度参数配置,可能返回 “ 重要 ” 或 “ 非重要 ” 两种结果。
全站分卷索引 · 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