Vertex AI の生成 AI(別名: genAI)で Google の生成 AI モデルにアクセスすることが可能で、これを複数のモダリティ(テキスト、コード、画像、スピーチ)向けに活用することができます。これらの大規模言語モデル(LLM)をテストして調整し、AI を活用したアプリケーションで使用するためにデプロイできます。詳細については、Vertex AI での生成 AI の概要をご覧ください。
Vertex AI には、このガイドで使用されているモデルなど、API を介してアクセス可能なさまざまな生成 AI 基盤モデルがあります。モデルを選択する方法については、Google モデルをご覧ください。
各モデルは、Google Cloud プロジェクト専用のパブリッシャー エンドポイントを通じて公開されます。そのため、特定のユースケース向けにチューニングする場合を除いて、基盤モデルをデプロイする必要はありません。パブリッシャー エンドポイントにプロンプトを送信できます。プロンプトとは、レスポンスを引き出すために LLM に送信される自然言語によるリクエストのことです。
このチュートリアルでは、Workflows コネクタまたは HTTP POST
リクエストを使用してパブリッシャー エンドポイントにテキスト プロンプトを送信することで、Vertex AI モデルからレスポンスを生成するワークフローについて説明します。詳細については、Vertex AI API コネクタの概要と HTTP リクエストを行うをご覧ください。
各ワークフローは、互いに独立してデプロイし実行できます。
画像を説明するワークフローをデプロイする
コネクタ メソッド(generateContent
)を使用してモデル パブリッシャー エンドポイントにリクエストを送信するワークフローをデプロイします。このメソッドは、マルチモーダル入力によるコンテンツ生成をサポートします。
このワークフローは、テキスト プロンプトと、Cloud Storage バケットで一般公開されている画像の URI を提供します。画像を表示したり、 Google Cloud コンソールでオブジェクトの詳細を確認したりすることができます。
ワークフローは、モデルで生成されたレスポンスから画像の説明を返します。
LLM のプロンプトで使用される HTTP リクエストの本文パラメータと、レスポンスの本文要素の詳細については、Gemini API リファレンスをご覧ください。
コンソール
Google Cloud コンソールで [ワークフロー] ページに移動します。
[
作成] をクリックします。新しいフィールドの名前を入力します:
describe-image
。[リージョン] リストで [us-central1 (Iowa)] を選択します。
[サービス アカウント] で、先ほど作成したサービス アカウントを選択します。
[次へ] をクリックします。
ワークフロー エディタで、次のワークフローの定義を入力します。
[デプロイ] をクリックします。
gcloud
ワークフローのソースコード ファイルを作成します。
touch describe-image.yaml
テキスト エディタで、次のワークフローをソースコード ファイルにコピーします。
次のコマンドを入力してワークフローをデプロイします。
gcloud workflows deploy describe-image \ --source=describe-image.yaml \ --location=us-central1 \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
ワークフローを実行する
ワークフローを実行すると、そのワークフローに関連付けられた現在のワークフロー定義が実行されます。
コンソール
Google Cloud コンソールで [ワークフロー] ページに移動します。
[ワークフロー] ページで、[describe-image] ワークフローを選択して詳細ページに移動します。
[ワークフローの詳細] ページで [play_arrow 実行] を選択します。
[Input] に、次のように入力します。
{"image_url":"gs://generativeai-downloads/images/scones.jpg"}
もう一度 [Execute] をクリックします。
ワークフローの結果が [出力] ペインに表示されます。
出力例を以下に示します。
{ "image_description": "There are three pink peony flowers on the right side of the picture[]...]There is a white napkin on the table.", "image_url": "gs://generativeai-downloads/images/scones.jpg" }
gcloud
ターミナルを開きます。
ワークフローを実行します。
gcloud workflows run describe-image \ --data='{"image_url":"gs://generativeai-downloads/images/scones.jpg"}'
結果の例を以下に示します。
Waiting for execution [258b530e-a093-46d7-a4ff-cbf5392273c0] to complete...done. argument: '{"image_url":"gs://generativeai-downloads/images/scones.jpg"}' createTime: '2024-02-09T13:59:32.166409938Z' duration: 4.174708484s endTime: '2024-02-09T13:59:36.341118422Z' name: projects/1051295516635/locations/us-central1/workflows/describe-image/executions/258b530e-a093-46d7-a4ff-cbf5392273c0 result: "{\"image_description\":\"The picture shows a rustic table with a white surface,\ \ on which there are several scones with blueberries, as well as two cups of coffee\ [...] \ on the table. The background of the table is a dark blue color.\",\"image_url\"\ :\"gs://generativeai-downloads/images/scones.jpg\"}" startTime: '2024-02-09T13:59:32.166409938Z' state: SUCCEEDED
国の歴史を生成するワークフローをデプロイする
国の入力リストを並列にループするワークフローをデプロイし、コネクタ メソッド(generateContent
)を使用してモデル パブリッシャー エンドポイントに対してリクエストを行います。このメソッドは、マルチモーダル入力によるコンテンツ生成をサポートします。
ワークフローが、モデルによって生成された国の歴史を返し、マップにまとめます。
LLM のプロンプトで使用される HTTP リクエストの本文パラメータと、レスポンスの本文要素の詳細については、Gemini API リファレンスをご覧ください。
コンソール
Google Cloud コンソールで [ワークフロー] ページに移動します。
[
作成] をクリックします。新しいフィールドの名前を入力します:
gemini-pro-country-histories
。[リージョン] リストで [us-central1 (Iowa)] を選択します。
[サービス アカウント] で、先ほど作成したサービス アカウントを選択します。
[次へ] をクリックします。
ワークフロー エディタで、次のワークフローの定義を入力します。
[デプロイ] をクリックします。
gcloud
ワークフローのソースコード ファイルを作成します。
touch gemini-pro-country-histories.yaml
テキスト エディタで、次のワークフローをソースコード ファイルにコピーします。
次のコマンドを入力してワークフローをデプロイします。
gcloud workflows deploy gemini-pro-country-histories \ --source=gemini-pro-country-histories.yaml \ --location=us-central1 \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
ワークフローを実行する
ワークフローを実行すると、そのワークフローに関連付けられた現在のワークフロー定義が実行されます。
コンソール
Google Cloud コンソールで [ワークフロー] ページに移動します。
[ワークフロー] ページで、[gemini-pro-country-histories] ワークフローを選択して詳細ページに移動します。
[ワークフローの詳細] ページで [play_arrow 実行] を選択します。
[Input] に、次のように入力します。
{"countries":["Argentina", "Bhutan", "Cyprus", "Denmark", "Ethiopia"]}
もう一度 [Execute] をクリックします。
ワークフローの結果が [出力] ペインに表示されます。
出力例を以下に示します。
{ "Argentina": "The history of Argentina is a complex and fascinating one, marked by periods of prosperity and decline, political [...] "Bhutan": "The history of Bhutan is a rich and fascinating one, dating back to the 7th century AD. Here is a brief overview: [...] "Cyprus": "The history of Cyprus is a long and complex one, spanning over 10,000 years. The island has been ruled by a succession [...] "Denmark": "1. **Prehistory and Early History (c. 12,000 BC - 800 AD)**\\n - The earliest evidence of human habitation in Denmark [...] "Ethiopia": "The history of Ethiopia is a long and complex one, stretching back to the earliest human civilizations. The country is [...] }
gcloud
ターミナルを開きます。
ワークフローを実行します。
gcloud workflows run gemini-pro-country-histories \ --data='{"countries":["Argentina", "Bhutan", "Cyprus", "Denmark", "Ethiopia"]}' \ --location=us-central1
結果の例を以下に示します。
Waiting for execution [7ae1ccf1-29b7-4c2c-99ec-7a12ae289391] to complete...done. argument: '{"countries":["Argentina","Bhutan","Cyprus","Denmark","Ethiopia"]}' createTime: '2024-02-09T16:25:16.742349156Z' duration: 12.075968673s endTime: '2024-02-09T16:25:28.818317829Z' name: projects/1051295516635/locations/us-central1/workflows/gemini-pro-country-histories/executions/7ae1ccf1-29b7-4c2c-99ec-7a12ae289391 result: "{\"Argentina\":\"The history of Argentina can be traced back to the arrival\ [...] n* 2015: Argentina elects Mauricio Macri as president.\",\"Bhutan\":\"The history\ [...] \ natural beauty, ancient monasteries, and friendly people.\",\"Cyprus\":\"The history\ [...] ,\"Denmark\":\"The history of Denmark can be traced back to the Stone Age, with\ [...] \ a high standard of living.\",\"Ethiopia\":\"The history of Ethiopia is long and\ [...] startTime: '2024-02-09T16:25:16.742349156Z' state: SUCCEEDED
大きなドキュメントを要約するワークフローをデプロイする
大きなドキュメントを小さな部分に分割するワークフローをデプロイし、モデル パブリッシャー エンドポイントへの http.post
リクエストを並列で実行して、モデルが各部分を同時に要約できるようにします。ワークフローが最終的に、部分的なサマリーをすべて 1 つのサマリーにまとめます。
LLM のプロンプトで使用される HTTP リクエストの本文パラメータと、レスポンスの本文要素の詳細については、Gemini API リファレンスをご覧ください。
このワークフロー定義は、テキスト ファイルをアップロードできる Cloud Storage バケットを作成していることを前提としています。Cloud Storage バケットからオブジェクトを取得するために使用される Workflows コネクタ(googleapis.storage.v1.objects.get
)の詳細については、コネクタ リファレンスをご覧ください。
ワークフローをデプロイしたら、適切な Eventarc トリガーを作成し、ファイルをバケットにアップロードして実行できます。詳細については、Cloud Storage イベントを Workflows に転送するをご覧ください。追加の API を有効にする必要があります。また、サービス アカウントに Cloud Storage オブジェクトの使用をサポートするストレージ オブジェクト ユーザー(roles/storage.objectUser
)のロールを付与するなど、追加のロールを付与する必要があります。詳細については、トリガーの作成を準備するセクションをご覧ください。
コンソール
Google Cloud コンソールで [ワークフロー] ページに移動します。
[
作成] をクリックします。新しいフィールドの名前を入力します:
gemini-pro-summaries
。[リージョン] リストで [us-central1 (Iowa)] を選択します。
[サービス アカウント] で、先ほど作成したサービス アカウントを選択します。
[次へ] をクリックします。
ワークフロー エディタで、次のワークフローの定義を入力します。
[デプロイ] をクリックします。
gcloud
ワークフローのソースコード ファイルを作成します。
touch gemini-pro-summaries.yaml
テキスト エディタで、次のワークフローをソースコード ファイルにコピーします。
次のコマンドを入力してワークフローをデプロイします。
gcloud workflows deploy gemini-pro-summaries \ --source=gemini-pro-summaries.yaml \ --location=us-central1 \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com