nanotron

极简代码跑通千亿模型3D并行训练

nanotron 是 Hugging Face 开源的大语言模型训练框架,核心目标是用极简代码实现 3D 并行训练(数据并行、张量并行、流水线并行),让研究者和工程团队能在多机多卡集群上高效训练百亿到千亿参数级模型。它把分布式训练中繁琐的通信、切分、调度逻辑封装成清晰模块,同时集成 FlashAttention、ZeRO 优化、混合精度、梯度检查点等常用加速手段,并支持从 Hugging Face 生态加载数据集与模型权重。相比 Megatron-LM 等重型方案,nanotron 代码量小、可读性高,便于二次开发和实验验证,适合作为大模型预训练与微调的轻量级基座。

开源 free 模型训练
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 2827
维护状态 活跃
是否开源 是
定价模式 free

项目数据

分类模型训练
开发团队huggingface
所属国家
官网地址
定价模式free
价格说明开源免费,需自行部署
访问状态
是否开源是
开源协议Apache-2.0
主要语言Python
技术栈/模型
GitHub 星标★ 2827
30天Star增速
HF 下载量
上线时间2023-09-11 00:00:00
最近更新2026-09-23 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-09-25
浏览次数0

使用教程

难度:入门 约 10 分钟 部署方式:本地安装 5 步

环境要求

  • Python 3.11(README 使用 --python 3.11 创建虚拟环境)
  • uv(用于创建虚拟环境和安装依赖)
  • 带 CUDA 的 PyTorch(README 安装的是 cu124 版本,需 NVIDIA GPU 环境)
  • 已训练好的 checkpoint 目录(运行生成脚本时需要)

安装与启动步骤

  1. 1创建虚拟环境

    用 uv 创建名为 nanotron 的 Python 3.11 虚拟环境并激活,同时升级 pip。HF 集群用户建议设置 UV_LINK_MODE=copy。

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

    从 PyTorch 官方 cu124 索引安装 PyTorch,默认适配 CUDA 12.4 环境。

    uv pip install torch --index-url https://download.pytorch.org/whl/cu124
  3. 3安装核心依赖

    在项目根目录以可编辑模式安装 nanotron 本体及核心依赖。

    uv pip install -e .
  4. 4安装示例依赖

    要运行示例脚本,再安装数据集、模型加载、日志等可选依赖。

    uv pip install datasets transformers datatrove[io] numba wandb
  5. 5运行文本生成

    用 torchrun 从已有 checkpoint 启动生成脚本;1 张卡时 tp、pp 都设为 1。

    torchrun --nproc_per_node=1 run_generate.py --ckpt-path checkpoints/{checkpoint_number}/ --tp 1 --pp 1

关键配置

配置项必填说明示例
--ckpt-path是指定要加载的 checkpoint 目录路径checkpoints/{checkpoint_number}/
--tp否张量并行度,增大可用多卡加速生成1
--pp否流水线并行度,超大模型可设更大值1
--nproc_per_node否torchrun 使用的单机进程(GPU)数量1

如何确认成功

torchrun 命令正常退出且无报错,并输出模型生成的文本结果。

常见问题

Q:安装 torch 时下载很慢或失败怎么办?

A:README 指定从 https://download.pytorch.org/whl/cu124 索引安装,请保留 --index-url 参数并确认网络可访问该地址。

Q:生成速度慢,怎么加速?

A:README 说明可增大 --tp(张量并行)值,用多张 GPU 加速生成。

Q:模型特别大,显存不够怎么办?

A:README 建议对非常大的模型使用更大的 --pp(流水线并行)值。

Q:运行时提示缺少 datasets、transformers 等模块?

A:说明只装了核心依赖,需补装示例依赖:uv pip install datasets transformers datatrove[io] numba wandb。

Q:uv 出现缓存警告怎么处理?

A:Hugging Face 集群用户可在 .bashrc 中加入 export UV_LINK_MODE=copy 以抑制 uv 的缓存警告。

注意事项

  • 所有命令需先激活虚拟环境(source nanotron/bin/activate)后再执行。
  • 命令中的 checkpoints/{checkpoint_number}/ 要替换成你实际的 checkpoint 目录。
  • --tp、--pp 的取值需与可用 GPU 数量匹配,否则可能启动失败。
  • README 只给出了生成脚本 run_generate.py 的示例,其余训练脚本请自行查阅仓库文档。

核心亮点

  • 代码极简可读,3D并行逻辑清晰,便于二次开发与教学
  • 原生集成FlashAttention、ZeRO、混合精度与梯度检查点等加速特性
  • 与Hugging Face生态打通,数据集和权重加载方便

不足之处

  • 文档与示例相对精简,复杂并行配置需读源码理解
  • 社区规模较小,遇到问题可参考的案例和讨论有限

适用场景

  • 多机多卡集群上预训练百亿参数级大语言模型
  • 研究团队做并行策略对比实验与消融研究
  • 在有限算力下微调或继续训练开源大模型

替代项目

Megatron-LM、DeepSpeed

项目介绍

nanotron 是模型训练领域的开源项目,由 huggingface 开发,2023 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(2,827)位列前 30%,在模型训练分类的 522 个项目里位列前 15%。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-23。开源免费,需自行部署。

它主要面向的使用场景是:多机多卡集群上预训练百亿参数级大语言模型。同类可对比的替代方案包括 Megatron-LM、DeepSpeed。

上一篇:halo

下一篇:Fairy-plus-minus-i

同类项目推荐

Long-RL 开源

让强化学习轻松驾驭超长序列,训练更稳更快

Long-RL: Scaling RL to Long Sequences (NeurIPS 2025)

★ 729 2026-08-09
TPA 开源

把注意力复杂度从平方降到线性,长序列不再卡顿

[NeurIPS 2025 Spotlight] TPA: Tensor ProducT ATTenTion Transformer (https://arxiv.or···

★ 463 2026-08-09
minimind 开源

两小时造出你的小模型,练手入门不求人

Train a 64M-parameter LLM from scratch in just 2h!

★ 62178 2026-08-09
pruna 开源

一键优化 AI 模型,推理提速又省资源。

Pruna is a model optimization framework built for developers, enabling you to delive···

★ 1286 2026-08-13