このチュートリアルでは、Model Garden を使用して、Gemma 2B オープンモデルを GPU をベースとする Vertex AI エンドポイントにデプロイします。オンライン予測用にモデルを配信する前に、モデルをエンドポイントにデプロイする必要があります。モデルのデプロイでは、少ないレイテンシでオンライン予測を提供できるように、モデルに物理リソースを関連付けます。
Gemma 2B モデルをデプロイしたら、PredictionServiceClient
を使用してトレーニング済みモデルを推論し、オンライン予測を取得します。オンライン予測は、エンドポイントにデプロイされたモデルに対して行われる同期リクエストです。
目標
このチュートリアルでは、次のタスクを行う方法について説明します。
- Model Garden を使用して Gemma 2B オープンモデルを GPU ベースのエンドポイントにデプロイする
PredictionServiceClient
を使用してオンライン予測を取得する
料金
このドキュメントでは、Google Cloud の次の課金対象のコンポーネントを使用します。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。
始める前に
このチュートリアルでは、次の準備が必要です。
- Google Cloud プロジェクトを設定して Vertex AI API を有効にする
- ローカルマシンで:
- Google Cloud CLI をインストール、初期化、認証する
- 言語の SDK をインストールする
Google Cloud プロジェクトの設定
Google Cloud プロジェクトを設定し、Vertex AI API を有効にします。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
Google Cloud CLI を設定する
ローカルマシンで Google Cloud CLI を設定します。
-
Google Cloud CLI をインストールして初期化します。
-
すでに gcloud CLI をインストールしている場合は、このコマンドを実行して
gcloud
コンポーネントが更新されていることを確認します。gcloud components update
-
gcloud CLI で認証するには、次のコマンドを実行してローカルのアプリケーションのデフォルト認証情報(ADC)ファイルを生成します。コマンドで起動されたウェブフローを使用して、ユーザー認証情報を提供します。
gcloud auth application-default login
詳細については、gcloud CLI 認証構成と ADC 構成をご覧ください。
プログラミング言語の SDK を設定する
このチュートリアルで使用する環境を設定するには、使用する言語の Vertex AI SDK と Protocol Buffers ライブラリをインストールします。コードサンプルでは、プロトコル バッファ ライブラリの関数を使用して、入力ディクショナリを API が想定する JSON 形式に変換します。
ローカルマシンで、次のいずれかのタブをクリックして、プログラミング言語の SDK をインストールします。
Python
ローカルマシンで、次のいずれかのタブをクリックして、プログラミング言語の SDK をインストールします。
次のコマンドを実行して、Vertex AI SDK for Python をインストールして更新します。
pip3 install --upgrade "google-cloud-aiplatform>=1.64"
次のコマンドを実行して、Python 用のプロトコル バッファ ライブラリをインストールします。
pip3 install --upgrade "profobuf>=5.28"
Node.js
次のコマンドを実行して、Node.js 用の aiplatform
SDK をインストールまたは更新します。
npm install @google-cloud/aiplatform
Java
google-cloud-aiplatform
を依存関係として追加するには、環境に適したコードを追加します。
BOM ありの Maven
pom.xml
に次の HTML を追加します。
<dependencyManagement> <dependencies> <dependency> <artifactId>libraries-bom</artifactId> <groupId>com.google.cloud</groupId> <scope>import</scope> <type>pom</type> <version>26.34.0</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-aiplatform</artifactId> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java-util</artifactId> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> </dependencies>
BOM なしの Maven
pom.xml
に次のように追加します。
<dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-aiplatform</artifactId> <version>1.1.0</version> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java-util</artifactId> <version>5.28</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.11.0</version> </dependency>
BOM なしの Gradle
build.gradle
に次の行を追加します。
implementation 'com.google.cloud:google-cloud-aiplatform:1.1.0'
Go
次のコマンドを実行して、これらの Go パッケージをインストールします。
go get cloud.google.com/go/aiplatform go get google.golang.org/protobuf go get github.com/googleapis/gax-go/v2
Model Garden を使用して Gemma をデプロイする
Gemma 2B モデルを g2-standard-12
Compute Engine アクセラレータ最適化マシンタイプにデプロイします。このマシンには、1 つの NVIDIA L4 GPU アクセラレータが接続されています。
このチュートリアルでは、Model Garden のモデルカードを使用して、命令でチューニングされた Gemma 2B オープンモデルをデプロイします。具体的なモデル バージョンは gemma2-2b-it
です。-it
は命令チューニング済みを表します。
Gemma 2B モデルはパラメータ サイズが小さいため、リソース要件が少なく、デプロイの柔軟性が高くなります。
Google Cloud コンソールの [Model Garden] ページに移動します。
[Gemma 2] モデルカードをクリックします。
[デプロイ] をクリックして、[モデルのデプロイ] ペインを開きます。
[モデルのデプロイ] ペインで、次の詳細を指定します。
[デプロイ環境] で [Vertex AI] をクリックします。
[モデルをデプロイする] セクションで、次の操作を行います。
[リソース ID] に
gemma-2b-it
を選択します。[モデル名] と [エンドポイント名] のデフォルト値を使用します。次に例を示します。
- モデル名:
gemma2-2b-it-1234567891234
- エンドポイント名:
gemma2-2b-it-mg-one-click-deploy
エンドポイント名をメモします。コードサンプルで使用されているエンドポイント ID を確認するために必要になります。
- モデル名:
[デプロイの設定] セクションで、次の操作を行います。
[基本] 設定のデフォルト オプションを受け入れます。
[リージョン] で、デフォルト値を受け入れるか、リストからリージョンを選択します。地域をメモします。コードサンプルに必要になります。
[マシン仕様] で、GPU を使用するインスタンス
1 NVIDIA_L4 g2-standard-12
を選択します。
[デプロイ] をクリックします。デプロイが完了すると、新しいエンドポイントの詳細が記載されたメールが届きます。[オンライン予測] > [エンドポイント] をクリックしてリージョンを選択すると、エンドポイントの詳細を確認することもできます。
PredictionServiceClient で Gemma 2B を推論する
Gemma 2B をデプロイしたら、PredictionServiceClient
を使用して「空はなぜ青いの?」というプロンプトのオンライン予測を取得します。
コード パラメータ
PredictionServiceClient
コードサンプルでは、以下を更新する必要があります。
PROJECT_ID
: プロジェクト ID を確認する手順は次のとおりです。Google Cloud コンソールの [スタート] ページに移動します。
ページ上部のプロジェクト選択ツールで、プロジェクトを選択します。
プロジェクト名、プロジェクト番号、プロジェクト ID は [ようこそ] の見出しの後に表示されます。
ENDPOINT_REGION
: エンドポイントをデプロイしたリージョンです。ENDPOINT_ID
: エンドポイント ID を確認するには、コンソールで確認するか、gcloud ai endpoints list
コマンドを実行します。[モデルをデプロイ] ペインからエンドポイント名とリージョンを取得します。Console
エンドポイントの詳細を表示するには、[オンライン予測 > エンドポイント] をクリックしてリージョンを選択します。
ID
列に表示される番号をメモします。gcloud
エンドポイントの詳細を表示するには、
gcloud ai endpoints list
コマンドを実行します。gcloud ai endpoints list \ --region=ENDPOINT_REGION \ --filter=display_name=ENDPOINT_NAME
出力は次のようになります。
Using endpoint [https://us-central1-aiplatform.googleapis.com/] ENDPOINT_ID: 1234567891234567891 DISPLAY_NAME: gemma2-2b-it-mg-one-click-deploy
サンプルコード
言語のサンプルコードで、PROJECT_ID
、ENDPOINT_REGION
、ENDPOINT_ID
を更新します。次に、コードを実行します。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。詳細については、Vertex AI Node.js API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Vertex AI Java API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Go
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Go の設定手順を完了してください。詳細については、Vertex AI Go API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
プロジェクトを削除する
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
リソースを個別に削除する
プロジェクトを保持する場合は、このチュートリアルで使用したリソースを削除します。
- モデルのデプロイを解除してエンドポイントを削除する
- Model Registry からモデルを削除する
モデルのデプロイを解除してエンドポイントを削除する
次のいずれかの方法でモデルのデプロイを解除し、エンドポイントを削除します。
コンソール
Google Cloud コンソールで、[オンライン予測]、[エンドポイント] の順にクリックします。
[リージョン] プルダウン リストで、エンドポイントをデプロイしたリージョンを選択します。
エンドポイント名をクリックして詳細ページを開きます。例:
gemma2-2b-it-mg-one-click-deploy
。Gemma 2 (Version 1)
モデルの行で、 [アクション]、[エンドポイントからモデルのデプロイを解除] の順にクリックします。[エンドポイントからモデルのデプロイを解除] ダイアログで [デプロイ解除] をクリックします。
[戻る] ボタンをクリックして [エンドポイント] ページに戻ります。
gemma2-2b-it-mg-one-click-deploy
行の末尾にある [アクション] をクリックし、[エンドポイントを削除] を選択します。確認プロンプトで [確認] をクリックします。
gcloud
Google Cloud CLI を使用してモデルのデプロイを解除し、エンドポイントを削除する手順は次のとおりです。
これらのコマンドでは、次のように置き換えます。
- PROJECT_ID は、プロジェクト名に置き換えます。
- LOCATION_ID は、モデルとエンドポイントをデプロイしたリージョンに置き換えます。
- ENDPOINT_ID は、エンドポイント ID に置き換えます。
- DEPLOYED_MODEL_NAME はモデルの表示名に置き換えます。
- DEPLOYED_MODEL_ID はモデル ID に置き換えます。
gcloud ai endpoints list
コマンドを実行してエンドポイント ID を取得します。このコマンドを使用すると、プロジェクト内のすべてのエンドポイントのエンドポイント ID が一覧表示されます。このチュートリアルで使用するエンドポイントの ID をメモします。gcloud ai endpoints list \ --project=PROJECT_ID \ --region=LOCATION_ID
出力は次のようになります。出力では、ID は
ENDPOINT_ID
と呼ばれます。Using endpoint [https://us-central1-aiplatform.googleapis.com/] ENDPOINT_ID: 1234567891234567891 DISPLAY_NAME: gemma2-2b-it-mg-one-click-deploy
gcloud ai models describe
コマンドを実行してモデル ID を取得します。このチュートリアルでデプロイしたモデルの ID をメモします。gcloud ai models describe DEPLOYED_MODEL_NAME \ --project=PROJECT_ID \ --region=LOCATION_ID
省略した出力は次のようになります。出力では、ID は
deployedModelId
と呼ばれます。Using endpoint [https://us-central1-aiplatform.googleapis.com/] artifactUri: [URI removed] baseModelSource: modelGardenSource: publicModelName: publishers/google/models/gemma2 ... deployedModels: - deployedModelId: '1234567891234567891' endpoint: projects/12345678912/locations/us-central1/endpoints/12345678912345 displayName: gemma2-2b-it-12345678912345 etag: [ETag removed] modelSourceInfo: sourceType: MODEL_GARDEN name: projects/123456789123/locations/us-central1/models/gemma2-2b-it-12345678912345 ...
エンドポイントからモデルのデプロイを解除します。前のコマンドからエンドポイント ID とモデル ID が必要です。
gcloud ai endpoints undeploy-model ENDPOINT_ID \ --project=PROJECT_ID \ --region=LOCATION_ID \ --deployed-model-id=DEPLOYED_MODEL_ID
このコマンドは出力を生成しません。
gcloud ai endpoints delete
コマンドを実行して、エンドポイントを削除します。gcloud ai endpoints delete ENDPOINT_ID \ --project=PROJECT_ID \ --region=LOCATION_ID
プロンプトが表示されたら、「
y
」と入力して確定します。このコマンドは出力を生成しません。
モデルを削除する
コンソール
Google Cloud コンソールの Vertex AI セクションから [Model Registry] ページに移動します。
[リージョン] プルダウン リストで、モデルをデプロイしたリージョンを選択します。
gemma2-2b-it-1234567891234
行の末尾にある [アクション] をクリックします。[モデルを削除] を選択します。
モデルを削除すると、関連するすべてのモデル バージョンと評価が Google Cloud プロジェクトから削除されます。
確認プロンプトで [削除] をクリックします。
gcloud
Google Cloud CLI を使用してモデルを削除するには、モデルの表示名とリージョンを gcloud ai models delete
コマンドに指定します。
gcloud ai models delete DEPLOYED_MODEL_NAME \
--project=PROJECT_ID \
--region=LOCATION_ID
DEPLOYED_MODEL_NAME は、モデルの表示名に置き換えます。PROJECT_ID は、プロジェクト名に置き換えます。LOCATION_ID は、モデルをデプロイしたリージョンに置き換えます。
次のステップ
- 詳しくは、Gemma オープンモデルをご覧ください。
- Gemma の利用規約を確認します。
- 詳しくは、オープンモデルをご覧ください。
- チューニング済みモデルをデプロイする方法を学習する。
- HuggingFace Textgen Inference(TGI)を使用して Gemma 2 を Google Kubernetes Engine にデプロイする方法を学習する。
PredictionServiceClient
の詳細については、Python、Node.js、Java、Go のいずれかの言語でご確認ください。