Hugging Face ネイティブ速度 vLLM Transformers モデリングバックエンド
Hugging Face ネイティブ速度 vLLM Transformers モデリングバックエンド
TL;DR
Hugging Face は、vLLM 用の transformers モデリングバックエンドを強化し、多くの LLM アーキテクチャに対してネイティブな手書き vLLM 実装と同等またはそれ以上のスループットを実現できるようにしました。これにより、モデル作者は既存の transformers 実装を活用して、カスタム最適化コードを書かずに超高速 vLLM 推論を得ることができます。
パフォーマンスベンチマーク
transformers モデリングバックエンドは、3 つの Qwen3 モデル構成に対してネイティブ vLLM 実装と比較テストされました。すべての場合で、transformers バックエンドはネイティブスループットを満たすか上回りました:
- Qwen3-4B (Dense): 単一 GPU でテストしました。
- Qwen3-32B (Dense): テンソル並列を使用してテストしました。
- Qwen3-235B-A22B-FP8 (MoE): データおよびエキスパート並列を使用して 8×H100 ノードでテストしました。
このバックエンドを使用するには、サービング時に --model-impl transformers フラグを適用します。この実装は、--tensor-parallel-size、--data-parallel-size、--enable-expert-parallel などの標準的な並列オプションと互換性があります。
制限事項
現在、線形注意を利用するモデルはサポートされていません。また、Hub リポジトリにホストされているカスタムモデルは、規定に従って記述されていない場合、動作しない可能性があります。
技術的実装: 動的レイヤーフュージョン
以前は、transformers vLLM バックエンドは主に注意機構を推論のボトルネックとして重点的に最適化していました。これによりモデルは効率的に動作しましたが、最大性能を実現するには GPU 並列化、コンパイル、融合カーネルを処理するカスタムポートが依然として必要でした。
更新されたバックエンドは、互換性のあるアーキテクチャに対して、実行時に推論専用のレイヤーフュージョンを動的に適用します。これにより、モデル作者がモデルを二度統合する必要がなくなります—transformers 用と vLLM 用の両方です。
グラフ解析とソース操作
システムは、2 段階の最適化プロセスを通じてネイティブ速度を実現します:
- 静的解析: バックエンドは
torch.fxを使用してモデルのグラフに対する静的解析を行い、最適化可能な既知のパターンを特定します。 - ソース書き換え: パターンが特定されると、バックエンドは抽象構文木 (AST) を使用してソースコードを操作し、操作をその場で書き換えます。
主な最適化
このプロセスにより、いくつかの高性能機能が実現します:
- 融合操作: 操作を最適化された vLLM カーネルへ多対一でマッピングします。特に、Mixture-of-Experts (MoE) モデルにおけるエキスパート並列化 (EP) に使用されるものです。
- 並列計画:
MergedColumnParallelLinearとQKVParallelLinearブロックの使用により、システムはテンソル並列 (TP) の並列計画を推論できます。デコーダーブロックリストが特定可能な場合、パイプライン並列 (PP) 計画も推論可能です。 - コンパイル互換性: 操作されたモデルは
torch.compileと CUDA Graphs と完全に互換性があり、専用の vLLM 実装と同等のパフォーマンスパスを提供します。 - 統一コードベース: 最適化が実行時に行われるため、同じ transformers モデル実装をトレーニング、評価、RL ロールアウト、そして高速推論に使用できます。
SUMMARY: Hugging Face は、実行時に推論専用のレイヤーフュージョンを動的に適用することで、カスタム vLLM 実装のスループットに匹敵またはそれを上回るように transformers vLLM バックエンドを更新しました。
TITLE: Hugging Face ネイティブ速度 vLLM Transformers モデリングバックエンド