CoT

提示工程(Prompt Engineering)深入解析:從思維鏈(CoT)到未來

前言:當語言模型學會「思考」

歡迎來到提示工程(Prompt Engineering)的進階世界!在大型語言模型(LLM)如 ChatGPT 剛問世時,我們驚嘆於它強大的語言「接龍」和文本生成能力。然而,使用者很快就發現,一旦遇到需要邏G輯、多步驟推理或數學運算的問題,它的表現就差強人意。

這背後的根本原因是:LLM 本質上是語言模型,而非推理模型。它們擅長預測下一個最可能的詞,而不是執行嚴謹的邏G輯推導。

為了解決這個問題,研究人員開發出了一種強大的提示技法——思維鏈(Chain-of-Thought, CoT)。CoT 的核心概念非常直觀:與其要求模型立即給出答案,不如引導它先展示一連串的思考過程,最後再給出結論

這種模仿人類思路的推理步驟,極大地提高了 LLM 解決複雜問題的能力。本文將深入探討 CoT 的核心概念、兩大主要技法,以及從 CoT 演化而來的更先進技術。


什麼是思維鏈(Chain-of-Thought, CoT)?

思維鏈(CoT)的概念在 2022 年被 Google 的研究論文《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》中正式提出。

研究發現,透過在提示(Prompt)中提供一些包含「中間推理步驟」的範例,可以顯著啟發大型語言模型的複雜推理能力。模型會學習這種「逐步思考」的模式,並在回答新問題時加以應用。

實驗結果令人震驚:

(圖片來源:Wei et al., 2022 論文)


CoT 的主要技法

CoT 的運用主要分為兩種形式:少樣本(Few-Shot)和零樣本(Zero-Shot)

少樣本思維鏈 (Few-Shot CoT)

這是 CoT 最早被提出的形式。它的重點在於「給予包含思路的範例」。

與傳統的 Few-Shot Prompting 只給「問題」和「答案」不同,Few-Shot CoT 會在範例中把解題的思路過程完整表達出來,藉此「教會」模型如何思考。

範例對比:

傳統 Standard Prompting (效果不佳)

Q: Roger has 5 tennis balls. He buys 2 more cans of tennis balls. Each can has 3 tennis balls. How many tennis balls does he have now?
A: 11.

Q: The cafeteria had 23 apples. If they used 20 to make lunch and bought 6 more, how many apples do they have?
A: 

模型可能只會猜一個數字,例如:29。

Few-Shot CoT (效果顯著)

Q: Roger has 5 tennis balls. He buys 2 more cans of tennis balls. Each can has 3 tennis balls. How many tennis balls does he have now?
A: Roger started with 5 balls. 2 cans of 3 tennis balls each is 2 * 3 = 6 balls. 5 + 6 = 11. The answer is 11.

Q: The cafeteria had 23 apples. If they used 20 to make lunch and bought 6 more, how many apples do they have?
A: 

這時,模型會學習範例中的思路,並生成類似的回答:

A: The cafeteria started with 23 apples. They used 20, so 23 - 20 = 3. They bought 6 more, so 3 + 6 = 9. The answer is 9.

(範例改編自 Wei et al., 2022

零樣本思維鏈 (Zero-Shot CoT)

提供完整的範例雖然有效,但有時顯得繁瑣。研究人員很快發現了一個更簡單、更神奇的方法,即 Zero-Shot CoT

在另一篇關鍵論文《Large Language Models are Zero-Shot Reasoners》中,作者發現,我們甚至不需要提供任何範例,只需要在問題的結尾加上一句「神奇咒語」,就能觸發模型的 CoT 能力。

這句咒語就是:

“Let’s think step by step” (中文可對應為:「讓我們一步一步地思考」)

運作原理: 當模型看到這句話時,它會理解這個語意,並自動觸發內部的推理機制。模型會自己生成原本需要我們在 Few-Shot 中提供的「思路 prompt」,然後再依據這個自生成的思路,給出最終答案。

實驗結果同樣驚人:在 GPT-3 上,Zero-Shot CoT 將算術推理任務(MultiArith)的準確率從 17.7% 飆升至 78.7%

(圖片來源:Kojima et al., 2022 論文)


超越 CoT:更進階的推理技法

CoT 打開了 LLM 推理能力的大門,而基於其「逐步思考」的核心理念,社群和研究界又發展出了更強大的變體。

1. 自洽性 (Self-Consistency)

2. 思維樹 (Tree of Thoughts, ToT)

3. 思維程序 (Program of Thoughts, PoT)


CoT 的局限性與注意事項

雖然 CoT 及其變體非常強大,但在使用時仍有幾個關鍵點需要注意:

  1. 模型規模至關重要: 如前所述,CoT 是一種大型模型的湧現能力。如果 你在較小的模型上使用 CoT,效果可能不佳,甚至會讓模型的表現倒退
  2. 任務類型: CoT 在需要邏輯、算術、符號推理的任務上效果最顯著。但在某些「常識推理」任務上,Zero-Shot CoT 的提升並不明顯。
  3. 「模仿」而非「真正」推理: 有研究指出,CoT 產生的思路,可能只是模型基於訓練數據所學到的「看起來最合理的敘述模式」(Plausible-sounding patterns),而非真正抽象的邏輯推導。儘管如此,它在實務上依然極為有效。

總結

思維鏈(CoT)是提示工程發展史上的一個里程碑。它標誌著我們與 AI 互動的轉變——從單純地「索取答案」,進化到「引導其推理過程」。

從基礎的 Few-Shot CoT、神奇的 Zero-Shot CoT 咒語,再到更強大的自洽性(Self-Consistency)、思維樹(ToT)和思維程序(PoT),我們正在一步步地解鎖 LLM 更深層的潛能。

往後,當你遇到 LLM 難以解決的複雜問題時,不妨停下來,不要急著要答案。試著對它說:

「讓我們一步一步地思考。」