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 的機器上執行此腳本將:

  1. 透過產生的 GitHub Action 啟動所需數量的 GPU 節點。
  2. 將節點分配給實驗。
  3. 執行訓練迴圈。
  4. 將日誌/指標流式傳輸至 GitHub UI。
  5. 推送最終模型檢查點。

自動化運作方式

  1. 節點啟動 – higgsfield 在您指定的每個節點上安裝 Docker、所需驅動程式與其自身二進位檔。
  2. 工作流程產生 – 建立 GitHub Actions 工作流程,克隆您的程式碼庫,設定環境,並在 Docker 內執行實驗。
  3. GitHub 驅動的部署 – 推送提交會觸發工作流程,自動將程式碼部署至分配的節點。
  4. 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 程式碼即可啟動、監控與儲存數兆參數實驗的檢查點。

相關

  • 專案
  • 專案
  • 專案
  • 專案