中央研究院人工智慧大樓的負三層,是未來科技最耗電、最燒錢的地方。四排黑色的機櫃整齊排列,每排十六個,共六十四台定製化AI訓練伺服器晝夜不停地運轉。機櫃表麵貼著溫度感測器,實時資料顯示在牆上的監控大屏:45.3℃,46.1℃,47.8℃……空調係統在全功率執行,但依然壓不住這些「算力怪獸」散發的熱量。 【記住本站域名 超便捷,隨時看 】
趙靜站在監控屏前,已經盯著那條曲線看了二十分鐘。那是「小芯」3.0大模型過去七天訓練損失的下降曲線。按照計劃,曲線應該平滑地向右下方延伸,顯示模型正在持續學習。但現實是,曲線在三天前開始劇烈震盪,昨天下午甚至出現了罕見的反向上升,這意味著模型不但沒有進步,反而在某些方麵退步了。
她身後站著五名核心演演算法工程師,每個人都臉色凝重。空氣裡除了伺服器風扇的低頻嗡鳴,就隻有空調出風口的氣流聲。
「還是沒有找到原因?」趙靜沒有回頭,聲音在空曠的機房裡顯得格外清晰。
站在最左邊的年輕工程師扶了扶眼鏡:「我們排查了所有可能:資料清洗流程沒問題,訓練程式碼沒有bug,硬體監控顯示所有GPU都在正常工作,記憶體和視訊記憶體使用率都在安全範圍內。」
「但損失函式就是震盪。」趙靜轉過身,目光掃過每個人的臉,「而且震盪幅度越來越大。昨天下午那個峰值,損失值回升到了十天前的水平。這意味著我們過去一週的訓練,可能白費了。」
這句話讓所有人都打了個寒顫。過去一週,這六十四台伺服器消耗的電費就超過八十萬,更別說研發人員的工時成本。如果訓練真的出了問題需要回滾,損失遠不止金錢,更是寶貴的時間。
「張博到了。」一名助理從電梯間小跑過來,壓低聲音說。
趙靜眼睛一亮:「快請他進來。」
被稱為張博的男人四十出頭,穿著樸素的白襯衫和牛仔褲,背著一個磨損嚴重的雙肩包。他叫張景明,國內頂尖的機器學習理論學者,三個月前被趙靜以「訪問學者」名義請來,專門研究大模型訓練中的穩定性問題。此人性格孤僻,不善交際,但論文被引用次數在亞洲區排前三。
「資料。」張景明走到監控屏前,隻說了一個詞。
工程師立刻調出詳細日誌:每一輪訓練的引數更新幅度,梯度分佈統計,啟用函式輸出範圍,權重矩陣的奇異值分解結果……數十個維度的監控資料以圖表形式展開,密密麻麻布滿了八塊螢幕。
張景明沒有看螢幕,而是從揹包裡掏出自己的膝上型電腦,連線上內部網路。他的電腦桌麵上沒有任何花哨的桌布,隻有幾個命令列終端和一個自製的資料視覺化工具。
「給我過去兩周的完整梯度歷史,按層、按頭、按batch分別匯出。」他的手指在鍵盤上飛舞,敲擊聲又快又輕。
機房裡的氣氛變得更加緊張。所有人都知道,張景明正在嘗試一種很少有人用的診斷方法,分析訓練過程中梯度的微觀動態。大多數團隊隻關心損失函式這個宏觀指標,但張景明認為,大模型訓練中的很多問題,早在損失函式震盪之前,就已經在梯度層麵顯露徵兆。
資料匯出需要時間。伺服器陣列的指示燈規律閃爍,硬碟讀寫的聲音像細密的雨點。趙靜讓助理給大家倒了咖啡,但沒人有心思喝。
二十五分鐘後,張景明的螢幕上開始出現複雜的多維圖表。他用自己編寫的工具將數百GB的梯度資料壓縮成視覺化的模式,不同顏色代表不同網路層,點的位置和大小代表梯度的大小和方向,時間軸則用動畫形式展現。
「看這裡。」張景明按下了暫停鍵,指著螢幕上一片區域,「第32層到第35層,注意力機製中的查詢-鍵值投影矩陣,梯度方向在過去四十八小時內出現了係統性偏移。」
趙靜湊近螢幕:「這意味著什麼?」
「意味著模型在試圖學習某種模式,但遇到了內在衝突。」張景明調出另一組資料,「再看對應的啟用值分佈,這幾個層的神經元輸出正在逐漸兩極分化,一部分神經元的啟用值趨近於零,另一部分則飽和到上限。」
「死亡神經元問題?」一名工程師問。
「比那更複雜。」張景明放大了一個區域性區域,「注意觀察梯度方向的變化頻率。它不是在隨機震盪,而是在兩個對立方向之間規律擺動。這通常意味著,訓練資料中存在某種矛盾的模式,或者模型架構在某些場景下存在歧義性。」
他調出訓練資料集的統計資訊:「『小芯』3.0用了多少資料?」
「目前是1.2萬億token,混合了中文、英文、程式碼、學術論文和高質量對話資料。」趙靜回答,「清洗過程非常嚴格,去重、去毒、質量過濾都做了。」
「資料配比呢?」
「中文40%,英文35%,程式碼15%,其他10%。」
張景明點點頭,在鍵盤上敲了幾個命令,調出一個他自己訓練的診斷模型:「我懷疑問題出在多語言對齊上。大模型需要學習不同語言之間的對應關係,但當語言特性差異太大時,某些底層表示可能會互相衝突。」
他展示了一個簡化的示例:「比如中文裡『含蓄』這個概念,在英文中沒有完全對應的詞,需要多個詞和語境共同表達。模型在試圖為這類概念學習跨語言表示時,可能會遇到梯度衝突,中文語料告訴它往A方向優化,英文語料告訴它往B方向優化。」
「所以損失函式震盪是因為模型在『左右為難』?」趙靜理解了。
「可以這麼理解。」張景明說,「但更深層的問題是,隨著模型引數規模增加到萬億級別,這種衝突會被放大。小模型可以通過犧牲某些能力來妥協,但大模型理論上應該能同時掌握多種模式,前提是訓練過程足夠穩定,能讓它找到那個高維空間中的平衡點。」
他關掉診斷工具,看向趙靜:「你們用的優化器是什麼?學習率排程策略呢?」
「AdamW優化器,餘弦退火學習率,warmup(預熱)階段用了五萬步。」工程師調出超引數配置。
「試試換成Lion優化器。」張景明建議,「雖然理論性質不如AdamW清晰,但在我們最近的實驗裡,它對梯度衝突的魯棒性更好。另外,學習率可以再降低一個數量級,延長訓練時間。」
「降低一個數量級?」有人驚呼,「那訓練週期要從三個月延長到兩年!」
「或者增加batch size(批次大小),保持總計算量不變。」張景明平靜地說,「但問題是,你們的硬體允許嗎?」
所有人看向那排伺服器。每台伺服器搭載八張最新的「悟道2.0」AI訓練晶片,每張晶片的視訊記憶體是80GB。當前的batch size已經調到了硬體極限,再大就會爆視訊記憶體。
「我們可以用梯度累積……」一名工程師剛開口,就被張景明打斷了。
「梯度累積隻能模擬**atch,不能解決表示學習中的根本衝突。而且會增加通訊開銷,訓練更慢。」
機房陷入沉默。問題似乎又繞回了原點:要麼接受極慢的訓練速度,要麼想辦法解決硬體限製。
趙靜的手機震動起來。她看了一眼來電顯示,是陳醒。
「情況怎麼樣?」陳醒的聲音從聽筒傳來,背景音裡有機器的運轉聲,他應該還在某個實驗室。
趙靜走到機房角落,壓低聲音匯報了張景明的發現。
電話那頭沉默了幾秒,然後陳醒說:「也就是說,我們遇到了大模型訓練的典型瓶頸:資料、演演算法、算力,三個因素互相製約。」
「是的。張博認為,如果我們不改變訓練策略,『小芯』3.0可能永遠無法達到設計目標。損失函式的震盪會越來越嚴重,最終導致訓練崩潰。」
「他有什麼具體建議?」
「換優化器,降學習率,可能需要重新設計部分模型架構來緩解多語言衝突。但這些都需要時間驗證,而且……」趙靜猶豫了一下,「可能會推遲原定於明年六月的發布計劃。」
「推遲多久?」
「至少六個月。這還是樂觀估計。」
電話裡傳來陳醒深吸一口氣的聲音。趙靜能想像他此刻的表情,眉頭緊鎖,手指無意識地敲擊桌麵,那是他麵對重大決策時的習慣動作。
「如果……」陳醒緩緩開口,「如果我們不追求單一的超大模型,而是轉向模型矩陣呢?」
「模型矩陣?」
「對。一個大模型解決所有問題的路線,可能已經遇到邊際效應了。與其把所有資料塞進一個萬億引數模型,不如訓練一組專家模型,每個專門負責某個領域或語言,然後用路由機製動態組合。」
趙靜快速思考這個方案的可行性:「這樣訓練複雜度會降低,單個模型的引數規模可以控製在百億級別,梯度衝突問題會緩解。但整合多個模型需要更複雜的前端和後端架構,推理延遲會增加,而且模型之間的知識遷移可能是個問題。」
「但至少能走通。」陳醒說,「現在的首要任務,是讓『小芯』3.0專案產出可用的成果。我們等不起兩年。」
「我明白了。」趙靜點頭,「我會和張博討論模型矩陣方案的細節。」
結束通話電話,趙靜回到人群。張景明正在白板上畫著複雜的數學公式,試圖從理論上推導梯度衝突的臨界條件。
「張博,有個新想法。」趙靜打斷他,「如果我們不做單一萬億模型,而是做十個千億引數的專家模型,組合成模型矩陣呢?」
張景明停下筆,思考了大約一分鐘:「技術上可行。專家模型訓練更穩定,可以針對不同資料型別做差異化優化。但路由網路的設計是關鍵,如果路由不準,整體效能會下降很多。」
「路由網路可以用一個小型大模型來實現,專門學習如何分配問題給專家。」
「那相當於多了一層模型,增加了係統複雜性。」張景明擦掉白板上的一部分公式,開始畫新的架構圖,「不過……這確實是個出路。而且專家模型可以並行訓練,縮短總體時間。」
他越說越快:「我們可以把現有資料按語言和領域重新劃分,中文語料訓練兩個專家,英文語料訓練兩個,程式碼一個,學術一個,對話一個……剩下四個做多模態預留。路由模型用百億引數就夠了,專門學習任務分類和專家選擇。」
在場的工程師們開始興奮起來。困擾他們數周的問題,似乎找到了一個可行的解決方案。雖然這意味著要放棄「訓練出世界頂尖單一模型」的野心,但至少能保住專案,產出可用的產品。
「需要多少時間重構?」趙靜問。
張景明心算了一下:「資料重新劃分和預處理,兩周。專家模型架構調整,一週。分散式訓練框架修改,一週。所以最快四周後可以重新開始訓練。」
「原計劃的發布目標需要調整嗎?」
「需要。」張景明很直接,「模型矩陣的綜合能力肯定不如設計中的萬億模型,尤其在需要跨領域推理的複雜任務上。但單領域任務的表現可能會更好,因為每個專家都更專注。」
趙靜點點頭。這是個取捨,用通用能力的下降,換取專業能力的提升和專案的存活。
「好,我向陳總申請調整專案目標。」她作出決定,「在這之前,張博,請你帶領演演算法團隊,在一週內完成詳細的實施方案。我需要知道具體的架構設計、訓練計劃、資源需求和風險評估。」
「可以。」張景明收拾起膝上型電腦,「但有個問題,模型矩陣需要更多的推理算力。十個專家模型加一個路由模型,即使有動態載入機製,記憶體占用也會是單一模型的三到四倍。這意味著我們的『悟道』晶片需要更強的記憶體子係統,或者……」
「或者我們需要新的晶片架構。」趙靜接上了他的話。
兩人對視一眼,都看到了對方眼中的憂慮。「小芯」3.0的訓練瓶頸,最終可能還是要回到算力這個根本問題上。而算力的突破,又依賴於晶片設計的進步,依賴於「悟道」團隊的下一輪創新。
但至少現在,他們有了一個前進的方向。
機房的伺服器依然在運轉,損失函式曲線還在震盪。但工程師們已經行動起來,開始備份當前狀態,準備重啟訓練流程。
趙靜看著這一切,心中那根緊繃的弦稍微鬆了一些。她知道,這隻是暫時的緩解,不是根本解決。模型矩陣方案會帶來新的挑戰:如何保證專家之間的知識共享?如何處理需要多個專家協作的複雜任務?如何在推理時控製成本?
但至少,他們沒有被困在原地。
她走到窗邊,負三層沒有自然光,隻有人造光源在金屬機櫃上反射出冰冷的光澤。這些機器消耗著巨大的能源,進行著人類難以直觀理解的計算,試圖從海量資料中提取出智慧的規律。
這個過程充滿不確定,充滿試錯,充滿從理想到現實的妥協。
而今天,他們又做出了一次妥協。
但趙靜相信,隻要還在前進,還在學習,還在嘗試,那些今天看似妥協的選擇,或許會在未來某個時刻,成為通向更優解的必要步驟。
她拿出手機,開始起草給陳醒的匯報郵件。標題是:「關於『小芯』3.0專案戰略調整的建議」。