このページでは、オンライン予測用のエンドポイントに生成 AI モデルをデプロイするためのガイダンスについて説明します。
Model Garden を確認する
モデルが Model Garden にある場合は、[デプロイ](一部のモデルで利用可能)または [ノートブックを開く] をクリックしてデプロイできます。
それ以外の場合は、次のいずれかを行います。
Model Garden にあるモデルと類似しているモデルの場合は、Model Garden のコンテナのいずれかを直接再利用できる可能性があります。
Vertex AI Model Registry にモデルをインポートし、予測用のカスタム コンテナの要件に準拠する独自のカスタム コンテナをビルドします。インポートされたモデルは
model
リソースになり、エンドポイントにデプロイできます。Model Garden コンテナのビルドに使用された Dockerfile とスクリプトは、独自のカスタム コンテナをビルドする際のリファレンスまたは出発点として使用できます。
NVIDIA NIM を使用した予測の提供
NVIDIA Inference Microservices(NIM)は、マイクロサービスとしてパッケージ化された事前トレーニング済みかつ最適化された AI モデルです。高性能で本番環境対応の AI をアプリケーションに簡単にデプロイできるように設計されています。
NVIDIA NIM は、Artifact Registry と Vertex AI Prediction とともに使用して、オンライン予測用の生成 AI モデルをデプロイできます。
カスタム コンテナの設定
このセクションでは、生成 AI モデルをインポートする際に指定する必要のあるモデルの containerSpec
のフィールドについて説明します。
これらのフィールドは、Vertex AI REST API または gcloud ai models upload
コマンドを使用して指定できます。詳細については、コンテナ関連の API フィールドをご覧ください。
sharedMemorySizeMb
一部の生成 AI モデルでは、より多くの共有メモリが必要になります。共有メモリは、複数のプロセスがメモリの共通ブロックにアクセスして操作できるようにするプロセス間通信(IPC)のメカニズムです。共有メモリのデフォルト サイズは 64 MB です。
vLLM や Nvidia Triton などの一部のモデルサーバーは、モデルの推定中に共有メモリを使用して内部データをキャッシュに保存します。一部のモデルサーバーは、十分な共有メモリがないと生成モデルの予測を提供できません。必要な共有メモリの量は、コンテナとモデルの実装の詳細によって異なります。ガイドラインについては、モデルサーバーのドキュメントをご覧ください。
また、共有メモリは GPU 間の通信にも使用できるため、モデルコンテナが GPU 間の通信を必要とする場合、共有メモリを多く使用すると、NVLink 機能のないアクセラレータ(L4 など)のパフォーマンスが向上します。
共有メモリにカスタム値を指定する方法については、コンテナ関連の API フィールドをご覧ください。
startupProbe
起動プローブは、コンテナの起動を検出するために使用するオプションのプローブです。このプローブは、コンテナの起動までヘルスプローブと実行チェックを遅らせて、起動に時間がかかるコンテナが早期にシャットダウンされるのを防ぐために使用されます。
詳細については、ヘルスチェックをご覧ください。
healthProbe
ヘルスプローブは、コンテナがトラフィックを受け入れる準備ができているかどうかを確認します。ヘルスプローブが指定されていない場合、Vertex AI はデフォルトのヘルスチェックを使用します。このヘルスチェックは、コンテナのポートに HTTP リクエストを発行し、モデルサーバーからの
200 OK
レスポンスを探します。モデルが完全に読み込まれる前にモデルサーバーが
200 OK
で応答する場合(特に大規模なモデルの場合)、ヘルスチェックが早期に成功し、準備ができる前にVertex AI がトラフィックを次の場所にルーティングします。このような場合は、モデルが完全に読み込まれてトラフィックの受け入れが可能になってから成功するカスタム正常性プローブを指定します。
詳細については、ヘルスチェックをご覧ください。
制限事項
生成 AI モデルをデプロイする場合は、次の制限事項を考慮してください。
- 生成 AI モデルは 1 台のマシンにのみデプロイできます。マルチホスト デプロイはサポートされていません。
- Llama 3.1 405B など、サポートされている最大 vRAM に収まらない非常に大きなモデルの場合は、収まるように量子化することをおすすめします。