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