OpenAI 歷時兩年打造的 GPT-4.5 代表著該公司迄今為止最具雄心的項目。這項龐大的工程集結了數百人的共同努力,OpenAI 的 CEO Sam Altman 指出,該項目幾乎需要整個組織的全力投入。
克服大規模訓練中的「災難性問題」
創建 GPT-4.5 的過程並非一帆風順。團隊在研究和開發階段遇到了許多「災難性問題」。利用由 10 萬個 GPU 組成的集群暴露了先前未曾見過的、低概率但影響深遠的基礎設施故障。為了在效率和最佳性能之間取得平衡,OpenAI 的系統團隊不得不採取「邊修邊做」的方法。一個特別難以捉摸的錯誤困擾著集群,導致頻繁的錯誤,直到大約 40% 的訓練過程完成後才被發現。
儘管面臨這些挑戰,GPT-4.5 項目促進了更穩健的技術堆疊的發展。如今,一個僅由 5-10 人組成的精簡團隊就能夠複製一個類似於 GPT-4 的大型模型。從 GPT-4 到 GPT-4.5 的性能提升了大約十倍,產生了「難以量化但在各個方面都有所增強的智能」,這一結果甚至讓 OpenAI 的員工都感到驚訝。
轉移焦點:從運算能力到數據效率
OpenAI 已經意識到,要實現下一個十倍或百倍的性能飛躍,關鍵不在於原始運算能力,而在於數據效率——具體而言,是在利用更多運算資源的同時,從相同數量的數據中提取更多知識的能力。
架構也在從單集群轉變為多集群模式。未來的訓練迭代可能涉及多達 1000 萬個 GPU 的協作學習,這就需要更高的容錯能力。
Sam Altman 與 GPT-4.5 團隊的對話
以下是 Sam Altman 與 OpenAI GPT-4.5 團隊討論的編輯匯編:
Sam Altman:構建像 GPT-4.5 這樣的大型模型需要做些什麼?
**Alex Paino:**我們大約在兩年前開始了這個項目。當時,OpenAI 即將推出一個新的大型計算集群,我們的團隊將此視為一個機會,進行一系列操作,以確定模型需要包含的功能,並進行了大量風險降低操作測試。
我們為此制定了一個長期的計劃,涉及從系統到機器學習的整個技術堆疊。降低風險並為訓練做準備是一個漫長的執行過程,而訓練本身也是一個非常大的項目。
**Amin Tootoonchian:**我認為這個過程需要機器學習團隊和系統團隊從一開始就緊密合作,直到我們明確想要訓練的模型,然後才能開始訓練。
我們在機器學習和系統方面都做出了預測,試圖盡可能縮小期望和現實之間的差距。但由於我們的工作節奏很快,而且必須使用最新的計算資源,因此模型訓練變得難以提前完美計劃。
我們幾乎總是在許多問題尚未解決的情況下開始訓練,並嘗試在操作過程中克服挑戰並取得進展。主要的解決方案是增加更多計算資源。
最後階段是執行,這需要許多人投入大量的精力和動力,長期才能完成訓練過程。
Sam Altman:您認為我們期望與現實之間的差距有多大?
**Amin Tootoonchian:**就系統而言,我們通常在開始時遠離預期狀態。我們總是面臨一個選擇:是推遲啟動並等待問題解決,還是提前啟動並在過程中解決問題。這總是需要權衡,以避免過程中出現不合理的延遲。
但幾乎總會有一些意想不到的問題,我們必須做的是盡可能多地處理這些節點,處理未知因素,並制定模型訓練計劃。
**Alex Paino:**在這個項目中,我們的目標是打造 GPT-4.5,這意味著它的能力應該比 GPT-4 聰明 10 倍。這是我們大約 2 年前設定的最初目標。
這個過程中發生了很多事情。我們一直在思考我們是否可以做得更好,還是會比預期的更糟?這是一個非常複雜的過程,但最終,就我們投入的有效計算而言,我們得到了一個我們認為比 GPT-4 聰明 10 倍的模型。
**Amin Tootoonchian:**就執行而言,GPT-4.5 項目花費的時間遠遠超出我們最初的預期。
Sam Altman:為什麼當集群從 10,000 張卡擴展到 100,000 張卡時,你們會遇到這麼多問題?
**Amin Tootoonchian:**我認為如果系統開發人員足夠敏感,大多數問題都可以在小規模階段觀察到。
有些問題並非大型訓練階段所獨有,而是之前經常發生,但在規模擴大後會變成災難性問題,尤其是在團隊沒有預料到這些問題會惡化到如此程度的情況下。
Sam Altman:什麼事情導致了災難性後果?
**Amin Tootoonchian:**我認為基礎設施問題是眾所周知的,無論是故障率、故障類型還是故障總量都非常高。100,000 張卡的集群是一個大型樣本池,因此我們也發現了計算能力供應商沒有觀察到的問題。
網絡是其中之一,單個加速器也可能存在問題。但這也是這個系統的美妙之處——幾乎所有組件都需要按預期工作才能產生預期結果。我們的工作是盡可能減少這個問題。
Sam Altman:在集群規模的極限下工作確實很困難,但我也注意到,做那些不再處於技術前沿的事情變得容易多了。訓練 GPT-4.5 需要數百人,而 OpenAI 幾乎所有人都參與其中。
但今天,如果讓您從 OpenAI 中選出最小的團隊,並利用我們所知道的所有知識和系統工作,從頭開始重新訓練 GPT-4,需要多少人?
**Alex Paino:**我認為現在可能需要大約 5 到 10 個人才能做出一個 GPT-4 級別的模型。在完成 GPT-4.5 的過程中,技術堆疊得到了極大的改進。
事實上,我們在訓練 GPT-4.5 的過程中也做了類似的事情——我們訓練了 GPT-4o,這是一個 GPT-4 級別的模型,並使用 GPT-4.5 研究項目中的大量相同內容重新訓練了它。用於該訓練的人員更少。
Sam Altman:從您的角度來看,Dan?訓練大型模型為什麼這麼困難?
**Daniel Selsam:**我認為做任何新的事情都很困難。我認為即使只是發現別人做過某事也會讓事情變得容易得多,因為最難的部分是首先有信心去做某事。我認為僅僅知道某事是可行的,就是一個超級作弊碼,可以讓事情變得容易得多。
**Alex Paino:**我們正在將 GPT 預訓練運行擴展到之前的 10 倍大小,而且我們總能發現一些你無法預測的有趣的新事物。
Sam Altman:要實現預訓練規模的下一個 10 倍或 100 倍增長,需要什麼?
**Daniel Selsam:**數據效率。Transformer 架構(即 GPT)在利用數據方面非常有效。它可以很好地吸收和壓縮信息,並實現泛化。它最大的特點是它可以有效地利用計算資源吸收信息。
但是,它從數據中獲得的洞察深度是有限的。當計算能力快速增長而數據增長相對緩慢時,數據就成為這個標準模型的瓶頸。這就需要算法創新來開發能夠使用更多計算能力從相同數據量中學習更多知識的方法。
Sam Altman:您認為我們還需要什麼來維持擴展?
**Amin Tootoonchian:**我的答案是關於系統的。我認為 GPT-4.5 所需的大量工作本質上是模型規格不可避免的結果。我們不能使用與 GPT-4 完全相同的技術架構來訓練 GPT-4.5。
就狀態管理而言,由於所需的計算資源已經超過了單個集群的容量,我們不得不轉向多集群訓練架構。為了實現這個目標,我們必須在短時間內整合多個不同的工作流程。
儘管這確實幫助我們實現了階段性突破,但要實現下一個數量級的性能提升,我們仍然需要解決幾個已知但暫時擱置的技術問題——這些問題是無法避免的。正是這種技術權衡不斷延長了完美系統的研發週期,我們總是在追求最佳實現方案的過程中做出戰略性權衡。
需要明確的是,系統本身並不是最終目標,它的實際輸出值才是核心考慮因素。對於下一個 10 倍的性能提升,我認為容錯方面的突破至關重要。我們需要構建一個與工作負載深度協同的容錯機制,以顯著降低運營和維護的焦慮。當前超大規模系統的運營和維護複雜性本質上與以前的系統不同。
Sam Altman:您知道在 GPT-4.5 訓練期間,某些組件導致的故障百分比是多少嗎?
**Amin Tootoonchian:**我沒有具體數字可以分享,但總的來說,在部署新一代硬件的早期階段,系統運營通常面臨許多尚未完全理解的技術挑戰。我們選擇在問題完全明確之前推進項目,這導致了較高的初始故障率。
但經驗表明,隨著根本原因被識別和解決,故障率將顯著降低。這種現象本質上反映了我們對基礎設施的深入理解——有些人稱之為清理基礎設施或理解基礎設施的基本問題。
執行的早期階段幾乎總是相當痛苦的。在推進項目的同時,我們也在不斷發現和解決新的故障模式,但故障率會逐漸降低,正常運行時間會變得更長。
這本質上是一個優先級權衡的問題:在基礎設施生命週期的早期階段,其故障風險通常難以準確估計;如果我們過度追求最終的理想狀態(原文是“City Estate”,理想的城邦設計),可能會導致系統在早期階段的可用性性能極差。
Sam Altman:儘管理論模型是我們未來技術堆疊的關鍵組件,但讓我們暫時關注傳統預訓練模型的開發邊界。假設我們擁有無限的 GPU 計算能力、無限的網絡帶寬和無限的電源,但仍然受到現有技術瓶頸的限制——包括系統可靠性問題、缺乏容錯訓練方法以及現有數據集的限制。
根據我們在每個主要 GPT 版本號中實現 100 倍規模增長的演化規律,基於當前的技術邊界,預訓練模型的發展可以達到什麼水平?具體到 GPT 系列模型,以我們現有的知識體系,理論上我們可以訓練出什麼樣的模型?可以製造 GPT-5.5 嗎?
**Alex Paino:**從機器學習和算法開發的角度來看,我們尚未達到明確的理論上限。事實上,我們才剛剛開始探索具有更高數據效率的算法以及如何更充分地利用現有數據資源。這種情況非常有趣——即使像 GPT-4 這樣的模型,也主要是在有限的計算資源的約束下開發的,這也決定了之前大多數研究的方向。
但現在的情況完全不同了。自 GPT-4.5 以來,在某些關鍵維度上,數據而非計算正在成為主要的約束。這種轉變使得相關研究不那麼令人興奮。
Sam Altman:但這確實是一個了不起的進步,世界可能尚未充分意識到計算資源不再是我們可以構建的最佳模型的主要瓶頸。這種變化是深刻的,畢竟,我們在計算受限的環境中生活了太久。
Sam Altman:在訓練 GPT-4.5 的過程中,我們學到的最有趣的機器學習經驗是什麼?只說說你想分享的。
**Amin Tootoonchian:**總的來說,最發人深省的是那些偏離我們預測的情況——特別是當我們試圖理解為什麼實際性能偏離預期曲線時。
**Alex Paino:**我們最令人驚訝的發現之一是,不同機器學習組件的可擴展性性能差異很大。有些部分可以很好地擴展,而另一些部分則不能。這是我們在實際訓練過程中真正意識到的。這種經驗給了我們很多啟發。
**Daniel Selsam:**我認為 GPT 範式的兩個核心特徵是:首先,測試損失(一種衡量模型在未見測試數據上的性能的指標)可以準確預測;其次,模型性能隨著規模的擴大而呈現出可預測的改進。更神奇的是,測試損失的減少將轉化為各個方面都有所增強的智能水平,這些方式難以量化但令人驚嘆。
Sam Altman:您對此絕對樂觀嗎?您完全同意這種觀點嗎?
**Daniel Selsam:**實際上,我想說的是,我們在 GPT-4.5 測試中發現了特別有趣的現象——經過重新測試,該模型展現出許多完全超出所有人預期的微妙能力。
我們確信它會在各種無法提前定義的方式變得更聰明,並且在實際部署後,我們可以從用戶滿意度中觀察到這些微妙的改進水平:更強的常識儲備、更準確的上下文理解能力以及更精細的語義掌握——這正是那些額外測試損失帶來的魔力。在我看來,Scaling Law 在這個維度得到了完美的驗證。
Sam Altman:在整個訓練過程中,最積極的時刻是什麼?你最喜歡的回憶是什麼?顯然有很多痛苦,但我希望這些痛苦已經得到緩解。
**Alex Paino:**我的確有這樣一個時刻。我們在訓練過程中做了很多機器學習工作。我認為我們在操作過程中做出的一些改變產生了相當好的影響,可能比預期的更好,這對我們來說是一個非常激動人心的時刻。
**Amin Tootoonchian:**對我來說,在訓練的同時,我們也在構建基礎設施。我們堅信我們可以跨越這個性能懸崖,而且我們有一個計劃,每個人都在執行它,但這需要很長時間。這是一項艱苦的工作,而且肯定比我想像的要困難。我的預測是錯誤的,我低估了解決這些問題所需的時間。
當團隊最終克服了那些關鍵問題並且性能顯著提高的那一刻,我仍然記憶猶新。你可以清楚地感受到整個團隊的能量轉變——每個人都突然充滿能量,並以新的動力衝向最終目標。
最神奇的是,我們狀態追蹤器上顯示的估計完成時間從最初的兩年不斷縮短,並最終鎖定在一個清晰的時間節點上。這種可見的進展對團隊士氣有著不可估量的提升。我認為這就是它的美妙之處。
我想強調的是,機器學習工作從未停止。即使在訓練開始後,這種機器學習協同設計過程仍在繼續。機器學習團隊不僅積極跟進那些被標記為“後續處理”的問題,還不斷提供真正優化訓練時間的改進。
這完美地反映了我們的團隊精神——這裡沒有“各人自掃門前雪”的工作邊界,而是真正無縫的協作,而這種凝聚力是我們最大的優勢。
Sam Altman:外界對這次訓練本身的挑戰和預測準確性進行了很多討論。但事實上,所有這一切都基於極其徹底的計劃——您能否更詳細地談談這一點?
**Alex Paino:這絕對是我們迄今為止最徹底的計劃。**正如我所說,我們在正式開始訓練前一年就開始為這個項目做準備。在此期間,我們進行了多次大規模的風險控制測試。
我們特別注意逐步引入所有改進:從高可信度的基本配置開始——可以理解為類似於 GPT-4 的成熟架構,我們在機器學習層面已經完全掌握了這種配置——然後像構建塊一樣逐層添加新功能。
關鍵是在不同規模下嚴格驗證每個改進的可擴展性:不僅要看性能改進,還要確保這些改進隨著模型規模的擴大而繼續有效。許多改進在小規模測試中表現良好,但在大規模應用中會失敗。
因此,我們在整個過程中都保持著高度的警惕,並不斷迭代和改進我們的擴展規律方法論。通過這種風險控制實踐,我們積累了大量寶貴的經驗,這些經驗將繼續指導未來 GPT 系列模型的發展。
**Amin Tootoonchian:**我記得一個特別有趣的時刻,我非常懷念。你知道,我們幾乎每次開始訓練任務時都會遇到各種錯誤。這已經是司空見慣的事情了。但關鍵是要確保進度不受阻礙,並且始終確認當前進度確實在正確的軌道上,以及這些錯誤是否會對訓練的健康產生致命影響。
儘管我們最初非常有信心存在重大缺陷,但通過我們構建的整個監控系統,我們已經能夠準確地區分問題的根本原因:是硬件故障嗎?是什麼類型的硬件故障?是數據損壞嗎?還是機器學習模型本身的錯誤?還是代碼中的競爭條件?
當時,我們同時打開了多個問題討論區,有各種各樣的症狀。經過一系列的錯誤修復,我們陷入了困境:我們面前有多個未解決的問題,每個人都在絞盡腦汁——這些是由於不同的錯誤引起的嗎?還是是一個錯誤在起作用?
後來,我們舉行了一次投票,讓團隊成員投票選出最可能的根本原因。最沒有希望的選項擊中了真相:原來 PyTorch 上游的 torch.sum 函數存在問題,一個簡單的求和運算。
這個錯誤特別有趣。你知道,我們主要使用 Triton 內核,我們只會在一些不重要的邊緣場景中回退到 torch 運算。而且我們的特定代碼路徑觸發的 torch.sum 函數錯誤會由於數據分佈特性而意外導致非法內存訪問——它在計算內存偏移時出錯了。
最戲劇性的是,當一位工程師最終定位到問題並提交了修復程序時,所有具有不同症狀的錯誤報告都消失了。每個人都興奮地將 Slack 頻道從“多錯誤理論”改為“單錯誤理論”,現場非常歡樂。
這個錯誤潛伏了多久?它自訓練的早期階段就存在了,直到進度條通過大約 40% 時才被識別出來。發現過程也充滿了戲劇性:當時,一個複雜的內核依次調用序列,第二次調用觸發了非法內存訪問。
儘管這種崩潰頻率極低(每幾百甚至幾千個訓練步驟才會發生一次),但它很容易被忽略為偶爾發生的故障,但我們團隊的準則是:絕不放過任何異常。這個故事最精彩的部分在於這種不輕易放棄的毅力。
Sam Altman:在 GPT-4.5 預訓練開始後,你們還需要做些什麼?
**Alex Paino:**我們所有人都需要經常觀察損失曲線。此外,我們需要繼續優化系統並改進在訓練開始前未完成的協同設計。我們密切監視訓練過程中的各種統計數據,以確保沒有出現意外趨勢。同時,我們從機器學習的角度探索可能的改進計劃。儘管在預訓練開始後,數據層面的工作將暫時減少,但仍有大量任務需要處理。
**Amin Tootoonchian:**我認為機器學習在很大程度上取決於正確性判斷。在預訓練開始後,面對大量噪聲信號,我們就像解讀茶渣的算命先生一樣,需要判斷系統是否健康。這是我們的責任。
Sam Altman:在系統層面,什麼會限制我們進行模型訓練?是芯片、處理器、內存、網絡還是電源?
**Amin Tootoonchian:系統的美妙之處在於,在進行協同設計時,工作負載可以適應您構建的基礎設施。**沒有通用的說法說網絡是瓶頸,或者內存帶寬是瓶頸等等。即使對於相同規格的模型,我們也可以選擇轉移資源需求。我們可以選擇創建一個更平衡的系統,但擁有更多的內存帶寬總是有益的。不限制條件很難回答這個問題。
在設計 GPT-4.5 時,我們可能需要在系統中擁有某個屬性,這個屬性需要通過人類的指導來生成。因此,協同設計對於形成模型架構和架構元素非常重要,並且在一定程度上將系統和機器學習方面聯繫起來。如果系統具有我們不希望擁有的屬性。我理想的情況是,一切都應該解耦,以給予彼此最大的空間。
有時事情是聯繫在一起的,我們需要滿足基礎設施的要求,或者事情應該是這樣的。大多數時候,我們需要一個平衡的系統,一個平衡的溝通。而我們擁有的最佳監管手段就是所有這些協同設計。
Sam Altman:我們離這樣一個理想的系統目標還有多遠?
**Amin Tootoonchian:**我們離那個目標還很遠。構建系統的過程總是這樣的:首先有一個理想化的觀點,即事情應該如何運作,然後那些差異會與現有資源協調。
我不認為我們為了理論而做理論,只是為了討論我們希望它變成什麼,去實現它,並盡可能接近那個理想。這可能是系統領域最令人興奮的部分。人們過去常說這是一個優雅的系統設計,最終歷史會告訴我們這個選擇是對還是錯。
Sam Altman:如果您能在下一次大型訓練之前獲得一個機器學習問題的答案,您最想知道什麼?
**Alex Paino:**我想知道在有限的數據和特定領域下,我們應該使用哪些算法。儘管這是一個廣泛的問題,但它確實是最關鍵的問題。
Sam Altman:您未來會使用 1000 萬個或更多 GPU 進行同步預訓練嗎?
**Alex Paino:**我認為會有,但它可能不是傳統的預訓練模型。它的形式可能與現有技術非常不同,但它仍然會保留無監督學習的核心。
**Amin Tootoonchian:**我更喜歡半同步模型。由於物理定律,完全同步不是很現實。
**Daniel Selsam:**我認為它更有可能是分散的。肯定會有 1000 萬個 GPU 在一個學習和執行任務的 AI 系統中協同工作,但就像大腦的各個部分一樣,它們可能不一定會相互通信。
Sam Altman:當前最先進的算法與人類數據效率之間有多大差異?未來有可能趕上嗎?
**Daniel Selsam:**這兩者很難直接比較。語言學習方面的差距肯定很大。關鍵在於如何定義人類視覺神經接收到的信息量。我認為算法的整體數據效率遠低於人類。
幾十年來,深度學習一直專注於計算效率。除了數據和計算能力的增長之外,真正令人驚訝的是算法改進產生的疊加效應。每次算法性能提高 10% 或 20%,都會對數據效率產生顯著影響。到目前為止,還沒有圍繞數據效率進行這種動員,因為當數據沒有流動且計算能力有限時,這是沒有價值的。
現在,我們正在進入 AI 研究的新階段,我們將開始積累數據效率的勝利。我認為現在預測我們會遇到無法克服的障礙有點愚蠢。人腦的運作方式肯定不同於我們的算法改進,我們應該在這方面保持謹慎。但我認為我們應該對算法的未來發展保持樂觀。
Sam Altman:更大規模的預訓練與模型更強的學習和推理能力之間有什麼關係?
**Alex Paino:**我們觀察到的是,更好的預訓練和無監督學習往往可以提高模型的整體智能,並極大地幫助泛化,這與推理能力是互補的,而推理在提高智能方面可能有點遲鈍。我認為它們是互補的。
Sam Altman:預訓練似乎在很多事情上都是通用的,而訓練一個模型只能讓它在一種類型的事情上做得很好,是這樣嗎?
**Alex Paino:**這非常有趣,但當你看到訓練它們的數據時,你不會對這種情況感到驚訝。預訓練數據集的範圍非常大,我們追求的是廣度和多樣性。當涉及到模型強化學習並使其清楚地獲得良好的獎勵信號和良好的訓練環境時,我認為很難考慮到數據集的廣度。
**Daniel Selsam:**我同意,但我認為還有另一個因素。預訓練本質上是在壓縮數據,從而發現不同事物之間的聯繫。它是關於類比和更抽象的。推理是一項需要仔細思考特定問題的技能,也可以獲得許多類型問題的解決方案。但在預訓練過程中,可以在跨不同領域壓縮數據時學習到更抽象的知識。
Sam Altman:為什麼無監督學習有效?
**Daniel Selsam:**關鍵是壓縮。智能的理想形式是 Solomonov 感應。總的來說,機器學習會考慮所有可能性,但傾向於從更簡單的程序開始進行測試。
當前預訓練的本質是一個壓縮過程,它通過找到解釋人類迄今為止產生的所有數據的最簡單的程序來實現近似表達。
Sam Altman:下一個 Token 預測如何幫助實現壓縮?
**Daniel Selsam:**統計學中存在一個悖論——為什麼深度網絡似乎無法壓縮但可以實現泛化?通常來說,當您擁有大量數據和一些小型模型時,這些模型必須經過壓縮才能學習到一些東西。
在預訓練中,數據和模型的規模都非常大。有些人認為這種訓練只是記憶和插值學習。事實上,他們忽略了理解壓縮的另一個視角——預序列壓縮。它就像一個壓縮器。即使數據權重非常大,二進制也不需要存儲這些信息。下一個 Token 預測的結果可以快速檢索有用的信息並提高壓縮效率。
Sam Altman:訓練 GPT-4.5 的過程耗費了大量的人力、時間和金錢,實際上可以看作是一個驗證 Scaling Law 的實驗,結果證明它是有效的,並且會持續很長時間。為什麼 Scaling Law 可以被稱為宇宙的法則?
**Daniel Selsam:**壓縮程度越高,智能就越強大,這具有深刻的哲學含義。為什麼訓練更大的模型需要更長的時間,並且壓縮率更高?這涉及許多理論,其中我喜歡稀疏表示。
現實中的關鍵概念遵循冪律分佈。例如,第 100 個最重要的概念可能只會在每 100 份文檔中出現一次,並且存在明顯的長尾效應。這種分佈特性意味著需要大規模的數據和計算能力才能有效地捕獲所有關鍵概念,並且也決定了 Scaling Law 將長期有效。