隨著大規模模型技術的興起,我們正處于一個嶄新的智能時代的黎明。我們有一個大膽的預測,未來的5到10年將可能帶來一場大變局:99%的開發、設計和文字工作將被AI接管。這不僅僅是一個想象,而是對未來可能趨勢的深思熟慮。
在互聯網時代,我們目睹了大量網站的崛起,成為互聯網時代的原生應用的主要載體,這個時代有了 Web 相關的新技術,這些技術承載著 Google、Facebook、Twitter 等互聯網明星企業的崛起。進入移動互聯網時代,App 成為了主要載體,它們占據了整個移動互聯網時代人們注意力的中心。然而,當我們進入智能時代,開始思考:什么將會成為這個時代的核心載體?我們預測可能不再是 App,也不再是網站,而是 Agent,也許幾年后的現實才能給出答案,但歷史告訴我們一個新鮮事物的演進總會找到一個穩定的術語來概括這個載體,而今天我們看到 Agent 最具有這個潛力。
對于這個猜想,隨著我們后面講的越來越深入,大家可能體會也會越來越深,因為它可能抓住的一些智能時代一個非常本質性的東西,基于大模型把 Agent 的能力推高到了一個全新的水平,這個在學術界研究了幾十年的全新物種才開始走入人類舞臺的中央。在范式上我們也在思考是什么樣的底層技術和架構會驅動 Agent 技術的快速發展,從現在的趨勢來看,我們覺得在人類的智能原理處于核心地位的面向目標架構很可能會成為驅動這個 Agent 技術發展的主要范式。
而且現在全球對Agent的關注也是非常狂熱的,幾個月前,OpenAI 在內部就開始高度關注智能體(Agent)領域,Deep Mind的聯合創始人最近也提到下一代 AI 技術走向并非是生成性 AI,而應該是交互性 AI。這種交互性 AI 在很大程度上類似我們今天提到的智能體,用戶要求完成各種任務,智能體則可以對軟件進行操作或者與人進行協作,完成相關的工作。
希望這些想法可以幫助大家在戰略層面或者是產品和技術層面得到一個很好的思考框架,能夠在各自的領域去推演未來。
導讀
走馬觀花、拋磚引玉
整個 PPT 一百多頁,內容繁雜。我給大家做一個簡單的導讀,主要還是梳理脈絡,提出思考的框架和基點,起到拋磚引玉的作用,其中涉及的很多細節部分我們并沒有做得非常細致。期望大家在看完這個分享之后,對智能體技術有一個新的認知,并能應用在你們自己的研究方向或者職業規劃上。
我們將整個內容分為四個部分:首先,會對從大模型到現在的智能體的技術發展做一個串講;接著,介紹通用智能原理和面向目標架構這個兩個根本性問題;最后,基于這兩個原理,分析現在的智能體架構仍存在的缺陷,以及未來可能的發展方向。
1. LLM Agents綜述
如果你一直關注 AI 領域,你應該能看到一個清晰的技術脈絡,一開始大家玩 Prompt 工程,接著是Prompt Chain或Flow,再到Agent,多Agent,很清晰的一個脈絡架構,我們也會沿著這個脈絡給大家分享相關的經典工作。
我們回到 Agent 這個概念上,實際上,人類是這個星球上最強大的 Agent。Agent是一個能感知并自主地采取行動的實體,這里的自主性極其關鍵,Agent要能夠實現設定的目標,其中包括具備學習和獲取知識的能力以提高自身性能。
Agent 的復雜程度各不相同,一個簡單的恒溫器可以是一個 Agent,一個大型的國家或者一個生物群體也可能是個 Agent。感知環境、自主決策、具備行動能力,設定明確的目標和任務,適應環境及學習能力,都是 Agent 的關鍵特點。
Agent 這一概念的起源并不明確,可以是學術界逐漸發展沉淀而來,但是我們可以考慮馬文·明斯基80年代《智能社會》這本書中在人工智能領域發揚光大了這個概念。Agent 理論在大模型時代之前已經被學術界研究了很多年,甚至是汗牛充棟,許多理論研究都試圖創造出具有人類智能水平的 Agent。然而,在大模型出現之前,Agent 的技術始終面對天花板限制,無法取得實用的進步,它的本質問題還是AGI問題,反過來說,只有AGI的技術進步才能讓 Agent 技術進步。
在學術領域,最經典的案例可能是與機器人相關的研究,都涉及到了Agent 技術。在大模型時代之前,比較知名的垂直領域 Agent 的例子比如 Alphago,它有感知環境、做決策、采取行動的閉環,當時的主要研究方向還有使用強化學習打游戲的DeepMind的Agent57,后來更加通用的Gato,還有OpenAI玩“躲貓貓”的多智能體。
我們認為Agent技術是未來實現社會全面自動化的關鍵技術。在大模型出現之前,自動化更多的是一些偏結構化固定模式環境中通過實現固定算法流程來完成自動化任務,而大模型智能體的通用性帶來了靈活性,使其可能應對人類在腦力勞動中面臨的各種復雜長尾任務,進一步實現體力和腦力任務的全面自動化。
大模型和Agent技術開啟了全面自動化的新時代。大模型是第一個可以自主學習并擁有廣泛知識的模型,所以在大模型時代,Agent技術開始迅速發展。今天,我們可能只是在起點,我們看到的Agent還偏向于玩具,但是預計在未來幾年,這個領域將產生極大的改變,它的發展速度可能會超越我們的想象,因為我們現在看到改進每天都在發生,天花板遠未來到,甚至天花板可能不會再來了。
1.1 Prompt工程
在大模型剛出來的時候,大家都喜歡做的事就是Prompt工程,把大模型當成一種編程語言來看待。人們通過描述角色技能、任務關鍵詞、任務目標及任務背景,告知大模型需要輸出的格式,并調用大模型進行輸出。這種方法就是經典的把大模型當做工具來調用,我們可以稱為工具模式。
為此,大家也發展了各種各樣的Prompt工程的玩法,如角色扮演、零樣本提示和少樣本提示。比如一個澳大利亞少年編寫了一個15000個字符的提示詞,成功地讓他變身為人類的導師,教授各種知識。這種方式就像能直接構建軟件一樣,是我們將Prompt工程發揮到極致的一個經典案例。
https://github.com/JushBJJ/Mr.-Ranedeer-AI-Tutor
1.2 Prompt外掛
僅憑Prompt工程根本無法滿足人們日益增長的大模型需要,鑒于大模型本身的諸多缺陷,如不能及時更新知識,上下文有限等等,人們開始給大模型加入插件,如引入向量數據庫,把數據索引進向量數據庫,再召回數據,再提交給大模型做Prompt工程,這樣就可以使用最新的知識和比大模型里的知識更準確的知識。
這些還不夠,人們又開啟了外掛模式,嘗試讓 GPT 調用函數和使用工具,一系列關于工具使用的實踐開始出現,ChatGPT也推出了插件體系。當人們發現大模型的推理能力很差時,開始試圖讓模型自身清楚地描述問題,把問題轉化為 PDDL (Planning Domain Definition Language)格式的描述語言,通過調用通用規劃器來解決規劃問題,再把解決方案轉化為可執行的動作,以更好地邏輯推理和規劃等任務。
更加經典的外掛形式當然是讓大模型調用外部工具了,OpenAI也搞出了ChatGPT Plugins的開放體系,這些今天回頭看都是非常順理成章的形式,ChatGPT的爆發激發了全世界大量的Idea,這些創新很快就被OpenAI吸納進產品迭代中。
此外,大模型雖然具備一定的推理能力和思考能力,在很多推理任務上依然力不從心,能不能讓模型自己不做規劃推理,讓他把問題描述清楚,轉化成一個 PDDL 的一個關于規劃描述的語言,然后使用通用的規劃器去做規劃,再轉化成動作執行,這就把大模型作為一個中轉器,把規劃器當做了一個外掛。
我們可能會思考,大模型或許真的就是我們以前想象的那樣,會達到人類智慧水平的普適性機器么?顯然從各項評測來看還有很多任務做不到,更何況這些任務評測本身的覆蓋度也不夠完備。
有一個經典概念被譽為"通用任務解決器",在達特茅斯會議之后得名“GPS”,即General Problem Solver。這是由赫伯特·西蒙(Herbert Simon)和艾倫·紐維爾(Allen Newell)在早期提出的概念,他們嘗試尋找可用于解決數學問題的通用解決方案。這套理念其實很簡潔,可以看作是早期的面向目標架構。它的主要內容是將目標狀態列出,然后在解空間中搜索可以將初始狀態轉化為目標狀態的操作組合,這樣的組合便是問題的答案。
1.3 分解與組合
然而,目前我們發現,在通用人工智能(AGI)的漫長旅途中,大模型雖顯強大,仍存在著顯著的技術天花板。許多人開始探索如何挖掘大模型在大任務執行能力上的可能性,其中一個基本策略就是能夠分解和組合。例如,經典的 MapReduce 模式可以將一個大型文本進行摘要,因為它的上下文有限,一種解決辦法是擴大 context 的范圍。另一個解決方案是,在有限的 context 中,我們先將文本拆分成小片段,對每個片段進行摘要,然后再將其組合,從而得出結果。
大家也發現大模型直接給出答案似乎并不靠譜,那么是否可以讓它像人類一樣,一步一步思考呢?畢竟,人類在解決問題時,也是逐漸構建解決方案,而并非立即給出答案。因此,開始出現了一系列的嘗試解法,比如思維鏈、多思維鏈、思維樹和思維圖等。
我們一一講解,首先是思維鏈(Chain of Thought,CoT),它要求模型展示其思考過程,而非僅給出答案。這可以通過兩種方式實現,一種是具體說明,即要求模型詳細地、一步步地思考;另一種是示例說明,即通過給定問題和答案的同時,提供思考過程。這樣,當詢問模型時,模型會模仿此過程,逐漸思考并給出答案。再往后,我們發現一個CoT有時可能出現錯誤,然后開始嘗試讓它發散,嘗試多種思路來解決問題,然后投票選擇最佳答案,這就是CoT-SC了。
在這過程中,我們發現,這種發散的方法也有局限性,例如24點問題,它不能很好地解決,那么我們就會嘗試把這個問題進行垂直分解,分成三步來做,每一步分解成多個子問題,類似于動態規劃的做法,就好像把一個大任務拆解成了三個小的子任務,然后再一步一步地去實現它。
這就是思維樹(ToT, Tree of Thought)的一個主要思路,它會根據當前的問題分解出多個可能,然后每一個樹節點就是父節點的一個子問題,逐層擴散,遍布整個解空間,一些節點就直接會發現不合適而終止掉,達到了有效剪枝的作用。然而 ToT 的方式也存在問題,對于一些需要分解后再整合的問題,比如排序問題,排序你可能需要分解和排序,然后再merge,就不行了。
為了解決這個問題,一種名為思維圖(Graph of Tree,GoT)的方法被提出。這種思維圖既可以分解,也可以合并。
9月26日,清華姚期智團隊又提出了更新的方法——累計推理,在24點問題上成功率已經達到98%的SOTA。他們方式很接近主流 Agent 的實現方式,具備一定的通用性。它首先會提出一個初步的想法,然后再對這個想法進行驗證,看這個提案是否合適。如果提案合適,就將它添加到圖的下一個節點,每一步都基于已經建立的圖節點進行下一個思考節點的創建,這樣發散、合并或刪除直到達到最終目標狀態,完備性和靈活性大大增強。
1.4 反饋
上述的討論主要是任務分解和組合,他們盡管強大,卻不能與外界進行互動,這就不得不講到反饋機制了。反饋是整個控制論的基石,也是動物體從誕生之初就具備的基本能力。
最經典的方法實際就是 ReACT,這個方法非常經典,基本把智能體最核心的能力圈出來了,當然它也有它的缺陷,我們將在后面討論為什么還會有 Agent 更多的復雜技術以克服它的不足。ReACT讓大模型先進行思考,思考完再進行行動,然后根據行動的結果再進行觀察,再進行思考,這樣一步一步循環下去。這種行為模式基本上就是人類這樣的智能體主要模式。
比如,詢問一個關于科羅拉多造山帶的相關問題,它就會去通過搜索工具進行搜索,如果搜索結果沒有提到東部地區,它會繼續搜索東部地區的數據,然后繼續一步一步地思考,根據結果反復思考,直到完成這一項任務。
ChatGPT的代碼解釋器主要采用的就是這種模式。首先,代碼解釋器能夠與用戶進行簡單的互動,如用戶的問側和解釋器的回應。當用戶的問題需要外部調用時,例如詢問天氣情況,解釋器會生成相應的代碼,利用代碼調用外部工具獲取結果?;谶@些結果,代碼解釋器會將信息反饋給用戶,如“今天天氣很好”。下圖是,我們調研的ChatGPT Code Interpreter 的主要實現方式。
然而,我們始終覺得這樣仍然不夠,我們希望大模型在完成每一個任務后,能夠積累經驗,故而產生了借鑒強化學習思路的"反射"機制。反射機制能夠讓機器記住每一次任務的完成情況,無論效果好壞,以供未來參考,提升模型的性能。
Agent的框架都會讓模型輸出JSON進行函數調用,OpenAI也就推出了Funtion Calling,將外部調用內化到模型中,變成了一種原生能力。
考慮到前面說的ReACT和Reflection這些不徹底性,更大的變革轟然襲來,這就是Agent,今天4月AutoGPT橫空出世,短短數周Star數就超過PyTorch達到90k,賺足了眼球。
1.5 Agent
今天,全世界都在關注這個領域,Agent 模式的研究和應用都在迅猛發展,作為一個"共識"可預見的未來該技術的進步將勢不可擋。AutoGPT模型剛在10月15日宣布獲得1200萬美金的資金支持,也小道消息稱OpenAI將在11月份發布面向 Agent 的原生模型和規范。百度在發布"文心一言4.0"時也表示,他們考慮在升級系統時重點考慮了系統2的能力,這也是Agent 模式的關鍵設計。
下圖是AutoGPT 發布的進行中的架構圖,旨在實現對任務的有效管理。生成的任務將會被加入優先級隊列中,隨后系統會不斷從優先隊列中選擇優先級最高的任務進行執行,整個過程中,任何反饋都會通過記憶進行迭代優化代碼。
這個主要框架雖然相對簡單,但其設計理念具有重要意義。首先,創建一個初始的計劃,然后進入主循環。系統會讓模型判斷在當前計劃下該進行何種行動,接著會執行行動。執行完畢后,結果會寫入下一次循環中。如此,每次決策都會基于之前的結果、記憶和計劃,從而制定出新的行動方案。
在該框架中,模型的決策過程涉及到動作選擇,這也是主要的功能之一。此外,整個過程中我們主要關注的一些工具包括“Start Another Agent”以及“Task Complete”。這兩個工具體現了Agent可以被調用,從而將大任務拆解為若干小任務進行處理,繼而形成層次化的樹狀結構,這種結構與人類分工和協作的工作方式極為相似。
值得一提的是,微軟的賈維斯 (Jarvis)一個深度學習任務調度系統,也采用了類似思想。他們主要關注如何調用模型來執行各種深度學習任務,涉及到了先做計劃,再選擇模型,然后執行任務,獲取反饋,然后進入下一輪循環等環節。
有的研究者會嘗試使用大模型寫小說,借鑒LSTM這個經典深度網絡的思想發明RecurrentGPT,還引入了長時記憶和短時記憶機制,使模型擁有了更佳的記憶和學習功能。
其他方向,我們看到把大模型視作一個虛擬世界中的智能體,如MineCraft游戲中所設定的角色。這個角色可以沿著指定的路線,完成一些在環境中探索的任務,如建房子、挖礦、打怪等。這個角色首先需要被告知怎樣去執行任務,例如自動訓練課程計劃的使用。然后逐步的完成任務,形成自己的執行代碼庫、技能庫等,這樣就算是在以后遇到相似的任務,它都能快速調用已有的技能和經驗來完成任務。某種意義上,這就是一種強化學習的方式。
這個方向的變化真的是一日千里,就在昨天,清華聯合面壁發布了XAgent,提出了雙循環機制在效果上碾壓了AutoGPT。這種機制中,外循環負責宏觀規劃,而內循環則負責細節的執行。
雙循環模式
在完成各類任務的時候,它的能力也大大勝過 GPT 4。這里需要解釋一下,研究者為什么把 GPT 4 和 Agent 進行對比,看起來GPT 4只是 Agent 的一個組件,自行車的輪子怎么能和自行車對比呢?這是因為從任務完成的視角看,GPT-4也是一種Agent,Agent的概念是大模型的超集,這也是為什么我們說智能時代的核心載體是 Agent 而不是大模型的原因,這個事物的發展形態終將會走到一個最穩定的形態,這個形態目前看只有 Agent 最配這個顏值擔當。當能不大眾所接受的對等 Agent 含義的詞匯可能還在發明中,至少目前看伙伴、助手這些命名的水平都不夠高,讓我們拭目以待。
1.6 Multi-Agent
進一步,人們很自然地想到了多智能體(Multi-agent)模式, "斯坦福小鎮"開了一個好頭。在這個虛擬的小鎮里,每個角色都是一個單獨的智能體,每天依據制定的計劃按照設定的角色去活動和做事情,當他們相遇并交談時,他們的交談內容會被存儲在記憶數據庫中,并在第二天的活動計劃中被回憶和引用,這一過程中就能涌現出許多頗有趣味性的社會學現象,我們成為群體智能的涌現。
再看今年7月份,一個被命名為MetaGPT的項目引起了廣泛關注,這個項目中定義了產品經理、架構師、項目管理員、工程師和質量保證等角色,各角色之間通過相互協作,基本可以勝任完成500行左右代碼的小工程了。
很簡單的一個實現就能夠完成500行,后續改進后,是否有可能完成5000行或者是5萬行代碼的項目呢?譬如前兩天微軟剛發布的 Code Plan 項目已經開始嘗試實施大型工程的改造計劃。
Meta GPT 最有價值的思想是借鑒人類社會中的協作方式,尤其是SOP,之于Agent 設計則平平無奇,也包括觀察、思考、狀態管理、任務行動以及結果反饋等等必備組件。
同樣的思路,清華開發了一個名為ChatDev的系統,進一步引入了CEO等角色,這里就不再展開描述。
值得一提的是,Agent 的應用方向其實非常廣泛。比如 RPA 公司實在智能把 Agent 用于他們的產品調用常見桌面軟件,如淘寶網、釘釘,來自動完成桌面任務。
而任何一個 Agent 的實現,似乎共性都挺多,都需要有長短時記憶能力、工具使用能力、通信能力,甚至包括 SOP 的能力,自然而言就有人要做這樣的框架了,如 agents。
1.7 簡單的難題
盡管 GPT-4 等模型非常強大、Agent的發展似乎牛氣沖天,它們仍然無法滿足很多任務的需要,甚至一些在我們看來很簡單的任務都完成不了,比如我們構造的這個任務:
?
?
給小學生展示一下兩數相加的每一步計算過程,如1135 + 78 答:計算詳細過程如下 5+8=13, 進位1 3+7+1=11, 進位1 一個數已經加完,剩余數11 + 1 = 12 結果為:1211 下面請列出以下兩數的詳細計算過程: 81728738271872871871672 + 28781729836746721
?
?
我們必須明白,盡管AI在一定程度上模仿了人腦的工作方式,但實際上,機器人和人腦在處理信息時采用的策略有很大的不同。因此,即使在未來,我們也需要繼續改進 AI 框架,以解決這種差距。比如一個百萬位數的加法任務,GPT-4囿于token數的限制是不可能完成這個任務的,但人類缺可以,這恰是人類和AI需要彌補的Gap。我們進行了一些簡單的試驗,還沒有發現大模型和Agent能搞定這個任務。其中,ChatGPT4的Code Interpreter是表現最好的,因為它調用了外部計算器,但中間的過程描述還是發生了錯誤。如果你能做出來這個小作業,歡迎聯系我。
至此,我們已經講述了大模型到 Agent 的發展歷程。接下來的時間,我們將從人類智能的視角,結合面向目標架構的理念,分析 Agent 技術的本質、存在的缺陷以及未來可能的發展方向。
2. 通用智能基本原理
首先我們來看看這個眾人熟知的認知飛輪,感知、認知、決策、行動,今天的人工智能代理更像是基于這個認知飛龍構建的。但是從本質上,人類智能遠比這復雜。
在漫長的進化歷史中,生物神經網絡從簡單的條件反射逐漸進化到今天的主動預測,我們已經可以在大腦中構建世界模型,進行強大的推理和分析??此品彪s的過程,實際上都發生在核心的架構上,并且逐步完善。無論是工作記憶,還是人類處理語言的能力的誕生,這些都是智能的必不可少的元素,尤其是符號能力,對人類智能的發展有著不可替代的作用。
因此,讓我們先提出一個更為宏觀的問題,智能究竟是什么?我強烈推薦這本名為《預測算法》的書,它在20年發表,那一年,GPT 3也剛剛問世,我在閱讀之后,就有這樣一個感覺:生成模型是戰略正確的。在之前關于AGI的分享中,也提到過這個觀點,智能是通過預測來解決應對世界的不確定性的,分享視頻參見這里https://www.bilibili.com/video/BV16h4y1w79A/
讓我們深入理解一下模擬的概念,當一個低等動物接觸到外界的刺激,它會收縮來逃避潛在的風險。這其實是一種模擬,只不過這個模擬反射神經元對有些過于反應敏銳,它假設所有的刺激都是潛在的危險。然而,對于人類來說,我們的模擬則更為精細。我們對世界進行建模,把世界以實體、關系、屬性描繪出來。然而,這也是我們認知的極限,我們只能理解一個對象化的世界,非對象化的世界我們無法理解。比如,當我們探索量子的時候,我們還常常用對事物進行對象化的方式去理解,但是發現我們的理解力有時候是有限的,因為量子世界的真相超出了人類認知能力的范圍,我們智能使用低維空間的投影去推斷它,就像我們無法在三維世界去想象十一維世界的樣子。
在過去的四十年里,科學家對認知架構有很多深入的研究,并嘗試據此研發出通用人工智能,但天地不仁以萬物為芻狗,當前來看只有GPT系列模型距離實現通用人工智能最近,當然這些認知理論依然具有巨大的參考和指導意義。
深入地聊認知架構和智能原理之前,我們必須要聊的是繞不開的《思考快與慢》,這是一本暢銷書,其后面的學術道理也十分受用。大腦中的系統1和系統2是我們所有人都熟知的,盡管在實際實現中,系統2可能由系統1涌現,但至少在表現上,我們的大腦看起來有兩個系統,系統1和系統2,分別負責不同的功能。知識和情感的快速反應被稱為系統1,而邏輯性強、思考速度慢的反應被稱為系統2。
接下來我們看看這些認知架構中?,有一個叫做GWT(Global Workspace Theory,全局工作空間理論),如下圖所示:
全局工作空間理論(GWT)是認知科學家伯納德·巴爾斯(Bernard Baars)和斯坦·富蘭克林(Stan Franklin)在20世紀80年代后期提出的一種意識思維框架。它被開發出來,以定性地解釋一系列有意識和無意識過程之間的匹配。GWT在建模意識和高級認知方面具有影響力,認為它們是從廣泛、并行的神經過程中信息的競爭和集成流動中產生的。
系統1涵蓋了神經網絡的外圍連接,涉及長期記憶、價值系統、感知運動控制相關的神經網絡,系統2則是一個高度集中的“舞臺”,人類的有意識思考,如做數學題時,腦中想象數字相加的過程,都在這個舞臺上進行。這個舞臺叫全局工作空間,記憶在這個舞臺上被拉進來加工,然后被扔出去。LIDA (Learning Intelligent Distribution Agent) 受到多種計算范例的啟發,并且實現了GWT。 認知模塊包括知覺關聯記憶,情景記憶,意識,程序性記憶和行動選擇。由 LIDA 架構控制的認知機器人和軟件代理將能夠進行多種學習機制。
其實在大模型Agent技術出現之前,人們就已經意識到,試圖集成各種深度學習模型以實現人工普遍智能(AGI)并不夠,還需要更高層次的認知模型。Lecun在思考AGI時對大模型的出現也提出過意見,它認為世界模型才是關鍵,但前兩天新的研究卻認為大模型中有世界模型。但毫無疑問的一點是,世界模型對于我們對世界的認知是非常關鍵的,無論大模型中是否包含世界的認知,Agent都必須對世界有準確的理解才能做出正確的決策。當模型不能正確運行時,決策就會出錯;只有當世界模型構建的正確,才能選擇正確的模型,進而做出正確的決策。
總結一下,系統2包含意識、思考、符號主義、邏輯推理圖靈、機制結構化和模型。而系統1包含快速思考、神經網絡連接主義、長期記憶、深度學習、亞符號、潛意識和非結構化數據。在構建 Agent 時,可以參考這兩種系統的思維框架。在理解智能架構的概念時,我們需要從記憶空間、符號系統、世界模型構建與加工三個方向去考慮。記憶空間是基礎,符號系統是思考和推理的核心,而世界模型的構建和加工則是其中最重要的環節。在現在的大模型中,如 GPT,雖然很多人認為它沒有符號系統,但我們認為,其內部的注意力機制可能已經在激活流轉過程中模擬了世界模型的加工過程,只是這個過程并不顯式,而且無法控制,只能通過Prompt工程引導它進行,但它會經常跑偏。
我們通過學習掌握了對世界的知識,并針對感知數據嘗試在符號系統中構建世界模型,進行預測和行動。如彈鋼琴這樣的行動,我們需要通過反復訓練,逐漸將運動序列內化,變成肌肉記憶和反射。這些在系統2中反復出現的行為,會逐漸沉淀到系統1中。這個過程可以理解為一個“快捷通道”的形成過程,稱為Shortcut。
人的視覺識別過程是一個層次性的關系,從最初級的視覺皮層一直到更高級的皮層,從簡單的視覺邊緣特征到線條的方向性,再到線條之間的組合,如角等更高維特征的形成,直到形成物體的感知。這些物體的概念再對應符號系統和自然語言的綁定,當圖像信息經過解碼過程進入符號系統后,我們的關聯記憶會幫助我們召回數字等語義概念。
以人類做加法為例,假設我們要解決“219 + 13”的問題,這個過程可能會遇到一個看似相同的圖形,比如圖中有"13"和"B"的歧義。這就打破了現在很多人的想法,通常我們喜歡做前向過程,先使用一個視覺模型處理輸入,然后再將其輸出傳遞給大模型進行處理。實際上,人在理解這個場景時是一個雙向過程,首先有一些直覺的特征傳入到系統2,系統2會推斷這是一個做加法任務,并將看似“B”的圖形解釋為13,這個過程稱為Projection。例如,我們經常從一些像素點中識別出人臉,這就是由上至下的功效發揮作用,這是對未來人工智能代理(Agent)的一種啟發。
另一個關鍵的能力是關聯記憶。當我們開始觀察某個物體時,比如進行加法操作時,我們的大腦并不會以固定模式運作。相反,我們的神經網絡會并行運行,有的神經網絡開始將加法的概念、數字的概念以及加法規則等各種信息激活,所有這些信息都會基于一個關聯網絡喚醒出來,這樣我們就可以開始下一步的工作。接下來就是所謂的結構推理,我們會開始將這些符號結構化,例如,如果它是一個三位數,我們就會開始理解它的每一位構成整體和部分之間的關系。
當我們已經理解到219 + 13是加法時,我們也會執行Structure Inference得到結構的認知A+B=C的兩位數加法結構,并將219和A對應上,13和B對應上,這個過程就是Variable Binding了,我們將具體的實例與它的角色對應上了。
接著我們要遵循加法規則進行運算以實現我們的目標——完成加法任務。根據我們打算完成的目標以及現在的狀態,我們需要規劃出達成目標所需要的具體步驟,即執行加法規則。進入到這樣一個循環過程之中,我們會額外提到兩個概念,即"Shortcut"和"Exception"。
那么什么是Shortcut呢?當我們初次開始書寫數字時,速度往往很慢,但隨著練習,我們將逐漸寫得越來越快。這個過程實際上包含了一個叫做“Recoding”的過程,我們會將熟悉的操作或流程用神經元重新表示,這樣就把一個復雜的操作簡化為了一個子任務,通過類似于傳參的方式控制一個子神經網絡完成任務。比如開車,一開始,每個動作都需要集中注意力,嚴重依賴系統2,但是開了一段時間之后,就可以自如地進行了,這就是因為系統2的控制能力已經被沉淀到了系統1里面,稱為Shortcut。
另一個重要的方面是異常處理能力,人類最強大的能力就是能夠隨時應對異常。譬如,你在走路時突然被絆了一跤,你首先需要應對的就是摔倒這個狀況,然后再回到原來的路線上繼續走。
因此,在執行加法過程中,并不是由于一個細節被中斷或遇到各種異常,才開始執行加法。我們會發現,在遇到各種問題時,我們總是會奔著目標勇往直前。人是一個運作著面向目標架構的復雜過程。面向目標架構是人類智能的一個核心機制,當然并不是唯一的。有時,我們也會沒有具體的目標或者說目標不是顯式的,比如citywalking,同時有一些底層的目標機制,諸如生存,這說明人的面向目標架構要復雜許多。這就是我們不得不說的智能核心的面向目標架構
3. 面向目標架構
我們的情緒系統其實也在解決目標問題,例如,你會因為目標無法達成而生氣,因為目標可能無法達成焦慮,因為別阻礙你的目標而憤怒。顯而易見,許多情緒都與目標機制有所關聯。因此,這套面向目標的機制在人的智能運作中占有極其核心的地位。
讓我們通過一個簡單的模型來描述該機制。首先,我們需要對這個世界有理解,因此我們會在腦中構建一個關于世界的模型。這個模型在結構化之后,就會變成了當前世界狀態。而我們的目標是對應的一個目標世界狀態。因此,人類就是在不停地消除當前狀態和目標狀態之間的差異,這個消除的過程就是目標驅動的過程。
在目標驅動的過程中,你開始嘗試去解決這個問題,消除這個差異,你也可能有現成的解決方案,直接動用已有的解決方案執行已知的運動序列,也可能需要進行一定的思考,做出推理分析幫助你解決問題。
一旦你找到了一些執行序列,這些序列可能會變成一個子序列,子序列里有子目標。每個子目標的執行有可能是直接完成的,也可能需要進一步思考才能完成。正如我們可以看到,GPS這段代碼就是在為了達成某一個目標而工作,它會遍歷所有的目標,嘗試讓每一個目標都能夠達成,一旦達成就結束。有興趣的同學可以讀一下這個代碼,就是做暴力遍歷找出達到目標狀態的操作序列。??????????????
不過,像GPS這種理想的解決方案在現實世界中可能并不奏效,因為真實世界的解空間過于龐大,想想AlphaGo的故事就理解了,這也是為什么雖然此想法在理論上看起來很好,但在實際操作時卻無法實施。
但這種思考很有啟發,在Newell和Simon1972年出版的《Human Problem Solving》一書中,他們研究了人類如何解決問題,并意識到我們經常進行手段-目的分析(means-ends)
舉一個例子:
"我想把兒子送到幼兒園。我現在的狀態和我想要的狀態之間有什么區別?其中一個是距離。
是什么因素會改變距離?我的汽車??墒俏业钠噳牧恕R屗ぷ餍枰裁??一個新電池。
哪里能買到新電池?汽車修理店。我想讓修理店為我安裝一個新電池,但店里不知道我需要一個新電池。問題出在哪里?是溝通的問題。什么能讓溝通變得容易?一部電話……以此類推。"
在計算機領域,有很多方法都與目標機制相關。例如,過程描述語言(PDL)就是一種經典的方法,主要用于解決機器人問題。我們可以描述世界上的對象,它們當前的狀態是怎樣的,目標狀態是怎樣的,有哪些可以采取的操作,然后我們可以基于這些操作,使用規劃器尋找一個合適的運動序列來解決問題。
但在今天計算機領域的工程實踐中,人們更多采用的是面向過程架構,無論是接口、函數、UI界面,還是組件,又或者是一個應用程序,都是以接口的形式存在的。而這個接口實質上是一種被調用的子流程,借此過程的完成,我們希望執行結果符合我們的預期,但程序并不為結果負責。它解決的是過程和流程問題,系統內沒有目標的概念。
當然,也存在一些以目標導向為核心理念的的軟件工程,例如聲明式編程,它只需要你描述你想要什么,而無需關心執行的過程,像HTML和SQL便是其經典例子。在這樣的架構下,程序能夠自行尋找達成目標的方法。
然而問題在于,這種面向目標的架構只能應用于垂直領域,而無法普遍應用到所有領域,只有在特定的領域內才能發揮作用,這就限制了它的應用范圍。
總的來說,盡管面向目標架構在計算機領域有一席之地,但由于其只能在特定領域發揮作用,而無法解決所有領域的問題,因此它的應用還是有所限制,更多出現在特定的DSL(領域特定語言)中,這種架構的確也發揮了巨大的作用。在軟件工程的范式遷移中,我們發現面向過程架構與面向目標架構之間的重要區別點:隨著人類的生產方式的變化,軟件工程可能正逐步演化為智能體工程(Agent Engineering);以前我們主導的生產方式是人類處于中心位,AI做輔助。而未來可能會變成以 AI 為中心,人類變為輔助。由此,整個產品形態和平臺的構成可能會發生這樣的轉變。
在這一轉變中,原本由人類主導的功能開發,逐漸演變為以智能體為主要驅動力。傳統的用戶界面,由于其垂直的任務層級架構,每一層都需要人類逐一生成,未來這個過程可能會被智能體自主生成并改良。此外,原本只能解決有限范圍的任務,未來的架構則可以解決無限域的任務。就如同頭條這樣的平臺,它是一個信息的分發平臺。那么,是否會出現新的平臺模式?比如一種知識和世界模型的分發平臺。以前我們只能處理大量長尾數據,在未來可能能解決大量長尾任務。以前是廉價的規模化加昂貴的個性化,以后是廉價的規模化的個性化。
4. 前瞻性分析
根據上面的分析,我們能看到 Agent 技術在未來的發展還有很大的提升空間。我認為,這些提升主要可以從幾個方向開始,包括引入中央執行機構、學習能力、輸入感知、輸出執行、世界模型和記憶等幾個方面。這些構成因素是完備非正交的,都對提升 AI 技術至關重要。
4.1 Central Executive
首先,中央執行機構,這是一個核心的概念,但常常被人們忽視。現在的 Agent 只是一個規劃器,它負責做規劃。但實際上,這個流程中還存在很多未明確的問題,比如,是否存在一個內部加工過程,以及這個過程是否透明可控等。一種可能的解決辦法是,將內部加工過程外部化,用系統2包裹起來,使每一步細粒度的思考都可以展現出來。
其次是世界模型,現在的大模型只能輸入語言,顯然這樣是不夠的,進一步理解世界需要多模態輸入。這是我們在未來需要處理的關鍵問題。同樣地,對于時間和自身的身體運動控制的認知也需要能夠輸入到大模型里面去。我們觀察到,無論是自動駕駛汽車、大模型Agent,還是其他的諸多智能體模型,都已經在應用這種面向目標的架構。目前的挑戰在于如何在細節上加以改進,如找出此架構未能完成某些任務的原因,以及這些缺陷是源于大模型底層的子任務能力不足,還是需要對框架本身做出改進,比如增加更多的思考層次,或加入更多的內部推演等。
另一個重要的問題是宏觀注意力。由于大模型的上下文限制,是否可以讓模型自身主動去探索外部世界,將其精力和注意力主動地投入到解答某些具有目標性的問題上去,實現主動的注意力機制?這不僅涉及到搜索和嘗試的問題,如針對一些無法思考出解決方案的情況,模型應如何去進行嘗試,而且這些嘗試何時能夠帶來進步,以及如何去尋找更為優秀的解決空間,進行推理和規劃。
4.2 Memory
值得注意的是,數學和邏輯學習也會涉及到上述問題,比如人類在很多情況下不擅長規劃,那么我們是否可以利用網絡和記憶機制來實現規劃的功能?這其中就涉及到記憶的內化,也就是把大模型從外部世界獲取的經驗轉化為內部參數,或者說把這些經驗轉化為內存。
目前,我們依賴的記憶機制主要是把所有的信息存儲在歷史記錄里,然后在需要的時候進行召回。然而,這些信息并未經過整理,在一些試圖整理記憶的嘗試中,我們發現人類是具有這種能力的。人類在獲得大量相關的知識后,不會簡單地把它們堆積在腦中,因為人的神經元存儲空間是有限的。相反,人腦會通過海馬體進行整理,而在我們做夢時,大腦會重新構造這些相關的知識,使得記憶網絡變得有序。
然而,現在我們怎么去實現這種能力?目前還未見到具有遺忘功能的模型,也就是刪掉一些垃圾信息或錯誤的信息。在大模型訓練過程中,產生了許多無用甚至是錯誤的信息,而我們在工作中只是采用了許多方式來規避這些錯誤的信息,但為什么不試圖去刪掉它們呢?如果能夠將這些信息替換為有價值的信息,那將是一件有價值的事。我注意到在人工智能領域中,對于長短時記憶與工作記憶,以及它們之間的關系討論并不深入,更常見的是,人們將長短時記憶簡化為向量數據庫。我想解決這個問題,嘗試對這兩者進行深層次的理解,并建立更完備,更正交的關系也很重要。
4.3 Sensory
當人工智能Agent融入人類生活后,它與我們的體驗和經歷能否成為Agent自身的存儲內容?如果可以,那么在未來,我們與Agent之間的互動將會變得更加實用,更加貼近現實生活,更加有溫度。
在輸入的問題上,我明確地看到了多模態輸入的必要性,同時,對于時間感知我認為也非常重要,時間性對于運動控制任務極其重要。引入多模態輸入后,我們還要解決一個自上而下的機制問題,就是Projection啟發的這個點,OCR嫁接術一定會在某類任務存在缺陷。
4.4 Motor
在交流方式上,我認為不應僅僅依賴于語言,雖然現在的交流基本都是基于語言的,但是,語言是一個低帶寬且低效的通信工具。我在想,我們能否引入一種新的溝通方式 - 類似心靈感應的方式,讓Agent在隱空間通信。
關于運動控制,當前的方式包括一些機器人應用,都比較結構化。但我認為,在未來,大模型的神經網絡應該可以直接連接到運動控制的神經網絡,實現層次化控制,使得運動更為流暢,甚至比人類更為靈活。
在另一方面,運動控制也應該是數據化的,而不是僅僅處于我們所說的”計劃者“的層面。如果有一個命令下達,神經網絡應該可以直接執行。
除此之外,還有一些亞符號的控制,在大模型直接對接神經網絡時,我們應當避免通過語言來描述,因為我們可以通過這種方式得到的信息量會比通過語言描述來得多。
同時,也需要進行一些外部工具的優化,讓現有的工具更適應我們的需求,比如一些愿意為了方便Agent調用進行改造的工具服務商將會在新的價值網絡中占據一席之地,如一個旅游服務供應商,加入下一代Agent平臺之后,Agent在完成用戶旅游類任務時可能會有限調用它,并使用類似Web3的技術進行價值分配。
4.5 Learning
任何一個產品,或者說Agent,都需要學習。學習的過程是十分重要的,尤其是模型需要學會對自身的可靠性進行判斷,知道自己知道什么,更重要的是,知道自己并不知道什么,不擅長什么,這將會對模型的發展產生重大影響。關于大型模型的優化,我認為最關鍵的問題就在于模型需要明確自己的能力范圍。有些問題,大模型不能張口就來直接給出答案,過于逞能,它應該經過仔細的思考,保證任務目標的準確達成。
同時,我們也需要考慮模型的權威性問題。大模型可能從互聯網和垃圾信息中學到很多知識,但這并不意味著它在解決問題時能提供最權威、最佳的做法。我們需要把這個模型訓練到,即使是在面對垃圾信息輸入時,它也能輸出更好的、更有價值的解決方案。
另一方面,我們還需要考慮到模型的多樣性。很多時候,為了保證任務的有效執行,我們往往會控制模型的溫度參數,以保持其輸出的穩定性。但是,在保證模型正確性的同時,我們也不應該忽略它的思維活躍度。我們應允許智能體在解決任務時有更大的解空間,以便找到最優的解決方案。
4.6 World Models
關于世界模型 ,我們需要注意的是,盡管模型的訓練數據中可能含有很多垃圾信息和錯誤信息,我們還需要讓模型具有辨別和整理這些信息的能力,以構建一個無矛盾、統一的實體網絡,這一點鮮被提及,我認為現在黯然神傷的之前做知識圖譜的同學可以重點考慮一下這個方向。??????
在此基礎上,我們還需要讓模型具備推理能力。一個優秀的智能體不應該僅僅依賴于內部推理,而應該有能力借助外部推理,當然這個外部推理可以當做工具來使用。
最后,我們還必須強化模型的內部思考機制。當調用一些有成本的接口時,模型不能只是“想到就做到”,而應該有自我覺知的能力,或者叫Mental Simulation,預判自己的行動可能會帶來的結果,并在內部進行糾錯,以保證行動的可靠性,這不同于Reflection是執行后根據執行結果再反思。進一步,我們可能更大的關注點應該是它在家庭生活及現實社會中的應用上,將其實現為實體化的機器人,那么動力學機制和時間性認知還是很重要的,而當前的大模型僅是一個簡單的循環調用,無法實現這方面的任務。
好,以上就是我對一些方向的淺顯思考。??????
最后,我們以偉人的一段話來結尾:Agent 技術,它是站在海岸遙望海中已經看得見桅桿尖頭了的一只航船,它是立于高山之巔遠看東方已見光芒四射噴薄欲出的一輪朝日,它是躁動于母腹中的快要成熟了的一個嬰兒。
編輯:黃飛
?
評論
查看更多