什么是验证链提示法?
验证链是一种三步提示模式:先让模型草拟答案,再让它列出一组可以检验这份草稿的事实问题,然后在完全独立的对话中回答这些问题,最后据此改写草稿。它把事实查核从你的手动工作,转为模型对自己运行的一个步骤。
这个模式来自 2023 年由 Shehzaad Dhuliawala 及 Meta AI 团队发表的论文《Chain-of-Verification Reduces Hallucination in Large Language Models》。他们的发现是:模型在一个全新、隔离的步骤中检验自己的说法时,能揪出它在原本对话里会理直气壮维护的错误。
机制比名字重要。真正发挥作用的是「隔离」。当验证问题不是在草稿面前作答,模型就无法单纯附和自己。
为什么让 AI 检查自己的答案真的有效?
因为模型针对一个窄问题重新作答,跟它审视自己刚写完的段落,是两种不同的行为。草稿本身会成为上下文,令模型倾向同意。把草稿抽走,冷启动地问同一条窄问题,答案往往会不同,而这个差异就是错误信号。
这也解释了为什么「请检查以上内容是否准确」几乎查不出东西。那些说法仍然在上下文里,模型会把它们读成既定前提,然后去寻找它们正确的理由。
Anthropic 在其减少幻觉官方文档中,从另一个角度指向同一个原理。它建议在模型生成回复之后,要求模型为每一项说法找出支持的原文引述,找不到就必须撤回该说法。
对于不写程序的人,实际做法就是两个对话窗口,一个原有对话加一个全新对话。这就是全部所需的「基础设施」。
验证链的三个提示具体怎样写?
第一个提示照常产出草稿,第二个提示在同一对话中生成验证问题,第三个提示则在毫无历史纪录的全新对话中作答。把验证后的答案贴回第一个对话,要求重写。三个提示,大约四分钟,适用于现时任何一个主流模型。
提示二:生成验证问题
--- 在草稿之后,于同一对话粘贴:
「列出你上面答案中所有可能出错的事实性陈述:人名、日期、数字、价格、职衔、产品功能、引述。针对每一项,写一条简短问题以确认或推翻它。问题必须让一个从未看过你草稿的人也能回答。只输出编号问题,不要其他内容。如果某项属于你的推论而非事实,标注 INFERENCE,并且不要为它写问题。」
提示三:在隔离状态下作答
--- 开一个全新对话。没有历史、没有草稿、不解释问题来源:
「请独立且简短地回答以下每一条问题。如果你不知道,或无法从一个你能说出名字的来源核实,请写 UNVERIFIED,并说明什么来源可以确认。不要猜测,不要用听起来合理的说法含糊带过,也不要推测这些问题的用途。1. [粘贴] 2. [粘贴] 3. [粘贴]」
然后回到第一个对话,粘贴答案并给一句指令:按这些已核实的答案改写草稿,删除所有标示 UNVERIFIED 的内容,不得添加任何说法。
在真实工作任务上会发生什么?
举一个常见情境。你在客户会议前,要求 AI 撰写一页竞争对手演示文稿。草稿回来时语气自信、结构完整,里面却有一轮从未发生的融资、一位两年前已离任的行政总裁,以及一个早已下架的收费方案。
运行提示二,模型通常会产出八至十二条问题:「X 公司的 B 轮融资在何时完成、金额多少?」「X 公司现任行政总裁是谁?」「X 公司付费方案的入门价格是多少?」
在隔离状态运行提示三,实务上的模式相当一致:部分答案与草稿吻合,少数回复 UNVERIFIED,另有一两项与草稿直接矛盾。那些矛盾,正是会让你在会议上出丑的部分。
同一个流程也适用于数据摘要、市场规模段落、合规说明,或你为真实人物撰写的简介。任何一个具体数字出错的代价,高于这四分钟的输出,都值得跑一次。
哪两句话应该出现在每个事实密集的提示里?
有两条指令在需要验证之前,就完成了大部分预防工作。Anthropic 的文档同时列出这两点:明确允许模型说「我不知道」,以及在长文档任务中,先抽取逐字原文引述再开始分析。
--- 第一句:「如果你对某个具体事实没有把握,请在它旁边写上 UNVERIFIED,而不是给出你认为最可能的答案。一个不完整的答案,对我比一个自信但错误的答案更有用。」
--- 第二句,适用于任何以你提供的文档为基础的任务:「回答之前,先从文档中抽取支持你答案的原句,逐字引述。然后只根据这些引述作答。如果文档中没有答案,请直接说明。」
Anthropic 特别建议在约 20,000 tokens 以上的文档使用先引述后作答的做法,大约相当于 15,000 字或一份 40 页的 PDF。低于这个长度同样有帮助,因为它迫使模型指向文本,而不是指向记忆。
这两句话不用付出任何成本,却改变了失败的形态。你得到的不再是流畅的杜撰,而是一个看得见、可以去补上的空缺。
验证链在什么情况下会失效?
它抓的是事实性错误,不是推理错误、判断失当,或模型根本无从得知的内容。一个对某家香港私人公司毫无可靠数据的模型,会在草稿中给出自信的错误答案,也会在验证阶段给出自信的错误答案,因为两者源自同一个空缺。
--- 训练截止日之后的信息会失效。没有网络搜索的验证,只是对记忆的验证。涉及近期价格、人事变动或产品功能时,请使用已打开搜索的模型,并要求每个答案附上链接。
--- 对计算得出的数字效果薄弱。如果草稿把两个数字相乘算错了,两轮都可能重复同一个算术失误。应改为要求模型完整写出计算过程。
--- 抄捷径就会前功尽弃。把提示三放在同一对话中运行,效果会完全消失。隔离本身就是这个技巧。少了它,你只是多打了两个提示。
--- 它不能取代法律、医疗或财务内容的人手覆核。它的作用是减少送到你眼前的错误数量,而不是让你的眼睛离开流程。
怎样把它变成可重复的流程?
把提示二和提示三存成可一键粘贴的文本片段,并把那两句预防指令,放进工具会自动套用的位置。在 ChatGPT 是自订指令或自建 GPT,在 Claude 是项目指令,在 Gemini 则是已保存的 Gem。这个技巧只有在你不需要刻意记住时,才真正划算。
让它持续运作的关键是触发条件,而不是自律。事先决定哪类输出需要验证。一个可行的缺省:任何含有数字、人名或日期,而且会被团队以外的人看到的内容。
其余的一律略过。对脑力激荡或初稿大纲做验证,只会浪费那四分钟,并让你开始厌恶这个步骤。
还有一个值得一次设置好的细节。如果你的工具容许关闭记忆功能或打开临时对话,请在提示三使用它。记忆功能可能把你正要隔离的那份草稿重新带回上下文,悄悄地把你打回原形,变成一次什么都查不出的单一情境检查。
立即试做:五分钟测试
找一段你本星期由 AI 写成、至少包含三个具体事实的文本。可以是客户演示文稿、关于行业趋势的 LinkedIn 贴文,或一份报告摘要。不要挑你早已确定正确的内容。
对它运行提示二,数一数问题有多少条。开一个全新对话运行提示三,然后逐行比对每个答案与原文。
多数人在第一次尝试就会找到一项矛盾与两项 UNVERIFIED。那就是你目前工作流程正在放行的错误数量。知道这个数字,正是这个练习的意义。
如果输出不稳定是你更广泛的问题,我们早前关于非工程师的情境工程一文,讲解了每个提示背后的五个层次。
重点回顾
AI 捏造事实,不是因为它马虎。而是因为对它而言,产出一句通顺的句子和产出一句真实的句子,是同一个动作,而普通的提示并没有把两者分开。
验证链把两者分开,用的只是第二个窗口和一句更严格的指令。四分钟、不需工具、不需订阅,而且适用于你现时已经在付费使用的每一个模型。
能稳定得到可靠 AI 输出的人与得不到的人之间,差距很少在于天赋,多数只在于一个没有人告诉他们要加上的步骤。懂AI的冷,更懂你的难 UD 同行28年,让科技成为有温度的陪伴。
由 UD AI 团队审阅。
把一个技巧,变成一套可运作的系统
掌握验证流程只是第一步。把它嵌入整个团队每次都以相同方式运行的工作流程,价值才会累积。UD 团队手把手带你完成每一步,由提示设计、工具配置,到在团队内全面部署。