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 に登録されたマシン上で実行すると、以下の処理が行われます:
- 必要な数の GPU ノードを起動(生成された GitHub Action により)。
- 実験にノードを割り当てる。
- トレーニングループを実行。
- ログ/メトリクスを GitHub UI にストリーミング。
- 最終モデルチェックポイントをプッシュ。
自動化の仕組み
- ノードブートストラップ – higgsfield は、指定した各ノードに Docker、必要なドライバー、および自らのバイナリをインストールします。
- ワークフロー生成 – リポジトリをクローンし、環境をセットアップし、Docker 内で実験を実行する GitHub Actions ワークフローを生成します。
- GitHub駆動のデプロイ – コミットをプッシュするとワークフローがトリガーされ、コードが割り当てられたノードに自動デプロイされます。
- 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 コードで起動・監視・チェックポイント化できます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト