AI Agent系列【七】
- 前言
- 一、CoT技術詳解
- 1.1 CoT組成
- 1.2 CoT的特點
- 二、CoT的作用
- 三、CoT的好處
- 四、CoT適用場景
- 五、CoT的推理結構
前言
思維鏈(Chain of Thought,CoT),思維鏈就是一系列中間的推理步驟(a series of intermediate reasoning steps),通過要求模型在輸出最終答案之前,顯式輸出中間逐步的推理步驟這一方法來增強大模型的算數、常識和推理能力。
一、CoT技術詳解
COT方式通過讓大模型逐步參與將一個復雜問題分解為一步一步的子問題并依次進行求解的過程可以顯著提升大模型的性能。
如下圖所示的對比,CoT 完成了從輸入到思維鏈再到輸出的映射,即<input——>reasoning chain——>output>,完全區別于之直接到輸出的映射 <input——>output> 。
這個實例很好的解釋了再沒有CoT的情況下和增加了相應的邏輯思維過程后相應的計算結果的差異,思維鏈提示給出了正確答案,而直接給出答案的傳統提示學習,結果是錯的。
CoT思維鏈提示在給出答案之前,還給出相應的推理過程如下:
“羅杰先有 5 個球,2 罐 3 個網球等于 6 個,5 + 6 = 11”
“食堂原來有 23 個蘋果,用 20 個做午餐,23-20=3;又買了 6 個蘋果,3+6=9”
1.1 CoT組成
一個完整的包含 CoT 的提示詞一般由指令(Instruction,告訴模型需要干什么),邏輯依據(Rationale,告訴模型怎么干),示例(Exemplars,給模型舉例說明指令和邏輯依據)三部分組成。
1)指令:用于描述問題并且告知大模型的輸出格式;
2)邏輯依據:指 CoT 的中間推理過程,可以包含問題的解決方案、中間推理步驟以及與問題相關的任何外部知識;
3)示例:指以少樣本的方式為大模型提供輸入輸出對的基本格式,每一個示例都包含:問題,推理過程與答案。
1.2 CoT的特點
有效的思維鏈應該具有以下特點:
-
邏輯性:思維鏈中的每個思考步驟都應該是有邏輯關系的,它們應該相互連接,從而形成一個完整的思考過程。
-
全面性:思維鏈應該盡可能地全面和細致地考慮問題,以確保不會忽略任何可能的因素和影響。
-
可行性:思維鏈中的每個思考步驟都應該是可行的,也就是說,它們應該可以被實際操作和實施。
-
可驗證性:思維鏈中的每個思考步驟都應該是可以驗證的,也就是說,它們應該可以通過實際的數據和事實來驗證其正確性和有效性。
二、CoT的作用
1、CoT允許模型把一個復雜問題拆解成多個步驟,也就是說需要更多推理步驟的問題可以多分點計算量。
2、CoT提供了一個觀察模型為何會犯錯的窗口,因此也就提供了一個debug模型的機會。
3、CoT能用在數學應用題、常識推理和符號操作上,也就有可能用在任何人類通過語言能解決的問題上。
4、CoT支持任何語言模型使用,加在 few-shot的樣例中就能生效。省去了重新訓練模型的功夫。
三、CoT的好處
CoT 的能力已經被無數工作所驗證,對使用 CoT 的好處可以歸納為以下四點:
增強了大模型的推理能力:CoT 通過將復雜問題分解為多步驟的子問題,相當顯著的增強了大模型的推理能力,也最大限度的降低了大模型忽視求解問題的“關鍵細節”的現象,使得計算資源總是被分配于求解問題的“核心步驟”;
-
增強了大模型的可解釋性:對比向大模型輸入一個問題大模型為我們僅僅輸出一個答案,CoT 使得大模型通過向我們展示“做題過程”,使得我們可以更好的判斷大模型在求解當前問題上究竟是如何工作的,同時“做題步驟”的輸出,也為我們定位其中錯誤步驟提供了依據;
-
增強了大模型的可控性:通過讓大模型一步一步輸出步驟,我們通過這些步驟的呈現可以對大模型問題求解的過程施加更大的影響,避免大模型成為無法控制的“完全黑盒”;
-
增強了大模型的靈活性:僅僅添加一句“Let’s think step by step”,就可以在現有的各種不同的大模型中使用 CoT 方法,同時,CoT 賦予的大模型一步一步思考的能力不僅僅局限于“語言智能”,在科學應用,以及 AI Agent 的構建之中都有用武之地。
四、CoT適用場景
在非符號推理類別和數據集上,特別是那些主要包含常識(CSQA、PIQA、SiQA)、語言理解(WinoGrande)和閱讀理解(AGI LSAT、ARC-Easy、ARC-Challenge)的問題上,零樣本 CoT 和零樣本直接回答的性能幾乎沒有區別。盡管這些數據集涉及推理,但 CoT 并沒有帶來增益。
相比之下,數學和符號類別(以及符號和半符號數據集)獲得了更大的提升。CoT 在 MATH 和 GSM8k 上帶來的增益分別高達 41.6% 和 66.9%。在 ContextHub 和 MuSR Murder Mysteries 等半符號數據集上,CoT 表現出了中等程度的增益。這些數據集需要應用邏輯規則才能得出答案,例如從簡單的自然語言(ContextHub)或更復雜的常識性陳述(MuSR Murder Mysteries)中解析得到的一階邏輯。
五、CoT的推理結構
CoT 構造主要將傳統線形,鏈式的 CoT 轉化為如表格、樹狀、圖狀格式,如 PoT,Tab-CoT,ToT 以及 GoT-Rationale,四種方法可通過如下圖獲取對應的異同。
PoT: P 指 Programm 即程序,PoT 的思想也非常簡單,對思維鏈中大模型有可能出錯的一些計算問題,讓大模型生成出編程語言在解釋器中運行,以將復雜計算與模型的文本生成解耦。
Tab-CoT: Tab 指 Tabular 表格,在 ToT 中,研究者迫使大模型在每一步的推理中記錄一個“∣步數∣子問題∣過程∣結果∣”的推理表格,并讓大模型在推理時從生成的表格中提取答案,從而增強大模型的推理能力。
ToT: T 指 Tree 即思維樹,簡單理解就是將 CoT 的鏈式結構擴展為樹形結構。ToT 讓大模型在解決子問題時生成多個不同的答案選擇,通過此建立的樹形結構讓大模型可以展望未來確定下一步的決策并且通過追溯來糾正歷史決策。
GoT:基于 ToT 的思想,將 Tree 拓展為 Graph。GoT 系統的核心在于一個“控制器”,控制器處理對圖的操作(GoO)以及圖狀態推理(GRS),其中 GoO 用于將一個給定的任務進行圖分解,將一個任務分解為相互連接的節點-邊關系,而 GRS 則負責維護大模型在 GoO 生成的圖上的推理過程,記錄當前步的狀態,決策歷史等等信息。
參考文件
https://zhuanlan.zhihu.com/p/670907685