← 返回首頁
Swarnim Jain
Swarnim Jain
@swar_ja
3,260🔁 264
𝕏 (Twitter)🔥🔥🔥

AI 語音朗讀 · Edge TTS

AI 中文摘要Claude 生成

零配置分散式訓練框架的實現

Swarnim Jain 開發了 Grove,一個突破性的分散式機器學習訓練庫,讓 MacBook 無需任何設定就能自動發現彼此並協力訓練模型。核心創新在於利用 Apple 設備內建的 AWDL(Apple Wireless Direct Link)協定繞過網路限制,這正是 AirDrop 背後的技術。

系統架構與發現機制

Grove 採用混合連線策略,根據網路環境自動切換最優路徑:

  • 裝置發現始終透過 AWDL 進行,不受網路限制(包括 eduroam 等封鎖對等流量的大學網路)
  • 偵測到共享 WiFi 時自動升級至直接連線以獲得更高速度
  • 若無法建立 WiFi 直連,所有通訊回退至 AWDL 並離線運作
  • 使用 Bonjour 掃描 _grove._tcp 服務進行叢集發現,使用者透過實時更新的互動式選擇器加入

作者認知到 Python 無法直接存取 Apple 的 Network.framework 中的 AWDL 功能,因此設計了一個最小化 Swift 側守護程式在首次執行時自動編譯。Python 負責機器學習邏輯,Swift 管理無線電連線,兩者透過 Unix 域名通訊端(IPC channel)通訊。此二進位檔案的複雜性對使用者完全透明,介面仍為純 Python。

通訊層最佳化與挑戰

實作過程中揭露了多個隱藏的系統邊界問題。初期發現 AWDL 透過 NWConnection 只能可靠地維持單向流量,雙向傳輸會無聲地失敗。作者用 iPhone 搭建 iOS 測試應用模擬 Grove 對等端點進行除錯,最終發現每個對等設備組需開啟兩條連線(各一方向)才能實現流水線式的同步傳送與接收。

梯度同步採用環形拓撲以實現跨 N 臺機器的最有效平均化。每個節點需同時傳送與接收,否則會產生死鎖。單一 send 呼叫推送完整梯度緩衝區會觸發 ENOBUFS 錯誤,作者於演算法層級將環形進程分割成 1 百萬元素的切片,使每條訊息舒適地符合核心緩衝預算,而非透過通常的調整通訊端緩衝區大小或重試機制。

演算法與頻寬耦合的觀察

無線連結無法支援張量平行化或流水線平行化,僅有資料平行化可行。此約束深刻影響選擇何種優化演算法:

  • DiLoCo(Douillard et al., 2023):各裝置獨立訓練 H 步(預設 500),計算偽梯度(參數起點與終點的差異),跨工作者取平均並用 Nesterov 動量更新全域參數。相比每步通訊,這將通訊頻率降低 500 倍。

  • SparseLoCo(Sarfi et al., 2025):在 DiLoCo 基礎上添加 top-k 壓縮及誤差回饋。每輪僅傳輸最大的 1-3% 值,未送出的值保留在誤差緩衝區並逐步累積,作為動量形式。實現約 32 倍的承載量壓縮。

  • DeMo(Peng et al., 2024):每步透過離散餘弦變換(DCT)將梯度轉換至頻率空間,僅傳輸最顯著分量。每步同步但承載量較小,更適合快速區域網路。

作者強調,連結速度不僅影響訓練速度,更決定了何種優化演算法本身可行。

計算與通訊重疊及效能

協調器作為 rank 0 參與訓練而非獨立編排程序,在背景執行心跳監控、落伍者偵測和環形重組。若節點掉線,剩餘節點自動重組並繼續訓練。

基礎 SparseLoCo 迴圈在同步點為同步式,GPU 會在梯度傳輸期間閒置。Grove 採用 Streaming DiLoCo(Douillard et al., 2025)的方法於背景線程中進行通訊重疊:top-k 壓縮及稀疏編碼透過 MLX 在 Metal GPU 上執行,背景線程經由環形傳輸結果,GPU 同時啟動下一批訓練步驟。延遲結果到達時與當前本機參數按 50/50 比例混合,保留本機進度與全域更新。此非同步路徑只能加速,不會減速。

記憶體開銷與預期使用案例

DiLoCo 和 SparseLoCo 需保留起始參數快照及額外優化器狀態,記憶體開銷約為可訓練參數大小的 3 倍。完整微調大型模型時此數值影響重大,但預期使用案例是 LoRA,其中僅約 1% 的參數可訓練。3 倍的 1% 對實際應用可忽略。

對未來發展的反思

作者強調分散式訓練中有趣的問題並非演算法本身——DiLoCo 和 SparseLoCo 的核心各不超過 200 行程式碼。真正的複雜性存在於系統邊界:讓程序在刻意封鎖對等通訊的網路上自動發現彼此,透過 IPC 通訊端橋接 Python 與 Swift 語言邊界,以及發現 AWDL 無聲地違反其他傳輸層假設。Grove 仍處早期階段,但核心訓練迴圈已驗證可行,Apple Silicon 提供的能力中仍有大量未被探索的潛力。