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 代码即可启动、监控和保存万亿参数实验的检查点。

相关

  • 项目
  • 项目
  • 项目
  • 项目