# Chain-of-Thought Prompting / Self-consistency in LLMs 論文導讀 #### by Google Research, Brain Team ### Chain-of-Thought Prompting 思考鏈提示法 一般大型語言模型在處理的問題涉及圖像、算數時,與其直接輸入問題,將問題轉換成Chain-of-Thought(CoT)的形式後Prompt給模型會顯著地提高正確度,而CoT Prompting著重於給予模型範例時,將==思考的邏輯與推理過程==秀給模型看,如下圖: ![](https://hackmd.io/_uploads/rJ__D_wVn.png) 以<input, CoT, output>的形式作為few-shot 的 examplar。 ### Chain-of-Thought Prompting 好處 1. 可以使模型將multi-step的問題切分成中間的步驟,需要越多解題步驟的問題能被分配到更多的運算資源。 2. Chain-of-Thought可以圖像化模型的解題思路,讓debug時有更有機會找出問題所在 (**注意:使模型完整歸納其運算過程的方法還待研究**) 3. Chain-of-Thought reasoning 可以處理幾乎所有人類能透過語言解決的問題 ex: 數字、常識、符號推理等等 4. 可以透過few shot的Chain-of-Thought prompting使現成的大型語言模型產生有Chain-of-Thought reasoning的output。 ### 論文實驗 作者探討使用Chain-of-Thought prompting在Large Language Models中處理算術推理(Arithmetic reasoning)、常識推理與符號推理(Symbolic reasoning)對比標準prompting的差別。 >#### 可以作為GPT iterative reasoning實驗的參考方法 >在作者之後的論文中出現了Self-consistency,取代了這篇論文對model的sample方式使用Greedy Decoding,由原本的model output softmax機率最大$\rightarrow$變成多次取樣model的reasoning path和answer aggregate成最終的結果,即final answer #### 算術推理 Arithmetic reasoning 作者花了大片篇幅在論證CoT的算術推理,因為在確認了CoT可以顯著地improve solve rate(下圖左)之後,作者進行了各種的ablation study,如: - 要求模型**在CoT中只能output equation而沒有自然語言推論的步驟** - 要求模型的**CoT只output跟解題中equation推論中使用的總字元數量相同的dot**以測試用自然語言來進行推理的重要性 - **把CoT移到answer之後**以測試在答案前就給CoT是否有activate knowledge的作用 使用的 從下圖中可以知道,CoT能顯著提升solve rate並不是單獨建基於幾個variant,而是整個CoT。 ![](https://hackmd.io/_uploads/ryF9CgYH2.png) 之前的文獻有提及,更改examplars的排列可以使GPT-3的accuracy ranging from 54.3%到93.4%,因此作者想針對CoT的註解style的影響做分析。 結果發現不同的CoT style,儘管彼此之間的solve rate稍有差異,但只要使用了CoT,就能使Model表現出遠超baseline的solve rate!(如上圖右) #### 常識推理(Commonsense Reasoning) 常識推理是透過廣泛的背景知識來對涉及物理上及人類的互動進行假設推理。 只要擁有足夠參數量的Model,使用CoT prompting來進行常識推理一樣是參數量越多,improvement越顯著,如下圖,針對不同的常識推理dataset和不同參數量的Model,CoT prompting與標準prompting的表現比較。 ![](https://hackmd.io/_uploads/HkRC0nKSh.png) #### 符號推理(Symbolic reasoning) 人類進行抽象思考時通常會涉及內心的圖像,這種思考模式對人類可能很簡單,但對language model就不容易了。CoT prompting不只可以使LLM進行涉及複雜語境的符號推理,也可以使Model能處理比examplars更長的input,作者也設計了兩種實驗來測試CoT prompting使LLM進行符號推理的能力。 - 請Model將input的姓名中每個字的字尾串在一起,如 $Amy \space Brown \rightarrow yn$ - 在一些人有翻一些人沒翻硬幣之後判斷硬幣的正反 而所有test set的字數(name)/steps(coin)跟training examplars一樣時稱為in domain,其他則是OOD(out-of-domain)。從實驗結果(下圖)可以知道使用CoT prompting的Model在符號推理上不管是OOD、in domain都能有顯著的進步。 ![](https://hackmd.io/_uploads/SyeYt6YH2.png) ### 討論與重點整理 - **Chain of Thought Prompting**確實可以使足夠參數的大型語言模型針對不同類型的問題更好地output出正確的結果。 - **Chain of Thought是模仿人類推理模式,但這樣的prompting有沒有使得Model真的在進行「推理」還有待研究。** - 推理的路徑並不一定是正確的,可能推理正確但結果錯誤,vice versa。 - 可以參照作者在Appendix附上的方法手工compose數字題的Chain of Thought Prompting嘗試引出Model的reasoning過程。 #### 作者針對數字題目的prompting方法 ![](https://hackmd.io/_uploads/r1grVAtS2.png) ![](https://hackmd.io/_uploads/SJd5J1pH3.png) Reference: [Chain-of-Thought Prompting Elicits Reasoning in Large Language Models](https://arxiv.org/pdf/2201.11903.pdf), [Self-consistency improves chain of thought reasoning in Language Models](https://arxiv.org/pdf/2203.11171.pdf)