復雜推理:大語言模型的北極星能力
隨著ChatGPT的出現(xiàn),各大企業(yè)紛紛入局研究大語言模型。最近,也有很多小模型的研究取得了不錯的對話能力,語言模型具有多維能力,那么什么是度量大語言模型潛力的關(guān)鍵因素?本文旨在探討如何讓大語言模型擁有強大的復雜推理能力,一起來看看吧。
最近,很多關(guān)于較小模型的研究取得了令人振奮的對話能力,這讓人們想象,是否較小的模型能具有與像 GPT-3.5 這樣的大型模型相當?shù)男阅堋?/p>
一般來說,語言模型具有多維能力,所以模型之間的相互對比較為困難。找到正確的衡量標準對于開發(fā)強大的語言模型至關(guān)重要。在目前階段,研究者們急切想知道什么是度量大語言模型潛力的關(guān)鍵因素。
在 GPT-4 發(fā)布博客中,作者寫道:
“在一次隨意的談話中,GPT-3.5 和 GPT-4 之間的區(qū)別可能是微妙的。當任務(wù)的復雜程度達到足夠的閾值時,差異就會顯現(xiàn)出來?!?/p>
這意味著復雜任務(wù)很可能是大型和小型語言模型的關(guān)鍵差異因素。
更重要的是,復雜推理為基于語言模型構(gòu)建大量應(yīng)用程序提供了機會,從而使語言模型有機會成為下一代計算平臺 / 操作系統(tǒng)。這有可能從根本上改變?nèi)祟惻c機器的交互方式,重塑整個計算生態(tài)系統(tǒng)。
在這篇文章中,我們將仔細分析討論如何讓大語言模型擁有強大的復雜推理能力。
以下為本文目錄,建議結(jié)合要點進行針對性閱讀。
- 動機:大語言模型作為新一代計算平臺
- 增加大語言模型推理能力的方案
- 復雜推理的提示詞工程
- 評價大語言模型的推理能力
- 結(jié)論
01 動機:大語言模型作為新一代計算平臺
我們研究復雜推理的原因有兩個:
- 復雜推理是標志著小模型與大模型差異的關(guān)鍵因素,這一點在 GPT-4 發(fā)布文章中已經(jīng)討論過;
- 復雜推理是使模型成為下一代操作系統(tǒng)的核心能力。
將語言模型視為下一代操作系統(tǒng)的愿景尤為有趣,因為它為構(gòu)建新應(yīng)用程序和創(chuàng)建基于語言模型的計算生態(tài)系統(tǒng)(可能比超級應(yīng)用程序如 ChatGPT 提供更大的機會)開辟了無數(shù)可能性。復雜推理能力是基礎(chǔ),因為如果我們希望模型成為新的操作系統(tǒng),它需要能夠通過與工具、用戶和外部環(huán)境的所有元素互動來完成復雜的指令。
本文研究了如何訓練具有強大復雜推理能力的模型,如何進行提示工程以充分發(fā)揮模型的推理能力,以及如何評估模型的推理性能。本文的內(nèi)容分為以下幾部分:
在第 2 部分,我們討論了構(gòu)建具有強大復雜推理能力的語言模型的現(xiàn)有方法。復雜推理的方案與通用大型語言模型(LLM)開發(fā)的方案相似,包括三個階段:持續(xù)訓練 (continue training)、指令微調(diào) (instruction finetuning) 和強化學習 (reinforcement learning)。我們還會進一步討論代碼與推理之間令人驚訝的耦合關(guān)系;
在第 3 部分,我們討論了復雜推理的提示工程 (prompt engineering) 技術(shù)。當語言模型成為新一代操作系統(tǒng)內(nèi)核時,提示工程 / 場景學習將成為新一代腳本編程 (shell script);
在第 4 部分,我們討論了如何評估大型語言模型的推理能力。我們介紹 Chain-of-thought Hub,這是一個包含 100 多個推理任務(wù)的數(shù)據(jù)集合,清楚地標示了大型與小型模型的差異。我們重點介紹了 LLaMA 65B 的出色表現(xiàn)。我們認為它具有非常強大的潛力,可作為再現(xiàn) ChatGPT-3.5 的基座模型。
02 增加大語言模型推理能力的方案
推理的方案與構(gòu)建通用大型語言模型和聊天機器人的方案密切相關(guān)??偣灿腥齻€階段:
- 預訓練 / 持續(xù)訓練:在這個階段,我們通常在大型數(shù)據(jù)集(如科學文獻或代碼數(shù)據(jù))上訓練大型模型;
- 有監(jiān)督微調(diào):在這個階段,我們對模型進行微調(diào),以便完成復雜任務(wù)的指令;
- 強化學習:在這個階段,我們使用諸如任務(wù)是否已全部/部分完成的信號作為獎勵。
您可以通過文末閱讀原文進一步回顧在代碼上進行訓練也可以提高模型推理能力的假設(shè)。因此,在我們的文獻分析中,需同時考慮推理和編碼。我們將看到,就學習方法而言,這兩者之間存在驚人的相關(guān)性。
預訓練與持續(xù)訓練我們分析以下幾項研究:
1. Lewkowycz et. al. 2022. Minerva: Solving Quantitative Reasoning Problems with Language Models在來自 Arxiv 論文的 38.5B 的 token 上繼續(xù)訓練 PaLM 540B;
在 MATH (一個需要使用 LaTeX 格式回答問題的困難數(shù)據(jù)集)上的得分為 33.6(GPT-4 的得分是 42.5)。
2. Taylor et. al. 2022. Galactica: A Large Language Model for Science
在包含論文、代碼、參考資料、知識庫和其他內(nèi)容的 106B token 上預訓練一個 120B 語言模型;
在 MATH 上的表現(xiàn)為 20.4(Minerva 33.6,GPT-4 42.5)。
3. Chen et. al. 2021. Codex: Evaluating Large Language Models Trained on Code
在 159GB 代碼數(shù)據(jù)上繼續(xù)訓練 12B GPT-3 模型,提高了 HumanEval 數(shù)據(jù)集上的代碼性能。
這些研究發(fā)現(xiàn),在大量科學文獻 / 代碼上進行訓練可以顯著提高基礎(chǔ)模型的推理/編碼能力。監(jiān)督微調(diào)我們分析:
1. Chung et. al. 2022. Scaling Instruction-Finetuned Language Models
使用多樣化的指令顯著提高了模型零樣本泛化的能力;
在指令集合中混合思維鏈數(shù)據(jù)(the flan collection 文章中進一步討論了這個問題)明顯提高了模型的思維鏈能力;
注意:盡管 the flan collection 數(shù)據(jù)集從多個維度激發(fā)了基礎(chǔ)模型的能力,但這些指令并非來自真實的聊天機器人用戶互動,因此可能無法直接轉(zhuǎn)化為更好的聊天性能。
2. Fu et. al. 2023. Specializing Smaller Language Models towards Multi-Step Reasoning
將思維鏈推理能力提煉到較小規(guī)模(小于或等于 10B)的模型。通常,10B 規(guī)模的模型非常適合部署(更大的模型太貴了,更小的模型太弱了);
本文討論了很多工程細節(jié),如數(shù)據(jù)工程、能力平衡以及小型和大型模型之間的差異。
3. Li et. al. 2022. Competition-Level Code Generation with AlphaCode
在 715GB 的 GitHub 代碼上預訓練一個 41B 模型,然后在包含 13k 問題的 CodeContest 數(shù)據(jù)集上進行微調(diào);
在測試期間,使用采樣并根據(jù)是否通過示例測試來過濾解決方案。從某種意義上說,這種做法類似于推理問題中的 self-consistency 方法。
目前關(guān)于指令微調(diào)的理解是:
- 通過使用對話格式的數(shù)據(jù),將基本模型調(diào)優(yōu)為聊天機器人相對容易(參見像 Alpaca 和 MOSS 這樣的優(yōu)秀示例)。然而,閑聊的能力并不能轉(zhuǎn)化為執(zhí)行復雜任務(wù)的能力。從這個角度來看,模型就像人類一樣:說得多不如干得好,代碼見真章;
- 實際上,指令調(diào)優(yōu)問題是一個數(shù)據(jù)混合問題:如何最好地混合來自不同來源的指令數(shù)據(jù),以便從所有角度均勻地提高模型性能(而不是像在 CoT specialization 和 the flan collection 中討論的那樣,增加一個維度但降低另一個維度);
- 數(shù)據(jù)混合的簡單起點是:使用 10-20 個非思維鏈的數(shù)據(jù)點(以平衡不同維度的能力),但盡可能多地使用鏈式思維數(shù)據(jù)(以最大化推理能力)。
強化學習我們分析:
1. Uesato. et. al. 2022. Solving math word problems with process- and outcome-based feedback
基于中間推理和最終推理結(jié)果構(gòu)建獎勵模型。
2. Le et. al. 2022. CodeRL: Mastering Code Generation through Pretrained Models and Deep Reinforcement Learning
根據(jù)諸如編譯錯誤、運行時錯誤或是否通過測試等信號訓練獎勵模型。
這兩項工作都使用中間信號(對于推理,看中間步驟是否正確;對于編碼,看代碼是否編譯)和最終信號(對于推理,最終答案是否正確;對于編碼,代碼是否通過測試)作為獎勵。
需要注意的是,這種類型的強化學習與基于人類反饋的強化學習(RLHF)有所不同,因為它不需要人類反饋。推理能力和代碼能力的耦合在我們之前的討論中,提出過一個假設(shè),即在代碼上進行訓練可能會提高推理能力,原因如下:
1. 代碼注釋是自然存在的鏈式思維數(shù)據(jù);
2. 面向過程編程類似于逐步解決任務(wù)。這適用于簡單和中等復雜度的任務(wù);
3. 面向?qū)ο缶幊填愃朴趯⑷蝿?wù)分解為較小的任務(wù),然后分別解決它們。這適用于較高復雜度的任務(wù)。
從這個顯著的一致性中,我們看到提高推理能力與提高編程能力非常相似。在此,我們通過強調(diào)訓練大型語言模型進行推理或編碼的配方相似性,深化了這個假設(shè):
我們看到推理和代碼都經(jīng)歷了:
- 在連續(xù)訓練階段,可以在基礎(chǔ)模型上增加代碼和科學文獻數(shù)據(jù);
- 在有監(jiān)督的微調(diào)階段,可以根據(jù)要求完成復雜任務(wù)的指令或編寫代碼對模型進行微調(diào);
- 在強化學習階段,將中間推理步驟 / 編譯率和最終推理結(jié)果 / 代碼通過率作為獎勵;
- 在解碼過程中,推理和編碼都會采樣多個解決方案,然后從解碼空間中選擇最佳方案。
這些相似性使得代碼和推理之間的聯(lián)系非常有趣。
03 復雜推理的提示詞工程
在討論了如何構(gòu)建具有強大推理能力的模型之后。在本節(jié)中,我們將討論如何有效地提示模型以充分釋放模型的潛力。
1. 基礎(chǔ)思維鏈提示詞工程
以下論文推薦給初學者:
1. Wei et. al. 2022. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models本文是第一篇發(fā)現(xiàn)當使用鏈式思維進行提示時,存在一個相變現(xiàn)象,表明大型模型在很大程度上優(yōu)于較小的模型,這進一步導致了涌現(xiàn)能力的發(fā)現(xiàn)。
2. Wang et. al. 2022. Self-Consistency Improves Chain of Thought Reasoning in Language Models
對采樣的 CoT 推理路徑進行多數(shù)投票,顯著提高了推理性能。
3. Suzgun et. al. 2022. Challenging BIG-Bench Tasks and Whether Chain-of-Thought Can Solve Them
使用 CoT 處理 big-bench 中困難的任務(wù)。這篇論文的一個有意義的副產(chǎn)品是 BigBench Hard 數(shù)據(jù)集,它在測試模型推理能力方面非常有效。
2. 進階技巧及分析
以下論文討論了高級 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
將復雜任務(wù)分解為更簡單的任務(wù),然后逐個解決。
通常,對于復雜任務(wù),首先將其分解為更簡單的任務(wù),然后逐步解決更簡單的任務(wù)。
以下論文討論了上下文學習為什么起作用:
1. Xie et. al. 2021. An Explanation of In-context Learning as Implicit Bayesian Inference語言模型在提示中的示例之間推斷出一個潛在概念,并進入相應(yīng)的任務(wù)模式。
2. Wei et. al. 2023. Larger language models do in-context learning differently
當出現(xiàn)與先驗知識相矛盾的上下文示例時,盡管大型模型可能具有更強的語義先驗,大型模型可以根據(jù)提示詞來覆蓋語義先驗。
簡而言之,上下文學習的要點是提示中的示例使模型進入相應(yīng)的任務(wù)模式,然后執(zhí)行任務(wù)。以下論文討論了模型在進行思維鏈推理時的行為:
1. Min et. al. 2022. Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?當某些標簽錯誤時,模型仍然可以做出正確的預測。這表明模型更受提示的 [格式] 影響,而不是提示的 [意義] 。
2. Wang et. al. 2022. Towards UnderstandingChain-of-Thought Prompting: An Empirical Study of What Matters
即使提示中的推理錯誤,模型仍然可以正確推理,但提示的相關(guān)性和推理步驟的順序更為重要 —— 這再次表明,模型更受提示的 [格式] 影響,而不是提示的[意義]。
3. Madaan and Yazdanbakhsh. 2022. Text and Patterns: For Effective Chain of Thought, It Takes Two to Tango
詳細分析顯示,提示的格式可以改善 CoT 推理(雖然內(nèi)容的正確性可能不起到強烈作用)。
簡而言之,模型只關(guān)注提示的格式,但可能不會受到提示正確性的顯著影響。然而,模型在多大程度上會受到提示正確性的影響,或者提示可以在多大程度上覆蓋模型的先驗信念,還是一個尚待研究的問題。以下論文討論了如何通過改進和反饋來提高模型性能:
1. Madaan. et. al. 2023. Self-refine: Iterative refinement with self-feedback
模型可以在多個場景中(包括代碼優(yōu)化、數(shù)學推理、對話響應(yīng)生成等)對自身的推理進行優(yōu)化和改進。
2. Madaan et. al. 2023. Learning Performance-Improving Code Edits
在程序軌跡上進行訓練可以改善編碼。
簡而言之,以自然語言形式(而非強化學習中的獎勵形式)對模型進行改進和反饋非常有效,可以進一步提高語言模型的性能(無論是通過上下文學習還是微調(diào))。
04 評價大語言模型的推理能力
在討論了訓練強大模型的方法和提示技巧之后,現(xiàn)在我們討論對語言模型推理能力的評估。
1. 評價方法的基礎(chǔ)知識
在談?wù)撛u估時,有三個重要因素需要考慮:數(shù)據(jù)格式、能力類型和模型類型。首先,提示時有四種數(shù)據(jù)格式:
其中:
- In-context 指的是在測試問題之前附加一系列上下文示例;
- Zero-shot 是指在沒有上下文示例的情況下直接將測試問題輸入給模型;
- Chain-of-thought 是指在回答之前生成推理;
- Answer-only 是指沒有鏈式思維,直接給答案。
對于模型能力,有兩種大致正交的能力類型:
- 知識 knowledge:模型是否了解世界;
- 推理 reasoning:模型是否可以根據(jù)其知識進行推理。
這兩個方面并不是嚴格正交的,因為一些推理規(guī)則也可以被視為某種形式的知識。然而,在評估時,這兩種能力有明顯的差異:
- 一些數(shù)據(jù)集更注重對知識的評估,如 MMLU,它測試模型是否具有高達大學水平的知識;
- 一些數(shù)據(jù)集更注重對推理的評估,如 BBH,它測試模型是否具有逐步解決問題的能力;
- 對于知識,鏈式思維與僅回答的表現(xiàn)相似(參見 FlanPaLM 論文);
- 對于推理,鏈式思維比僅回答表現(xiàn)得更好(參見原始 CoT 論文,然后參見 FlanPaLM 論文)。
在實踐中,因為 CoT 在達到或優(yōu)于 Answer-only 的表現(xiàn),而且 CoT 更加用戶友好(因為它告訴用戶思考過程),現(xiàn)代聊天機器人總是部署 CoT(無論你問 ChatGPT 什么,它都會告訴你一堆它的想法)。
最后,在評估方面,我們區(qū)分了兩種類型的模型:預訓練之后的 checkpoint 和指令微調(diào)之后的 checkpoint。
- 預訓練 checkpoint 具有 in-context learning 的能力。大多數(shù)預訓練模型可以進行 in-context answer-only,一些更好的模型可以進行 in-context chain-of-thought(但目前尚不清楚為什么某些預訓練模型可以進行 CoT 而其他模型卻不能)。然而,預訓練 checkpoint 可能無法進行 zero-shot,因為它們沒有經(jīng)過這方面的訓練(但某些預訓練檢查點仍然可以進行 zero-shot CoT,請參閱 “讓我們逐步思考” 的論文)。
- 指令微調(diào)過后的 checkpoint 既具有 zero-shot 又有 in-context 的能力。這里需要注意的是,如果沒調(diào)好,指令微調(diào)之后 in-context 性能可能會稍有下降。
綜上所述,我們建議使用 in-context chain-of-thought 進行評估:
- In-context 是評估 pretrained checkpoint 的更好方法,因為它更好地揭示了模型潛力。Zero-shot 可能低估模型性能,尤其是對于不支持 Zero-shot chain-of-thought 的(“讓我們逐步思考”)的模型。
- Chain-of-thought prompting 是評估推理能力的更好方法,因為它比 answer-only prompting 更充分地發(fā)揮了模型的推理性能。
2. Chain-of-thought Hub 簡介
在討論了所有評估基礎(chǔ)知識之后,我們介紹 Chain-of-thought Hub,這是一個正在進行的工作,希望成為評估語言模型推理能力的統(tǒng)一平臺。
我們匯編了一個包括數(shù)學(GSM8K)、科學(MATH)、符號(BBH)、知識(MMLU)等復雜推理任務(wù)的列表,以衡量哪些模型確實更好。下面是當前的排行榜。盡管許多數(shù)字還沒跑出來,但當前的內(nèi)容仍然能給一個大概的模型排名:
總的來說:
- 我們根據(jù) GSM8K 對模型性能進行排名,這是一個經(jīng)典的基準測試,用于衡量鏈式思維數(shù)學推理性能。這不是唯一的度量標準,但一個很好的解釋是 “在保持其他通用能力的同時,模型在數(shù)學方面的表現(xiàn)如何” —— 這也非常困難。
- GPT-4 在 GSM8K 和 MMLU 上明顯優(yōu)于所有其他模型。
- 65B LLaMA 與 text/code-davinci-002 非常接近,這意味著基于它,如果 SFT 和 RLHF 操作正確,我們很有可能基于 65B LLaMA 復現(xiàn) ChatGPT。
- Claude 是唯一可以與 GPT 系列相媲美的模型家族。
- 較小的模型,如 FlanT5 11B 和 LLaMA 7B,明顯落后于排行榜,這意味著復雜推理可能只是大型模型的能力。
進一步地,在 github 倉庫中,我們包括了:
- 詳細的實驗設(shè)置和結(jié)果分析;
- 用于重現(xiàn) GPT 和 Claude 所有結(jié)果的腳本。
試一下吧~
05 結(jié)論
在這篇文章中,我們討論了大型語言模型的推理能力。復雜推理不僅僅是因為它是更強模型與更弱模型之間的核心區(qū)分點,而且它還是模型成為下一代計算平臺 / 操作系統(tǒng)的基礎(chǔ)能力,從而有可能在大模型上建立一個新的生態(tài)系統(tǒng)。我們討論了構(gòu)建具有強大推理能力的模型的方法:預訓練、有監(jiān)督的微調(diào)和強化學習。
我們發(fā)現(xiàn)提高推理能力的方法與提高代碼能力的方法密切相關(guān),這加深了我們先前關(guān)于推理與代碼之間密切關(guān)系的假設(shè)。我們進一步討論了高級提示工程技巧和在執(zhí)行復雜推理時模型行為的分析。最后,我們討論了如何評估模型的推理能力,并介紹了 chain-of-thought hub,這是一個正在進行的項目,旨在統(tǒng)一評估語言模型的推理性能。
我們希望這篇文章能成為構(gòu)建具有強大推理能力的開源模型的路線圖。
人世間數(shù)百萬個閑暇的小時流逝過去,方始出現(xiàn)一個真正的歷史性時刻,人類星光閃耀的時刻。
—— 《人類群星閃耀時》斯蒂芬·茨威格
Reference -更多大語言模型推理的相關(guān)資源:
- Lil’Log 2023. Prompt Engineering:https://lilianweng.github.io/posts/2023-03-15-prompt-engineering/
- Microsoft Semantic Kernel:https://github.com/microsoft/semantic-kernel
- Prompt Engineering Guide:https://github.com/dair-ai/Prompt-Engineering-Guide
- Huang and Chang 2022. Towards Reasoning in Large Language Models: A Survey https://arxiv.org/abs/2212.10403https://scholar.google.com/citationsuser=x04W_mMAAAAJ&hl=en
- 復雜推理是標志著小模型與大模型差異的關(guān)鍵因素:https://openai.com/research/gpt-4
- 在代碼上進行訓練也可以提高模型推理能力的假設(shè):https://yaofu.notion.site/How-does-GPT-Obtain-its-Ability-Tracing-Emergent-Abilities-of-Language-Models-to-their-Sources-b9a57ac0fcf74f30a1ab9e3e36fa1dc1
- 在 MATH (一個需要使用 LaTeX 格式回答問題的困難數(shù)據(jù)集),上的得分為 33.6(GPT-4 的得分是 42.5):https://github.com/FranxYao/chain-of-thought-hub
- Alpaca通過使用對話格式的數(shù)據(jù),將基本模型調(diào)優(yōu)為聊天機器人相對容易:https://crfm.stanford.edu/2023/03/13/alpaca.html
特別感謝:感謝艾倫人工智能研究所-彭昊; Tushar Khot 的深入討論。
作者:符堯;公眾號:海外獨角獸(ID:unicornobserver),研究科技大航海時代的偉大公司。
本文由 @海外獨角獸 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 Unsplash,基于CC0協(xié)議。
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信存儲空間服務(wù)。
- 目前還沒評論,等你發(fā)揮!