📝

MoEをvLLM等でデプロイする際の注意点(個人用メモ)

に公開

参考文献

https://rocm.blogs.amd.com/software-tools-optimization/vllm-moe-guide/README.html
2025/11/24 by AMD (ROCm TM Blogs)

巨大MoE推論一般の話

探索範囲(パラメータ候補)

--data-parallel-size N or --tensor-parallel-size N
--enable-expert-parallelを入れるかどうか

MoEのTPでの挙動

各ExpertのFFN行列を列方向/行方向にTP分割
※ Expert数384のKimi K-2.5の場合
※ 0ではなく1からカウント
例:
GPU 1: Expert1の先頭一部 + Expert2の先頭一部 ... Expert384の先頭一部
GPU 2: Expert1の続き一部 + Expert2の続き一部 ... Expert384の続き一部
...
GPU N: Expert1の末尾一部 + Expert2の末尾一部 ...

長所:計算量が一定
短所:Expert内の計算結果の集約が必要

MoEのEPでの挙動

--enable-expert-parallel 時の挙動
16GPUの場合
例:
GPU 1: Expert 1 + Expert 2 + ... + Expert 24
GPU 2: Expert 25 + Expert 26 + ... + Expert 48
...
GPU 16: + ... + Expert 384

長所:AlltoAll通信ライブラリが活きる (nvmemsh等を取り込んだDeepEP等の最適化が適用される)
短所:人気なExpertを持つGPUに計算が偏る ※--enable-eplbのような負荷分散オプションはある

結論:VRAM占有量は、ほぼ同じだがEPの方が計算量に偏りが出る

MLA:Multi-head latent attention

Miyabi-Gの話

マルチノードではAll to AllのMoE分散が遅い
➡Dual Batch Overlap
--enable-dbo

Discussion