1. 代碼注釋是自然存在的鏈式思維數據;

2. 面向過程編程類似于逐步解決任務。這適用于簡單和中等復雜度的任務;

3. 面向對象編程類似于將任務分解為較小的任務,然后分別解決它們。這適用于較高復雜度的任務。

從這個顯著的一致性中,我們看到提高推理能力與提高編程能力非常相似。在此,我們通過強調訓練大型語言模型進行推理或編碼的配方相似性,深化了這個假設:

我們看到推理和代碼都經歷了:

? 在連續訓練階段,可以在基礎模型上增加代碼和科學文獻數據;

? 在有監督的微調階段,可以根據要求完成復雜任務的指令或編寫代碼對模型進行微調;

??在強化學習階段,將中間推理步驟 / 編譯率和最終推理結果 / 代碼通過率作為獎勵;

? 在解碼過程中,推理和編碼都會采樣多個解決方案,然后從解碼空間中選擇最佳方案。

這些相似性使得代碼和推理之間的聯系非常有趣。

3.復雜推理的提示詞工程

在討論了如何構建具有強大推理能力的模型之后。在本節中,我們將討論如何有效地提示模型以充分釋放模型的潛力。

基礎思維鏈提示詞工程

以下論文推薦給初學者:

1. Wei et. al. 2022. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

? 本文是第一篇發現當使用鏈式思維進行提示時,存在一個相變現象,表明大型模型在很大程度上優于較小的模型,這進一步導致了涌現能力的發現。

2. Wang et. al. 2022. Self-Consistency Improves Chain of Thought Reasoning in Language Models

? 對采樣的 CoT 推理路徑進行多數投票,顯著提高了推理性能。

3. Suzgun et. al. 2022. Challenging BIG-Bench Tasks and Whether Chain-of-Thought Can Solve Them

? 使用 CoT 處理 big-bench 中困難的任務。這篇論文的一個有意義的副產品是 BigBench Hard 數據集,它在測試模型推理能力方面非常有效。

進階技巧及分析

以下論文討論了高級 CoT 提示實踐:

1. Fu et. al. 2023. Complexity-Based Prompting for Multi-Step Reasoning

? 使用復雜鏈代替簡單鏈作為上下文示例。

2. Khot et. al. 2023. Decomposed Prompting: A Modular Approach for Solving Complex Tasks

? 將復雜任務分解為更簡單的任務,然后逐個解決。

通常,對于復雜任務,首先將其分解為更簡單的任務,然后逐步解決更簡單的任務。

以下論文討論了上下文學習為什么起作用:

1. Xie et. al. 2021. An Explanation of In-context Learning as Implicit Bayesian Inference

? 語言模型在提示中的示例之間推斷出一個潛在概念,并進入相應的任務模式。

2. Wei et. al. 2023. Larger language models do in-context learning differently

? 當出現與先驗知識相矛盾的上下文示例時,盡管大型模型可能具有更強的語義先驗,大型模型可以根據提示詞來覆蓋語義先驗。

簡而言之,上下文學習的要點是提示中的示例使模型進入相應的任務模式,然后執行任務。

以下論文討論了模型在進行思維鏈推理時的行為:

1. Min et. al. 2022. Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?

? 當某些標簽錯誤時,模型仍然可以做出正確的預測。這表明模型更受提示的 [格式] 影響,而不是提示的 [意義] 。

2. Wang et. al. 2022. Towards Understanding Chain-of-Thought Prompting: An Empirical Study of What Matters

? 即使提示中的推理錯誤,模型仍然可以正確推理,但提示的相關性和推理步驟的順序更為重要 —— 這再次表明,模型更受提示的 [格式] 影響,而不是提示的[意義]。

3. Madaan and Yazdanbakhsh. 2022. Text and Patterns: For Effective Chain of Thought, It Takes Two to Tango

? 詳細分析顯示,提示的格式可以改善 CoT 推理(雖然內容的正確性可能不起到強烈作用)。

簡而言之,模型只關注提示的格式,但可能不會受到提示正確性的顯著影響。然而,模型在多大程度上會受到提示正確性的影響,或者提示可以在多大程度上覆蓋模型的先驗信念,還是一個尚待研究的問題。

以下論文討論了如何通過改進和反饋來提高模型性能:

1. Madaan. et. al. 2023. Self-refine: Iterative refinement with self-feedback

? 模型可以在多個場景中(包括代碼優化、數學推理、對話響應生成等)對自身的推理進行優化和改進。

2. Madaan et. al. 2023. Learning Performance-Improving Code Edits

? 在程序軌跡上進行訓練可以改善編碼。

簡而言之,以自然語言形式(而非強化學習中的獎勵形式)對模型進行改進和反饋非常有效,可以進一步提高語言模型的性能(無論是通過上下文學習還是微調)。

4.評價大語言模型的推理能力

在討論了訓練強大模型的方法和提示技巧之后,現在我們討論對語言模型推理能力的評估。

評價方法的基礎知識

在談論評估時,有三個重要因素需要考慮:數據格式、能力類型和模型類型。首先,提示時有四種數據格式:

其中:

? In-context 指的是在測試問題之前附加一系列上下文示例;

? Zero-shot 是指在沒有上下文示例的情況下直接將測試問題輸入給模型;

? Chain-of-thought 是指在回答之前生成推理;

? Answer-only 是指沒有鏈式思維,直接給答案。

對于模型能力,有兩種大致正交的能力類型:

? 知識 knowledge:模型是否了解世界;

? 推理 reasoning:模型是否可以根據其知識進行推理。

這兩個方面并不是嚴格正交的,因為一些推理規則也可以被視為某種形式的知識。然而,在評估時,這兩種能力有明顯的差異:

? 一些數據集更注重對知識的評估,如 MMLU,它測試模型是否具有高達大學水平的知識;

? 一些數據集更注重對推理的評估,如 BBH,它測試模型是否具有逐步解決問題的能力;

? 對于知識,鏈式思維與僅回答的表現相似(參見 FlanPaLM 論文);

? 對于推理,鏈式思維比僅回答表現得更好(參見原始 CoT 論文,然后參見 FlanPaLM 論文)。

在實踐中,因為 CoT 在達到或優于 Answer-only 的表現,而且 CoT 更加用戶友好(因為它告訴用戶思考過程),現代聊天機器人總是部署 CoT(無論你問 ChatGPT 什么,它都會告訴你一堆它的想法)。

最后,在評估方面,我們區分了兩種類型的模型:預訓練之后的 checkpoint 和指令微調之后的 checkpoint。

? 預訓練 checkpoint 具有 in-context learning 的能力。大多數預訓練模型可以進行 in-context answer-only,一些更好的模型可以進行 in-context chain-of-thought(但目前尚不清楚為什么某些預訓練模型可以進行 CoT 而其他模型卻不能)。然而,預訓練 checkpoint 可能無法進行 zero-shot,因為它們沒有經過這方面的訓練(但某些預訓練檢查點仍然可以進行 zero-shot CoT,請參閱 “讓我們逐步思考” 的論文)。

? 指令微調過后的 checkpoint 既具有 zero-shot 又有 in-context 的能力。這里需要注意的是,如果沒調好,指令微調之后 in-context 性能可能會稍有下降。

綜上所述,我們建議使用 in-context chain-of-thought 進行評估:

1. In-context 是評估 pretrained checkpoint 的更好方法,因為它更好地揭示了模型潛力。Zero-shot 可能低估模型性能,尤其是對于不支持 Zero-shot chain-of-thought 的(“讓我們逐步思考”)的模型。

2. Chain-of-thought prompting 是評估推理能力的更好方法,因為它比 answer-only prompting 更充分地發揮了模型的推理性能。

Chain-of-thought Hub 簡介

在討論了所有評估基礎知識之后,我們介紹 Chain-of-thought Hub,這是一個正在進行的工作,希望成為評估語言模型推理能力的統一平臺。我們匯編了一個包括數學(GSM8K)、科學(MATH)、符號(BBH)、知識(MMLU)等復雜推理任務的列表,以衡量哪些模型確實更好。下面是當前的排行榜。盡管許多數字還沒跑出來,但當前的內容仍然能給一個大概的模型排名:

總的來說:

? 我們根據 GSM8K 對模型性能進行排名,這是一個經典的基準測試,用于衡量鏈式思維數學推理性能。這不是唯一的度量標準,但一個很好的解釋是 “在保持其他通用能力的同時,模型在數學方面的表現如何” —— 這也非常困難。

? GPT-4 在 GSM8K 和 MMLU 上明顯優于所有其他模型。

? 65B LLaMA 與 text/code-davinci-002 非常接近,這意味著基于它,如果 SFT 和 RLHF 操作正確,我們很有可能基于 65B LLaMA 復現 ChatGPT

? Claude 是唯一可以與 GPT 系列相媲美的模型家族。

? 較小的模型,如 FlanT5 11B 和 LLaMA 7B,明顯落后于排行榜,這意味著復雜推理可能只是大型模型的能力。

進一步地,在 github 倉庫中,我們包括了:

? 詳細的實驗設置和結果分析;

??用于重現 GPT 和 Claude 所有結果的腳本。

試一下吧 ??

5.結論

在這篇文章中,我們討論了大型語言模型的推理能力。復雜推理不僅僅是因為它是更強模型與更弱模型之間的核心區分點,而且它還是模型成為下一代計算平臺 / 操作系統的基礎能力,從而有可能在大模型上建立一個新的生態系統。

我們討論了構建具有強大推理能力的模型的方法:預訓練、有監督的微調和強化學習。我們發現提高推理能力的方法與提高代碼能力的方法密切相關,這加深了我們先前關于推理與代碼之間密切關系的假設。我們進一步討論了高級提示工程技巧和在執行復雜推理時模型行為的分析。最后,我們討論了如何評估模型的推理能力,并介紹了 chain-of-thought hub,這是一個正在進行的項目,旨在統一評估語言模型的推理性能。

我們希望這篇文章能成為構建具有強大推理能力的開源模型的路線圖。

文章轉自微信公眾號@海外獨角獸

上一篇:

Character AI:如何把LLM變成人類想象力引擎?

下一篇:

Dify API文檔:助力開發者高效構建與管理知識庫
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費