microsoft/Tutel
Tutel MoE: Optimized Mixture-of-Experts Library, Support GLM/Kimi/Gpt/DeepSeek/Qwen using FP8/NVFP4/MXFP4
什么是 Tutel?
Tutel 是微软开发的一个开源库,为大型语言模型实现了高性能的 Mixture-of-Experts (MoE) 层。它通过提供以下功能,专注于加速超大型 MoE 模型(数千亿至万亿参数)的训练和推理:
- 动态并行 – 能够在数据并行、专家并行和模型并行模式之间切换,且无需额外成本。
- 专用低精度内核 – 支持 NVIDIA FP4/FP8、AMD MXFP4 以及块级 FP8 格式,让超大型模型能在单个 GPU 或中型 GPU 集群上运行。
- 快速门控运算 – 为 MoE 模型(如 DeepSeek-V3、Qwen-3、Kimi、GLM-5.x 和 OpenAI-GPT-OSS)所使用的路由步骤提供自定义 CUDA 内核。
- 多节点、多 GPU 启动器 –
torch.distributed和 MPI 的封装,可有效处理 all-to-all 通信。
README 提供了具体的性能数据(例如在 8 × MI300 GPU 上,671 B DeepSeek 模型每秒可处理超过 100 个 token),并提供适用于 Azure GPU 实例的现成 Docker 镜像。
谁适合使用?
- 研究实验室或公司:训练或部署基于 MoE 的 LLM,并需要从 NVIDIA A100/H100、AMD MI300 或类似 GPU 中榨取最大吞吐量的团队。
- 构建推理服务的工程师(聊天机器人、代码助手、多模态代理):希望以低延迟和高 token 吞吐量部署如 GLM-5、Kimi-K3、DeepSeek-V3、Qwen-3 或 GPT-OSS 等模型的开发者。
- 自定义 MoE 架构的开发者:需要快速门控内核与灵活并行切换参考实现的开发者。
如何开始(快速入门指南)
- 安装 PyTorch(NVIDIA 需 CUDA ≥ 11.7,AMD 需 ROCm ≥ 6.2.2)– README 提供了确切的
pip命令。 - 安装 Tutel,可直接从仓库安装:
或通过克隆仓库并运行pip install -U git+https://github.com/microsoft/tutel@mainsetup.py。 - 在单个 GPU 上运行健全性检查示例:
这会执行优化的 MoE 层并打印时间信息。python -m tutel.examples.helloworld --batch_size=16 - 扩展规模:
- 若为单机 8 GPU:
torchrun --nproc_per_node=8 -m tutel.examples.helloworld --batch_size=16 - 若为多节点集群,请使用提供的 MPI 启动器:
mpiexec -bind-to none -host <hosts> -x LOCAL_SIZE=8 \ python -m tutel.launcher.run -m tutel.examples.helloworld_ddp_tutel --batch_size=16
- 若为单机 8 GPU:
- 部署真实模型 – 使用
huggingface_hub拉取模型检查点(例如moonshotai/Kimi-K3)并启动 README 中提供的 Docker 容器:
该容器会公开一个简单的 HTTPdocker run -e WORKER=1 -e LOCAL_SIZE=8 -p 8000:8000 \ tutelgroup/deepseek-671b:mi300x8-chat-20260929 \ --serve=core --try_path moonshotai/Kimi-K3 --max_seq_len 200000/chat端点,您可以使用curl进行查询或集成到您自己的 UI 中。
何时考虑替代方案
| 情况 | 为什么 Tutel 可能不适合 |
|---|---|
| 您需要 仅限 CPU 推理 | Tutel 的性能提升依赖 GPU 内核;CPU 支持极少。 |
| 您的模型是 非 MoE(密集 Transformer) | Tutel 的优化针对 MoE 的路由和专家并行部分;密集模型无法受益。 |
| 您在 旧款 GPU 上运行(例如 < A100,无 ROCm 支持) | 低精度内核 (FP4/FP8) 需要较新的硬件;您将退回到标准 FP16/FP32,速度提升有限。 |
| 您偏好 单一库、端到端训练框架(例如 DeepSpeed, Megatron-LM) | 虽然 Tutel 可以与这些框架结合,但它主要是一个 MoE 内核/启动器层;您可能需要额外的胶水代码。 |
如果上述任何情况符合您的限制,请查看 DeepSpeed MoE、Megatron-LM 或 FasterTransformer 等替代方案。
总结
Tutel 是一个由微软维护、专注于 GPU 的库,通过提供动态并行、低精度内核与现成的 Docker 镜像,使大型 MoE 语言模型运行得更快。它最适合在现代 NVIDIA 或 AMD GPU 上部署或训练万亿参数 MoE 模型的团队。
相关
- Dispatch
- 项目
- 项目
- 项目
- 项目