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