首個(gè)模擬人類認(rèn)知的思維框架OlaGPT:六大模塊增強(qiáng)語言模型,推理能力最高提升85%
ChatGPT剛發(fā)布的時(shí)候,給了我們太多的震撼,模型在對(duì)話上的表現(xiàn)實(shí)在是太像人類了,以至于產(chǎn)生了語言模型具有「思維能力」的錯(cuò)覺。
不過在深入了解語言模型之后,研究人員們也逐漸發(fā)現(xiàn)了,基于高概率語言模式的再現(xiàn)與期望中的「通用人工智能」還有很大差距。
在當(dāng)前的大多數(shù)研究中,大型語言模型主要是在特定提示的引導(dǎo)下生成思維鏈來執(zhí)行推理任務(wù),沒有考慮人類的認(rèn)知框架,使得語言模型解決復(fù)雜推理問題的能力與人類之間仍然存在著顯著的差距。
人類在面對(duì)復(fù)雜的推理難題時(shí),通常會(huì)使用各種認(rèn)知能力,并且需要與工具、知識(shí)和外部環(huán)境信息的各個(gè)方面進(jìn)行交互,那語言模型能不能模擬人類的思維流程來解決復(fù)雜問題呢?
答案當(dāng)然是可以!首個(gè)模擬人類認(rèn)知處理框架的模型OlaGPT來了!
論文鏈接:https://arxiv.org/abs/2305.16334
代碼鏈接:https://github.com/oladata-team/OlaGPT
OlaGPT包括多個(gè)認(rèn)知模塊,包括注意力、記憶、推理、學(xué)習(xí),以及相應(yīng)的調(diào)度和決策機(jī)制;受人類主動(dòng)學(xué)習(xí)啟發(fā),框架中還包括一個(gè)學(xué)習(xí)單元來記錄之前的錯(cuò)誤和專家意見,并動(dòng)態(tài)參考來提升解決類似問題的能力。
文中還概述了人類解決問題的常見有效推理框架,并相應(yīng)地設(shè)計(jì)了思維鏈(CoT)模板;還提出了一個(gè)全面的決策機(jī)制,可以最大限度地提高模型的準(zhǔn)確性。
在多個(gè)推理數(shù)據(jù)集上進(jìn)行了嚴(yán)格評(píng)估后得到的實(shí)驗(yàn)結(jié)果表明,OlaGPT超越了此前最先進(jìn)的基準(zhǔn),證明了其有效性。
模擬人類的認(rèn)知
目前的語言模型與期望中的通用人工智能還有很大差距,主要表現(xiàn)為:
1. 在某些情況下生成的內(nèi)容毫無意義,或者偏離了人類的價(jià)值偏好,甚至?xí)o出一些非常危險(xiǎn)的建議,目前的解決方案是引入人類反饋的強(qiáng)化學(xué)習(xí)(RLHF)對(duì)模型輸出進(jìn)行排序。
2. 語言模型的知識(shí)僅限于在訓(xùn)練數(shù)據(jù)中明確提到的概念和事實(shí)。
在面對(duì)復(fù)雜問題時(shí),語言模型也無法像人類一樣適應(yīng)變化的環(huán)境、利用現(xiàn)有的知識(shí)或工具、反思?xì)v史教訓(xùn)、分解問題,以及使用人類在長期進(jìn)化中總結(jié)出的思維模式(如類比、歸納推理和演繹推理等)來解決問題。
不過,讓語言模型模擬人腦處理問題的過程還有許多系統(tǒng)難題:
1. 如何系統(tǒng)地模仿和編碼人類認(rèn)知框架中的主要模塊,同時(shí)以可實(shí)現(xiàn)的方式根據(jù)人類的通用推理模式進(jìn)行調(diào)度?
2. 如何引導(dǎo)語言模型像人類一樣進(jìn)行主動(dòng)學(xué)習(xí),即從歷史錯(cuò)誤或?qū)<覍?duì)困難問題的解決方案中學(xué)習(xí)和發(fā)展?
雖然重新訓(xùn)練模型對(duì)糾正后的答案進(jìn)行編碼可能是可行的,但顯然成本很高而且不靈活。
3. 如何讓語言模型靈活地利用人類進(jìn)化出的各種思維模式,從而提高其推理性能?
一個(gè)固定的、通用的思維模式很難適應(yīng)不同問題,就像人類在面對(duì)不同類型的問題時(shí),通常會(huì)靈活地選擇不同的思維方式,如類比推理、演繹推理等。
OlaGPT
OlaGPT是一個(gè)模擬人類思維的問題解決框架,可以增強(qiáng)大型語言模型的能力。
OlaGPT借鑒了認(rèn)知架構(gòu)(cognitive architecture)理論,把認(rèn)知框架的核心能力建模為注意力(attention)、記憶(memory)、學(xué)習(xí)(learning)、推理(reasoning)、行動(dòng)選擇(action selction)。
研究人員根據(jù)具體實(shí)現(xiàn)的需要對(duì)該框架進(jìn)行了微調(diào),并提出了一個(gè)適合語言模型解決復(fù)雜問題的流程,具體包括六個(gè)模塊:意圖增強(qiáng)模塊(注意力)、記憶模塊(記憶)、主動(dòng)學(xué)習(xí)模塊(學(xué)習(xí))、推理模塊(推理)、控制器模塊(行動(dòng)選擇)和投票模塊。
意圖增強(qiáng)(Intention Enhance)
注意力是人類認(rèn)知的一個(gè)重要組成部分,識(shí)別出相關(guān)的信息并過濾掉不相關(guān)的數(shù)據(jù)。
同樣地,研究人員為語言模型設(shè)計(jì)了相應(yīng)的注意力模塊,即意圖增強(qiáng),旨在提取最相關(guān)的信息,并在用戶輸入和模型的語言模式之間建立更強(qiáng)的關(guān)聯(lián),可以被看作是一個(gè)從用戶表達(dá)習(xí)慣到模型表達(dá)習(xí)慣的優(yōu)化轉(zhuǎn)換器。
首先通過特定的提示詞提前獲得LLMs的問題類型,然后重構(gòu)提問的方式。
比如在問題的開頭加上一句「Now give you the XX(問題類型),question and choices:」;為了便于分析,提示中還需要加入「The answer must end with JSON format: Answer: one of options[A,B,C,D,E].」
記憶(Memory)
記憶模塊在存儲(chǔ)各種知識(shí)庫信息方面起著至關(guān)重要的作用,已經(jīng)有研究證明了當(dāng)下語言模型在理解最新事實(shí)數(shù)據(jù)方面的局限性,而記憶模塊著重于鞏固模型尚未內(nèi)化的知識(shí),并將其作為長期記憶儲(chǔ)存在外部庫中。
研究人員使用langchain提供的記憶功能進(jìn)行短期記憶,長期記憶則由基于Faiss的矢量數(shù)據(jù)庫實(shí)現(xiàn)。
在查詢過程中,其檢索功能可以從庫中提取相關(guān)知識(shí),涵蓋了四種類型的記憶庫:事實(shí)、工具、筆記和思維(thinking),其中事實(shí)是現(xiàn)實(shí)世界的信息,如常識(shí)等;工具包括搜索引擎、計(jì)算器和維基百科,可以協(xié)助語言模型完成一些無需為條的工作;筆記主要記錄一些疑難案例和解決問題的步驟;思考庫主要存儲(chǔ)由專家編寫的人類解決問題的思考模板,專家可以是人類,也可以是模型。
學(xué)習(xí)(Learning)
學(xué)習(xí)的能力對(duì)于人類不斷提升自我表現(xiàn)來說至關(guān)重要,從本質(zhì)上講,所有形式的學(xué)習(xí)都依賴于經(jīng)驗(yàn),語言模型可以從之前的錯(cuò)誤中學(xué)習(xí),從而實(shí)現(xiàn)快速提高推理能力。
首先,研究人員找出語言模型無法解決的問題;然后在筆記庫中記錄專家提供的見解和解釋;最后選擇相關(guān)的筆記來促進(jìn)語言模型的學(xué)習(xí),從而可以更有效地處理類似問題。
推理(Reasoning)
推理模塊的目的是創(chuàng)建基于人類推理過程的多個(gè)智能體,從而激發(fā)語言模型的潛在思維能力,進(jìn)而解決推理問題。
該模塊結(jié)合了多種思維模板,參考特定的思維類型,如橫向思維、順序思維、批判性思維和整合性思維,以促進(jìn)推理任務(wù)。
控制器(Controller)
控制器模塊主要用來處理相關(guān)的行動(dòng)選擇,具體包括模型的內(nèi)部規(guī)劃任務(wù)(如選擇某些模塊來執(zhí)行)以及從事實(shí)、工具、筆記和思維庫中選擇。
首先檢索和匹配相關(guān)的庫,檢索到的內(nèi)容隨后被整合到一個(gè)模板智能體中,要求語言模型以異步的方式在一個(gè)模板下提供回復(fù),就像人類在推理之初可能難以識(shí)別所有的相關(guān)信息一樣,同樣很難期望語言模型一開始就做到這一點(diǎn)。
因此,動(dòng)態(tài)檢索是根據(jù)用戶的問題和中間的推理進(jìn)度來實(shí)現(xiàn)的,使用Faiss方法為上述四個(gè)庫創(chuàng)建嵌入索引,其中各個(gè)庫的檢索策略略有不同。
投票(voting)
由于不同的思維模板可能更適合不同類型的問題,研究人員設(shè)計(jì)了投票模塊來提升多個(gè)思維模板之間的集成校準(zhǔn)能力,并多種投票策略來生成最佳答案以提高性能。
具體的投票方法包括:
1. 語言模型投票:引導(dǎo)語言模型在多個(gè)給定的選項(xiàng)中選擇最一致的答案,并提供一個(gè)理由。
2. regex投票:用正則表達(dá)式精確匹配抽取答案以獲取投票結(jié)果。
實(shí)驗(yàn)結(jié)果
為了評(píng)估該增強(qiáng)型語言模型框架在推理任務(wù)中的有效性,研究人員在兩類推理數(shù)據(jù)集上進(jìn)行了全面的實(shí)驗(yàn)比較。
從結(jié)果中可以看出:
1. SC(self-consistency)的性能優(yōu)于GPT-3.5-turbo,表明在一定程度上采用集成方法確實(shí)有助于提高大規(guī)模模型的有效性。
2. 文中提出方法的性能超過了SC,在一定程度上證明了思維模板策略的有效性。
不同思維模板的答案表現(xiàn)出相當(dāng)大的差異,在不同的思維模板下進(jìn)行投票,最終會(huì)比簡單地進(jìn)行多輪投票產(chǎn)生更好的結(jié)果。
3. 不同思維模板的效果是不同的,循序漸進(jìn)的解決方案可能更適合推理型問題。
4. 主動(dòng)學(xué)習(xí)模塊的性能明顯優(yōu)于零樣本方法。
具體來說,隨機(jī)、檢索和組合列表現(xiàn)出更高的性能,即將具有挑戰(zhàn)性的案例作為筆記庫納入其中是一種可行的策略。
5. 不同的檢索方案在不同的數(shù)據(jù)集上有不同的效果,總的來說,組合(combine)策略的效果更好。
6. 文中方法明顯優(yōu)于其他方案,這得益于整體框架的合理設(shè)計(jì),包括主動(dòng)學(xué)習(xí)模塊的有效設(shè)計(jì);思維模板實(shí)現(xiàn)了對(duì)不同模型的適應(yīng),不同思維模板下的結(jié)果是不同的;控制器模塊起到了很好的控制作用,選擇了與所需內(nèi)容比較匹配的內(nèi)容;投票模塊設(shè)計(jì)的不同思維模板的集成方式是有效的。
參考資料: