
Tutel
让 MoE 大模型训练更快更省显存,支持 FP8/FP4 低精度。
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-09-16 · 当前星标 ★ 1029
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Python 3 环境(README 命令均使用 python3)
- pip 包管理工具
- git(源码编译方式需要克隆仓库)
- 本地 C 编译工具链(源码编译需编译 C 扩展)
- 可用的 GPU 环境(README 提到 A100/A800/H100/MI300 等)
安装与启动步骤
-
1卸载旧版 Tutel
两条安装路径前 README 都要求先卸载已装的 tutel,避免新旧版本冲突。
python3 -m pip uninstall tutel -y -
2在线安装 Tutel
从 GitHub main 分支直接 pip 安装,关闭构建隔离以便走本地编译流程。
python3 -m pip install -v -U --no-build-isolation git+https://github.com/microsoft/tutel@main -
3克隆源码仓库
选择源码编译方式时,先把 main 分支代码克隆到本地。
git clone https://github.com/microsoft/tutel --branch main -
4源码编译安装
克隆后按 README 给出的路径执行 setup.py,安装到当前用户目录(--user)。
python3 ./tutel/setup.py install --user -
5配置 MOELayer
按 README 的 MOELayer 参数说明传入 gate_type、model_dim、experts 等构建 MoE 层。
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
gate_type | 是 | 门控配置字典或字典列表,含 type、k、capacity_factor 等。 | {'type': 'top', 'k': 2, 'capacity_factor': -1.5} |
model_dim | 是 | MoE 输入张量的通道数。 | 1024 |
experts | 是 | 内置专家网络的字典配置,type 取值如 ffn。 | {'type': 'ffn', 'num_experts_per_device': 1, 'hidden_size_pe |
parallel_type | 否 | MoE 计算的并行方式,可取 auto/data/model。 | auto |
a2a_ffn_overlap_degree | 否 | 控制 all_to_all 与计算重叠深度,默认 1 表示不重叠。 | 2 |
pad_samples | 否 | 是否将新输入数据自动填充到历史最大数据量。 | True |
如何确认成功
pip 安装过程无报错,Python 环境中可正常导入 tutel 并按上述参数实例化 MOELayer 即为成功。
常见问题
Q:在线安装和源码编译该选哪种?
A:只想直接用选 Option-1 在线安装;需要改源码或本地调试选 Option-2 源码编译。
Q:为什么安装前要先卸载 tutel?
A:README 的两条安装路径前都写了 pip uninstall tutel -y,用于清理旧版本、避免版本冲突。
Q:gate_type 里的 k 可以是负数吗?
A:可以。k 为负如 -2 时,表示一块 GPU 只持有 1/(-k) 份专家参数。
Q:capacity_factor 的取值怎么理解?
A:正数表示固定倍率 X,0 表示 max(needed_volumes),负数表示 min(-X, max(needed_volumes))。
Q:怎么关闭专家的 bias 参数?
A:在 experts 配置中把 has_fc1_bias 或 has_fc2_bias 设为 False,默认值为 True。
注意事项
- README 未给出 CUDA/驱动版本与显存要求,需自行确认硬件环境匹配。
- 源码编译安装使用 --user,只会安装到当前用户目录。
- 低精度推理支持 NVFP4/MXFP4/BlockwiseFP8,需 A100/A800/H100/MI300 等硬件。
- k 为负、capacity_factor 为负等参数行为来自 README 参数说明,使用前请确认符合你的并行策略。
核心亮点
- 针对 DeepSeek、Kimi-K2、Qwen3 等主流 MoE 架构做了专门适配,可直接替换现有 MoE 层,迁移成本低
- 支持 FP8、NVFP4、MXFP4 多种低精度格式,在保持精度的同时显著降低显存占用和通信量
- 通过专家并行与计算-通信重叠优化,减少对高速互联网络的依赖,在普通集群上也能获得较高吞吐
不足之处
- 以 C 语言实现核心算子,二次开发和调试门槛较高,对不熟悉底层优化的团队不够友好
- 社区规模和文档完善度相对有限,遇到问题可参考的案例和讨论较少
适用场景
- 训练千亿参数级 MoE 大模型,需要降低显存和通信开销
- 在非顶级网络环境下部署 MoE 推理服务,追求低精度加速
- 研究 MoE 并行策略与低精度量化,需要可复现的优化基线
替代项目
DeepSpeed-MoE、Megatron-LM、Fairseq
同类项目推荐
denoising_diffusion
开源
用PyTorch Lightning复现DDPM,快速跑通扩散模型训练与生成
Unofficial Implementation of "Denoising Diffusion Probabilistic Models" in PyTorch(L···
diffusion-pipe
开源
多卡流水线并行,低显存也能训大扩散模型
A pipeline parallel training script for diffusion models.
NeoHorse
开源
让模型自己出题、自己训练、自己变强
NeoHorse-1: Towards Recursive Self-Improvement via Agentic Post-Training with Routin···
examples
开源
看示例,快速上手 Neptune 实验管理
Examples of how to use Neptune for different use cases and with various MLOps tools
verl-agent
开源
用强化学习训练更聪明的 AI 智能体,支持 GIGPO 算法
verl-agent is an extension of veRL, designed for training LLM/VLM agents via RL. ver···
miles
开源
企业级 RL 后训练框架,让大模型和多模态模型快速做强化微调
Miles is an enterprise-facing reinforcement learning framework for LLM and VLM post-···
whisper-vits-japanese
开源
只有音频也能训练日语VITS,Whisper自动生成文本标注
Vits Japanese with Whisper as data processor (you can train your VITS even you only ···
dashAI
开源
可视化训练评估部署,一条龙搞定 AI 模型
dashAI: an interactive platform for training, evaluating and deploying AI models
OpenSeq2Seq
开源
用配置文件快速搭建语音识别、翻译和语音合成模型,支持多卡混合精度训练。
Toolkit for efficient experimentation with Speech Recognition, Text2Speech and NLP