思維鏈提示是什麼,跟直接要求模型給答案有什麼不同?
思維鏈提示(Chain-of-Thought Prompting,簡稱 CoT)是一種要求模型在產生最終答案之前,先把中間的推理過程用文字寫出來的技巧。最簡單的觸發方式,是在提示詞末尾加上一句「讓我們一步一步思考」,模型就會先展開一連串推理步驟,再導向最後的答案,而不是直接跳到結論。
這跟直接要求模型「給我答案」的差別,在於後者要求模型一步到位、內部完成所有推理再吐出結果,前者則是把推理過程外顯化、變成文字的一部分。這個差異在簡單任務上感受不明顯,但在需要多步驟邏輯推導的任務(例如數學應用題、複雜的條件判斷)上,差距會很明顯——外顯化推理過程,讓模型有機會逐步檢查每一步是否合理,而不是在一次生成裡同時處理所有邏輯跳躍。
為什麼思維鏈提示能提升準確度,背後的原理是什麼?
2022 年 Wei 等人發表的原始論文提出這個技巧時,核心觀察是:複雜的多步驟問題(尤其是數學推理、常識推理)如果要求模型一次性直接生成答案,模型很容易在中間某個邏輯環節出錯,而這個錯誤不會被檢查、直接反映在最終答案上;但如果讓模型先把推理步驟寫出來,等於是把一個大問題拆成一連串較小的中間步驟,每一步只需要處理相對簡單的邏輯判斷,出錯的機率自然降低。
值得注意的是,思維鏈提示對小型模型的幫助有限,論文的實驗發現這個技巧的效益主要在模型規模夠大時才會顯著出現——這也是為什麼思維鏈提示常被歸類為大型語言模型的「湧現能力」之一,規模不夠大的模型,即使套用同樣的提示技巧,提升幅度也相對有限。
思維鏈提示有哪些不同的用法,適用情境有什麼差異?
最基本的形式是零樣本思維鏈(Zero-Shot-CoT)——不提供任何範例,單純在提示詞裡加上「讓我們一步一步思考」這句話,模型就會自動展開推理步驟,這是最簡單、成本最低的用法。
更進階的形式是把思維鏈跟少樣本提示(Few-Shot Prompting)結合——在提示詞裡提供一到多個「問題+完整推理過程+答案」的範例,讓模型模仿範例的推理風格去處理新問題,這種組合通常比純零樣本思維鏈的效果更好,但需要花心思設計品質夠高的範例。此外還有像是「表格式思維鏈」這類變形,要求模型把推理過程輸出成表格形式,藉由結構化的輸出格式進一步提升推理的條理性。三種用法的共通點都是「先展開推理再給答案」,差異在於有沒有範例引導、以及推理過程的呈現格式。
我在跟 Claude 對話時,什麼情況該主動使用思維鏈提示?
如果任務本身很簡單、答案幾乎不需要中間推理(例如查詢一個事實、簡單的格式轉換),不需要特別要求思維鏈,反而可能讓回覆變得冗長;真正該主動使用的情境是任務涉及多步驟邏輯判斷、需要權衡多個條件,或是你發現模型在某類任務上經常直接跳答案卻算錯——這時候明確要求「請先列出你的推理步驟,再給出結論」,能讓你不只拿到答案,還能看到中間哪一步的邏輯出了問題,方便你判斷答案是否可信、要不要進一步修正。
對於程式除錯、複雜的規劃類任務、或是需要比較多個選項優劣的決策,思維鏈提示的效益特別明顯——外顯的推理過程不只提升準確度,也讓你這個使用者能夠追蹤模型的判斷邏輯,而不是拿到一個黑盒子答案。
Wei 等人在 2022 年的原始論文中,用一道應用題實測比較兩種提示方式:直接要求模型給答案時,模型算錯了蘋果剩餘數量;改用思維鏈提示、要求模型先展開推理步驟後,模型正確地依序列出每一次增減的數量再得出正確答案——這個簡單的算術範例,成為後續大量論文與教學資料引用、示範思維鏈提示效果的經典案例。
思維鏈提示的優點是能明顯提升複雜多步驟推理任務的準確度,並讓推理過程可被檢視、方便使用者判斷答案是否可信;缺點是會讓回覆變長、多花費 token,對本身簡單、不需要推理的任務效益不明顯,且效果高度依賴模型規模,在較小的模型上提升幅度有限。