概要
Novita AIは、SGLangを用いたGLM4-MoEモデルのデプロイメント向けに、本番環境で実証済みのハイインパクトな最適化シリーズを開発しました。私たちは、カーネル実行効率からクロスノードデータ転送スケジューリングまで、推論パイプライン全体のボトルネックに対処するエンドツーエンドのパフォーマンス最適化戦略を提案しています。Shared Experts FusionとSuffix Decodingを統合することで、エージェントコーディングワークロードにおける重要な本番環境指標で大幅な向上を達成しました:
- TTFTが最大65%削減
- TPOTが22%向上
すべての結果はH200クラスタのTP8およびFP8構成で検証されており、要求の厳しい本番環境向けに高スループットと低レイテンシを実現する実戦的なブループリントを提供しています。
GLM-MoEコア本番最適化の実装
1. Shared Experts Fusion
SGLang PR #13873: Shared Experts Fusion

この最適化はDeepseekモデルの独創的な作業から着想を得ています。上図に示すように、GLM4.7のようなMoEモデルは、すべての入力トークンを一つの共有エキスパートにルーティングし、同時に各トークンをモデルルーターが選択したtop-kルーティングエキスパートにもルーティングします。その後、すべてのエキスパート出力を重み付けして集約します。例えば、GLM4.7は160のルーティングエキスパートと1つの共有エキスパートを持ち、トークンごとにtop 8のルーティングエキスパートを選択します。初期の実装では、これら2つの部分は独立して処理されていました。しかし、これらのテンソル形状と計算フローが同一であるため、自然に統一できます:共有エキスパートをルーティングMoE構造に融合し、合計161のエキスパートからtop 9を選択し、共有エキスパートを9番目に固定します。
PRに記載されているように、この最適化によりTTFTが最大23.7%、ITLが20.8%向上しました。TP8およびFP8構成下(中間サイズはわずか192で、H200ハードウェアには小さい)では、融合操作により Streaming Multiprocessor (SM)の利用率が大幅に向上し、メモリI/Oオーバーヘッドが大幅に削減されました。
2. Qknorm Fusion
SGLang PR #15141: Qknorm Fusion
SGLang PR #15305: Qknorm Fusion Fix

この最適化はQwen-MOEの移植に基づいています。コア概念はシンプルです:両者ともhead-wiseの計算であるため、自然に単一のカーネルに融合できます。私たちの貢献は、GLM4-MoEバリアントに適応させ、ヘッド内の半分の次元のみが回転するという特殊なケースに対応したことです。
3. Async Transfer
SGLang PR #14782: Async Transfer

PD分離とオーバーラップスケジューリングを適用したシナリオでは、スループットは約10%向上しましたが、TTFTが大幅に低下しました。現在のprefill実装では、データ転送が次のバッチのカーネル起動後まで遅延することを観察しました。GLM4.7のような92層モデルでは、CUDA Graphなしでのカーネル起動時間が長く(しばしば数百ミリ秒、時には1秒を超える)なります。
私たちの修正は、転送ステップを前倒しし、対応するGPU操作の完了直後にスケジューリングし、独立したスレッドに配置することです。データ競合構造を慎重に処理することで、メインスレッドのブロッキングを回避しています。
カーネル起動が頻繁なモデルでは、この最適化の効果は絶大です。高負荷時には、TTFTが最大1秒短縮される可能性があります。下図を参照してください。

本番環境ベンチマーク結果
上記の最適化を実装した後、GLM-MoEモデルのパフォーマンスは大幅に向上しました。以下のベンチマーク結果をご覧ください。
ベンチマーク構成
- 入力長:4096
- 出力長:1000
- リクエストレート:14 req/s
- モデル:GLM-4.7 FP8 (TP8)


これらの最適化は実験的なものではありません——Novita AIの本番推論サービスで既にデプロイされ、検証されています。
Suffix Decoding
エージェントコーディングシナリオ(CursorやClaude Codeなど)には再利用可能な大量のコードパターンが存在し、Suffix Decodingのようなターゲット最適化に適しています。
背景:エージェントコーディングにおける推論ボトルネック
LLM Agentsはコード生成に優れていますが、レイテンシは依然として課題です。従来のSpeculative Decodingは複数トークンを事前予測することで高速化しますが、追加のドラフトモデルの訓練が必要で、エンジニアリングが複雑になります。
Suffix Decodingの動作原理

Suffix Decodingは完全にモデル非依存です:
- 追加のモデル重みは不要
- 履歴出力シーケンスパターンを利用して後続トークンを予測
- 現在のリクエストのサフィックスが履歴パターンにマッチした場合、履歴シーケンスに沿って推測
データ検証:出力パターンの反復分析
22個のClaude Codeセッション(17,487回の対話)を分析した結果:
- 39.3%の出力パターンが反復:ツール呼び出しとレスポンスパターンが高頻度で類似
- 高度に構造化されたエージェント動作:「Let me...」、「Now let me...」などの固定フレーズが頻出
さらなる研究をサポートするため、Hugging Faceで評価データセットをオープンソース化しています:Agentic Code Dataset。
パフォーマンス比較
内蔵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デプロイメントに包括的なパフォーマンス向上をもたらします:
| 最適化 | 影響/利点 |
|---|---|
| Shared Experts Fusion | MoEモデルの計算効率を解決 |
| QK-Norm-RoPE Fusion | カーネル起動オーバーヘッドを削減 |
| Async Transfer | 分離デプロイメントのデータ移動を最適化 |
| Suffix Decoding | エージェントコーディングパターンの反復を利用した推測デコーディング |
多くのコンポーネントは既にアップストリームにマージされているか、統合中です。SGLangリポジトリをご確認ください。
再現ガイド
重要なパフォーマンスパラメータのみを記載します。完全な起動スクリプト(ベースライン vs 最適化版)、ベンチマークツール、プロファイリングトレースはGitHubで公開されています:novitalabs/sglang (glm_suffix branch)。
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 4Suffix Decoding設定(オプション)
--speculative-algorithm SUFFIX
--speculative-suffix-cache-max-depth 64
--speculative-suffix-max-spec-factor 1.0
--speculative-suffix-min-token-prob 0.1参考文献
- SGLANG PR #13873: Shared Experts Optimization
- Snowflake Engineering Blog: SuffixDecoding at Production Scale
- NeurIPS Paper: SuffixDecoding
- Arctic Inference Repository
© 2026 Winzheng.com 赢政天下 | 转载请注明来源并附原文链接