
大模型上下文協(xié)議與Spring開(kāi)發(fā)集成篇——mcp-spring-webmvc原理
1. 代碼注釋是自然存在的鏈?zhǔn)剿季S數(shù)據(jù);
2. 面向過(guò)程編程類似于逐步解決任務(wù)。這適用于簡(jiǎn)單和中等復(fù)雜度的任務(wù);
3. 面向?qū)ο缶幊填愃朴趯⑷蝿?wù)分解為較小的任務(wù),然后分別解決它們。這適用于較高復(fù)雜度的任務(wù)。
從這個(gè)顯著的一致性中,我們看到提高推理能力與提高編程能力非常相似。在此,我們通過(guò)強(qiáng)調(diào)訓(xùn)練大型語(yǔ)言模型進(jìn)行推理或編碼的配方相似性,深化了這個(gè)假設(shè):
我們看到推理和代碼都經(jīng)歷了:
? 在連續(xù)訓(xùn)練階段,可以在基礎(chǔ)模型上增加代碼和科學(xué)文獻(xiàn)數(shù)據(jù);
? 在有監(jiān)督的微調(diào)階段,可以根據(jù)要求完成復(fù)雜任務(wù)的指令或編寫代碼對(duì)模型進(jìn)行微調(diào);
??在強(qiáng)化學(xué)習(xí)階段,將中間推理步驟 / 編譯率和最終推理結(jié)果 / 代碼通過(guò)率作為獎(jiǎng)勵(lì);
? 在解碼過(guò)程中,推理和編碼都會(huì)采樣多個(gè)解決方案,然后從解碼空間中選擇最佳方案。
這些相似性使得代碼和推理之間的聯(lián)系非常有趣。
在討論了如何構(gòu)建具有強(qiáng)大推理能力的模型之后。在本節(jié)中,我們將討論如何有效地提示模型以充分釋放模型的潛力。
以下論文推薦給初學(xué)者:
1. Wei et. al. 2022. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
? 本文是第一篇發(fā)現(xiàn)當(dāng)使用鏈?zhǔn)剿季S進(jìn)行提示時(shí),存在一個(gè)相變現(xiàn)象,表明大型模型在很大程度上優(yōu)于較小的模型,這進(jìn)一步導(dǎo)致了涌現(xiàn)能力的發(fā)現(xiàn)。
2. Wang et. al. 2022. Self-Consistency Improves Chain of Thought Reasoning in Language Models
? 對(duì)采樣的 CoT 推理路徑進(jìn)行多數(shù)投票,顯著提高了推理性能。
3. Suzgun et. al. 2022. Challenging BIG-Bench Tasks and Whether Chain-of-Thought Can Solve Them
? 使用 CoT 處理 big-bench 中困難的任務(wù)。這篇論文的一個(gè)有意義的副產(chǎn)品是 BigBench Hard 數(shù)據(jù)集,它在測(cè)試模型推理能力方面非常有效。
以下論文討論了高級(jí) CoT 提示實(shí)踐:
1. Fu et. al. 2023. Complexity-Based Prompting for Multi-Step Reasoning
? 使用復(fù)雜鏈代替簡(jiǎn)單鏈作為上下文示例。
2. Khot et. al. 2023. Decomposed Prompting: A Modular Approach for Solving Complex Tasks
? 將復(fù)雜任務(wù)分解為更簡(jiǎn)單的任務(wù),然后逐個(gè)解決。
通常,對(duì)于復(fù)雜任務(wù),首先將其分解為更簡(jiǎn)單的任務(wù),然后逐步解決更簡(jiǎn)單的任務(wù)。
以下論文討論了上下文學(xué)習(xí)為什么起作用:
1. Xie et. al. 2021. An Explanation of In-context Learning as Implicit Bayesian Inference
? 語(yǔ)言模型在提示中的示例之間推斷出一個(gè)潛在概念,并進(jìn)入相應(yīng)的任務(wù)模式。
2. Wei et. al. 2023. Larger language models do in-context learning differently
? 當(dāng)出現(xiàn)與先驗(yàn)知識(shí)相矛盾的上下文示例時(shí),盡管大型模型可能具有更強(qiáng)的語(yǔ)義先驗(yàn),大型模型可以根據(jù)提示詞來(lái)覆蓋語(yǔ)義先驗(yàn)。
簡(jiǎn)而言之,上下文學(xué)習(xí)的要點(diǎn)是提示中的示例使模型進(jìn)入相應(yīng)的任務(wù)模式,然后執(zhí)行任務(wù)。
以下論文討論了模型在進(jìn)行思維鏈推理時(shí)的行為:
1. Min et. al. 2022. Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?
? 當(dāng)某些標(biāo)簽錯(cuò)誤時(shí),模型仍然可以做出正確的預(yù)測(cè)。這表明模型更受提示的 [格式] 影響,而不是提示的 [意義] 。
2. Wang et. al. 2022. Towards Understanding Chain-of-Thought Prompting: An Empirical Study of What Matters
? 即使提示中的推理錯(cuò)誤,模型仍然可以正確推理,但提示的相關(guān)性和推理步驟的順序更為重要 —— 這再次表明,模型更受提示的 [格式] 影響,而不是提示的[意義]。
3. Madaan and Yazdanbakhsh. 2022. Text and Patterns: For Effective Chain of Thought, It Takes Two to Tango
? 詳細(xì)分析顯示,提示的格式可以改善 CoT 推理(雖然內(nèi)容的正確性可能不起到強(qiáng)烈作用)。
簡(jiǎn)而言之,模型只關(guān)注提示的格式,但可能不會(huì)受到提示正確性的顯著影響。然而,模型在多大程度上會(huì)受到提示正確性的影響,或者提示可以在多大程度上覆蓋模型的先驗(yàn)信念,還是一個(gè)尚待研究的問(wèn)題。
以下論文討論了如何通過(guò)改進(jìn)和反饋來(lái)提高模型性能:
1. Madaan. et. al. 2023. Self-refine: Iterative refinement with self-feedback
? 模型可以在多個(gè)場(chǎng)景中(包括代碼優(yōu)化、數(shù)學(xué)推理、對(duì)話響應(yīng)生成等)對(duì)自身的推理進(jìn)行優(yōu)化和改進(jìn)。
2. Madaan et. al. 2023. Learning Performance-Improving Code Edits
? 在程序軌跡上進(jìn)行訓(xùn)練可以改善編碼。
簡(jiǎn)而言之,以自然語(yǔ)言形式(而非強(qiáng)化學(xué)習(xí)中的獎(jiǎng)勵(lì)形式)對(duì)模型進(jìn)行改進(jìn)和反饋非常有效,可以進(jìn)一步提高語(yǔ)言模型的性能(無(wú)論是通過(guò)上下文學(xué)習(xí)還是微調(diào))。
在討論了訓(xùn)練強(qiáng)大模型的方法和提示技巧之后,現(xiàn)在我們討論對(duì)語(yǔ)言模型推理能力的評(píng)估。
在談?wù)撛u(píng)估時(shí),有三個(gè)重要因素需要考慮:數(shù)據(jù)格式、能力類型和模型類型。首先,提示時(shí)有四種數(shù)據(jù)格式:
其中:
? In-context 指的是在測(cè)試問(wèn)題之前附加一系列上下文示例;
? Zero-shot 是指在沒(méi)有上下文示例的情況下直接將測(cè)試問(wèn)題輸入給模型;
? Chain-of-thought 是指在回答之前生成推理;
? Answer-only 是指沒(méi)有鏈?zhǔn)剿季S,直接給答案。
對(duì)于模型能力,有兩種大致正交的能力類型:
? 知識(shí) knowledge:模型是否了解世界;
? 推理 reasoning:模型是否可以根據(jù)其知識(shí)進(jìn)行推理。
這兩個(gè)方面并不是嚴(yán)格正交的,因?yàn)橐恍┩评硪?guī)則也可以被視為某種形式的知識(shí)。然而,在評(píng)估時(shí),這兩種能力有明顯的差異:
? 一些數(shù)據(jù)集更注重對(duì)知識(shí)的評(píng)估,如 MMLU,它測(cè)試模型是否具有高達(dá)大學(xué)水平的知識(shí);
? 一些數(shù)據(jù)集更注重對(duì)推理的評(píng)估,如 BBH,它測(cè)試模型是否具有逐步解決問(wèn)題的能力;
? 對(duì)于知識(shí),鏈?zhǔn)剿季S與僅回答的表現(xiàn)相似(參見(jiàn) FlanPaLM 論文);
? 對(duì)于推理,鏈?zhǔn)剿季S比僅回答表現(xiàn)得更好(參見(jiàn)原始 CoT 論文,然后參見(jiàn) FlanPaLM 論文)。
在實(shí)踐中,因?yàn)?CoT 在達(dá)到或優(yōu)于 Answer-only 的表現(xiàn),而且 CoT 更加用戶友好(因?yàn)樗嬖V用戶思考過(guò)程),現(xiàn)代聊天機(jī)器人總是部署 CoT(無(wú)論你問(wèn) ChatGPT 什么,它都會(huì)告訴你一堆它的想法)。
最后,在評(píng)估方面,我們區(qū)分了兩種類型的模型:預(yù)訓(xùn)練之后的 checkpoint 和指令微調(diào)之后的 checkpoint。
? 預(yù)訓(xùn)練 checkpoint 具有 in-context learning 的能力。大多數(shù)預(yù)訓(xùn)練模型可以進(jìn)行 in-context answer-only,一些更好的模型可以進(jìn)行 in-context chain-of-thought(但目前尚不清楚為什么某些預(yù)訓(xùn)練模型可以進(jìn)行 CoT 而其他模型卻不能)。然而,預(yù)訓(xùn)練 checkpoint 可能無(wú)法進(jìn)行 zero-shot,因?yàn)樗鼈儧](méi)有經(jīng)過(guò)這方面的訓(xùn)練(但某些預(yù)訓(xùn)練檢查點(diǎn)仍然可以進(jìn)行 zero-shot CoT,請(qǐng)參閱 “讓我們逐步思考” 的論文)。
? 指令微調(diào)過(guò)后的 checkpoint 既具有 zero-shot 又有 in-context 的能力。這里需要注意的是,如果沒(méi)調(diào)好,指令微調(diào)之后 in-context 性能可能會(huì)稍有下降。
綜上所述,我們建議使用 in-context chain-of-thought 進(jìn)行評(píng)估:
1. In-context 是評(píng)估 pretrained checkpoint 的更好方法,因?yàn)樗玫亟沂玖四P蜐摿Αero-shot 可能低估模型性能,尤其是對(duì)于不支持 Zero-shot chain-of-thought 的(“讓我們逐步思考”)的模型。
2. Chain-of-thought prompting 是評(píng)估推理能力的更好方法,因?yàn)樗?answer-only prompting 更充分地發(fā)揮了模型的推理性能。
在討論了所有評(píng)估基礎(chǔ)知識(shí)之后,我們介紹 Chain-of-thought Hub,這是一個(gè)正在進(jìn)行的工作,希望成為評(píng)估語(yǔ)言模型推理能力的統(tǒng)一平臺(tái)。我們匯編了一個(gè)包括數(shù)學(xué)(GSM8K)、科學(xué)(MATH)、符號(hào)(BBH)、知識(shí)(MMLU)等復(fù)雜推理任務(wù)的列表,以衡量哪些模型確實(shí)更好。下面是當(dāng)前的排行榜。盡管許多數(shù)字還沒(méi)跑出來(lái),但當(dāng)前的內(nèi)容仍然能給一個(gè)大概的模型排名:
總的來(lái)說(shuō):
? 我們根據(jù) GSM8K 對(duì)模型性能進(jìn)行排名,這是一個(gè)經(jīng)典的基準(zhǔn)測(cè)試,用于衡量鏈?zhǔn)剿季S數(shù)學(xué)推理性能。這不是唯一的度量標(biāo)準(zhǔn),但一個(gè)很好的解釋是 “在保持其他通用能力的同時(shí),模型在數(shù)學(xué)方面的表現(xiàn)如何” —— 這也非常困難。
? GPT-4 在 GSM8K 和 MMLU 上明顯優(yōu)于所有其他模型。
? 65B LLaMA 與 text/code-davinci-002 非常接近,這意味著基于它,如果 SFT 和 RLHF 操作正確,我們很有可能基于 65B LLaMA 復(fù)現(xiàn) ChatGPT。
? Claude 是唯一可以與 GPT 系列相媲美的模型家族。
? 較小的模型,如 FlanT5 11B 和 LLaMA 7B,明顯落后于排行榜,這意味著復(fù)雜推理可能只是大型模型的能力。
進(jìn)一步地,在 github 倉(cāng)庫(kù)中,我們包括了:
? 詳細(xì)的實(shí)驗(yàn)設(shè)置和結(jié)果分析;
??用于重現(xiàn) GPT 和 Claude 所有結(jié)果的腳本。
試一下吧 ??
在這篇文章中,我們討論了大型語(yǔ)言模型的推理能力。復(fù)雜推理不僅僅是因?yàn)樗歉鼜?qiáng)模型與更弱模型之間的核心區(qū)分點(diǎn),而且它還是模型成為下一代計(jì)算平臺(tái) / 操作系統(tǒng)的基礎(chǔ)能力,從而有可能在大模型上建立一個(gè)新的生態(tài)系統(tǒng)。
我們討論了構(gòu)建具有強(qiáng)大推理能力的模型的方法:預(yù)訓(xùn)練、有監(jiān)督的微調(diào)和強(qiáng)化學(xué)習(xí)。我們發(fā)現(xiàn)提高推理能力的方法與提高代碼能力的方法密切相關(guān),這加深了我們先前關(guān)于推理與代碼之間密切關(guān)系的假設(shè)。我們進(jìn)一步討論了高級(jí)提示工程技巧和在執(zhí)行復(fù)雜推理時(shí)模型行為的分析。最后,我們討論了如何評(píng)估模型的推理能力,并介紹了 chain-of-thought hub,這是一個(gè)正在進(jìn)行的項(xiàng)目,旨在統(tǒng)一評(píng)估語(yǔ)言模型的推理性能。
我們希望這篇文章能成為構(gòu)建具有強(qiáng)大推理能力的開(kāi)源模型的路線圖。
文章轉(zhuǎn)自微信公眾號(hào)@海外獨(dú)角獸
對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力
一鍵對(duì)比試用API 限時(shí)免費(fèi)