推論アプリケーション向けに最適化するにはどうすればよいですか?

推論の最適化とは、本番環境における AI モデルの実行パフォーマンスと効率を向上させる手法です。大規模言語モデル(LLM)のパラメータ数が数百億規模にまで拡大し、推論アーキテクチャが複雑化するにつれ、アプリケーションの設計や保守の難易度はますます高まっています。最適化とは、こうした計算負荷の高いワークロードを管理、モニタリング、更新することで、費用を抑えながら 1 秒未満の応答時間と高いスループットを実現する取り組みです。

これには、モデルの圧縮から高度なメモリ管理に至るまで、さまざまな手法が含まれており、単に「モデルを実行する」ことから「インテリジェンス サービスをスケーリングする」ことへと焦点をシフトします。これにより、デベロッパーはインフラストラクチャのフットプリントを持続可能な範囲に抑えつつ、より応答性の高いアプリケーションを構築できるようになります。

実際には、推論の最適化は一般的に、主に次の 2 つの方法で適用されます。

インフラストラクチャ レベルの最適化: モデルがハードウェア上でどのように実行されるかに焦点を当てます。これには、最適化されたランタイム(NVIDIA NIM や vLLM など)の使用、PagedAttention などの手法による GPU メモリの管理、インフライト バッチングによる複数のリクエストの同時処理などが含まれます。これは、オープンソースやプロプライエタリ モデルを使用するデベロッパーにとって、多くの場合、最も現実的なアプローチです。

モデルレベルの最適化: モデル自体を変更して、サイズや複雑さを軽減します。量子化(精度を 16 ビットから 4 ビットに下げる)、蒸留(小さな「生徒」モデルをトレーニングして、より大きな「教師」モデルを模倣する)、スパース性(重要でないパラメータを削除する)などの手法により、各トークンに必要なメモリとコンピューティングを大幅に削減できます。

推論プロセスの仕組みを理解する

コードレベルのワークフロー

効果的に最適化を行うには、LLM の推論における 2 つの異なるフェーズを理解する必要があります。

フェーズ

説明

主な特徴

プレフィル

モデルは入力プロンプト全体を処理して中間状態を計算する。

高度に並列化。コンピューティング バウンド(GPU を飽和させる)。

Decode

モデルは、出力トークンを自己回帰的に 1 つずつ生成する。

シーケンシャル。メモリバウンド(データ転送速度によって制限される)。

フェーズ

説明

主な特徴

プレフィル

モデルは入力プロンプト全体を処理して中間状態を計算する。

高度に並列化。コンピューティング バウンド(GPU を飽和させる)。

Decode

モデルは、出力トークンを自己回帰的に 1 つずつ生成する。

シーケンシャル。メモリバウンド(データ転送速度によって制限される)。

  1. 目標を説明する: 最適化されていないモデルのデプロイから始める
  2. 量子化を適用する: モデルの重みを減らして(4 ビットなど)、より大きなバッチをメモリに収める
  3. アテンションの最適化: FlashAttention または Grouped-Query Attention(GQA)を使用して、メモリ移動の費用を最小限に抑える
  4. メモリ管理: PagedAttention を実装して KV キャッシュを非連続ブロックに保存し、断片化を解消する
  5. 実行とモニタリング: インフライト バッチングでデプロイし、他のリクエストが完了次第すぐに新しいリクエストを開始する

推論の最適化と標準デプロイの比較

最適化された推論と従来の「単純な」モデル提供を比較すると、次のようになります。

機能

標準デプロイ

推論の最適化

スループット

静的なバッチサイズとアイドル時間によって制限される。

高い。インフライト バッチングと継続的なイテレーションを利用。

レイテンシ

シーケンス長に応じて線形に増加。TTFT(最初のトークンまでの時間)が長い。

最適化。プリフィル アクセラレーションと投機的デコーディングを利用。

メモリ管理

静的割り当て(最大長に対してオーバー プロビジョニング)。

動的(ページング)。PagedAttention により無駄を最小限に抑える。

ハードウェアの効率

GPU/TPU のコンピューティング機能を十分に活用できないことが多い。

最大化。最適化されたカーネル(TFE-IE、XLA)を使用。

リクエストあたりの費用

高い。同じ負荷に対してより多くのハードウェアが必要。

低い。同一のインフラストラクチャに多くのリクエストを詰め込む。

機能

標準デプロイ

推論の最適化

スループット

静的なバッチサイズとアイドル時間によって制限される。

高い。インフライト バッチングと継続的なイテレーションを利用。

レイテンシ

シーケンス長に応じて線形に増加。TTFT(最初のトークンまでの時間)が長い。

最適化。プリフィル アクセラレーションと投機的デコーディングを利用。

メモリ管理

静的割り当て(最大長に対してオーバー プロビジョニング)。

動的(ページング)。PagedAttention により無駄を最小限に抑える。

ハードウェアの効率

GPU/TPU のコンピューティング機能を十分に活用できないことが多い。

最大化。最適化されたカーネル(TFE-IE、XLA)を使用。

リクエストあたりの費用

高い。同じ負荷に対してより多くのハードウェアが必要。

低い。同一のインフラストラクチャに多くのリクエストを詰め込む。

はじめに: オーケストレーション環境の選択

Google Cloud は、さまざまなスキルレベルやアーキテクチャのニーズに対応する幅広いツールを提供しています。

ツール

出発点

スキルレベル

方法

主な機能

Cloud Run(GPU あり)

軽量なイベント ドリブン AI サービス

初級

サーバーレス

ゼロまでスケーリングできる推論(バースト性が高く、低レイテンシのワークロード向け)

OSS モデル(Llama 3 など)

初級から中級

マネージド / ローコード

最適化された vLLM または NVIDIA NIM ランタイムによるワンクリック デプロイ


高パフォーマンスの本番環境ワークロード

中級者から上級者

推論の高速化

最先端の TensorRT-LLM 最適化が施された事前構築済みマイクロサービス

カスタムのマルチモデル インフラストラクチャ

上級

クラウドネイティブ / カスタム

GPU シャーディング、オーケストレーション、カスタム推論サーバーを完全に制御

大規模な TPU ファーストの開発

上級

TPU に最適化 / XLA

Cloud TPU での継続的なバッチ処理と PagedAttention を使用した XLA 向けにカスタマイズ

ツール

出発点

スキルレベル

方法

主な機能

Cloud Run(GPU あり)

軽量なイベント ドリブン AI サービス

初級

サーバーレス

ゼロまでスケーリングできる推論(バースト性が高く、低レイテンシのワークロード向け)

OSS モデル(Llama 3 など)

初級から中級

マネージド / ローコード

最適化された vLLM または NVIDIA NIM ランタイムによるワンクリック デプロイ


高パフォーマンスの本番環境ワークロード

中級者から上級者

推論の高速化

最先端の TensorRT-LLM 最適化が施された事前構築済みマイクロサービス

カスタムのマルチモデル インフラストラクチャ

上級

クラウドネイティブ / カスタム

GPU シャーディング、オーケストレーション、カスタム推論サーバーを完全に制御

大規模な TPU ファーストの開発

上級

TPU に最適化 / XLA

Cloud TPU での継続的なバッチ処理と PagedAttention を使用した XLA 向けにカスタマイズ

Vertex AI Model Garden で推論を最適化する

Model Garden は、Llama、Gemma、Mistral といった主要なオープンソース モデルの最適化バージョンをデプロイするための最も迅速な手段です。

ステップ 1: モデルを選択して構成する

Model Garden に移動し、サポートされている OSS モデルを見つけます。[Deploy] をクリックします。構成で、vLLM や NVIDIA NIM などの最適化されたランタイムを選択します。

ステップ 2: 量子化を適用する

モデルの量子化バージョン(4 ビットや 8 ビットなど)を選択して、メモリ使用量を削減します。これにより、同じ GPU でより大きなバッチサイズを処理できるようになり、スループットが直接的に向上します。

ステップ 3: 高度なメモリ管理を有効にする

サービング コンテナが PagedAttention を使用するように構成されていることを確認します。この手法により、モデルは「メモリ」(Key-Value キャッシュ)を非連続ブロックに保存できるようになるため、メモリの無駄をなくして、より長いコンテキスト ウィンドウを実現できます。

ステップ 4: デプロイとモニタリング

デプロイすると、Vertex AI がインフライト バッチングを自動的に処理し、既存のリクエストでのトークンが完了次第すぐに新しいリクエストを処理します。Vertex AI Model Monitoring を使用してレイテンシを追跡し、出力の「雰囲気」が高品質に保たれるようにします。

GKE で推論を最適化する

オーケストレーションやカスタム推論カーネルをきめ細かく制御する必要があるチームには、業界標準の GKE が最適です。

ステップ 1: NVIDIA GPU または Cloud TPU でクラスタを初期化する

特殊な GPU ノード(L4 や H100 など)を使用して GKE クラスタをプロビジョニングします。NVIDIA GPU Operator をインストールして、ドライバの管理とパフォーマンスの調整を自動的に行います。

ステップ 2: 最適化された推論サーバーをデプロイする

vLLM や Triton Inference Server などのコンテナ化された推論エンジンを使用します。これらのサーバーは、連続的なバッチ処理とテンソル並列処理をサポートしており、大規模なモデルを複数の GPU にシャーディングできます。また、vLLM を使用すると、最小限の追加コーディングで TPU と GPU を切り替えることができます。

ステップ 3: 投機的デコーディングを実装する

ミッション クリティカルなレイテンシのニーズがある場合は、投機的デコーディングを構成します。これは、より小型で高速な「ドラフト」モデルを使用してトークンを予測し、その後、より大規模な「ターゲット」モデルで並行して検証を行うもので、多くの場合、処理速度が 2~3 倍向上します。

ステップ 4: GKE Inference Quickstart でデプロイを合理化する

GKE Inference Quickstart は、テスト済みの推論スタック構成が事前に設定されたデータベースとして機能します。モデル、レイテンシ要件、費用の優先順位を指定すると、ベスト プラクティスと最新のベンチマークに基づいて、一連の推奨事項が提示されます。これにより、推論固有のパフォーマンス指標をモニタリングし、デプロイを動的にファインチューニングして、常に最適化されたテクノロジーで実行できるようにします。

ステップ 5: GKE Inference Gateway でスケーリングする

GKE Inference Gateway の一般提供が開始され、複雑な生成 AI アプリケーションを管理するための高度な機能が 2 つ導入されました。

  • プレフィックス対応ルーティング: マルチターン チャットやドキュメント分析などのアプリケーションでは、この機能により、コンテキストがすでにキャッシュされている同じアクセラレータにリクエストがルーティングされ、応答時間が短縮されます。
  • 分離型サービング: この手法では、最初の「プレフィル」フェーズ(プロンプト処理)と「デコード」フェーズ(トークン生成)を分離します。ステージごとに必要なリソースが異なるため、別々の最適化されたマシンプールでそれぞれを実行することで、効率を最大化できます。

ステップ 6: Anywhere Cache でデータアクセスを高速化する

Anywhere Cache は、既存の Google Cloud Storage(GCS)バケットで動作する、完全な整合性のある新しい読み取りキャッシュです。アクセラレータと同じゾーン内でデータをキャッシュに保存します。読み取りレイテンシを最大 96% 削減し、読み取り負荷が高いワークロードに伴うネットワーク費用を最小限に抑えることができます。

ステップ 7: Cloud WAN でグローバル ワークロードを接続する

インフラストラクチャ全体をまとめているのが、Google の地球規模のインフラストラクチャ上に構築されたフルマネージドのグローバル ネットワークである Cloud WAN です。Cloud WAN は、さまざまなリージョン、クラウド、オンプレミス環境にわたって AI コンピューティング リソースを接続し、従来の WAN ソリューションと比較して、推論アプリケーションのエクスペリエンスを 40% 向上させ、TCO を 40% 削減します。

Google Cloud でビジネスの課題を解決する

新規のお客様には、Google Cloud で使用できる無料クレジット $300 分を差し上げます。

次のステップ

$300 分の無料クレジットと 20 以上の無料枠プロダクトを活用して、Google Cloud で構築を開始しましょう。

  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud