HN 日本語サマリー

← 一覧へ戻る
AI・機械学習

vLLM向けのPyTorchネイティブTPUバックエンド

PyTorch-native TPU back end for vLLM (github.com)

4 pointsby zniturah0 コメント

要約

vLLM-TorchTPUは、vLLMのPyTorchモデル定義をGoogle Cloud TPU上で実行するための、PyTorchネイティブなTPUバックエンドです。TorchTPUとカスタムJAX/Pallasカーネルを利用し、モデルコードの変更なしにvLLMのCLIやサーバーをTPU速度で利用可能にします。TPU v7xを推奨しており、PyPIやDocker Hubからインストールできます。

全文翻訳

[画像: vLLM TorchTPU](https://github.com/vllm-project/vllm-torchtpu/blob/main/docs/assets/torch_tpu_dark_mode_short.png#gh-dark-mode-only) [画像: vLLM TorchTPU](https://github.com/vllm-project/vllm-torchtpu/blob/main/docs/assets/torch_tpu_light_mode_short.png#gh-light-mode-only)

ドキュメント | ブログ | ユーザーフォーラム | 開発者Slack (#sig-tpu)


vLLM-TorchTPUについて

vLLM TorchTPUは、vLLM向けのPyTorchネイティブTPUバックエンドです。これは、vllm-torchtpuとしてパッケージ化された、ツリー外のvLLMプラットフォームプラグインであり、TorchTPU(torch_tpu、torch.compile(backend="tpu")経由)と、アテンション、Mixture-of-Experts、量子化された行列乗算のためのカスタムJAX/Pallasカーネルライブラリを通じて、Google Cloud TPU上でvLLMの標準的なPyTorchモデル定義を実行します。

目標はシンプルです:モデルコードの変更なしに、TPU速度で動作する、あなたが既に使っているvLLMと同じもの — 同じCLI、同じOpenAI互換サーバー、同じモデル定義 —。

  • PyTorchファースト。 モデルはvLLMのネイティブPyTorchランナーを通じて実行されます。TPUでのサービングのために他のフレームワークで再実装する必要はありません。
  • TPUチューニング済みカーネル。 Pallasで記述された、Ragged Paged Attention、密および疎なMLA、Gated DeltaNet、融合MoE(SparseCoreオフロードを含む)、およびFP8/INT8/MXFP4量子化行列乗算。
  • スケールアウトが組み込まれています。 TP、DP、PP、EP、およびプリフィル/デコードコンテキスト並列処理は、シングルホストおよびマルチホストTPUスライス全体で構成され、プリフィル/デコードサービングは分離されています。
  • 標準的なvLLMエクスペリエンス。 スペキュラティブデコーディング、プレフィックスキャッシング、マルチLoRA、構造化出力、マルチモーダル入力は、通常のvLLMフラグを通じて機能します。

注意

JAXバックエンドをお探しですか? vLLM向けのオリジナルのTPUバックエンドであるtpu-inferenceは、vLLM JAXにリブランドされました。これは、TPU上で純粋なJAXモデル実装をサービングするために引き続き利用可能です。vllm-torchtpuは、TPU上でPyTorchモデル定義をサービングするための推奨パスです。

サポートされているハードウェア

TPU世代ステータス
TPU v7x (Ironwood)推奨 — 各プルリクエストおよびナイトリービルドでCIにより検証済み
TPU v6e / v5e / v5p実験的 — CIの対象外

プロジェクトのセットアップ、クォータ、プロビジョニングコマンドについては、Cloud TPUセットアップを参照してください。

始め方

インストール

vllm-torchtpuは、Cloud TPU VM上でPython 3.12を必要とします。1つのコマンドで、vllm-torchtpuをPyPIからインストールし、対応するvLLMをインストールします。

pip install \
  --extra-index-url https://download.pytorch.org/whl/cpu \
  vllm-torchtpu

または、Docker Hub (vllm/vllm-torchtpu)から事前ビルドされたコンテナをプルします。

docker pull vllm/vllm-torchtpu:latest

uv、編集可能なソースインストール、ローカルvllmチェックアウトに対するクロスリポジトリ開発、およびDockerイメージについては、完全なインストールガイドとDockerガイドを参照してください。

モデルのサービング

他のvLLMプラットフォームで実行する場合と全く同じように、OpenAI互換サーバーを起動します。

vllm serve meta-llama/Llama-3.2-1B-Instruct \
  --tensor-parallel-size 1 \
  --max-model-len 4096

次にリクエストを送信します。

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "meta-llama/Llama-3.2-1B-Instruct",
    "messages": [{"role": "user", "content": "Explain how TPUs accelerate matrix multiplication." }],
    "max_tokens": 128
  }'

ヒント

最初の起動時には、設定された形状のTPUグラフがコンパイルされるため、数分かかることがあります。再起動間でコンパイル済みアーティファクトを永続化するには、VLLM_XLA_CACHE_PATHを設定してください — コンパイルとウォームアップキャッシュを参照してください。

クイックスタートでは、vllm.LLMを使用したオフラインバッチ推論、TP/EPによるマルチデバイスサービング、マルチモーダル例をカバーしています。

サポートされているモデルと機能

vLLM-TorchTPUは、vLLMでサポートされているほとんどのPyTorchモデルをサービングでき、Qwen3 / Qwen3.5、DeepSeek-V3 / R1 / V4、Kimi-K2.5 / K3、GLM-5、Llama 3 / 4、GPT-OSS、Gemma 3 / 4、Mixtral、Qwen-VLおよびGemma VLファミリー、およびvllm-omni経由の拡散モデルに対して、TPUカーネル、量子化、並列処理のファーストクラスサポートを提供します。

レシピとデプロイメント

🤝 貢献

バグレポート、モデルや機能のリクエスト、ドキュメントの修正、コードなど、あらゆる種類の貢献を歓迎します。

  • 🐞 バグ報告または機能リクエスト: 新規イシューを開いてください。
  • 👀 プルリクエストのレビュー: オープンなPRをレビューすることで、品質維持にご協力ください。
  • 💻 コードの記述: 貢献ガイドから始めてください。環境セットアップ、DCOサインオフ、ready-ラベルCIゲート、およびPRライフサイクルについて説明しています。最初の貢献向けイシューは、始めるのに最適な場所です。

開発者向け参考情報: テストとCI · プロファイリング · ベンチマーク · コーディングガイドライン · 最適化のベストプラクティス

💬 お問い合わせ

  • 技術的な質問や機能リクエストについては、GitHubイシューを開いてください。
  • 他のユーザーとのディスカッションについては、vLLMフォーラムのTPUサポートトピックを使用してください。
  • 貢献や開発の調整については、vLLM開発者Slack (#sig-tpu)に参加してください。