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) 層を実装するMicrosoftのオープンソースライブラリです。以下の機能を提供することで、巨大なMoEモデル(数千億から兆単位のパラメータ)の学習と推論の高速化に注力しています。

  • 動的並列処理 – 追加コストなしで、データ並列、エキスパート並列、モデル並列モードを切り替える機能。
  • 専用の低精度カーネル – NVIDIA FP4/FP8、AMD MXFP4、およびブロック単位のFP8フォーマットをサポートし、非常に大きなモデルを単一のGPUや小規模なGPUクラスターで実行可能にします。
  • 高速なゲーティング演算 – DeepSeek-V3、Qwen-3、Kimi、GLM-5.x、OpenAI-GPT-OSSなどのMoEモデルで使用されるルーティングステップのためのカスタムCUDAカーネル。
  • マルチノード・マルチGPUランチャー – torch.distributed とMPIのラッパーで、all-to-all通信を効率的に処理します。

READMEには具体的なパフォーマンス数値(例:8 × MI300 GPU上で671 BのDeepSeekモデルが毎秒100トークン以上)が記載されており、Azure GPUインスタンスですぐに実行可能なDockerイメージも提供されています。


どのような人向けか?

  • 研究機関や企業:MoEベースのLLMを学習またはサービングしており、NVIDIA A100/H100、AMD MI300などのGPUから最大限のスループットを引き出す必要があるチーム。
  • 推論サービスを構築するエンジニア(チャットボット、コードアシスタント、マルチモーダルエージェント):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. スケーリング:
    • 1台のマシンで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は、Microsoftが保守するGPU特化型のライブラリで、動的並列処理、低精度カーネル、すぐに使えるDockerイメージを提供することで、大規模なMoE言語モデルを高速化します。最新のNVIDIAまたはAMD GPU上で兆単位のパラメータを持つMoEモデルをサービングまたは学習するチームに最適です。

関連

  • Dispatch
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト