什麼是大型語言模型的累積推理?

什麼是大型語言模型的累積推理?

簡介

什麼是大型語言模型的累積推理?為什麼我們需要大型語言模型的累積推理?大型語言模型的累積推理看起來是什麼樣子?大型語言模型能做好累積推理嗎?在這篇部落格中,我們將以簡單明瞭的方式逐一探討這些問題,並參考 Yifan Zhang、Jingqin Yang、Yang Yuan 與 Andrew Chi-Chih Yao 所發表的論文《Cumulative Reasoning with Large Language Models》。

什麼是累積推理?

累積推理框架的核心概念是將複雜的推理問題分解成較小的步驟,然後通過累積並驗證每個中間步驟,逐步構建最終解決方案。

從人類認知過程汲取靈感,累積推理引入了專門的角色,例如 「提議者」 用來建議可能的推理步驟、「驗證者」 用來根據上下文驗證提議是否正確,以及 「報告者」 用來將累積的要點整合成最終解決方案。

累積推理能夠動態儲存並組合已驗證的中間命題,形成一個有向無環圖(DAG)。

具體來說,在累積推理框架中:

  1. 提議者 根據當前上下文建議可能的推理步驟,這些步驟在 DAG 中表示為新的節點。
  2. 驗證者 評估提議者的建議是否正確,並將有效的步驟納入不斷演化的解決方案上下文中,這對應於在 DAG 中添加新的有向邊。
  3. 報告者 根據當前狀態判斷累積的上下文是否已得出最終解決方案。如果是,則輸出結果。

因此,整個推理過程可以表示為一個動態構建的 DAG,其中節點是中間推理步驟,有向邊則捕捉新推理步驟如何從先前的步驟推導出來。DAG 允許推理過程分支並重新匯聚,也允許回顧並重複使用先前的推理結果,從而更好地模擬人類解決複雜問題時的靈活多路徑思考過程。

為什麼我們需要大型語言模型的累積推理?

儘管大型語言模型(LLM)在各種應用中取得了最新進展,但它們解決複雜多步驟推理問題的能力仍然有限。現有方法如思維鏈(CoT)和思維樹(ToT)提示,雖然試圖引導 LLM 進行更有結構的逐步推理過程,但缺乏動態機制來儲存和利用推理過程中產生的中間結果。這種無法有效地建立在先前的命題之上並加以組合的問題,限制了它們在需要經過多步驟細緻推理的複雜多面向問題上的表現。

從人類認知過程汲取靈感,累積推理引入了專門的角色,如 「提議者」 來建議可能的推理步驟、「驗證者」 來根據上下文驗證提議,以及 「報告者」 來將累積的要點整合成最終解決方案。這種分解為提議、驗證和報告的迭代循環,使 LLM 能夠將複雜任務分解為可管理的組成部分。

關鍵的是,累積推理能夠動態儲存並組合已驗證的中間命題,形成一個有向無環圖(DAG),而不僅僅是線性鏈或樹狀結構。這種結構靈活性使得可以利用更廣泛的先前驗證上下文,反映了人類在處理複雜多步驟問題時所採用的細緻、非線性推理方式。因此,累積推理為大型語言模型解鎖了更強大、更多樣的推理能力。

大型語言模型的累積推理看起來是什麼樣子?

構建語言模型角色

根據累積推理框架,作者構建了三個語言模型角色:

  • 提議者:根據當前上下文建議可能的推理步驟
  • 驗證者:評估提議者的建議是否正確,並將有效步驟納入上下文
  • 報告者:判斷累積的上下文是否導出明確的解決方案

這三個角色可以使用同一個大型語言模型,通過特定的提示來分配不同的角色。

設置基準方法

為了評估累積推理的效果,作者設置了以下基準方法:

  • 直接輸入輸出提示(Direct)
  • 思維鏈提示(CoT)
  • 自我驗證思維鏈提示(CoT-SC)
  • 思維樹提示(ToT)

遵循實驗步驟

作者測試了各種大型語言模型,包括 GPT-3.5、GPT-4 和 LLaMA 模型。實驗步驟如下:

  • 對於數據集中的每個問題,將問題輸入給提議者
  • 提議者生成一系列推理建議作為中間步驟
  • 將中間步驟輸入給驗證者,驗證者評估每個步驟
  • 有效步驟被納入上下文,無效步驟被丟棄
  • 重複上述過程,直到報告者確定可以給出最終解決方案
  • 在某些實驗中,使用多數投票或其他策略來提高穩健性

選擇評估數據集

作者選擇了跨不同類型複雜推理任務的多個數據集進行評估,包括:

  • 邏輯推理任務:FOLIO wiki 數據集、AutoTNLI 數據集
  • 24 點數學謎題
  • 數學問題解決:MATH 數據集

大型語言模型能做好累積推理嗎?

簡單的回答是:可以!實驗結果表明,CR 框架在所有評估任務上顯著優於基準方法。

總體表現

在 FOLIO wiki 數據集上,精度從 85.02% 提高到 98.04%;在 AutoTNLI 數據集上,相比思維鏈顯示出高達 9.3% 的相對改進;在 24 點遊戲中,達到 98% 的準確率,比先前最佳方法提高了 24%;在 MATH 數據集上,CR 獲得了 4.2% 的絕對改進,在最困難的第五級問題上獲得了 43% 的相對提升。值得注意的是,通過將 CR 與程式碼環境整合,作者在 MATH 數據集上達到了 72.2% 的準確率,相對優於先前最佳方法 38.8%。

優於思維鏈(CoT)和思維樹(ToT)

累積推理透過一系列跨任務的實證結果,展現出優於思維鏈(CoT)和思維樹(ToT)的表現。在邏輯推理任務中,使用 FOLIO wiki 和 AutoTNLI 數據集,CR 表現卓越,在精選 FOLIO 數據集上達到 98.04% 的準確率,相較於 CoT-SC 的 96.09% 有顯著提升。這一進步歸因於 CR 動態儲存和利用中間結果的能力,形成一個有向無環圖(DAG),允許利用更廣泛的已驗證命題上下文。

在數學謎題「24 點遊戲」中,CR 以 98% 的準確率表現出色,相比 ToT 提高了 24%,而且只使用了四分之一的訪問狀態,凸顯了其效率和問題解決能力。

此外,在 MATH 數據集上,CR 不僅創下了相較先前方法 4.2% 的提升,還在最困難的問題上實現了 43% 的相對改進。將 CR 與 Python 程式碼環境整合後,準確率達到驚人的 72.2%,優於 PoT 和 PAL 等方法 38.8%。這些結果共同說明了 CR 相比 CoT 和 ToT 的適應性、穩健性和增強的推理能力。

大型語言模型累積推理的未來方向有哪些?

與符號系統整合

文章討論了將 CR 與 Python 程式碼環境結合以利用 LLM 的計算和邏輯推理能力的潛力。未來的工作可以探索與符號系統、知識圖譜或形式定理證明器的更深層整合,以進一步提升推理的準確性和複雜度。

增強泛化能力

雖然 CR 在特定領域已展現成功,但將其泛化能力擴展到更廣泛的任務和領域將是關鍵。這可能包括調整 CR 以處理不同類型的推理和跨學科問題解決。

提高穩健性和容錯性

文章強調了 CR 的容錯特性。未來的工作可以專注於使 CR 更加穩健,特別是在處理模糊或有雜訊的數據時,並提升從錯誤中間步驟中恢復的能力。

基準測試與標準化

開發專門針對累積推理任務的標準化基準和評估指標,可以有助於系統性地評估進展並比較不同方法。

如何實現大型語言模型的累積推理?

作者提供的大部分程式碼需要連接到 OpenAI API 以使用 GPT 3.5 和 4 模型,這是你的第一步。

接下來,無論你想解決數學問題、玩 24 點遊戲,還是複製累積推理實驗,只需執行此 GitHub 頁面上提供的特定 Python 檔案:https://github.com/iiis-ai/cumulative-reasoning

此外,如果你想像作者在論文中那樣使用 LLaMA 模型或其他 LLM 測試累積推理,你可以使用 Novita AI LLM API 來存取多種 LLM。

結論

總之,這篇部落格文章全面介紹了大型語言模型的累積推理,這是一種能顯著增強 LLM 複雜問題解決能力的新型方法。通過將複雜問題分解為較小的步驟,並通過提議、驗證和報告的過程逐步構建方案,累積推理模擬了人類的認知策略。

來自各種數據集的結果令人印象深刻,特別是在將累積推理與程式碼環境整合時,準確率有了大幅提升。此外,結果也證明了累積推理優於現有方法如思維鏈和思維樹。

總體而言,大型語言模型累積推理的未來方向具有潛力將 LLM 推向 AI 推理的新高度,實現更複雜、更像人類的問題解決能力。

參考資料

Zhang, Y., Yang, J., Yuan, Y., & Yao, A. C.-C. (2024). Cumulative Reasoning with Large Language Models. IIIS, 清華大學. https://arxiv.org/pdf/2308.04371

Novita AI 是一個一站式平台,為您提供無限創意,可存取 100 多種 API。從圖像生成和語言處理到音訊增強和影片操作,按使用量付費且價格低廉,讓您在構建自己的產品時無需煩惱 GPU 維護問題。免費試用。