編輯|Panda
昨天,Thinking Maching Lab 研究者、斯坦福大學博士生 Zitong Yang 正式完成了他的博士論文答辯,課題為「持續自我提升式 AI」(Continually self-improving AI),并且他在答辯完成后很快就放出了自己的答辯視頻,從中我們可以看到他對未來 AI 發展路徑的系統性探索。針對當前模型在訓練后權重靜態化、高質量人類數據面臨枯竭,以及新算法發現高度依賴人力這三大局限,他提出了明確的解決方案。
![]()
https://x.com/ZitongYang0/status/2029034067992437139
在本次答辯中,Zitong Yang 主要分享了三個核心研究方向。
首先是「合成持續訓練」范式,團隊利用實體圖合成數據生成技術,讓模型在預訓練之后依然能持續學習小眾領域知識,同時避免災難性遺忘。
其次是探索預訓練能力的自我提升,通過「合成引導預訓練」技術,讓模型自主挖掘龐大文檔間的潛在結構與關聯,進一步優化自身的預訓練效果并顯著降低事實錯誤率。
最后,他展示了「邁向 AI 設計 AI」的潛力,通過構建包含代碼庫和價值函數的獨立研究環境,引入演化搜索機制,讓模型自主提出算法思路、編寫代碼并運行實驗。
Zitong Yang 在總結中指出,正如愛因斯坦創造的場方程能夠預言連其本人最初都無法接受的宇宙膨脹一樣,人類基于算法過程所創造出的智能體,也完全擁有進化出超越創造者智能水平的必然性
其答辯委員會的陣容也非常強大,主席為斯坦福大學電氣工程、計算機科學與管理科學教授 Stephen Boyd,另外還包括斯坦福大學計算機科學教授 Percy Liang、數學和統計學教授 Emmanuel Candès、計算機科學助理教授 Tatsunori Hashimoto 以及前段時間剛剛離開 Meta 加入 OpenAI 的龐若鳴。
這條推文也收獲了諸多行業大佬的點贊,包括 Thinking Maching Lab CEO、前 OpenAI CTO Mira Murati 和 PyTorch 之父 Soumith Chintala 等。
![]()
![]()
下面是對 Zitong Yang 答辯內容的整理。
- 題目:Continually self-improving AI
- 地址:https://zitongyang.github.io/slides/ZitongYang_defense_slides.pdf
持續自我提升式 AI
![]()
我本次答辯的題目是「持續自我改進式 AI」,首先我想嘗試定義一下我想要構建的系統。
所謂持續自我改進式 AI 系統,是指一旦被創造出來,就能自主且持續地進行自我改進,并且其改進效果要優于人類創造者對它的改進。
![]()
為了使這個定義更加精確和實用,我認為我們應該從一些假設出發,縮小我們所討論的 AI 系統的范圍,這樣我們提出的主張也會更加嚴謹。因此,在本次演講中,我們探討的 AI 系統僅限于滿足以下兩個假設的情況。
第一個假設是參數化的,即 AI 系統基于一個或多個神經網絡,知識被存儲在一組明確定義的參數權重中;第二個假設是 AI 系統必須經過預訓練。AI 系統經歷了一個資源密集型的預訓練階段,在這個階段中,它接收包含大部分或全部人類知識的訓練信號,并將其轉化為參數權重。
![]()
在這兩個假設下,持續自我改進式 AI 應該具備三個特性:
![]()
- 在初始預訓練階段之后,系統能夠繼續獲取新知識并融入其參數權重中,而不會災難性地遺忘舊知識。
- 系統能夠生成自身的訓練信號,并且通過學習這種自生成的信號所帶來的提升,要超越學習人類生成信號所帶來的提升。
- 系統能夠自主設計學習算法,以便從其訓練信號中進行學習。
一旦我們確立了這些假設,這個定義就是精確的。這些假設的初衷顯然是為了涵蓋我們今天所見到的所有大型語言模型(LLM)或相關范式。但是,它們排除了早期國際象棋游戲中那種硬編碼的智能。
為什么需要持續自我改進式 AI?
那么,為什么我們希望 AI 系統具備這三種能力呢?我認為這源于人類創造者固有的三個局限性。
首先,在人類創造它們之后,它們的權重是靜態的。
![]()
在與 ChatGPT 或 Claude 的典型對話中,一開始你可能有 100 輪對話,然后你會經歷一個上下文壓縮階段,試圖總結到目前為止的對話。在這之后,如果你試圖問 AI 之前發生過什么,它不會有完美的記憶,因為隨著上下文變長,壓縮是一個非常容易丟失信息的有損過程。但對于人類記憶來說,也許你在前 100 輪對話后睡了一覺,你的記憶轉移到了大腦的其他部分,然后你還能隱約記得你之前談論過的一些事情。
第二個局限性是在有限的人類數據下進行擴展。
![]()
在左邊,我們展示了 Scaling Law。X 軸代表語言模型訓練的 token 數量,Y 軸代表測試損失。在右邊,我們有 Epoch AI 的預測:隨著時間的推移,前沿語言模型所使用的 token 數量正迅速逼近互聯網上公開可用的 token 總量。當然,人們正試圖購買和獲取私有領域的數據。但同樣的邏輯依然適用,即人類數據是有限的,并且隨著我們想要訓練越來越深的神經網絡,這些數據正在被耗盡。
第三,當前的 AI 系統在某種意義上受限于人類所能發現的算法。
![]()
如果我們思考一下人類是如何提出算法的:它經歷了一個產生想法的過程(例如最大似然估計),然后進行實驗(這可能是編寫代碼或進行數學推導),最終你得到一些研究成果;隨后其他人在此基礎上繼續研究,這個循環再次開始。這個過程極其依賴人力,并且成本非常高昂。因此,我們發現的僅僅是所有可能算法中的一個子集,而我們希望利用 AI 本身來使這個過程自動化。
接下來將從以下這三個方面展開:
![]()
持續知識獲取:合成持續訓練范式
第一個方面:持續知識獲取。
在此之前,我想說明一下,本論文包含了四篇文章,所有這些都是與合作者的共同研究成果,特別是那些標注了同等貢獻的合作者。在這段旅程中能與各位共事,我感到非常榮幸。
![]()
為了在訓練后不斷獲取新知識,我們提出了這種名為「合成持續訓練(Synthetic continuing)」的范式。
![]()
這里的目標是,我們希望將來自僅包含少量源文檔的小眾領域的知識教授給語言模型。
隨之而來的一個自然的問題是:為什么這個過程必須使用合成數據?
我們提出了以下觀察:如果沒有合成數據,知識可能是稀疏的。
![]()
如果我們對比模型對線性代數的知識,與對 GitHub 上新發布的一個代碼庫的了解程度,模型對線性代數有著極其完美的記憶和深入的理解;但如果你問它關于這個新代碼庫的問題,比如抽象和 token 計算機之間的關系是什么,模型可能甚至不理解這個問題在問什么。通過這種對比我們發現,模型從各種各樣的互聯網數據中獲取線性代數知識,這些數據包括許多教科書、講義、關于線性代數習題的在線討論,甚至包括 GitHub 上奇異值分解的代碼實現,而對于新發布的代碼庫來說,這種多樣化的表征根本不存在。這就是我們為什么需要合成數據的原因。
為了將這個提案轉化為具體的實驗設置,我們需要兩樣東西來確保實驗的嚴謹性。
- 第一,我們需要收集一些小眾領域的源文檔,并且這不能是語言模型已經知道的內容。
- 第二,我們需要一個任務來測試模型對這些源文檔的了解程度,以便我們追蹤進展。在本文中,我們使用了該團隊構建的 QuALITY 數據集,它同時滿足源文檔和問答任務這兩個標準。
![]()
關于源文檔,它是一個包含 265 本專業書籍的數據集,總計約 180 萬個 token,這些內容都是模型未曾接觸過的。至于測試部分,它包含約 4000 個高質量的多項選擇問答題。這使得評估和解析變得非常簡單,并且題目數量足夠大,可以獲得可靠的信號。
![]()
有了這兩個設置,回顧一下我們的目標:我們希望模型在不提供上下文書籍的情況下回答問題。所以這就好比是一場閉卷考試。源文檔是高質量的書籍,任務是閉卷問答。
![]()
在這個設置下,我們評估了一些靜態模型,以了解該任務的難度。
![]()
這是四選一的選擇題,所以隨機瞎蒙的準確率是 25%。我們要微調的模型是 Llama 3 基礎模型,它開箱即用的準確率只有 39%。一個順理成章的做法是直接在原始數據本身上進行微調。我們稱之為原始的持續預訓練,我們發現準確率實際上略有下降。這是因為 token 的數量實在太少了,除非你進行合理數量的回放(replay),否則你的 batch 設置和學習率規劃都沒有被正確設定。此外,我們還有兩個來自閉源模型的靜態參考, GPT-3.5 和 GPT-4,我們看到它們的準確率分別在 44% 和 45% 左右,所以這是一個模型擁有一定相關知識的基準測試,它不是完全隨機的,但也絕對達不到 60% 之類的水平。
那么問題來了,我們該如何生成合成數據呢?
我們考慮的一個非常簡單的基準做法,就是直接重寫這篇論文提出的文檔。讓我們來看看它的表現。
在這里的圖表中, X 軸是我們在重寫過程中生成的合成 token 的數量。在重寫過程中,我們的提示詞實際上就是:「這是一本書,你能像維基百科文章一樣重寫它嗎」。我們有一組四個固定的提示詞,并且我們迭代地將它們應用于本書。在這個過程中,我們可以看到雖然取得了一些成功,準確率有所提高,但斜率并不算陡峭,最終達到的最高點也不是很高。
![]()
我們認為,重寫數據之所以存在這種問題,是因為缺乏多樣性。因為我們一遍又一遍地重復相同的提示詞,我們所依賴的只是通過調整生成溫度來讓模型生成不同的數據,而當你經歷 200 或 300 次迭代后,你得到的數據基本上是一樣的。
![]()
實體圖合成數據生成
它缺乏多樣性,這就是為什么我們提出了這種稱為「實體圖(EntiGraph)合成數據生成」的數據增強技術。
![]()
實體圖的操作方式在精神上類似于單純的重寫,但它通過一個兩階段的過程增強了這一操作。我們首先從這里的源文檔開始,這些源文檔就像是來自 QuALITY 書籍的示例,然后我們將從書中提取實體。在這里,我們只需提示語言模型:「這是源文檔,書中有哪些核心實體能幫助我很好地理解這篇文章?」模型會輸出一個字符串列表。然后我們應用關系描述的提示詞,我們只需隨機抽取實體的一個子集。接著,我們讓模型描述這些實體之間的關系。模型會生成諸如「在某某背景下,這兩個實體之間的相互作用是……」之類的內容,這就能讓我們擁有用于訓練的多樣化數據。
所以它與重寫之間的區別在于,在提示詞中你總是在改變實體;當你在提示詞中改變一個 token 時,這是一個非常非線性的過程,因為你實際上是在改變詞向量,模型的輸出會有很大的差異,因此你獲得了多樣化的語料用于合成持續訓練,這就是它在實踐中的運作方式。
我們看到,隨著我們生成越來越多的 token,問答的準確率不斷提高,并且它有一個好得多的截距。此外,其斜率也遠優于參考基準。因此,這就是最終的成果:如果正確使用合成數據,可以產生極具規模效應的改進。
![]()
以上是閉卷考試部分的主要結果。接下來,我們考慮一個不同的任務 —— 開卷問答,這是一個非常自然的任務。這里我們看第二行,關于書籍訪問權限:閉卷、開卷、閉卷、開卷。這意味著,當你向模型提出有關 QuALITY 的問題時。「閉卷」意味著你不提供任何上下文;而「開卷」意味著你提供問題所依據的確切書籍文本,然后讓模型來回答問題。開卷考試有點像測試模型的閱讀理解能力,就像 SAT 考試一樣。對于我們繼續進行實驗的 Llama 3 API 模型,我們和之前一樣以 39% 的準確率起步,而開卷測試將其提升到了 60%,這是非常高的。
![]()
對于實體圖方法,在閉卷情況下,我們的準確率大約是 56%,雖然這并沒有完全填補與開卷測試的差距,但我們發現,如果你將開卷方法和持續預訓練結合起來,實際上能得到最好的結果。這意味著它們的改進是互補的。
這張表格傳達的意義是,合成持續預訓練加上檢索工具可以帶來更好的效果歸因。我認為這非常有意義,因為在實踐中,假設你想為你的公司或業務設計一個語言模型,你要抓住任何可以提升性能的機會,你應該設計所有最好的方法,比如合成訓練,或者結合工具使用,設計出最佳的可用工具以獲得最佳性能。我認為這可能是未來將開源語言模型適配到個性化應用場景的一種范式。
預訓練能力的自我提升
這就解決了我們期望的第一個特性,即我們希望模型在回到人類創造者手中后能夠持續獲取知識。第二點是,我們希望自我改進模型本身的預訓練能力。
在此之前,我想談談為什么我們要在意這里的訓練。我致力于這個項目的原因源于我在 o1 論文發表時積累的 s1 經驗。那是推理還非常新穎的時候,大約在 2024 年的 9 月或 10 月。我記得在那個時候,AI 推理這種事情還很難想象。所以當時的猜測是,他們肯定耗費了大量資源(比如人工標注)來構建這個模型。
![]()
但我們在這篇論文中展示的是,僅僅對 10,000 條思維鏈數據執行監督微調,就能提供達到 o1-preview 級別的能力。這是 s1 和 o1-preview 之間的對比。這讓我意識到,后訓練能力就像是對預訓練知識的一種極其奇妙的泛化。
因此,從某種意義上說,預訓練才是主心骨。困惑度揭示了模型能力的核心,它通常與預訓練的數據規模和模型規模有更大的相關性。因此,為了見證真正的自我改進,你必須看到在訓練層面上的自我改進,而不僅僅是我們之前項目中看到的中期訓練或后訓練層面的改進。
既然我們的目標是解決預訓練問題,我們先停下來思考一下:預訓練中的知識到底從何而來?
![]()
為了回答這個問題,我提出了這樣一個思想實驗。假設世界上只有 5 個 token : A、B、C、D 和 E,而我們用于訓練的文本文檔只是像這種格式的隨機字符串,所以在每個位置,我們都在這些 token 中均勻隨機地采樣一個字符,因此它不是一個馬爾可夫鏈。它就像一個完全平穩的過程。
如果我們用 Transformer 語言模型在這些文本上執行下一個 token 預測,我們將看不到任何有意義的學習信號,因為在初始化時,模型會給每個 token 分配 20% 的概率。這與你的訓練數據所規定的概率是一樣的。所以當你在訓練時,你實際上并沒有學到任何東西。
但這顯然不是自然語言文本的樣子。自然語言文本比隨機字符串擁有更多的結構。在撰寫這篇論文的過程中,共同作者之間進行了許多有趣的討論,探討這種結構究竟是什么。
我將這些討論總結為兩種互補的觀點。
一種統計學觀點是,將自然語言中的 token 視為從某種分布中抽取的隨機變量,并且這些 token 彼此之間存在統計相關性。
另一種更偏向計算層面的觀點,即更接近香農最初提出的理論是,自然語言文本具有允許其被壓縮的模式,而下一個 token 預測本質上是在進行信源編碼以壓縮文本。但拋開具體觀點不談,無論是統計學還是計算學的視角, token 之間確實存在使得模型能夠學習的結構性相關性。
所以,如果預訓練的知識就是來源于此,我認為,在當前的預訓練范式中,遺漏了一個豐富但未被充分利用的相關性來源。即現有的互聯網文檔之間存在極其豐富的相關性。
例如,《哈利?波特》這本書與三年后其電影版劇本之間的相關性;或者《Attention is All You Need 》這篇論文與 GPT-2 代碼庫之間的相關性。比如在代碼的第 91 行,它實現了點積注意力機制,而在《 Attention is All You Need 》論文中的某個地方,他們確切地用英語寫了「dot-product attention」。因此,英文短語「dot-product attention」與 Python 代碼實現之間存在著這種相關性。
![]()
合成引導預訓練
我們將要采用的技術是,希望通過合成數據等手段來利用這種跨文檔的相關性。鑒于我們要使用合成數據,我們必須確保我們所看到的是預訓練能力的普遍引導提升,而不僅僅是從教師模型中進行的知識蒸餾。 因此,我們會遵循以下三個步驟:
- 首先,我們使用固定數量的數據從頭預訓練一個語言模型;
- 然后,在不引入任何新文本的情況下,我們將該模型微調為一個合成數據生成器。
- 最后,我們將真實數據和合成數據結合起來重新預訓練語言模型,以此來提升性能。
![]()
如果我們能成功驗證這條流水線,我們就看到了一種對預訓練能力的真正自我改進。這正是「合成引導預訓練(Synthetic Bootstrap Pre-training)」。
![]()
為了實施這項技術,它包含了三個操作步驟。
第一步,我們進行這種最近鄰詞向量編碼計算。我們使用了 DCLM 數據集的一個子集,然后將其輸入到 Qwen 6 的 embedding 模型中,我們就會得到類似這樣的結果。這些詞向量會對相似度進行編碼。例如, Transformer 的論文將會在距離上非常靠近它的 PyTorch 實現代碼。
接下來的第二步是,將這些相鄰的文檔連接成圖,并執行合成微調。
合成微調的具體做法是:把一個經過預訓練的檢查點作為語言模型的初始化狀態(這里的預訓練檢查點指的是已經在所有真實數據上訓練過的模型);然后通過類似 SFT (監督微調)的目標對模型進行微調。
![]()
在這個過程中,以圖中相鄰的一側文檔作為條件,試圖最大化另一側相鄰文檔的對數概率。這里需要說明的是,每一個源文檔(d1)可能對應多個目標文檔(d2)。這個過程會極大程度地增加模型的熵,例如,如果每個 d1 對應 20 個 d2,那么在邏輯回歸下,最大似然估計的分布就會像黑墻一樣,將均勻的概率質量分配給每一個文檔。因此,經過這種微調后,你的模型會處于極高熵的狀態。
在這個過程之后,因為模型存在很多誤差,所以在我們生成合成數據時,我們不使用任何花哨的提示詞技巧,只是直接使用溫度為 1 的設置,對你所擁有的所有真實文檔反復應用溫度為 1 的生成過程。
![]()
舉例來說,如果你有一篇不那么長的小說,你會得到一段對這篇小說的合成評論。這就能讓你獲得極其多樣化的合成內容。
![]()
為了讓大家了解在這種類似于無條件生成范式下生成的內容是什么樣子的,這里展示一個我們訓練中的例子。在左側,這是一份來自 DCLM 數據集的真實文檔。它討論了圣地亞哥的咖啡館,基本上是列出了不同的咖啡館。
而右側的合成文檔,內容開始像是在講述一趟圣地亞哥之旅,然后它開始把焦點轉向濃縮咖啡機,而濃縮咖啡機并非源文檔關注的內容。也就是說,模型完全自主地想出了這個主意,這也展示了合成內容的多樣性。我們還有另一篇不同的合成文章,試圖將圣地亞哥的咖啡館與紐約進行對比,而「紐約」這個詞根本沒有在真實文檔中出現過。這就是為了讓大家體會一下這種生成過程會呈現出什么樣的感覺。在我們準備好所有這些真實數據和合成數據之后,我們將用它們混合在一起來進行訓練。
這就是「合成引導預訓練」算法層面的內容。接下來為了將其付諸實踐,我們需要一個實驗設計。
對于這個設置,你主要需要三個組件:數據模型架構評估基準
![]()
關于數據我們之前已經討論過了;在架構方面,我們使用了 Llama 3 的架構,并額外加上了 QK LayerNorm,我們發現這有助于穩定訓練過程;在評估方面,我們采用了六項問答準確率、 Few-shot 問答準確率以及三項困惑度評估,這些都是常用于預訓練階段的指標。在這個設置下,我們進行了計算量匹配的對比:我們的基準是通過簡單的重復來復用固定數量的數據。這非常直接明了。對于合成引導預訓練,我們以基準為參考,控制了兩個變量。
- 首先是相同的數據,我們沒有使用任何額外的數據源,否則就成作弊了。
- 其次,我們控制了訓練的計算量,以確保整個過程的總訓練周期是相同的。我在這里要強調的是,我們并沒有控制總的絕對計算量,比如生成合成數據的所有推理成本等。從這個角度來看,合成引導預訓練(SBPT)使用了更多的算力,我們僅僅是控制了預訓練階段的計算量。
區別在于,每當基準方法試圖重復數據時,我們使用的是合成數據,而不是簡單的復制。最后,為了將 SBPT 和基準測試的性能置于更廣的背景下比較,我們還引入了 Oracle 過程:在這里我們不再控制對相同數據的訪問限制,但我們依然控制使用相同的計算量。這個作為參考的 Oracle 基準可以使用無限的真實數據。 所以它試圖模擬這樣一種情況:如果數據永遠增長下去會發生什么。
讓我們先從更能反映定性結果的訓練動態開始,試圖直觀地告訴你它是如何運作的。
![]()
X 軸代表訓練 token 的數量, Y 軸代表在 OpenWebText2 上的測試損失。一開始我們可以看到, Oracle 和基準測試的表現很相似,但它們都不及合成引導預訓練的效果。我認為它們兩者表現相似是很有道理的,因為基準方法只是單純的重復數據,當你的訓練計算量不大時,它們的表現或多或少是一樣的。但隨后基準方法就會飽和。當 Oracle 的損失繼續下降時,基準方法的曲線開始變平,這是因為它一遍又一遍地重復相同的訓練信號。它再也無法從中獲取新知識了。但是,到了最后階段, Oracle 和合成引導預訓練都繼續以近似線性的方式進行擴展。這是定性層面的結果。接下來,我們來看一個更具定量性質的結果表。
![]()
這個表格包含三個主要列。這里的 200B 指的是總的訓練 token 長度,也就是模型被訓練了多久,而 1 萬億相當于 5 倍的訓練量。
在第一列中,我們使用了一個 3B 參數的模型;在第二列中,我們固定了 3B 參數模型,但將訓練計算量放大到了 1 萬億 token ;在第三列中,我們固定了 1 萬億 token 的訓練計算量,但將模型規模放大到了 6B 參數。
我們看到的關鍵結論是,如果我們觀察問答準確率的平均提升情況,包括 SBPT 和 Oracle 相對于基準的相對提升,在所有這三種情況下,我們都看到了可以由 Oracle 實現的約 30% 的提升,所以這種改進是非常一致的。有趣的是,我們發現在某些基準測試中, 6B 參數、 1 萬億 token 的模型已經幾乎像是一個可用的語言模型了,這相當于 Llama 計算量的一半,理應如此,這意味著我們能改進的空間應該更少了。但是,在某些基準測試中,我們實際上在 6B 參數的處理條件下看到了更大的提升。這是因為你的合成數據生成器也變得更強大了。它的幻覺變少了。正是這個觀察將我們引向了關于自我改進預訓練能力的最后一張結果表。
在這里,我們希望考察的是合成數據的質量。這張表包含四行,前三行分別代表了我們實驗中的一種設置。即 200B-3B 、 1T-3B 、 1T-6B,最后一行是真實數據。
![]()
這里我們采用的通用范式是,因為我們試圖評估數據集的某項屬性,而該數據集非常龐大。因此,我們會對一部分文檔進行子采樣,然后使用像現成的 GPT 模型那樣,編寫一些評分標準來檢測文檔中是否存在重復內容,或者是否包含不符合事實的信息。我們發現,隨著模型規模的擴大,生成的數據質量也更好,而且這些合成數據并不僅僅是簡單的復述。在表格的各列中,我想重點強調「非事實」這一列,我認為這非常令人興奮。因為對于合成數據而言,事實性始終是一個難題。在 200B 規模下,我們看到,事實錯誤率甚至達到了 50%。存在著大量的幻覺。當你把訓練計算量增加 5 倍時,非事實的比例顯著下降;當你把模型規模增大一半時,這一比例進一步降低。雖然它還沒有達到完全比肩真實數據的水平,但我認為這種從 3B 到 6B 的下降非常有趣。因為事實性在某種程度上,取決于模型掌握了多少關于世界的知識。
如果你只是將訓練數據規模從第一列增加到第二列,這是令人驚訝的,因為模型看到了更多獨特的數據,它擁有更多的世界信息。但當你增加模型規模時,環境的總熵是相同的。你所做的,只是花費更多的計算能力,從環境中提取信息。如果熵是守恒的,但這允許你擁有更低的事實錯誤率。我認為這是一個非常有意思的結果。
自我訓練能力的部分就講到這里。這表明我們可以普遍地提升語言模型的預訓練能力。
邁向 AI 設計 AI
在最后一部分,我想展示的是「邁向 AI 設計 AI」的方向。
從根本上說,我們現在在做的是試圖讓語言模型來做我們的工作。
我想先探討這樣一個哲學問題:為什么我們期望 AI 在 AI 研究領域能做得更好?
![]()
我想追溯到這個科學方法論。Fisher 提出了科學進步的兩階段過程:首先提出假設,在提出假設之后,你需要做兩件事:進行實驗,然后試圖證偽這個假設。這帶來了一個非常嚴謹的科學過程。例如,你可能會說你無法證偽牛頓定律,但你不能理所當然地假設牛頓定律是絕對正確的。后來,我們有了愛因斯坦的理論,那只是因為在當時的實驗條件下,你無法證偽牛頓定律而已。這意味著科學的本質就是運行實驗和產生想法。
不用說,對于語言模型來說,產生想法就像寫文本一樣簡單。所以它能夠做到,只是校準度還不夠。
更有趣的部分在于運行實驗。如果你看看當前 AI 領域的狀態,首先, AI 的進展非常依賴基準測試驅動,比如 ImageNet 或其他各種基準數據集;其次, AI 實驗最終都會具體化為編寫代碼,而編寫代碼正是計算機極其擅長的事情。我們可以看到 SWE-bench 的準確率隨著時間推移,從最初的 20% 一路上升,幾乎飽和到了 80%。
這意味著,運用 AI 來推動 AI 科學本身的發展,擁有強大的第一性原理支撐。
為了使模型能夠做到這一點,我將引入「研究環境」的概念。它提供了一個簡潔的抽象,告訴你進行 AI 實驗需要什么。我們先從一個更通用的研究環境開始。
![]()
它實際上有兩個屬性:其一,是傳遞給語言模型的上下文,用于描述任務是什么;其二,是一個價值函數,你向它輸入一個想法(表現為一段字符串),它會輸出一個數字,來指示這個想法的優劣程度。而對于 AI 研究環境而言,實現方式非常直接了當。
至于上下文,它應該包含代碼庫屬性。也就是說,要告訴你一個研究問題是什么,只需要告訴你相關的 GitHub 倉庫是什么,或者你的實驗所操作的核心代碼是什么。
另一件事是,為了評估價值函數,你還需要一個沙盒來分配運行實驗所需的資源。因此,你將資源(例如一塊 H100 GPU)分配給沙盒。隨后,沙盒首先執行這段代碼差異,在 AI 研究的背景下,正是這段代碼將你的想法具體化了。接著,沙盒會執行 run 命令,然后運行評估腳本。你可以通過精心設計你的環境,使得評估腳本的標準輸出正是你所關心的最終獎勵信號。
所以,在這個抽象概念之下,讓我們首先具體談談我們實現了哪些 AI 研究環境。
- 我們進行了預訓練實驗,其代碼庫只是一個執行 GPT-2 預訓練的獨立 Python 腳本。我們投入的資源是 8 張 A100 GPU。這主要用于基準測試目的,因為排行榜上的評價指標是在此資源限制下,測試損失達到 3.28 所需的時間。
- 至于后訓練環境,我們有這個使用 GRPO 算法進行數學推理的任務。其代碼庫是在 GSM8K 數據集上進行訓練,并在 MATH500 數據集上進行測試。這實際上取自斯坦福 CS336 課程的作業。在資源方面,我們使用了一張單卡 Blackwell GPU,以便在單個設備上實現采樣器和訓練器底層權重的無縫切換。
![]()
這就消除了大量繁雜的工程障礙。最終的評估指標是使用人工驗證的 MATH 測試準確率。一旦有了這樣一個研究環境,我很喜歡自動化的 AI 研究員的運作方式,它首先會經歷這四個步驟的過程。
![]()
就像從可操作化提議的階段開始,研究員內部擁有一個被稱為構思器的組件。所以,首先你要獲取研究環境的上下文,將其輸入給構思器,生成你關心的想法。然后,你調用研究員類內部的執行器。你把上下文(在這個場景下是指研究環境的代碼庫)以及構思器生成的想法提供給它。這會輸出代碼差異,然后你就可以運行實驗了。于是,你用生成的代碼差異來調用研究環境的價值函數,它會返回這個想法的性能表現。同時,在另一側,你也保留了這個想法的記錄。這樣你就會積累一張實驗經驗清單,接著時不時地,你可以從這些實驗結果中進行學習。
想象一下,這個「學習 API」有點像是在更新研究員的一些內在特質。對于這個「學習 API」或構思器的更新,可以采用強化學習的方法,這意味著將修改研究員內部神經網絡的參數權重;它也可以像是一個演化搜索過程,維護一個類似實驗結果清單的庫。在本次演講的范疇內,我將只聚焦于演化搜索的部分。
我們把「學習結果」的過程實現為一個迭代的測試時搜索過程。
這個測試時搜索所做的是,它一輪一輪地運行實驗;在運行了一些實驗之后,它會把過去的想法保存在一個庫中。有了研究員內部的這個想法庫,當它想要生成一個新想法時,可以執行以下兩項操作之一。
- 它可以通過結合結果列表中高價值想法的優勢,來利用現有的好想法;
- 它也可以進行探索,嘗試生成與結果列表中已有想法截然不同的全新想法。
![]()
因此,這變成了一個搜索問題。以下是搜索的最終核心結果:我們可以看到,后訓練任務的初始準確率是 48%,而我們的搜索方法將其提升到了 69%。而 CS336 課程排行榜上的最好成績是 68%。所以,這像是在一種非常弱的意義上,擊敗了最好的人類成績。在預訓練方面,我們確實取得了一些進展,將時間從 36 分鐘優化到了 90 分鐘,但排行榜上的成績實在太驚人了。排行榜的成績大約是 2.1 分鐘。
所以在那個案例中,它并沒有達到超人類的水平。
作為這一部分的總結,我想將其與 s1 項目中的預算強制技術聯系起來。讓我們稍微轉換一下話題,談談用于數學推理的測試時縮放。
在數學推理中,這里的關鍵點在于如何強迫模型思考比常規 token 數量更長的時間。假設你想強制模型思考超過 10,000 個 token,如果不采用預算強制技術,模型會先生成一個開始思考的 token,接著生成最初的 500 個 token,然后就會生成一個結束思考的 token。但是有了這項預算強制技術,你可以去掉那個結束思考的 token,并強行追加一個逗號,然后模型就會繼續思考下去。
![]()
因此,無論是算法搜索還是預算強制,從原則上講,我們都在類似編寫一個非常簡單的循環,強迫模型一直運行下去。
我們觀察到了一個非常一致的規律:不管是算法搜索還是寫循環讓模型強行思考,單純地擴展測試時計算量都能帶來性能提升,但它們都會非常迅速地達到性能瓶頸。另一個觀察結果是,無論是在測試時搜索,還是在測試時推理中,都存在一種模式:串行搜索比并行搜索更加強大。
![]()
在左圖中,這是在 nanoGPT 任務上的表現,最佳選擇和多數投票并沒有帶來有意義的提升,但搜索方法卻能帶來持續一致的改進。這與推理任務中的情況十分相似:多數投票雖然有正的斜率,但提升不大,而串行搜索則大幅提高了這個斜率。
所以我認為,這里反映出復用具有一定的價值,這就好比一條法則:串行計算比并行計算更有價值。
![]()
我認為這正是其價值的體現。在結束實驗結果部分的討論之前,我還沒有展示任何定性結果,即模型到底能生成什么類型的想法。
在這里,我想向你們展示一個我非常喜歡的想法,盡管它的準確率并不是非常高。
![]()
這個想法產生于使用 GRPO 進行數學推理的任務中。它提議通過維護一個包含數學事實、定義和中間結果的上下文緩沖區,來創建一個「數學工作記憶模擬」。
隨著模型逐步解決問題,這個緩沖區也會隨之更新,并為后續的推理步驟提供額外的上下文。這就模擬了人類在進行復雜計算時,如何維持和利用工作記憶的過程。令我驚訝的第一件事是,模型能夠非常準確地將這個想法編寫成可執行的代碼。
它的具體做法是,引入了一個名為「上下文緩沖區」的類。這個類本質上有兩個方法:添加上下文和基于查詢獲取上下文。在 RL 訓練循環中,它會初始化該緩沖區。對于每一個提示詞,它都會嘗試從緩沖區中獲取上下文,并將檢索到的上下文附加到提示詞中。
這樣一來,在解決數學問題時,這就好比在考試情境中直接給你提示。該方法的性能比基準提升了 10%,雖然不是最好的結果,但我真的非常喜歡它,因為我個人也有一個類似的緩沖區。我實際上有一本手寫的筆記本,里面記錄了各種數學技巧,比如裂項相消、 epsilon 球空間、琴生不等式以及何時使用它們。所以我非常高興能看到它提出了與我在做的事情非常類似的方法,而且像 GPT-4 這樣的模型竟然能夠將其實現出來。
結語:超越人類的必然性
關于持續自我改進式 AI 的三個方面的主要結果就講到這里。接下來,我想進入結語部分,內容可能稍微有點形而上。
在演講的開頭,我們明確了這個定義:持續自我改進式 AI 所能實現的改進,要比人類創造者所能達到的改進更好。我之所以這么說,是為了保持嚴謹,這樣這個主張就能被我們現有的實驗結果所證實。但就目前而言,我們看到 AI 勝過人類的方式,主要是通過用數量堆疊來克服質量上的限制。
![]()
這種機制非常無趣。如果我們看一下這張圖,基準模型是在有限的人類數據上訓練的。你問 AI 能否擴展得更好,但事實是,首個檢查點的初始損失表明,人類生成的數據質量依然更好。只是因為 AI 的數據是無限的,它可以通過數量來彌補質量上的不足。
另外,這是我們團隊的 Weights & Biases 實驗面板,你可以看到,對于研究人員來說,可能只跑了 13 個或 9 個實驗,但對于 AI 執行的實驗來說,我們看到的是 5,000 個甚至 30,000 個實驗記錄。如果一個人類博士生下周來找導師,他不可能說「好的,我上周測試了 30,000 個想法」。雖然我無法預見未來,但根據我們目前的結果,人類研究員依然具有更強的構思能力,只不過 AI 研究員工作得太努力、太不知疲倦了,所以它能霸榜 CS336 的排行榜。
是的。因此我認為,AI 社區里的人們真正關心的問題是:AI 是否能夠自我改進,并變得比它的創造者更強大?
![]()
因為我目前沒有這方面的實驗結果,所以我想從物理學中一個完全正交的視角,來解釋為什么我認為這是可能的,甚至幾乎是必然的。
我想向你們展示愛因斯坦是如何以一種安靜而精確的方式,創造了一個超越他自身認知的理論的。
首先,我們可以將一個理論視作一種生命,因為它能夠進化、能夠變異,它有自己的生命力。愛因斯坦創造的場方程就比他本人更聰明。
起初,愛因斯坦提出了廣義相對論的場方程,這個方程在未經修改的狀態下,已經精準地預言了宇宙正在膨脹。然而在 1910 年代,當時的科學界普遍篤信宇宙是靜止且永恒的。為了迎合這種時代觀念,愛因斯坦在 1917 年主動修改了自己的方程,硬生生地讓它計算出一個靜止的宇宙。直到 1929 年,哈勃通過天文觀測證實了宇宙確實在膨脹,而且其規律與愛因斯坦最初那版未修改的方程所預測的一模一樣。愛因斯坦后來坦言,那次修改是他一生中「最大的錯誤」。
也就是說,當一個理論被創造出來的那一刻,它就擁有了生命并開始演化。就像當愛因斯坦寫下那個場方程的那一刻,該方程就已經編碼了一個當時沒有任何人類能夠理解的真理。
通過類比,我認為人類確實可以創造出比自身更聰明的 AI,而不僅僅是像我剛才說的那種依靠數量優勢。
因此,從某種意義上說,我對「AI 能否超越人類」這個問題的回答是:從一開始我們就不該問這個問題。
僅僅因為某樣東西是我們創造的,沒有任何理由去斷定它就不能超越我們。
我認為那種認為它不能超越人類的邏輯,源于一種子集邏輯。這就好比:我們人類擁有一組規模為 10 的能力集,而我創造了一個擁有我能力子集的次級存在,所以它永遠無法超越我。但是,目前創造 AI 的方式非常具有算法性,比如在海量數據上進行訓練。這種過程與愛因斯坦推導并創造出超越自己認知的物理方程的過程極其相似。這種問題一開始就不該被提出。所以我堅信,答案絕對是肯定的
![]()
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.