Repolode
huggingface

huggingface/nanotron

Hugging Face 推出的极简库,用于在多 GPU 集群上以 3D 并行(DP、TP、PP)预训练 Transformer 大模型。

Star
2,854
Fork
342
未关闭 Issue
159
最近提交
上个月

这是什么?

Nanotron 是一个用于在自定义数据集上预训练 Transformer 语言模型的 Python 库。它力求保持训练接口简洁易读,同时能扩展到大规模的多 GPU、多节点环境。

库中实现了数据并行、张量并行和流水线并行,并支持 MoE 模型的专家并行。它提供 AFAB 和 1F1B 两种流水线调度、ZeRO-1 优化器、FP32 梯度累积,以及便于调试的显式 TP 和 PP 接口。示例涵盖微型 Llama、Mamba、MoE、DoReMi 以及谱 µTransfer 扩展等场景。

训练通过 YAML 配置文件加 torchrun 启动,训练完成后可用独立脚本从检查点生成文本。项目还提供了基于不同模型规模和节点数的基准数据。

核心功能

  • 01结合数据、张量和流水线的 3D 并行
  • 02支持 MoE 模型的专家并行
  • 03提供 AFAB 和 1F1B 两种流水线调度
  • 04ZeRO-1 优化器并支持 FP32 梯度累积
  • 05支持谱 µTransfer 参数化以扩展模型

适用场景

  • 在多 GPU 硬件上从零预训练自定义的 Llama 类语言模型
  • 小规模试验 MoE 或 Mamba 架构
  • 借助 Slurm 将 Transformer 训练扩展到多个节点

快速上手

  1. 1

    使用 uv 创建 Python 虚拟环境

    uv venv nanotron --python 3.11 && source nanotron/bin/activate && uv pip install --upgrade pip
  2. 2

    安装 PyTorch

    uv pip install torch --index-url https://download.pytorch.org/whl/cu124
  3. 3

    安装核心依赖

    uv pip install -e .
  4. 4

    在单节点 8 块 GPU 上训练一个微型 Llama 模型

    CUDA_DEVICE_MAX_CONNECTIONS=1 torchrun --nproc_per_node=8 run_train.py --config-file examples/config_tiny_llama.yaml

使用前须知

  • 训练示例假定使用多块 NVIDIA GPU,例如 8 块 H100 的节点。
  • 安装需要多个额外步骤,包括 PyTorch CUDA 版本及 flash-attn 的编译。
  • FP8 训练和 ZeRO-3 等功能仍在路线图中。

标签

常见问题

nanotron 是什么?
Hugging Face 推出的极简库,用于在多 GPU 集群上以 3D 并行(DP、TP、PP)预训练 Transformer 大模型。 Nanotron 是一个用于在自定义数据集上预训练 Transformer 语言模型的 Python 库。它力求保持训练接口简洁易读,同时能扩展到大规模的多 GPU、多节点环境。
nanotron 可以免费使用吗?用的什么许可证?
nanotron 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
nanotron 还在维护吗?
半年内有更新。nanotron 最近一次提交是在 2026年10月8日。
nanotron 适合用来做什么?
在多 GPU 硬件上从零预训练自定义的 Llama 类语言模型 小规模试验 MoE 或 Mamba 架构 借助 Slurm 将 Transformer 训练扩展到多个节点
nanotron 怎么安装和运行?
使用 uv 创建 Python 虚拟环境: uv venv nanotron --python 3.11 && source nanotron/bin/activate && uv pip install --upgrade pip 安装 PyTorch: uv pip install torch --index-url https://download.pytorch.org/whl/cu124 安装核心依赖: uv pip install -e . 在单节点 8 块 GPU 上训练一个微型 Llama 模型: CUDA_DEVICE_MAX_CONNECTIONS=1 torchrun --nproc_per_node=8 run_train.py --config-file examples/config_tiny_llama.yaml
在哪里获取 nanotron?
源代码和安装说明在 GitHub 上:https://github.com/huggingface/nanotron

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目