研究背景&動機
背景:擴大模型規模已被證實具有提升模型性能和模型效率的功效,但是LLM對于完成推理、算術任務仍有較大不足。
動機:從之前的應用和研究中得知,可以用生成自然語言解釋、使用神經符號等形式語言的方法來提高大模型的算術推理能力,當時采用了從頭預訓練和微調模型的方法,耗費的成本較多;而且大模型具有根據少量文本提示進行上下文少樣本學習的能力,使用少量輸入輸出示例即可提高LLM的推理性能,而不必對單獨的檢查點進行微調。
主要貢獻
貢獻了一種通過上下文提示提升LLM推理能力的方法,并進行了不同大小模型在算數推理、常識推理和符號推理上的能力,以及其他相關研究。
研究細節
思維鏈
結合上述兩種方式,用形式化自然語言撰寫少量輸入輸出示例作為上下文提示,啟發LLM進行泛化,從而提高LLM推理性能。
思維鏈(Chain of Thought,CoT)的最初形式是(輸入,思維鏈,輸出)。思維鏈可以被解釋成一種解決方案,類似于人類在思考問題時逐步思考問題的過程,也就是鏈式思維。
CoT有諸多特性:
- CoT推理原則上適用于所有用人類語言完成的任務。
- CoT允許LLM把多步驟問題分解為中間步驟,這意味著可以讓LLM把額外的計算分配給需要更多推理步驟的問題。(為什么?LLM本身并不能知道要分配額外的計算,會不會只是因為CoT的出現增大了問題的文本量,所以LLM自動分配了更多算力?)
- 只要在少樣本實例中包含CoT,就可以在較大的模型中把它激發出來。
對比實驗
對比:
標準提示vs思維鏈提示
標準提示:標準少樣本提示方法
思維鏈提示:為標準少樣本提示中的每個實例都添加一個思維鏈進行增強。對每一個測試數據集,都手動編寫了一組八個思維鏈增強示例用于提示。每次輸入時,隨機選擇八個中的一個作為示例。
算術推理
對五種大小不一的模型進行了測試,且隨機種子造成的結果方差不大。
大致結論:
- CoT對LLM推理能力的增強是跟模型的參數大小有關的。參數較小的模型沒有積極影響,只有在100B以上參數的LLM中使用CoT時才有明顯效果。(為什么?)
- 在對多個數據集進行測試的時候,CoT提示下的LLM都表現出了明顯的性能提升。對于參數量足夠大的LLM而言,問題越復雜,模型的性能提升就越好。(這是否因為,問題復雜導致CoT需要足夠長,而大參數的LLM恰好可以很好的學習這種更長的CoT?)
- 在GPT3 175B模型和PaLM 540B模型上,CoT的提升比在具體任務上微調相應模型還要大。(對于參數足夠大的模型,CoT甚至比微調還有用?可能原因是對于較大的模型而言,如果進行微調,微調后的LLM相比用CoT少樣本學習的LLM更難以對相關問題進行精準泛化,會使用微調前學習到的其他數據中的思考方式污染新學習到的CoT。LLM嘗試進行過往知識的重新整合,但是并不總是成功。)
- CoT訓練后的模型也經常出現錯誤,有的是諸如計算上的小失誤,有的則是語義理解錯誤等大錯誤。這種錯誤可以通過增大模型參數量修正一部分。
消融研究:
分別進行了"CoT中只有數學方程"、“CoT中只有自然語言”、“先給答案后給思路”,最終結果都與基礎提示相差不大。
魯棒性:
分別使用了不同標注人員撰寫的不同風格的CoT提示,結果差別不大。
其他推理
常識推理:CoT對進行常識推理也有一定幫助。
符號推理:CoT可以幫助100B以上參數的大模型進行符號推理,并且可以進行一定的長度泛化。(需要指出的是,這里并沒能給出LLM是否能生成更細致CoT的能力。例如,如果我的示例CoT中沒有提到,LLM是否能給出特殊情況的考慮?是否能給出注意事項?對于某個較為含糊不清/語義模糊/籠統的步驟,能否給出更細致的推理,從而將其細化為多個步驟?)
靈感
多模態的CoT是否有可行性?或者說,給定一些工具和在一個任務中一串工具的操作描述,將他們構建成一種類似CoT的形式化自然語言,能否讓LLM推理出新任務的解法?
LLM在提示下的思考粒度是否完全取決于CoT的粒度?提升LLM的思考推理能力除了1. 提升模型參數量 2. 選用思考過程更詳細的訓練集3. 用思維鏈進行提示 還有什么方法?像Deepseek-R1那樣的自我否定的能力是否也是通過這三種方式實現的?是否跟Deepseek是混合專家模型(MoE)有關系?
LLM之所以能夠進行分步驟的思考,是否是因為訓練集中有著分步驟思考的案例?如果訓練集中只有單純的(輸入、輸出),少樣本實例中也只有單純的(輸入、輸出),LLM能否涌現出分步驟的能力?還是說實際上它不可能有這種創造性?現在所謂的LLM的創造性只是它基于預訓練集和不斷地微調實現的根據人類過往歷史的組合爆炸?
是否可以通過對于小參數模型
的預訓練使用質量更高,邏輯性更強的訓練集進行訓練,從而提高小模型的性能?