什麼是驗證鏈提示法?
驗證鏈是一種三步提示模式:先讓模型草擬答案,再讓它列出一組可以檢驗這份草稿的事實問題,然後在完全獨立的對話中回答這些問題,最後據此改寫草稿。它把事實查核從你的手動工作,轉為模型對自己執行的一個步驟。
這個模式來自 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 團隊手把手帶你完成每一步,由提示設計、工具配置,到在團隊內全面部署。