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 架构的开发者:需要快速门控内核与灵活并行切换参考实现的开发者。

如何开始(快速入门指南)

  1. 安装 PyTorch(NVIDIA 需 CUDA ≥ 11.7,AMD 需 ROCm ≥ 6.2.2)– README 提供了确切的 pip 命令。
  2. 安装 Tutel,可直接从仓库安装:
    pip install -U git+https://github.com/microsoft/tutel@main
    
    或通过克隆仓库并运行 setup.py。
  3. 在单个 GPU 上运行健全性检查示例:
    python -m tutel.examples.helloworld --batch_size=16
    
    这会执行优化的 MoE 层并打印时间信息。
  4. 扩展规模:
    • 若为单机 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
      
  5. 部署真实模型 – 使用 huggingface_hub 拉取模型检查点(例如 moonshotai/Kimi-K3)并启动 README 中提供的 Docker 容器:
    docker 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
    
    该容器会公开一个简单的 HTTP /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
  • 项目
  • 项目
  • 项目
  • 项目