從 Software 2.0 到 Software²:新一代 AI 變得越來越通用

巴比特8btc 發佈 2024-01-01T16:05:59.419415+00:00

撰文:Minqi Jiang,FAIR 及 Meta AI 研究員來源:The Gradient圖片來源:由無界 AI工具生成我們正處於從「從數據中學習」過渡到「從什麼數據中學習」作為人工智慧研究中心的邊緣。

撰文:Minqi Jiang,FAIR 及 Meta AI 研究員

來源:The Gradient

我們正處於從「從數據中學習」過渡到「從什麼數據中學習」作為人工智慧研究中心的邊緣。最先進的深度學習模型,如 GPT-[X] 和 Stable Diffusion,被描述為數據海綿 [1] 能夠對大量的數據[2,3]進行建模。這些大型生成模型,許多是基於變換器架構的,可以對大量的數據集進行建模,學習生成圖像、視頻、音頻、代碼和許多其他領域的數據,其質量開始與人類專家撰寫的樣本相媲美。越來越多的證據表明,這種大模型的通用性受到訓練數據質量的極大限制。儘管訓練數據對模型的性能有很大的影響,但主流的訓練方法在本質上並不是尋求數據。相反,它們忽略了訓練數據中的信息質量,而傾向於最大化數據數量。這種差異暗示著研究趨勢可能會轉向更加關注數據的收集和生成,以此作為提高模型性能的主要手段。

從本質上講,為模型收集信息數據的問題是探索——學習的一個普遍方面。在像現實世界這樣的開放式領域中,感興趣的可能任務集實際上是無限的,探索對於收集最適合學習新任務和提高已經學習的性能的額外數據至關重要。這種開放式學習可能是機器學習(ML)系統最重要的問題設置,因為部署它們的現實世界正是這樣一個開放式領域。在正確的時間主動獲取正確的訓練數據是智能的一個關鍵方面,它可以讓學習更有效地進步——換句話說,它可以「先學走,再學跑」。那麼,為什麼在最近關於訓練更通用模型的討論中,探索的概念在很大程度上被忽略了呢?

造成這種疏忽的一個原因可能是,在強化學習(RL)和監督學習(SL)中通常研究的探索 -- 作為主動學習的某種變體出現 -- 主要是以靜態的、預定義的數據集或模擬器來設計的。正如 SL 的研究主要集中在優化像 ImageNet 這樣的靜態基準上的性能,RL 主要集中在任務的靜態模擬器的設置上。這種對靜態基準的關注使得現有的探索概念不適合在像現實世界這樣的開放式領域中學習,在那裡,相關的任務集是無限的,不能被建模為一個靜態的、預定義的數據發生器。

在最近的一份立論中,我和我的合著者 Tim Rocktäschel 和 Edward Grefenstette 討論了廣義探索的想法。廣義探索不是把探索限制在可以從預定的模擬器或靜態數據集中取樣的數據上,而是尋求在所有可能的訓練數據空間中探索那些對提高學習代理的能力最有用的樣本。例如,在 RL 的情況下,這需要搜索可能的訓練環境空間,而在 SL 的情況下,需要搜索數據空間的表達式參數化,例如數據空間的生成模型的潛在空間。這種關於探索的更普遍的觀點連接了 SL 和 RL 之間的探索概念。重要的是,它還描述了如何將探索應用於完全開放的領域,其中探索作為關鍵的數據收集過程,用於對越來越廣泛的能力的開放式學習。

這種開放式的探索過程有望成為推動更通用的智能模型進展的一個關鍵組成部分。隨著大規模的模型訓練繼續利用越來越大的數據集的好處,研究人員預測,最快到 2025 年,訓練數據集的增長速度可能很快超過網絡上高質量數據的有機增長速度。此外,更大的數據集需要更昂貴的計算來進行訓練。最近的研究表明,只對最高質量的數據進行集中訓練可以使學習效率大幅提高,從而以極低的計算成本獲得更準確的模型。這樣的工業數據動態表明,開放式的探索過程,使學習系統能夠自主地收集或生成新的訓練數據,有望在 ML 研究中發揮重要作用。在接下來的幾年裡,大量的研究投資可能會從模型設計和優化轉移到探索目標和數據生成過程的設計上。本文中討論的許多最近的研究計劃清楚地表明,這種轉變已在進行中。

ML 系統生成自己的訓練任務(以及由此產生的數據)的高級概念並不新鮮。這個概念在不同程度上被 Schmidhuber 描述為「人工好奇心」,被 Clune 描述為「生成 AI 的 AI」。在這裡,我們試圖激勵這樣一個觀點:現在是這些概念在實際的、真實世界的 ML 系統中獲得牽引力的關鍵時刻。

如果深度學習可以被描述為「Software 2.0」-- 根據輸入/輸出對的例子進行自我編程的軟體 -- 那麼這種有望以數據為中心的範式,即軟體通過搜索自己的訓練數據有效地改進自己,可以被描述為一種「Software²」。這種範式繼承了 Software 2.0 的優點,同時改進了其核心的、受數據約束的弱點:深度學習(Software 2.0)要求程式設計師為每個新任務手動提供訓練數據,而 Software² 則將數據重塑為軟體,對世界進行搜索和建模,以產生其自己的、可能是無限的訓練任務和數據。

本文的其餘部分對 Software² 背後的動機和原則進行了快速概覽。關於這些想法的更詳細討論可以在我們最近的立論文章中找到,「通用智能需要重新思考探索」。


通用智能


深度學習將編程重塑為優化:與其編碼一連串的指令來執行一項特定的任務,不如簡單地定義一個衡量該任務成功與否的目標函數,用它來優化一個深度神經網絡(DNN)來為你完成任務。這個觀點在 Andrej Karpathy 2017 年的文章「Software 2.0」中得到了明確闡述。這種方法的一個主要好處是,直接搜索可以在大型 DNN 的權重中編碼的程序空間,可以得到複雜問題的解決方案,超出人類程式設計師可以手動編碼的範圍。試想一下,用手寫一個程序來給圖片加標題,或者相反,從任何文字描述到匹配的圖片,都是非常困難的。

自「Software 2.0」發表以來,深度學習可以說已經有了很大的進步。最值得注意的是,我們後來發現,經過訓練的 DNN 不僅在它們被訓練的特定任務上表現出色,而且還經常變得更具普遍能力,學會在它們在訓練期間看到的任務之外取得成功。

文本和視頻等格式的數據的高保真生成 -- 它們可以編碼幾乎所有感興趣的任務的詳細描述 -- 說明了儘管在單一的任務目標上進行訓練,DNN 如何能夠熟練掌握各種任務的情況:學習預測網際網路規模的文本語料庫樣本中的下一個 token,必然要求模型學習多種文本內容的結構,其中自然包括對應不同任務的文本類別,如翻譯、回答問題、總結、編寫代碼,甚至解釋笑話。最近的研究更進一步,將各種任務 -- 包括語言建模、多模態問題回答以及控制模擬和具身代理人 -- 表現為一個序列建模問題。通過訓練一個大型的模型來逐片產生這樣的序列,所產生的模型可以通過簡單地從一些為感興趣的任務設定場景的初始起始段(通常被稱為背景或提示)自動完成序列的其餘部分來學習執行這些任務。

那麼,一個自然的問題是,這樣的深度學習方法是否能夠產生一個通用的智能模型 -- 例如,一個至少能夠執行其人類受益者可能想要執行的任何任務的模型。回答這個問題具有挑戰性,部分原因是大多數」通用智能「的定義是模糊的或無法量化的。為了更好地掌握這個問題,我們選擇用相對的術語來考慮通用智能:如果 A 能夠在 D 領域的至少一項任務中超過 B,同時在所有其他任務中與 B 相匹配,也就是說,如果 A 的表現在 D 領域的所有任務中都嚴格地支配著 B 的表現,那麼在 D 領域中,模型 A 就比模型 B 更通用。然後,我們用「日益通用智能」(IGI:increasingly general intelligence)這個術語來指代一個系統在相對於其他非學習代理的通用智能方面表現出的持續改進,包括自身的舊版本。當然,這個定義的前提是任務領域足夠豐富,能夠支持這種持續的改進。在這個意義上,我們稱 IGI 在進行開放式學習,其收集訓練數據的相關過程為開放式探索。這種對通用智能的看法清楚地表明,根據定義,一個不進行持續的、開放式探索的系統不可能是一個 IGI。


開放式的探索


如果沒有一個持續尋求新的、有信息量的訓練數據的過程,模型的學習將趨於平穩。RL 和 SL 中的探索方法根據數據學習潛力的代用指標,直接確定了收集這些數據的優先次序,這些代用指標通常是通過許多方法來估計的,包括相對於過去訓練數據點的新穎性的測量;模型的認識不確定性;或者模型的預測在該數據上訓練後的變化程度。然而,RL 和 SL 的探索方法主要集中在收集單一的、靜態的、預定義的模擬器或數據集中的信息樣本。靜態的數據源不能很好地反映現實世界的無限性和不斷變化的本質。在這種靜態數據生成器的範圍之外進行探索需要重新思考探索。廣義探索的框架提出了一條有希望的前進道路。

與 RL 和 SL 中現有的探索概念不同(它採取主動學習的形式),廣義的探索是從整個數據空間中尋找信息最豐富的樣本。一般來說,完整的數據空間可能是無界的,不能被單一的、預定義的數據集或模擬器捕獲。在這些情況下,我們必須不斷從數據集或模擬器之外收集更多的數據,以逐漸擴大其範圍,執行一種引導過程。例如,一個典型的 RL 代理可以在一個程序化生成的環境中體驗特定遊戲的轉換,但它無法探索所有可能的遊戲轉換。廣義的探索將探索所有遊戲中可能的轉換空間,而不僅僅是有限數量的遊戲中的轉換。當被探索的數據空間不受限制時,這個過程通過將數據收集與代理模型相聯繫,在當前代理模型經歷最多學習進展的轉換中逐步進行搜索,從而執行開放式探索。

那麼,我們如何才能探索完整的數據空間?我們需要在所有可能有用的數據上對搜索空間進行參數化,並指定一個搜索標準來指導這個空間的探索。一個自然的搜索空間是所有相互一致的數據生成程序的空間 -- 在這個意義上,它們產生的輸入輸出對不應該相互矛盾[4]。這樣的程序可能對應於一個靜態的數據集,一個數據分布,或者一類任務的模擬器。然而,作為唯一的探索標準,學習潛力可能是不夠的。同樣重要的是數據的多樣性,因為數據空間中可能有許多部分提供高的學習潛力。此外,數據空間中可能有很大的區域與任何感興趣的實際任務無關,因此將探索限制在接近我們所關心的任務類型上可能很重要。這種約束有助於將開放式的探索與更現實的任務聯繫起來。然而,它們也會阻止學習系統探索潛在的重要任務,這些任務看起來不像任何有實際價值的任務,但卻可以作為掌握更有挑戰性的任務的墊腳石。因此,應該用多少先驗世界知識來限制探索是一個重要的開放性問題。

當然,我們仍然需要一些方法來實際搜索所有數據生成程序的空間。在實踐中,我們作為系統設計者可以手動定義感興趣的程序的高級規範,使它們以我們所關心的現實的不變特徵為基礎,但又足夠寬泛,以涵蓋豐富的、無限制的任務空間。這樣的程序可以通過 API 或人工干預將鉤子納入現實世界,使其能夠輸出真實和合成數據。一個相關的方法可能是搜索數據空間的生成模型的潛在空間,以產生新的數據,使模型的學習潛力最大化。如果學習開始停滯不前,我們可以通過進化規範來進行干預,比如可以在一個環中模型的協助下,按照預測的方向更新規範,提供具有更大學習潛力的數據。從某種意義上說,研究界對新基準的持續、集體的發明起到了對數據生成程序持續搜索的作用。最近的研究如 BIGBench,一個由越來越多的人類指定的基準組成的基準,直接反映了這種模式。類似地,Dynabench 利用人工循環不斷為當前模型生成新的、具有挑戰性的數據。


將數據視為軟體


通過將數據視為一種生成的軟體,Software² 呼應了馮 - 諾依曼計算機架構,在該架構中,程序指令和數據都被等價地存儲在內存中。在馮 - 諾依曼架構中,靜止的軟體等同於數據。而在 Software² 中,運行中的數據等同於軟體。Software² 程序不斷自我改進的能力使其成為實現展示 IGI 系統的重要組成部分。鑑於現在公認的高質量訓練數據的重要性 -- 如前所述,預計會越來越稀缺 -- 可能會有很多投資用於開發不同類型的 Software² 系統。許多研究的重點可能會從設計和優化模型轉移到設計和優化為這些模型產生訓練數據的過程。在 ML 研究的許多領域,Software² 堆棧的關鍵組件已經被積極開發:

自動課程學習:在 SL 和 RL 中,自動課程學習方法直接搜索數據點或模擬器配置,使代理的學習潛力最大化。這種方法,包括最近的環境設計方法,構成了廣義探索的核心部分,給定了數據空間的適當參數化,如豐富的模擬器、世界模型或對應於可能任務的程序生成模型。通過競爭動態誘導課程的類似方法有望改善大型生成模型。例如,最近的一項研究表明,有可能對目標語言模型進行「紅隊」測試:也就是說,找到目標模型的對抗性輸入,使其輸出攻擊性或其他不受歡迎的輸出。這樣的方法可以被摺疊到一個在線訓練過程中,目標模型被逐步訓練以糾正其在這些自動發現的對抗性輸入上的行為。

生成模型:轉換器和擴散模型,如產生合成三維數據的 DreamFusion 模型,已經徹底改變了我們對複雜的、網際網路規模的數據分布進行建模的能力。這樣的生成模型可以作為世界模型,用真實世界的數據不斷地更新,並作為一個開放的數據生成器進行採樣。這種模式的一個特例是,最近發現大型語言模型(LLMs)可以通過對其自身生成的輸出進行訓練而自我改進,當其輸出被過濾為某種數據質量的衡量標準時。值得注意的是,正如 Toolformer 所展示的那樣,這種方法甚至可以讓 LLMs 自學如何使用新工具。

人機互動界面:在確保軟體系統與我們希望 IGI 執行的任務類型保持一致方面,人的指導可能會發揮關鍵作用。像 InstructGPT、Dynabench、Aesthetic Bot 和 GriddlyJS 這樣的作品展示了將人類的偏好和專業知識納入訓練循環的有希望的方法。最重要的是,像 ChatGPT 和 StableDiffusion 這樣的大規模人工智慧系統現在已經部署在網絡上,與數以億計的用戶進行互動。這些交互提供了一個有效的無止境的開放式訓練數據,以提高這些模型的能力。雖然這些系統的能力範圍仍然受到限制(例如,ChatGPT 還不能代表用戶採取有限的文本提示以外的行動),但它們提供了一個更先進的 IGI 系統的預覽。


召喚IGI


Software² 在現實世界中的實現可能是什麼樣子的?作為一個簡單的例子,想像一個虛擬助手,它可以通過控制瀏覽器完全訪問網絡,包括訪問聊天界面與人溝通。人類感興趣的大多數任務,從安排會議到訂購雜貨,已經可以通過一個基於網絡的中介來完成 -- 想想網絡應用或按需服務。當然,隨著人們不斷建立新的網站和發明新的活動種類,網絡上的這類任務集正在不斷擴大。然後,這個虛擬助理原則上可以成為一個 IGI,學習通過網絡執行越來越普遍的任務集。

我們可以應用 Software² 的原則來訓練這個虛擬助理,通過對基於網絡領域的數據生成程序的空間的普遍探索 -- 在這種情況下,也就是具體的網站。這種訓練可以在一個程序化生成的模擬器或網頁的世界模型中進行,該模型通過虛擬助手在真實網絡上的經驗和我們作為系統設計者認為對訓練特別重要的特定網頁的結合而不斷更新。此外,探索可能會積極搜索來自 YouTube 等網站的演示數據,用於改善助手自己的決策,並告知模擬器或世界模型,用於生成訓練的合成數據。像往常一樣,虛擬助手也可以直接根據自己在真實網絡上的導航經驗進行訓練。隨著時間的推移,我們可以預期這樣的學習系統會產生一個越來越有能力的虛擬助手,並且探索過程會逐漸包括更廣泛的網站空間,因為它不斷地尋找虛擬助手可以學習新東西的網站。在高層次上,我們可以期待 Software² 系統類似於一個大規模的搜尋引擎,提供一個進入強大模型的界面,其核心組件在數據抓取過程的協助下不斷更新,不斷地在網際網路和現實世界中搜尋新的和有用的信息。

隨著我們的學習算法變得越來越強大,我們可以通過深入思考哪些數據可以提供給這些算法,以及我們如何設計自我指導的系統來自己產生這些數據,從而獲得巨大的收益。我們樂觀地認為,鑑於開放網絡的不懈發展和 Software² 堆棧組件的迅速成熟,我們將很快看到廣泛有用的 IGI 的實現,就像剛才描述的那樣。

這篇簡短的文章描繪了 Software² 的大體輪廓,這是一種迅速崛起的、以數據為中心的範式,用於開發基於現代深度學習的自我改進的程序。這是一種可能對未來軟體系統的設計產生影響的方法,就像最近正在進行的向 2.0 及以後的過渡一樣。儘管如此,我們還只是觸及了表面。如果這些想法引起了你的興趣,你可能會喜歡閱讀我們完整的立論文件中的擴展討論。

感謝 Edward Grefenstette、Tim Rocktäschel 和 Peter Zakin 對本文草稿的精闢評論。

1. 據我們所知,「數據海綿」一詞是在 Eric Jang 的優秀文章「Just Ask for Generalization‌」中首次提出的。

2. 最近的 StableDiffusion 模型有效地將大約 100 GB 的訓練數據壓縮到僅僅 2 GB 的模型權重中。

3. 同樣,LLaMA 7B 參數模型可以被看作是將近 5 TB 的訓練數據噪聲壓縮到一個只有不到 4 GB 的模型中。

4. 例如,在計算 2 + 2 這樣的算術表達式時,不同的基數選擇會導致無限多的程序產生不同的結果。訓練一個模型來學習解決不同基數下的此類表達式的隨機樣本是無效的。然而,如果模型接受基數的選擇作為輸入,這類程序可以變得相互一致,易於學習。

關鍵字: