大型人工智慧研究機構在推動尖端模型開發時,算力資源的爭奪往往比演算法本身更具挑戰性。非營利研究機構艾倫人工智慧研究所(Allen Institute for AI,簡稱 Ai2)在技術部落格中分享了其基礎設施架構團隊近期針對內部 GPU 叢集排程器所進行的深度架構革新。這項改革打破了過去依靠優先級別與搶占限制的傳統調度邏輯,引進基於預算的層級公平共享機制與排程契約,在維持算力使用率高達 98% 的同時,化解了困擾團隊已久的資源霸佔與維護難題。
算力資源的公地悲劇與舊有機制的失靈
在 Ai2 的運算環境中,基礎設施團隊管理著數千張包括 NVIDIA H100、B200 與 B300 在內的高階繪圖晶片,叢集規模從 88 張到 1024 張 GPU 不等。這些硬體需支援約 150 名內部研究人員的多元工作負載,涵蓋大型語言模型(LLM)與視覺語言模型(VLM)的完整訓練流程、機器人強化學習(RL)模擬,以及科學智慧代理的後續訓練。由於研究需求旺盛,系統隨時都有比實體容量高出兩到三倍的待處理計算請求,意味著每小時的運算時間都面臨數個專案的激烈競爭。
在過去,Ai2 採用傳統的優先級排程器(priority-based scheduler),並允許任務選擇是否接受「搶占」(preemption,即為了讓高優先級任務插隊而強制中斷並移出正在運行的任務)。各團隊在不可搶占的任務數量上設有併發上限,而可搶占任務則能在閒置資源上超出該限制運作。這套看似靈活的規則迅速引發了嚴重的「公地悲劇」。
首先是「GPU 佔坑」(squatting)現象。由於臨時啟動除錯任務往往需要長時間排隊,研究人員為了能在發現問題時即時除錯,會預先在叢集中部署空轉或無實質作用的任務以常駐硬體,供自己隨時連線使用。其次是「優先級膨脹」,因為標記為高優先級不需付出額外代價,日積月累下所有工作都被提交為最高優先級,導致低優先級隊列徹底斷糧。最後,不可搶占的特權使得維運人員在面對硬體故障或例行維護時,必須花費大量時間與研究團隊逐一協商如何優雅關閉作業,嚴重消耗工程量能。
以「時間預算」取代「硬體壟斷」
為解決資源競爭,Ai2 團隊一開始嘗試劃分特定 GPU 群組給重點專案進行專屬壟斷。然而,科學研究具有週期性與突發性,特定團隊在沒有實驗進行時會導致昂貴的 GPU 閒置,而其他團隊卻無法使用,使得整體調度陷入靜態背包問題的困局。
基礎設施團隊體認到,資源分配的本質是一門結合演算法、經濟激勵與管理層級的課題。既然未來的科學實驗成果無法精確預測,但研究專案的策略重要性可以事前討論,管理層應轉化為「投資者」視角。團隊決定將分配標的從「實體 GPU」轉變為「GPU 時間預算」(GPU time budgets)。
在全新的層級架構下,高階管理者與專案負責人依據研究策略,自上而下逐層分配算力預算份額。例如某專案獲得總叢集容量 35% 的配額,無論其他隊列累積多少待處理任務,該專案都擁有該比例的保證時間。最關鍵的經濟學機制在於:所有享有保障的排程請求都必須扣除相應的時間預算。一旦霸佔硬體或掛機空轉,消耗的將是該團隊自身的真實預算,從而使投機取巧的代價高於正常協商。
分層公平共享演算法與動態時間片契約
為了具體執行預算配置,Ai2 導入了分層公平共享排程器(hierarchical fair-share scheduler)。該調度思維在巨量資料領域如 Hadoop Fair Scheduler 或高效能運算排程工具 SLURM Fair Tree 中已有長久應用,但 Ai2 的創新在於將排程權重完全動態綁定於內部管理組織樹與預算體系,而非靜態配額。
排程器採用預設 7 天的滑動回溯窗口(lookback window),持續監控各群組在該區間內的實際佔用情況。演算法會優先排程那些目前處於「配額未充分利用」狀態的工作負載,壓抑「過度使用」的隊列。此外,系統將運算狀態精細區分為兩類: 其一是「分配佔用」(allocated occupancy),此類任務會扣除所屬預算,並在合約規定的窗口內受到免遭搶占的保護; 其二是「未分配佔用」(unallocated occupancy),此類任務完全不扣除預算,但也隨時可被任何已付費的任務搶占。這項設計確保了當預算擁有者尚未準備好執行任務時,其他閒置資源能被充分借出,維持硬體滿載。
為了解決分散式訓練動輒數天甚至數週所造成的長期霸佔問題,Ai2 進一步建立了「排程契約」(scheduling contract)。每項任務在提交時必須宣告其「最短運行時間」(minimum runtime,上限設為 8 小時)。在此期間內,系統向研究者保證該任務享有穩定的免搶占保護以累積有效計算進度;一旦最短時間結束,任務即進入可中斷窗口,排程器有權為了整體公平性將其切換並自動重新排隊(requeue)。
這套機制本質上為長週期的深度學習訓練引入了時間分片(time-slicing)概念。它不僅徹底瓦解了長期佔坑的诱因,更使自動化維運成為可能:當實體節點發生異常時,系統只需等待受影響任務跑滿最低保證時間,便能自動排空工作負載並啟動維修,大幅減少人工作業。
模擬驗證與實際成效
在全面部署新排程器之前,Ai2 團隊透過歷史數據與特定情境打造了模擬環境,以評估配置參數對等待時間的影響。其中一個重要驗證目標為「除錯工作負載」(debug workloads),此類任務僅需少數 GPU 與 15 分鐘以內的確認時間。模擬結果顯示,在新的時間分片與公平架構下,這類短作業能夠迅速穿插進碎片空檔,P90 隊列等待時間從原本的 6 小時急遽縮減至 5 分鐘。
在經過叢集逐步推行後,生產環境的實際表現甚至超越了模擬預期: 第一,在 30 天的測試期內,全叢集保持了 98% 的高佔用率,各團隊平均獲得其應得算力預算的 98%,其中有 18% 的總時間來自零成本的「未分配佔用」,證明彈性填充機制能有效發揮效益。 第二,除錯作業的 P90 等待時間從過去的 2 小時大幅降低至 30 秒,使研究人員能快速驗證程式碼與啟動流程;在最大的 H100 叢集上,整體任務的中位數等待時間亦由 5 分鐘降至 24 秒。 第三,故障節點自動排空機制發揮了顯著效益,使得需要工程師手動介入的硬體修復工單大幅減少了 74%。
實務挑戰與未來演進
儘管整體排程效率顯著提升,系統轉換的過程仍帶來了非預期的摩擦。初期的主要阻礙來自使用者認知:部分介面保留了舊有名詞,導致研究人員對排程決策產生混亂與誤解。工程團隊發現單純提供文字說明文件成效有限,最終透過面對面的互動說明會與展示即時排程排隊儀表板,具體解說權重計算方式,才促使研究團隊轉為以理性預算溝通取代私下抱怨。
此外,該排程合約對部分仰賴長週期互動式工作站(interactive sessions)的研究人員造成了衝擊。部分開發者習慣長期佔用具備 GPU 的節點進行資料探勘與程式碼編寫,而在 8 小時強制限額下,未保存的暫存狀態可能在被搶占後遺失。為因應這項限制,Ai2 規劃將非訓練性質的資料準備工作分流至專屬的 CPU 運算叢集,並著手開發可保存與自動恢復的工作階段架構,避免高階 GPU 資源被非必要的互動式開發綁定。
同時,工程團隊目前正密切監控「算力碎片化」(capacity fragmentation)的潛在風險。由於越來越多中小型任務受到最短運行時間的保護,當面臨需要數百甚至上千張 GPU 的超大規模平行訓練任務時,排程器可能需要更長的時間等待足夠多的硬體同時釋出。
透過將經濟誘因融入系統排程演算法,Ai2 成功將算力爭端從被動的營運摩擦轉變為透明的策略資源管理。團隊表示,在奠定了硬體可用性(availability)、佔用率(occupancy)與影響力分配(impact)的基礎後,未來的核心技術指標將推進至金字塔頂端的「有效利用率」(utilization),持續在分散式訓練架構、檢查點儲存以及模型初始化流程中追求極致效能。
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。