GLM4-MoEを本番環境に最適化:SGLangでTTFTを65%削減

GLM4-MoEを本番環境に最適化:SGLangでTTFTを65%削減

TL;DR

Novita AIは、SGLANGをベースにGLM4-MoEモデルをデプロイするための、本番環境で検証済みの影響力の高い最適化スイートを開発しました。エンドツーエンドのパフォーマンス最適化戦略を導入し、カーネル実行効率からノード間データ転送スケジューリングまで、推論パイプライン全体のボトルネックに対処します。Shared Experts FusionSuffix Decodingの統合により、エージェンティックコード生成ワークロードにおいて、主要な本番環境メトリクスで大幅な改善を確認しました。

  • Time-to-First-Token (TTFT) 最大65%削減
  • Time-Per-Output-Token (TPOT) 22%改善

すべての結果はH200クラスター上でTP8およびFP8構成で検証され、要求の厳しい本番環境で最適なスループットと低レイテンシを両立するための実戦的な設計図を提供します。

GLM-MoE向け本番環境最適化の実装方法

1. Shared Experts Fusion

image-fotor-20260104102229

この最適化の功績は、Deepseekモデルに関するオリジナルの研究にあります。上の図に示すように、GLM4.7のようなMoEモデルは、すべての入力トークンを共有エキスパートにルーティングすると同時に、各トークンをモデルのルーターが選択した独自のtop-kルーティングエキスパートセットにも個別にルーティングします。すべてのエキスパートの出力は重み付けされ、集約されます。例えばGLM4.7は、1つの共有エキスパートとともに160のルーティングエキスパートを採用し、トークンごとに上位8つのルーティングエキスパートを選択します。以前の実装では、これら2つのコンポーネントは別々に処理されていました。これらは同一のテンソル形状と計算手順を共有するため、共有エキスパートをルーティングMoE構造にマージして統合するのが自然です。つまり、合計161のエキスパートから上位9つを選択し、共有エキスパートには常に9番目の位置を割り当てます。

PRに記載されているように、この最適化によりTTFTで最大23.7%、ITLで20.8%のパフォーマンス向上が達成されます。これは、中間サイズがわずか192とH200ハードウェアには比較的小さいTP8およびFP8構成において、融合操作がStreaming Multiprocessor (SM) 使用率を大幅に向上させ、メモリI/Oオーバーヘッドを大幅に削減するため、期待通りの結果です。

2. Qknorm Fusion

Qknorm Fusion

この移行はQwen-MOEの最適化に基づいています。基本的な考え方は単純です。両方の演算子がヘッド単位の計算を実行するため、それらを単一のカーネルに融合するのは自然なアプローチです。私たちの貢献は、この融合カーネルをGLM4-MoEバリアントの特定のケース(ヘッド内の次元の半分だけが回転される)に適応させたことです。

3. Async Transfer

https://github.com/sgl-project/sglang/pull/14782

Async Transfer

オーバーラップスケジュールを用いたPD分離が適用されているシナリオでは、スループットは約10%向上しますが、TTFTは大幅に低下します。現在のプリフィルの実装では、データ転送プロセスが次のバッチのカーネル起動後まで遅延されることを確認しました。GLM4.7のような92層からなるモデルでは、CUDA Graphなしのカーネル起動は時間がかかり(数百ミリ秒、場合によっては1秒以上かかることもあります)。

これに対処するため、私たちの変更では転送ステップを少し前倒しし、対応するGPU操作の完了直後にスケジュールします。さらに、転送を別スレッドに配置します。潜在的なデータ競合構造を慎重に処理することで、メインスレッドをブロックせずに処理を進めることができます。

このパフォーマンス向上は、カーネル起動が多いモデルで非常に顕著です。高負荷時には、この最適化によりTTFTが最大1秒節約されます(下図参照)。

本番環境ベンチマーク結果

上記のアプローチを実装した結果、GLM-MoEモデルで大幅なパフォーマンス向上が観察されました。以下のベンチマーク結果に明確に示されています。

ベンチマーク設定

  • 入力長:4096
  • 出力長:1000
  • リクエストレート:14 req/s
  • モデル:GLM-4.7 FP8 (TP8)

結果

TTFT & E2E Latency

TPOT & Inter-Token Latency

これらの最適化は実験的なものにとどまらず、すでにNovita.aiの本番推論サービスでデプロイされ検証されています。実用的なワークロード向けに信頼性が高く低レイテンシなGLM-MoEバックエンドをお探しなら、ぜひ novita.ai で直接お試しください。

Suffix Decoding

エージェンティックコード生成シナリオ(CursorやClaude Codeなど)では、再利用可能なコードパターンが頻繁に出現するため、Suffix Decodingのようなターゲットを絞ったパフォーマンス最適化が有効です。

背景:エージェンティックコード生成における推論ボトルネック

LLMエージェントはコード生成タスクに優れていますが、レイテンシは依然として大きな課題です。従来の投機的デコーディングは複数のトークンを事前に予測することで推論を高速化しますが、一般的なアプローチでは追加のドラフトモデルの学習が必要となり、エンジニアリングの複雑さが増します。

Suffix Decodingの仕組み

Suffix Decodingの仕組み

Suffix Decodingは根本的に異なるアプローチを採用しており、完全にモデルフリーです。

  • 追加のモデル重みに依存しない
  • 以前に生成された出力シーケンスのパターンを利用して、今後のトークンを予測
  • 現在のリクエストのサフィックスが過去のパターンと一致する場合、その履歴シーケンスに沿って投機的生成を継続

データ検証:出力パターンの繰り返し分析

22のClaude Codeセッション(17,487回の会話ターン)を分析した結果、以下のことが判明しました。

  • 出力パターンの39.3%が繰り返し:類似のツール呼び出しや応答パターンが高頻度で出現
  • 高度に構造化されたエージェント動作:「Let me…」、「Now let me…」のような定型句が頻繁に出現

さらなる研究を支援するため、評価データセットをHugging Faceで公開しています: https://huggingface.co/datasets/novita/agentic_code_dataset_22

パフォーマンス比較

組み込みのMTP高速化に加え、Suffix DecodingによりTPOTが22%削減(25.13msから19.63ms)されます。

|||| |:—|:—|:—|:—| |メトリクス|MTP|Suffix Decoding|変化| |平均TPOT|25.13 ms|19.63 ms|-21.90%| |中央値TPOT|25.95 ms|20.05 ms|-22.70%|

結論

これらの最適化の組み合わせにより、SGLANGのデプロイメントにおいて包括的なパフォーマンス改善が実現します。

  1. Shared Experts Fusion:MoEモデルにおける計算効率の問題に対処
  2. QK-Norm-RoPE Fusion:カーネル起動のオーバーヘッドを削減
  3. Async Transfer:分離デプロイメントにおけるデータ移動を最適化
  4. Suffix Decoding:エージェンティックコード生成におけるパターン繰り返しを活用した投機的デコーディング

ほとんどのコンポーネントはすでにアップストリームにマージされるか、統合が進められています。SGLangリポジトリでぜひチェックしてみてください

再現方法

ここでは主要なパフォーマンス関連パラメータのみを示します。

完全な起動スクリプト(ベースライン版と最適化版)、ベンチマークハーネス、プロファイリングトレースは、GitHubで公開しています:https://github.com/novitalabs/sglang/tree/glm\_suffix。

  • 主要最適化フラグ(SGLangランタイム)
--tp-size 8
--kv-cache-dtype fp8_e4m3
--attention-backend fa3
--chunked-prefill-size 16384
--enable-flashinfer-allreduce-fusion
--enable-fused-qk-norm-rope
--enable-shared-experts-fusion
--disaggregation-async-transfer
  • 投機的デコーディング設定(エージェンティックコード生成ワークロード)
--speculative-algorithm NEXTN
--speculative-num-steps 3
--speculative-eagle-topk 1
--speculative-num-draft-tokens 4
  • Suffix Decoding設定(オプション)
--speculative-algorithm SUFFIX
--speculative-suffix-cache-max-depth 64
--speculative-suffix-max-spec-factor 1.0
--speculative-suffix-min-token-prob 0.1

参考文献

  1. SGLANG PR #13873: Shared Experts Optimization
  2. Snowflake Engineering Blog: SuffixDecoding at Production Scale
  3. NeurIPS Paper: SuffixDecoding
  4. Arctic Inference Repository

Novita AI は、開発者に使いやすいAPIと手頃で信頼性の高いGPUインフラを提供し、AIアプリケーションの構築とスケーリングを支援する大手AIクラウドプラットフォームです。