higgsfield-ai/higgsfield
Fault-tolerant, highly scalable GPU orchestration, and a machine learning framework designed for training models with billions to trillions of parameters
higgsfield – 分散式訓練變得輕鬆無痛
是什麼 – higgsfield 是一個開源的 Python 套件,作為 GPU 節點工作負載管理器,以及超大型神經網路(數十億至數兆參數)的輕量訓練框架。它可與標準 PyTorch 生態系統無縫整合,支援 DeepSpeed 的 ZeRO-3 API 與 PyTorch 的 Fully-Sharded Data Parallel (FSDP) 分片,讓您能在機器叢集上執行 LLaMA-70B 等 LLM。
核心功能(README 中描述)
| 功能 | 說明 |
|---|---|
| 節點分配 | 提供計算節點的獨佔或共用存取權限,讓使用者能為訓練任務預留 GPU。 |
| Zero-3 / FSDP 支援 | 包裝 DeepSpeed 的 ZeRO-3 與 PyTorch FSDP,將模型參數跨 GPU 分片,支援數兆參數模型。 |
| 實驗生命週期 | 使用簡單的 Python 裝飾器(@experiment)建立執行,於分配的節點上啟動,並透過基於 GitHub 的 UI 流式傳輸日誌/指標。 |
| 佇列與競爭處理 | 維護工作佇列,讓多個使用者共享叢集時不會互相干擾。 |
| 以 GitHub 為中心的 CI/CD | 產生 GitHub Actions 工作流程,自動將程式碼部署至叢集,執行實驗,並將檢查點推送到 Hub。 |
| 環境可重現性 | 在每個節點上安裝 Docker、驅動程式與 higgsfield 二進位檔,避免「環境地獄」。 |
| 極簡設定 | 無需龐大的參數清單或 YAML 檔案;框架提供極簡的純 Python 接口用於實驗。 |
快速安裝
pip install higgsfield==0.0.3 # 從 PyPI 取得最新發布的套件
此套件包含註冊節點、產生 GitHub 工作流程與啟動實驗所需的命令列工具。
最小訓練範例(來自 README)
from higgsfield.llama import Llama70b
from higgsfield.loaders import LlamaLoader
from higgsfield.experiment import experiment
import torch.optim as optim
from alpaca import get_alpaca_data
@experiment("alpaca")
def train(params):
# 700億參數 LLaMA 模型,ZeRO-3 分片,bf16 精度
model = Llama70b(zero_stage=3, fast_attn=False, precision="bf16")
optimizer = optim.AdamW(model.parameters(), lr=1e-5)
dataset = get_alpaca_data(split="train")
train_loader = LlamaLoader(dataset, max_words=2048)
for batch in train_loader:
optimizer.zero_grad()
loss = model(batch)
loss.backward()
optimizer.step()
model.push_to_hub('alpaca-70b') # 將最終檢查點儲存至 HuggingFace Hub
在已註冊 higgsfield 的機器上執行此腳本將:
- 透過產生的 GitHub Action 啟動所需數量的 GPU 節點。
- 將節點分配給實驗。
- 執行訓練迴圈。
- 將日誌/指標流式傳輸至 GitHub UI。
- 推送最終模型檢查點。
自動化運作方式
- 節點啟動 – higgsfield 在您指定的每個節點上安裝 Docker、所需驅動程式與其自身二進位檔。
- 工作流程產生 – 建立 GitHub Actions 工作流程,克隆您的程式碼庫,設定環境,並在 Docker 內執行實驗。
- GitHub 驅動的部署 – 推送提交會觸發工作流程,自動將程式碼部署至分配的節點。
- UI 與監控 – GitHub 界面顯示實驗狀態、日誌,並允許您下載檢查點。
支援環境
- 作業系統:Ubuntu(任何近期 LTS 版本)
- 存取方式:SSH 連線,非 root 使用者且具備免密碼 sudo 權限
- 已測試雲端:Azure、LambdaLabs、FluidStack(任何可提供原始 Ubuntu VM 並支援 SSH 的雲端皆可使用)。
文件連結(README 中的連結)
- 設定指南 –
setup.md逐步介紹節點註冊、環境準備與首次部署流程。 - 教學 –
tutorial.md涵蓋分散式模型處理、資料載入、優化器技巧、檢查點、穩定性技巧與監控。 - 支援管道 – GitHub Issues(回應時間 < 1 天)、Twitter、專案網站。
哪些人會受益?
- 訓練超出單一 GPU 內存預算的 LLM 的研究人員或工程師。
- 已使用 GitHub 進行程式碼協作,希望從 PR/提交自動啟動訓練任務的團隊。
- 對在叢集中管理多個 CUDA / PyTorch 版本感到厭煩的人;higgsfield 的 Docker 基礎方法可隔離這些相依性。
需注意事項
- 此框架假設您擁有 自己的 GPU 節點(本地或雲端 VM)。它不提供托管 GPU 實例。
- 目前僅支援 Ubuntu;其他 Linux 發行版需手動調整。
- README 展示了 LLaMA-70B;雖然 API 是通用的,但您需自行提供未封裝架構的模型類別。
- 此套件版本為 0.0.3,表示處於早期開發階段;請預期偶爾出現破壞性變更。
TL;DR
higgsfield 是一個輕量級編排層,可將一組 Ubuntu GPU 伺服器轉變為容錯、佇列感知的超大型 LLM 訓練叢集。透過在內部使用 DeepSpeed ZeRO-3 或 PyTorch FSDP,並將所有流程與 GitHub Actions 結合,僅需幾行 Python 程式碼即可啟動、監控與儲存數兆參數實驗的檢查點。
相關
- 專案
- 專案
- 專案
- 專案