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 パッケージです。標準的な 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 ワークフローを生成し、コードをクラスタに自動デプロイ、実験を実行、チェックポイントをハブにプッシュします。
環境の再現性 各ノードに 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 ハブに保存

このスクリプトを higgsfield に登録されたマシン上で実行すると、以下の処理が行われます:

  1. 必要な数の GPU ノードを起動(生成された GitHub Action により)。
  2. 実験にノードを割り当てる。
  3. トレーニングループを実行。
  4. ログ/メトリクスを GitHub UI にストリーミング。
  5. 最終モデルチェックポイントをプッシュ。

自動化の仕組み

  1. ノードブートストラップ – higgsfield は、指定した各ノードに Docker、必要なドライバー、および自らのバイナリをインストールします。
  2. ワークフロー生成 – リポジトリをクローンし、環境をセットアップし、Docker 内で実験を実行する GitHub Actions ワークフローを生成します。
  3. GitHub駆動のデプロイ – コミットをプッシュするとワークフローがトリガーされ、コードが割り当てられたノードに自動デプロイされます。
  4. UI とモニタリング – GitHub インターフェースで実験のステータス、ログを確認でき、チェックポイントをダウンロードできます。

対応環境

  • OS: Ubuntu(最近の LTS バージョン)
  • アクセス: パスワード不要 sudo 権限を持つ非 root ユーザーによる SSH
  • テスト済みクラウド: Azure、LambdaLabs、FluidStack(SSH でアクセス可能な Ubuntu VM が提供されるクラウドであれば、どのクラウドでも動作可能)。

ドキュメントリンク(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 コードで起動・監視・チェックポイント化できます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト