PyTorch 團隊發佈了全新分佈式編程框架 Monarch,旨在徹底簡化大規模機器學習任務的開發與部署。Monarch 採用“單控制器(single-controller)模型”,允許開發者用一份普通的 Python 腳本,就能控制跨越上千張 GPU 的集羣訓練流程。
在傳統多控制器架構中,開發者需要手動管理同步、故障恢復、跨節點通信等複雜細節,而 Monarch 將這些過程完全自動化。它將集羣資源抽象為“可編程數組 (meshes)”,用户可以像操作張量一樣操控整片 GPU 網格,實現代碼的高度可擴展性。
Monarch 的核心特性包括:
-
進程與 Actor 網格 (Process / Actor Mesh):以數組形式組織分佈式進程與任務,支持切片與並行操作。
-
快速故障恢復:在大規模訓練中自動處理主機或進程中斷,可在數分鐘內恢復運行。
-
本地式分佈式張量:無縫集成 PyTorch,讓分佈式張量操作像本地張量一樣自然。
-
交互式調試支持:開發者可直接在 Jupyter Notebook 上操控和調試分佈式集羣。
在實際應用中,Monarch 已用於強化學習和大模型預訓練任務。例如,PyTorch 團隊在 16,000 張 GPU 的集羣上運行 Megatron-LM 訓練時,通過 Monarch 實現了高效調度與容錯管理,顯著降低了系統中斷的成本。
Monarch 前端基於 Python 構建,後端使用 Rust 實現高性能通信與併發安全,目前已在 GitHub 上開源(https://github.com/meta-pytorch/monarch)。官方表示,其目標是讓開發者“像寫單機腳本一樣編寫分佈式 AI 代碼”。