整理 | 伊風
出品 | 51CTO技術棧(微信號:blog51cto)
剛剛,奧特曼親自預熱的那期播客,完整版視頻終于上線啦?。?!
這一次,OpenAI 也開始“學對手”了 —— 正式推出類似 Anthropic 風格的硬核技術播客內容。
本期嘉賓陣容豪華,全部來自 OpenAI 核心團隊,首次系統揭秘 GPT-4.5 是怎么誕生的,深入探討它在模型訓練、系統架構和數據效率上的關鍵突破。
圖片
不同于OpenAI以往的“營銷味”,這個播客確實分享了前沿的訓練干貨,讓我有一種想法:在DeepSeek的感化之下,他們也想摘掉CloseAI的帽子了!
據說,OpenAI的開源大招也提上日程了。今天外網AI博主Tibor轉發了一個消息,OpenAI在為一個重磅的開源模型做聽證會邀請。
圖片
說回這期博客,我們先來看看參與成員。
圖片
從左到右分別是:
- Sam Altman — OpenAI CEO。
- Alex Paino — OpenAI 的研究員, 負責了GPT-4.5 的預訓練數據和機器學習訓練工作。
- Amin Tootoonchian (@atootoon) — OpenAI 的首席系統架構師,負責系統層面和網絡相關的整體架構。
- Dan Selsam — OpenAI 的研究員,參與了 OpenAI 的數學推理模型開發,主要研究數據效率和算法。
我們先給這波扎實的技術干貨畫個重點:
1.GPT 4.5兩年前就啟動了,一開始的目標就是做到比 GPT-4 聰明10倍。由于訓練中涌現的意外問題,整個訓練過程比預想的更為耗時。
2.大模型訓練的難點,當從1 萬塊 GPU擴展到10萬塊GPU規模時,會出現各種“系統波動”,“低概率事件”會升級成“災難級問題”。
3.GPT-4只用了5-10人規模就完成了訓練,但GPT 4.5復雜得多。GPT-4o實際是在GPT-4.5 的研究過程中誕生的。
4.在 GPT-4 之前,我們基本還處于一個算力受限的時代;但從 GPT-4.5 開始,有些領域已經轉變為數據受限。
5.現在最好的AI算法,距離人類的數據效率仍然有云泥之別。不過,隨著數據開始成為關鍵資源,這方面的進步會不斷追上。
6.研究員說GPT 模型訓練有些“難以預料”,隨著測試損失降低,模型更聰明了,但是“聰明在哪里”卻很難提前知曉。
7.目前并沒有發現更大的預訓練模型和更強的推理能力間有明確關系,表現得更“跳躍”,只是某些維度提升得更快。
8.預訓練模型其實是一個“壓縮器”,即便模型權重很大,但“可執行文件”并不需要存儲所有權重,這意味著數據本身可以用非常少的位數進行編碼。
9.GPT 4.5證明Scaling laws依然有效,從哲學角度說它是“宇宙的屬性”,訓練更大的模型、它就更能“壓縮”,也會獲得更好的智力水平。
下面就來看看這次博客的完整內容吧,enjoy:
訓練一個比GPT-4聰明10倍的模型,為啥這么難?
奧特曼:好吧,我們之前錄這種視頻,一般是為了介紹一個即將上線的新產品。但這次我們想做點不一樣的事——聊一聊這個產品背后的研究工作。
我們發布 GPT-4.5 的時候,覺得這個模型大家應該會喜歡,我們自己也很自豪。但沒想到大家比我們想象中更喜歡這個模型。
很多人會說:“我從沒想過能跟一個模型有這種交流體驗。” 它和 GPT-4 完全不同,不管是那些顯而易見的提升,還是那些難以描述的微妙差異。
很多人都很好奇 GPT-4.5 是怎么造出來的。
所以今天我們請來了幾個 GPT-4.5 核心團隊的成員,一起來聊聊這個模型,也聊聊我們從中學到的東西,以及打造這樣一個大模型需要什么。
我們不如就從這個問題開始吧:做出這樣一個大模型,到底需要什么?
Alex Paino:很多人、很多時間,還有大量算力。
奧特曼:好,那到底需要什么才能做出這樣一個模型(GPT 4.5)呢?
Alex Paino:我們這個項目大概是兩年前啟動的。當時我們知道會有一個更大的計算集群上線,遠處就能看見這件事要發生了。
我們開始做很多工作,比如確定我們希望在訓練中引入哪些功能,做了很多高風險的大型測試,制定了非常長遠的訓練計劃,涵蓋了從系統到模型的整個技術棧。
所以,從正式訓練開始前,我們就經歷了一整段冗長的準備過程,而訓練本身則是更大規模的工程。
Amin Tootoonchian:我覺得這其實是一個從最初就由系統團隊和模型團隊共同推動的過程。直到我們真正確定好要訓練的模型后,才啟動正式訓練。
而我們工作的節奏非???,尤其是在利用最新上線的計算資源方面,這就導致我們幾乎不可能做到百分百計劃周全。
所以我們幾乎總是帶著一堆未解決的問題啟動訓練,不斷推進中解決各種挑戰。我們要不斷追加算力、處理一些一開始沒預料到的問題—— 即使我們在系統側和模型側都做了大量預測。
我們不斷縮小“預測應該發生的事情”與“實際發生的事情”之間的差距。說到底,這是一個非常龐大的過程,最后階段的執行尤其艱難,需要很多人、很多能量和長期的協作才能完成整個訓練。
奧特曼:那你覺得我們對最終結果的預測和現實差距有多大?
Amin Tootoonchian:從系統角度來看,最開始我們通常距離預期還挺遠的。
你總得面臨選擇——是推遲上線,直到更多問題解決,還是邊訓練邊解決問題。
這始終是一種權衡,要盡量別不合理地拖延進程。但幾乎總是有些問題在一開始是預料不到的。
整個過程的重點就是:盡可能解決我們已知的問題,并規劃好訓練流程,然后在推進中不斷應對那些未知情況,比如訓練是否順利、會持續多久等變量。
Alex Paino:從最高層目標來看,GPT-4.5 項目一開始的目標就是做到比 GPT-4 聰明10倍。
這個設想是兩年前我們就定下來的。當然在推進過程中,我們不斷思考“能不能再好一點?”“會不會做不到?” 這是一條極其復雜的道路。但最終我們做出了一個模型,確實在有效計算量投入方面達到了“比 GPT-4 強10倍”這個目標。
Amin Tootoonchian:從執行層面看,這個過程當然遠比我們最初預想的要耗時。
奧特曼:確實如此。
Amin Tootoonchian:我們的任務就是努力壓縮訓練周期,使之盡可能接近預期。
奧特曼:我有個二合一的問題:為什么從用 1 萬塊 GPU 訓練,擴展到 10 萬塊 GPU,就會讓問題變得難上十倍?
Amin Tootoonchian:問題太多了。其實,如果你觀察得夠仔細,那些在大規模才顯著的問題,在小規模時就已經有蛛絲馬跡。
只是到了大規模之后,一些“低概率事件”會變成“災難級問題”,尤其是如果你一開始沒預料到的話。
奧特曼:舉幾個例子?
Amin Tootoonchian:最常見的問題包括:基礎設施不穩定、 故障率增高、故障類型復雜多樣,我們能觀察到的故障情況,連硬件供應商自己都沒見過,因為我們調動的是一個巨大的樣本池。
我們看到了資源執行中的全部統計分布——包括網絡結構、節點間連接、甚至單個加速卡的表現。但這也是其中的美感:要想模型最終表現理想,幾乎所有系統部件都必須按預期運行。我們的工作就是盡可能減少這種“系統波動”。
奧特曼:這個問題的下半部分:我們知道在“最前沿規模”上訓練模型很難,但我也注意到,當一個任務不再位于最前沿時,它就會變得容易得多。
比如 GPT-4 的訓練曾經幾乎動用了整個 OpenAI 的資源。如果現在讓你們組一個最小團隊,從頭重訓 GPT-4,你們覺得需要多少人?
Alex Paino:我覺得現在要重訓一個 GPT-4 級別的模型,大概只需要 5~10 人就夠了。
Amin Tootoonchian:是的,我們確實是用這個規模訓練了 GPT-4。
不過 GPT-4.5 是另一種情況——它背后有更復雜的歷史,也有更多人參與,是完全不同的一次挑戰。
Alex Paino:不過,既然我們已經完成了 GPT-4.5,整個技術棧其實已經提升了很多。我們也確實在 GPT-4.5 的研究過程中重新訓練了一個 GPT-4 級別的模型,也就是 GPT-4o。
它用了 GPT-4.5 的很多技術積累,但這次的訓練團隊規模小得多。
奧特曼:那 Dan,你怎么看?為什么大模型訓練這么難?
Dan Selsam:我覺得做任何“新的事”本來就難。哪怕后來別人也做成了,這事也會立刻變簡單許多。
最難的是:你在最開始,必須有堅定信念去做一件沒人驗證過的事。一旦你知道“它是可能的”,那簡直像開了金手指。
Alex Paino:確實。我們其實是在把 GPT 的預訓練規模往上擴了整整 10 倍。
在這個過程中遇到的問題有很多是你事先根本想不到的。
繼續Scaling沒有“硬性上限”,重點是提升“數據效率”
奧特曼:那我們要繼續擴展 10 倍、甚至 100 倍的訓練規模,還需要什么?
Dan Selsam:數據效率。
奧特曼:什么意思?
Dan Selsam:Transformer 和 GPT 的一大優勢是能非常高效地吸收數據:它能提取信息、能壓縮和泛化 這幾乎是它的核心特征。但也有個“天花板”——它所能從一段數據中提取出的“深層洞見”是有限的。
所以當你的算力一直增長,而可用數據量增長很慢時,就會出現“數據成為瓶頸”的問題。這時就需要在算法層面有突破:用更多算力,從同樣數據中“學得更多”。
奧特曼:除了數據效率,你覺得還需要什么,才能繼續擴展?
Amin Tootoonchian:從系統角度看,每一代 GPT 的訓練其實都代表著我們在基礎設施上的大規模升級。
GPT-4.5 之所以需要動這么多人、改這么多東西,正是因為它本身的模型規格發生了質變。
我們根本不可能用 GPT-4 的系統架構直接來訓練 GPT-4.5。
Amin Tootoonchian:比如說狀態管理,我們對這部分的處理方式也發生了改變。因為要擴展更多算力,而這些算力并不都集中在一個集群里,所以我們不得不采用多集群訓練。你可以想象,這是許許多多不同的工作流,需要在極短的時間內拼接在一起,才能完成這件事。
當我們計劃再做一次 10 倍的突破時,有些我們之前明知存在的問題,這次為了加快推進節奏選擇跳過了——但下次就必須解決,沒有回避的余地。
這些技術選擇正是讓“打造完美系統”的時間線變得更長的原因。我們一直都在妥協:在“追求完美”與“盡快搞出來”之間尋找平衡。
Amin Tootoonchian:系統本身并不是一個最終產品,它是為了支撐真正的產品存在。
所以如果我們要做下一個 10 倍突破,對我來說最重要的是“容錯能力”——但不是傳統意義上的容錯,而是與工作負載協同設計出的容錯系統,這樣我們就不用再承受龐大訓練任務所帶來的巨大運維壓力。
我們以前的系統,在訓練 GPT-4.5 的時候,已經到了快跟不上節奏的極限。
奧特曼:你知道 GPT-4.5 的訓練過程中,有多少百分比的訓練步驟因為某些組件故障而失敗了嗎?
Amin Tootoonchian:我現在腦子里沒有準確數字。但通常來說,問題是這樣的:新一代硬件剛上線時,它的一些故障并不是大家一開始就完全理解或研究透的。
我們一邊推進訓練,一邊解決這些問題。
Amin Tootoonchian:當然,訓練早期的故障率會非常顯著。
但也很有可能是:當我們找到了問題的根源并修復之后,故障數量會大幅下降。
這幾乎是訓練的常態。我們總是邊干邊學。
Amin Tootoonchian:你可以把它看作是在做系統“清潔工作”或“基礎問題診斷”。
一旦這些問題搞清楚了,系統穩定性就會大幅提升。但在早期訓練階段幾乎總是最痛苦的——我們在探索新故障模式、新硬件帶來的影響,同時還得繼續推進進度。當然,到了后期,故障率會顯著降低,整體運行時間穩定性也會上升。
但問題就在于:你無法提前預測新一代基礎設施在“初期階段”的具體表現。如果你只為“穩定階段”做設計,那在早期訓練里可能就會遇到非常糟糕的可用性問題。
奧特曼:我們都知道推理類模型是未來發展的關鍵部分。
但如果暫時不談推理,只討論“經典預訓練模型”這條路線:假設我們擁有無限的 GPU、無限網絡資源、無限電力,但依然受限于我們當前的系統問題,比如容錯機制還沒搞定、數據也就這么多等等。
如果每一代 GPT 的數字代表一個“百倍飛躍”,那你覺得現在我們用現有資源,最多能訓練到 GPT 多少級別?比如 GPT-5.5?
Alex Paino:從機器學習和算法角度講,我覺得我們還沒遇到什么“硬性上限”。
我們現在才剛剛開始真正挖掘“數據效率算法”的潛力,也剛剛找到更有效利用現有數據的方法。
有趣的是,在 GPT-4 之前,我們基本還處于一個算力受限的時代,研究重點全壓在怎么搞到更多算力。
但從 GPT-4.5 開始,有些領域我們已經轉變為數據受限,這在某些數據維度上是個重大轉折點,也讓這一方向的研究變得更加令人興奮。
奧特曼:這是一個顛覆性的變化——我覺得整個世界現在還沒真正意識到:我們已經不是在“算力極限”上打造最強模型了。這跟我們過去一直以來賴以生存的技術現實,完全不同了。
修bug修到崩潰,一個最不起眼的bug貫穿模型訓練的40%
奧特曼:那你們在訓練 GPT-4.5 過程中,有什么最有意思的 ML 方面的發現可以分享的嗎?
Amin Tootoonchian:我不太確定我能分享多少細節,但我可以說:我們最有價值的經驗之一就是:當模型沒有沿著我們預測的“性能斜率”前進時,我們必須搞清楚為什么。
Alex Paino:對,我覺得最讓我意外的一點是:我們在模型端做的很多工作,在訓練過程中體現出有的能很好擴展,有的卻不能。
這些我們很多都是在實戰中才發現的,這個過程確實讓我們學到了很多。
Dan Selsam:我覺得 GPT 模型訓練最具代表性的兩個特征就是:你可以預測測試損失(test loss); 而且它的擴展性非?!吧衿妗薄獪y試損失降低,智能就會上升,體現在一系列不可思議、難以預料的方面。
奧特曼:你是這方面的“極致信徒”嗎?你完全相信這個關系成立?
Dan Selsam:可以這么說吧。我們在 GPT-4.5 上做過重新測試,發現模型擁有很多極其細膩的能力,這些都不在任何人的預測清單里。
我們唯一的信念就是:這個模型會更聰明,但“聰明在哪里”其實很難提前定義。可一旦你上線使用,就會發現它在很多細微的地方都變聰明了—— 它的常識更強、理解更細膩、語境處理能力也更好了。
這就是“多出那一點點 test loss 帶來的神奇魔法”。我覺得這種“隨著 test loss 降低,能力變強”的擴展規律依然是成立的。
奧特曼:那訓練過程中有沒有什么最積極、最讓你感動的瞬間?雖然過程充滿痛苦,但總得有個美好記憶吧?
Alex Paino:我有一個瞬間印象挺深的。
我們在訓練期間還持續在調模型的 ML 層設計,而且訓練中期的一些改動居然效果比預期好很多。那一刻我們非常激動。
Amin Tootoonchian:對我來說,這應該是我投入“IC 時間”(獨立貢獻者的時間)最多的一次訓練過程。
我們一邊訓練,一邊還在并行搭建系統,為了提速而極度并行地推進各項工作。我們都相信這些努力會有結果——只要撐過某個性能瓶頸,模型就能恢復可訓練性,否則訓練時間會無限拉長。我們有明確的計劃,每個人都在執行。但過程真的比我預想的難得多,時間也拖得更久。
最讓我感動的是:當幾個關鍵問題被解決后,性能突然躍升了一大截。那一刻你能感覺到整個團隊的氛圍都變了。
奧特曼:你還記得那個瞬間嗎?
Amin Tootoonchian:當然,大家的精氣神都不一樣了,情緒被點燃了,動力更足了。那種感覺很神奇。
Alex Paino:我們的任務狀態追蹤器也從之前的“卡殼”,變成了“進度條瘋漲”。
Amin Tootoonchian:是的,這種狀態變化對士氣的推動太重要了。還有一點我特別想提的是:ML 端的協同并沒有在模型上線那天就結束。
很多本來打算“上線后再修”的問題,大家在上線后也持續在優化。每個人都主動出手,不再是“我做完交接就不管了”。團隊協作的這種精神,非常強大。
Dan Selsam:我們剛才一直在強調這個訓練過程多難、預測多不準——但其實背后是巨量的高質量規劃。
Amin Tootoonchian:沒錯。
Dan Selsam:你們要不要展開講講?
Alex Paino:這確實是我們有史以來計劃最充分的一次訓練。我們在正式訓練前就已經籌備了差不多一年時間,做了多輪超大規模的風險測試(de-risking runs)。
我們非常小心地安排每一個變更,始終從“高置信度、已驗證配置”出發——
比如 GPT-4 這種我們非常熟悉的配置,在這個基礎上一點點迭代、加入新功能,
而且每次都要認真評估每項變更的可擴展性。
不是說看到一個功能在小規模下有效果就夠了——我們要確保這個效果在大規模下也同樣成立、不會衰減。很多東西在小模型上看起來不錯,但放大之后就失效了。
所以我們整個流程都極度謹慎,同時也在不斷完善“擴展法則(scaling laws)”的方法論。
這也是我們未來訓練更多 GPT 模型的核心參考。
Amin Tootoonchian:你剛才說的那個有趣瞬間,讓我想起了另一個特別有意思的片段。
這個故事有點“Torch Do Sum”(指bug既基礎又莫名其妙)的味道(笑)。你可以想象,我們上線一個這么復雜的系統,它肯定會有 bug——各種各樣的 bug,這是“默認值”。
但同時我們也要繼續推進,要保證整個訓練流程是在正確的軌道上運行。雖然我們非常清楚有些 bug 的確很嚴重,但我們也構建了很多系統,來幫助我們區分問題來源:
- 是硬件故障嗎?
- 是哪類硬件的問題?
- 是數據損壞?
- 還是某種潛在的機器學習 bug?比如我們代碼里的某種錯誤?
當時,我們手上同時有好幾個開放的“未解線程”,都有不同的癥狀,都是模型正確性相關的問題。我們當然也找到了一些 bug 并修復了它們。
我們一度陷入了一個狀態:這些看似不同的問題,到底是多個 bug 造成的,還是其實只源自一個 bug?所以我們坐在會議室里,每個人投票:你覺得是哪一個因素導致了這些問題?
結果——真正的那個 bug 是得票最少的選項!
那個 bug 是在 torch.sum 函數中的一個非常簡單的加法實現錯誤,位于上游代碼中。特別搞笑的是:我們其實主要是在用 Triton 和 XLA,但在某些邊緣情況、某些無關緊要的算子上,我們就會回退到 PyTorch 默認實現。
而其中一段數據剛好觸發了 PyTorch 的這個錯誤路徑,造成了一個非常低頻的 bug,具體表現是非法內存訪問,內存偏移計算錯了。
最精彩的是:當我們工程師找到這個 bug 時,他說:“我定位到了,是這一行代碼。我們打個補丁看看是不是能解決所有問題?!?/p>
結果——所有奇怪的 bug 全都解決了。
這些癥狀之前看起來完全不一樣,結果源頭是一個代碼路徑。我們當時還把 Slack 里幾個“多假設討論頻道”都重命名成了“單 bug 理論頻道”,那一刻真的特別有趣!
奧特曼:這個事是訓練流程中什么時候發生的?我記不太清了。
Amin Tootoonchian:其實這個 bug 從訓練早期就一直存在,大概覆蓋了整個訓練的 40%。
奧特曼:你們還記得是誰發現的嗎?
Amin Tootoonchian:我記得當時我們在分析一連串的 kernel 執行序列,其中第 2 個 kernel 總是觸發非法內存訪問。
那是一個我們寫的非常復雜的 kernel,大家都以為 bug 肯定在里面。于是很多很聰明的同事,一行一行看這個 kernel,最終確實找到了 bug,修復之后解決了一部分問題,但還有一些 bug 仍然存在。
結果有一天,有個工程師注意到:喂,這個 kernel 的輸入之一,居然來自 PyTorch 的一個很偏門的代碼路徑。而我們剛好觸發了這個幾乎沒人會觸發的代碼分支。
于是他說:“是這里有問題。” 我們沒有什么復雜驗證手段,只能“修個補丁,看崩潰還在不在”。
結果一修所有崩潰都沒了。
我們才知道:這個超低頻 bug,其實一直在造成非常嚴重的隱患—— 大概每 100 次、甚至 1000 次訓練步驟才崩一次,容易被忽略。
但我們有個信條就是:不該讓任何已知問題在訓練中混過去。所以我們堅持追查到底。
這個故事的重點就是:堅持不放棄,哪怕是一個微不足道的 bug。
預訓練人員,在正式訓練后還有啥工作?
奧特曼:Alex,我知道大家可能能想象你訓練前的生活很忙,但訓練開始后,你的日常是什么樣?是在那兒“盯著 loss curve (損失曲線:模型在訓練時會不斷試圖最小化損失函數)看”嗎?你怎么安排?
Alex Paino:對,真的有很多時間都在看 loss curve(笑),我們大家都干了很多這個事。
當然除了看 loss,還有很多工作:
- 和系統團隊一起協作,把沒趕上上線的一些改進盡快合入;
- 持續監控訓練過程,看有沒有什么異常趨勢,比如某些統計指標走偏了;
- 機器學習這邊也不斷在想辦法優化訓練效果;
- 數據這塊上線之后稍微輕松一點,但其他方面仍然很忙。
Amin Tootoonchian:我們在 ML 層面也承擔了很多模型正確性的判斷任務。
你可以想象,早期的信號往往非常嘈雜,有時候感覺就像在“讀茶葉渣”預測未來一樣(笑)。
有些問題,你要等很久才能驗證到底健康不健康——但我們有責任提前判斷。
奧特曼:那你們碰到“虛驚一場”的概率高嗎?就是看上去很糟,但其實沒事的情況?
Alex Paino:這種情況相當常見,我覺得大概有一半時候是虛驚吧。我們這群人真的挺焦慮的,所以我們傾向于“盯得更緊一點”。
人類的“數據效率”碾壓AI,算法與人類仍有“天文數字”之差
奧特曼:好,我來幾個快問快答:如果你能在下一次大訓練前解決一個 ML 問題,你最希望搞清楚什么?
Alex Paino:我最想知道的是:在數據有限的特定領域里,我們該使用什么算法。
這個問題很大,答案也很復雜。
奧特曼:那如果你能對現有硬件做出一個改變,比如發明一種新的網絡結構或者芯片架構,系統瓶頸現在卡在哪?
Amin Tootoonchian:我希望是在傳輸層或網絡層做改變。現在很多錯誤,其實是可以在“應用層之下”就處理掉的。
我希望網絡傳輸能自己干好自己的事,別讓我擔心它的帶寬、可用性或者中斷問題。
奧特曼:那這個方向上,現在有沒有什么比較 promising 的方案?
Amin Tootoonchian:有的。
奧特曼:那我們線下聊(笑)。接下來兩個問題問 Dan:我們剛才談到“數據效率”,人類雖然在很多方面不完美,但我們學得超級快。
你覺得,我們現在最好的算法,距離人類的數據效率還差多遠?
Dan Selsam:這個問題很難“蘋果對蘋果”地比較。
奧特曼:那你就憑直覺說說吧。
Dan Selsam:如果按語言理解來說,那差距是天文數字級別的遠。
奧特曼:十萬倍那種?
Dan Selsam:對,差不多就那個量級吧。
當然取決于你怎么定義“信息單位”,比如你要是把人類視神經接收的每一位像素都算上,那算法上我們根本還沒搞清楚怎么從這些信息中抽象到“人類級別的文本理解”。
所以總結一下——我們算法上離人類還有很遠的距離。
奧特曼:那第二個問題:你覺得我們目前這條技術路徑(比如 transformer +大數據訓練)未來能實現人類級別的數據效率嗎?
還是說這條路根本到不了,也沒必要去到?
Dan Selsam:我覺得過去幾十年,深度學習的核心優勢一直是算力效率。
除了數據和算力的增長,真正神奇的是:算法的微小進步可以很好地“疊加”。
世界各地的研究者會陸續發現某個技巧能提升 10%、20%,然后這些技巧可以像“積木”一樣組合起來。
但我們在數據效率這塊,還沒有出現這種“全球范圍的 mobilization(大規模動員)”。
主要原因是:之前不值得做這件事——數據夠多、算力才是瓶頸,搞數據效率意義不大。但現在我們進入了一個新階段:數據開始成為關鍵資源,我們也會開始積累這方面的勝利:10% 這里,20% 那里,一步步前進。
我覺得我們現在去預測是否會撞上某個“上限”,其實有點武斷。畢竟我們還沒有任何確切證據表明會撞墻。但可以肯定的是,人腦的運行機制和我們現在做的任何微調算法都完全不同,所以我們必須持一點保留態度。不過我仍然認為,我們有很多理由保持樂觀。
預訓練Scaling帶來了強泛化,但不一定帶來強推理
奧特曼:下一個問題給你們三個,回答可以是“是/否”或者補充解釋:人類未來會不會進行一次同步使用一千萬張 GPU 的預訓練任務?
Alex Paino:我不確定那會不會是個“預訓練”任務,但我覺得一定會有那種規模的訓練任務。
奧特曼:也就是說,會有“一千萬張 GPU 同時工作的訓練任務”?
Alex Paino:對,雖然可能和我們現在的訓練方式完全不同,但一定會有某種形式的無監督學習達到那種規模。
Amin Tootoonchian:我覺得我們可以稱之為“半同步(semi-synchronous)”,那個規模聽起來很誘人,我希望能看到。
奧特曼:你剛才用的是“半同步”這個說法,是吧?
Amin Tootoonchian:對,我覺得不會是完全同步的——畢竟自然法則擺在那里,不可能完全違背。
Dan Selsam:我覺得更可能的是一個“去中心化”的形態。肯定會有一千萬張 GPU 一起工作在某個 AI 系統上,讓它學習和執行任務。但就像大腦的不同部分不會同時溝通一樣,它們可能不會彼此時時通信。
奧特曼:合理。那么我們有沒有發現:更大的預訓練模型和更強的推理能力之間,有什么明顯的關聯?
Alex Paino:我們觀察到,更好的預訓練往往可以整體抬升模型的智能水平,而且也有助于泛化能力的提升。而推理能力呢,它可能表現得更“跳躍”一些,或者說某些維度提升得更快。
這兩者其實是很好的互補。
奧特曼:那我再追問一點:你們有沒有覺得有點奇怪——為什么預訓練的泛化能力那么強,幾乎能學到所有東西;但一旦我們專門教模型“推理”,它卻往往只在一個任務上表現突出?
Alex Paino:是的,這點挺有趣,但也不意外。
因為你看,我們訓練預訓練模型的時候,用的是非常廣泛、多樣化的數據,目標本身就是“覆蓋盡可能多的領域”。但推理模型,尤其是強化學習類型,往往是在非常受限的環境中訓練,你很難獲得穩定的獎勵信號和廣泛的訓練場景。
Dan Selsam:我同意,而且我覺得還有一個關鍵差別是:預訓練本質上是一種壓縮過程。
壓縮意味著模型要識別數據中的聯系、類比和抽象結構。而推理是對某個具體問題的處理,它有一種“思維的技藝”。
當你訓練模型去壓縮跨領域的數據時,其實是在學更高層次的抽象,這正是預訓練帶來的“廣義智能”。
系統擴展的關鍵:不斷優化聯合設計、更好地分配資源
奧特曼:說得好!我臨時想換個問題:未來系統擴展的主要瓶頸會是什么?芯片?處理器?內存?網絡?還是電力?
Amin Tootoonchian:系統的美妙之處在于:如果你進行聯合設計(co-design),那么工作負載其實可以適應你所構建的基礎設施。
所以我們不能簡單說“網絡就是瓶頸”或“內存帶寬是瓶頸”——我們可以調整資源需求分配,去構建一個更加均衡的系統。
當然,預訓練和推理階段的答案可能也不同。
不過話說回來,內存越多肯定越好。這是一個很難給出“單一答案”的問題。
奧特曼:那說到這個,在準備 GPT-4.5 的訓練任務時,你們的團隊在模型規格設計上合作密切嗎?
Alex Paino:非常密切,甚至到我們希望用的矩陣尺寸都要一起優化。
在這個項目中,從訓練前的六到九個月開始,我們就在做系統和模型之間的深度協同設計。我們還專門做了一次大規模 de-risking run,目標就是驗證系統-ML 的協同在規模化訓練中是否有效。
我覺得這是我們第一次在“協同設計”上投入這么大的精力,而且非常關鍵。
Amin Tootoonchian:沒錯,這是我們第一次真正意義上的系統-模型聯合架構設計。
關鍵不是“微調哪個部分”,而是你必須主動讓系統去“長出”你想要的性質,這些特性不會憑空出現。協同設計的過程決定了整個架構的構成方式,是系統側與模型側之間的連接橋梁。
Amin Tootoonchian:理想情況下,我當然希望系統和模型完全解耦,各做各的,但現實中有時你必須為基礎設施的約束去做出結構妥協。
很多時候我們追求的其實是一個“對稱型系統”——通信均衡、資源分配合理。
在這種情況下,協同設計就是我們最有力的工具。
奧特曼:那你覺得我們離你理想中的系統還有多遠?你有沒有那種“我終于滿意了”的時刻?
Amin Tootoonchian:我們離理想還遠得很,說實話。但這正是系統建設的樂趣:你總有一個理想藍圖,然后努力逼近它。我們不是為了空談理論,而是想盡辦法讓它變得現實,盡量貼近那個理想目標。
說實話,這可能是做系統最令人興奮的階段了。你能提出假設,然后很快驗證自己的設計是不是對的。過去,我們做出一個“優雅系統設計”,要靠時間慢慢驗證;現在,我們手上有算力、有目標、有問題,我們可以迅速去驗證自己的決策是否有效。
奧特曼:那你們團隊在規劃一次訓練時,會有多少精力放在“系統設計約束”上?
Alex Paino:非常多。我覺得從 GPT-4.5 開始,我們在模型架構方面就已經進入一個新階段。
我們不斷有新的探索,繼續推進協同設計,也在考慮如何為下一代硬件預留空間。
其實現在已經有不少令人振奮的成果了。
奧特曼:好,換一個問題:為什么無監督學習有效?
Dan Selsam:因為它本質上是“壓縮”。你可以用一個更哲學的理論來解釋:Solomonoff 歸納法。
它認為,一個理想智能體不知道自己身處哪種宇宙,所以它會考慮所有可能的宇宙,其中越簡單的宇宙被賦予更高概率。它是完全貝葉斯的,每次獲取新信息時都會更新自己的信念。
而預訓練模型在做的,其實就是在試圖找出一個“最短程序”來解釋人類世界中的所有數據,這是一種對理想智能行為的近似。
奧特曼:那為什么“預測下一個 token”可以實現這種壓縮呢?
Dan Selsam:這個問題其實挺微妙的。統計學上曾經有個類似的悖論:為什么深度網絡能泛化,而它們看上去并沒有壓縮數據?
你看,傳統統計里,模型小、數據多,模型能擬合數據,說明它“壓縮”了信息。
但現在的預訓練模型本身非常龐大,甚至跟數據量是同級別的, 那它到底是在壓縮、還是只是記憶?這就是核心謎題。
Dan Selsam:當然,也有批評者會說,預訓練只是記憶和插值,是表層的、不智能的。
但其實有一種角度可以讓我們看到:預訓練模型其實是一個“壓縮器”,雖然是不那么直觀的方式。
這個思路叫做 Prequel Compression(前向壓縮)。它的核心觀點是:如果一個模型能在訓練中學得很快,就說明它其實是個優秀的壓縮器。
即便模型權重很大,但“可執行文件”并不需要存儲所有權重 —— 它可以從零開始預訓練出一個“解壓器”。這意味著數據本身可以用非常少的位數進行編碼。
所以從這個角度看,預訓練確實是一個非常有效的壓縮過程,也正是它能帶來智能的原因。
奧特曼:你們還有什么想補充的嗎?
Alex Paino:沒有了,很精彩。
Amin Tootoonchian:我也是,謝謝你。
再談Scaling Laws:為何有效、為何這是符合宇宙規律的
Dan Selsam:我想順便提一個我們之前沒提到的點:“度量指標的選擇”是一個極其重要的學科。
你在做 scaling laws(擴展法則)和機器學習實驗時,最后的結果高度依賴于你選用的度量方式。
奧特曼:你具體指什么?能展開說說嗎?
Dan Selsam:你要不要來講講?
Alex Paino:我們說的“度量”,其實主要是:你在哪個測試集上去評估模型的“困惑度(perplexity)”。
Dan Selsam:是的,如果你光看 perplexity,很多人會誤以為我們是在看什么“大學測試題”。
Alex Paino:對,我們要不要解釋一下什么是 perplexity?
Dan Selsam:值得說說。
我們總是很想用人類可讀的測試來評估模型的智能——但如果你這么做,可能反而會鼓勵模型靠記憶取勝,而不是變聰明。
市面上幾乎所有測試題,在互聯網上都能找到類似版本。而如果你訓練數據包含了整個互聯網,那模型考這些題其實就不算本事了。
所以目前業內更主流的做法是:看模型在一組“高質量、未見過的數據”上的壓縮效果。但就算這樣,如果你對這個“held-out 數據集”選擇不夠嚴格, 而它又跟訓練集太像,那優化訓練算法只會讓模型更容易記憶,從而假裝自己變聰明了。
Alex Paino:是的,我們不想只測“記憶能力”,我們追求的是泛化能力。
特別是“分布外泛化”(Out-of-distribution generalization)。所以我們對驗證集的要求非常高:哪怕它和訓練集有一點點重合,都會毀掉我們的 scaling laws 分析。
這點特別關鍵。
奧特曼:那你覺得目前我們手頭最好的測試集是哪一個?
Alex Paino:我們自己的內部代碼庫。我們知道它不在外網,很適合當驗證集。
奧特曼:這個驗證集也被用于很多實驗吧?它還是最穩的嗎?
Dan Selsam:是的,依然是最有效的工具。我們甚至開玩笑說,一個模型的“靈魂”就藏在它壓縮“內部代碼庫”的能力里。
奧特曼:這聽起來像是一種“自指的、遞歸的哲學問題”……
Dan Selsam:一個模型如果在“內部代碼庫”上的 loss 很低,那你就能預測它未來會有怎樣的表現。這甚至可以告訴你,它在“哲學系研究生”的眼中,會展現出怎樣的細膩理解力(笑)。
奧特曼:確實不可思議!說到這里,我想問個“收尾大問題”:整個 GPT-4.5 的訓練,投入了巨大人力、時間、金錢……
它其實就是在驗證一件事:Scaling Laws 真的有效嗎?能走多遠?
現在看來,它確實有效,而且可能還能繼續有效很久。我已經把 scaling laws 當成類似“量子力學”那樣的規律接受了—— 但我還是搞不懂,為什么 scaling laws 是宇宙的屬性?
Amin Tootoonchian:我可以先說一點。
Dan Selsam:從哲學角度講,“壓縮越多,智能越強”這件事是有堅實理論基礎的。但問題在于:為什么你訓練更大的模型、更久,它就能“壓縮”得更多?我最喜歡的一個解釋是:這個世界的數據中,有用的概念其實是稀疏分布的,而且這是一種冪律分布:比如最重要的前 100 個概念,只在大約 1% 的文檔中出現。這說明世界是“長尾”的。
奧特曼:那是不是說,如果我們能構建一個完美的數據集,再配上高效算法,Amin 就可以回家退休了?
Dan Selsam:也許可以(笑)。這意味著,只要你在“數據選擇”上變得更聰明,就有可能獲得指數級的算力節省。
但現實中,我們還是主要在“被動地撈數據”。如果你只是海量采集數據,你每擴充 10 倍的訓練規模,可能只能挖掘“尾部新增”的幾個知識點。而那個尾巴還在不斷延伸。不過——正如你說的,我們確實有可能用更聰明的方式去挖它。
奧特曼:我覺得我們就停在這吧,非常感謝你們。太棒了,很有趣!