このページでは、Vertex AI Vision のアプリ プラットフォームで使用するアプリを作成し、コンポーネント(入力ストリーム、分析用モデル、ストレージ用ウェアハウスなど)を組み合わせる方法について説明します。
アプリを構築するには、データソース、実行する分析、結果の保存方法を検討する必要があります。エンドツーエンド アプリは、ユースケースに応じてさまざまな形式をとることができます。そのため、アプリの構築方法は目標によって異なります。
開始する前に、責任ある AI の観点からユースケースと目標を評価し、モデルとアプリケーションが適切でない場合にエンドユーザーに及ぼす影響を検討します。公平性についてユースケースを評価するための最初のステップをご覧ください。また、Vertex AI Vision の使用が Google Cloudの利用規約またはオフライン バージョン、および Google Cloudの利用規定などの組み込み URL の規約に準拠していることも確認してください。
アプリケーションを作成する際は、AI ビジョン テクノロジーが不公平なバイアスを強化または導入し、基本的人権に影響を与える可能性があることに留意してください。アプリケーションの開発には、企業の価値観に基づく倫理的な考察と、高リスクのユースケースを含む特定のユースケースに関する法的デュー デリジェンスが必要です。すべてのテクノロジーと同様に、テクノロジーを実装する地域で AI/ML テクノロジーの使用を規定する適用法と規制をすべて考慮する必要があります。特定のリージョンでリスクが高いと見なされるユースケースを実装するために必要なデュー デリジェンスは、お客様の責任で行っていただきます。
新しいアプリケーションを作成する
ストリームやモデルなどのコンポーネントをアプリに追加する前に、アプリ自体を作成する必要があります。すべてのアプリは、デプロイするために以下を含んでいる必要があります。
- ストリーム入力ノード(データソース)。
- モデルやウェアハウスなど、他のコンポーネント ノードが少なくとも 1 つ。
新しいカスタム アプリケーションを作成する
コンソール
Google Cloud コンソールでアプリを作成します。
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
[
作成] ボタンをクリックします。アプリ名を入力し、リージョンを選択します。サポートされているリージョン。
[作成] をクリックします。
テンプレートを使用してアプリケーションを作成する
コンソール
Google Cloud コンソールでアプリを作成します。
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
[
作成] ボタンをクリックします。アプリ名を入力し、リージョンを選択します。サポートされているリージョン。
[作成] をクリックします。
アプリケーション ビルダーのページで、[アプリケーション テンプレート] ノードをクリックします。
サイド設定パネルで、[モデルを選択] ボタンをクリックします。
プルダウン メニューからモデルを選択します。
ストリーム入力を追加する
アプリケーションには動画ストリーム ノードが必要です。Streams ノードを追加しないと、アプリケーションをデプロイできません。
アプリケーションがデプロイされていない場合、ストリーム入力の更新はアプリケーションに自動的に適用されます。アプリがすでにデプロイされている場合は、変更を適用するために、アプリをデプロイ解除して更新する必要があります。詳しくは、アプリを更新するセクションをご覧ください。
コンソール
Google Cloud コンソールでアプリにストリームを追加します。
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
アプリの [アプリを表示] をクリックします。
コンポーネントのサイドリストから、[コネクタ] のリストにある [動画ストリーム] を選択します。ストリームノードがアプリグラフに追加され、[Video streams] メニューがサイドに開きます。
[動画ストリームを追加] を選択します。
[
既存のストリームから選択] を選択した場合は、既存のストリームを選択して [ストリームを追加] を選択します。[新しいストリームを登録] を選択した場合は、新しいストリームの名前を追加して、[ストリームを追加] を選択します。
REST
アプリにストリームを追加するには、projects.locations.applications.addStreamInput メソッドを使用して POST リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: Google Cloud プロジェクト ID またはプロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用しているリージョン。たとえば、
us-central1
、europe-west4
などです。利用可能なリージョンをご覧ください。 - APPLICATION_ID: ターゲット アプリケーションの ID。
- STREAM_ID: ターゲット ストリームの ID。
HTTP メソッドと URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput
リクエストの本文(JSON):
{ "applicationStreamInputs": [ { "streamWithAnnotation": { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" } }, { "streamWithAnnotation": { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" } } ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
ノード アノテーションを含むストリーム入力を追加する
アプリケーション入力ストリームを作成するときに、Vertex AI Vision API を使用してストリームにアノテーションを追加できます。Google Cloud コンソールでノードにアノテーションを追加することもできます。
コンソール
次のサンプルでは、使用可能なアノテーション(STREAM_ANNOTATION_TYPE_ACTIVE_ZONE
と STREAM_ANNOTATION_TYPE_CROSSING_LINE
)を占有数モデルに追加します。
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
リストからアプリケーションの名前の横にある [アプリを表示] を選択します。
アプリケーション ビルダーのページで、アノテーションを追加するストリーム入力を含むモデルを選択します。
モデル設定のサイドパネルで、[詳細設定] セクションを開きます。セクションを開いたら、[アクティブ エリア/ラインを作成] ボタンをクリックします。
ストリーム ギャラリー ビューで、アクティブ ゾーンまたはアクティブ ラインを描画する入力ストリームを選択します。
エディタ ビューで、[複数ポイントのラインを追加] または [シンプルなポリゴンを追加] を選択して、アノテーションを追加します。サイドパネルを使用して、ゾーンまたは線の名前を変更したり、既存のゾーンや線を削除したり、線の方向を切り替えたりします。
REST とコマンドライン
次のコードは、ストリーム アノテーションを追加します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: Google Cloud プロジェクト ID またはプロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用しているリージョン。たとえば、
us-central1
、europe-west4
などです。利用可能なリージョンをご覧ください。 - APPLICATION_ID: ターゲット アプリケーションの ID。
- STREAM_ID: ターゲット ストリームの ID。
- NODE_NAME: アプリグラフのターゲット ノードの名前。例:
builtin-occupancy-count
。 - ANNOTATION_ID: ターゲット アノテーションの ID。
- ANNOTATION_DISPLAYNAME: ターゲット アノテーションのユーザー指定の表示名。
- ANNOTATION_TYPE: 使用可能な列挙値のいずれか。このタイプは、
annotation_payload
オブジェクト(activeZone
またはcrossingLine
)と一致している必要があります。使用可能な値は次のとおりです。STREAM_ANNOTATION_TYPE_UNSPECIFIED
STREAM_ANNOTATION_TYPE_ACTIVE_ZONE
STREAM_ANNOTATION_TYPE_CROSSING_LINE
normalizedVertices
: それぞれの頂点は、x と y の座標値で指定します。座標は、元の画像に対する正規化された浮動小数点数 [0,1] です。0.0 は X_MIN または Y_MIN、1.0 は X_MAX または Y_MAX です。
HTTP メソッドと URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput
リクエストの本文(JSON):
{ "applicationStreamInputs": [ { "streamWithAnnotation": { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID", "nodeAnnotations": [ { "node": "NODE_NAME", "annotations": [ { "id": "ANNOTATION_ID", "displayName": "ANNOTATION_DISPLAYNAME", "sourceStream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID", "type": ANNOTATION_TYPE, "activeZone": { "normalizedVertices": { "x": 0.07434944, "y": 0.18061674 }, "normalizedVertices": { "x": 0.64684016, "y": 0.16079295 }, "normalizedVertices": { "x": 0.6047088, "y": 0.92070484 }, "normalizedVertices": { "x": 0.1251549, "y": 0.76651984 } } } ] } ] } } ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
ストリーム入力を削除する
REST
アプリからストリームを削除するには、projects.locations.applications.removeStreamInput メソッドを使用して POST リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: Google Cloud プロジェクト ID またはプロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用しているリージョン。たとえば、
us-central1
、europe-west4
などです。利用可能なリージョンをご覧ください。 - APPLICATION_ID: ターゲット アプリケーションの ID。
- STREAM_ID: ターゲット ストリームの ID。
HTTP メソッドと URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput
リクエストの本文(JSON):
{ "targetStreamInputs": [ { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" }, { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" } ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput" | Select-Object -Expand Content
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
事前トレーニング済みの Vertex AI Vision モデルを追加する
アプリを作成したら、モデルを追加して、ストリーム、他のモデル、メディア ウェアハウスに接続できます。
モデルには、事前トレーニング済みモデルとユーザー トレーニング済みモデルの 2 種類があります。同様に、ユーザー トレーニング モデルも AutoML またはカスタム トレーニングの 2 種類があります。
- 事前トレーニング済みモデルは、特定の目的を実行し、一般化されたデータでトレーニングされ、すぐに使用できます。
- ユーザーがトレーニングした AutoML モデルまたはカスタム トレーニング済みモデルでは、サンプルデータを特定して提供し、独自のユースケースに適したモデルをトレーニングする必要があります。これらのモデルは、2 つのトレーニング オプション(AutoML トレーニング済みモデルとカスタム トレーニング済みモデル)を提供する Vertex AI を使用してトレーニングします。詳細については、トレーニング方法を選択するをご覧ください。
次の手順に沿って、事前トレーニング済みの Vertex AI Vision モデルをアプリグラフに追加します。
コンソール
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
リストからアプリケーションの名前の横にある [アプリを表示] を選択します。
アプリケーション ビルダーのページで、[AI モデル] リストから追加するモデルを選択します。各モデルには個別の構成設定があります。
このモデルを入力ソースノードに接続するには、ソースノードを選択して
[出力を追加] を選択します。[使用可能なノード] のリストから、新しく作成した AI モデルノードを選択します。
ユーザーがトレーニングした Vertex AI モデルを追加する
アプリを作成したら、モデルを追加して、ストリーム、他のモデル、メディア ウェアハウスに接続できます。
モデルには、事前トレーニング済みモデルとユーザー トレーニング済みモデルの 2 種類があります。同様に、ユーザー トレーニング モデルも AutoML またはカスタム トレーニングの 2 種類があります。
- 事前トレーニング済みモデルは、特定の目的を実行し、一般化されたデータでトレーニングされ、すぐに使用できます。
- ユーザーがトレーニングした AutoML モデルまたはカスタム トレーニング済みモデルでは、サンプルデータを特定して提供し、独自のユースケースに適したモデルをトレーニングする必要があります。これらのモデルは、2 つのトレーニング オプション(AutoML トレーニング済みモデルとカスタム トレーニング済みモデル)を提供する Vertex AI を使用してトレーニングします。詳細については、トレーニング方法を選択するをご覧ください。
Vertex AI AutoML オブジェクト検出ストリーミング モデルを追加する
次の手順に沿って、トレーニングした Vertex AI AutoML オブジェクト検出ストリーミング モデルをアプリグラフに追加します。
Vertex AI AutoML モデルをトレーニングする前に、オブジェクト検出データを準備し、データセットを作成する必要があります。
Vertex AI Vision で使用するモデルをトレーニングする
Vertex AI で代表的なデータ収集を含むデータセットを作成したら、Vertex AI Vision で使用するモデルをトレーニングできます。
コンソール
Google Cloud コンソールの Vertex AI ダッシュボードで、[データセット] ページに移動します。
モデルのトレーニングに使用するデータセットの名前をクリックして、詳細ページを開きます。
目的のデータ型でアノテーション セットが使用されている場合は、モデルで使用するアノテーション セットを選択します。
[新しいモデルのトレーニング] をクリックします。
[新しいモデルのトレーニング] ページで、AutoML 画像オブジェクト検出モデルに対して次の手順を行います。
[モデルのトレーニング方法] セクションで、
[AutoML] を選択します。[モデルを使用する場所の選択] セクションで、
Vertex AI Vision を選択します。[続行] をクリックします。
[モデルの詳細]、[トレーニング オプション]、[コンピューティングと料金] の各セクションに値を入力します。詳細については、AutoML モデルをトレーニングする(Google Cloud コンソール)をご覧ください。
[トレーニングを開始] をクリックします。
データのサイズ、複雑さ、トレーニング予算(指定された場合)に応じて、モデルのトレーニングに何時間もかかることがあります。このタブを閉じて、後で戻ることもできます。モデルのトレーニングが完了すると、メールが送られてきます。
トレーニング済みモデルをアプリに追加する
モデルのトレーニングが完了したら、Vertex AI Vision アプリに追加できます。
コンソール
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
リストからアプリケーションの名前の横にある [アプリを表示] を選択します。
アプリケーション ビルダーのページで、サイド コンポーネントのリストから [Vertex AI モデルを追加] を選択します。このオプションを選択すると、サイドメニューが開きます。
[Vertex AI モデルを追加] メニューで、[
Vertex AI からトレーニング済みモデルをインポートする] オプションを選択したまま、既存の Vertex AI AutoML モデルのリストからモデルを選択します。インポートするモデルを選択したら、[モデルを追加] を選択します。
[モデルを追加] ボタンをクリックすると、グラフビルダー ページの横に保留中のモデルが表示されます。数秒後にモデルを使用できるようになります。
Vertex AI カスタムモデルを追加する
Vertex AI カスタム トレーニング モデルを Vertex AI Vision にインポートして、データ分析に使用することもできます。これらのカスタム トレーニング モデルには、次のプロパティが必要です。
- モデル入力は異なるアプリケーション インスタンス(ストリーム)から取得された画像であり、順序が異なる可能性があるため、モデルはステートレスである必要があります。ステートフル ストリーミング処理が必要な場合は、独自のコンテナ内に状態を保持する必要がある場合があります。
- モデルへの入力サイズは 1.5 MB に制限されています。そのため、Vertex AI Vision は元の RGB 画像を JPG などの非可逆形式に圧縮する必要があります。
次の手順に沿って、トレーニング済みの既存の Vertex AI カスタム トレーニング動画モデルをアプリグラフに追加します。
カスタム コンテナを使用して Vertex AI カスタム トレーニング モデルを作成する方法については、予測にカスタム コンテナを使用するをご覧ください。
インスタンスの YAML ファイルを指定する
Vertex AI カスタム トレーニング モデルを追加する場合は、Cloud Storage に保存されているインスタンス YAML ファイル(instances.yaml
)を指定する必要があります。このファイルは、モデル コンテナへの想定される入力を指定します。
Vertex AI は、次の形式で予測リクエストを送信します。
{
"instances": [
<value>|<simple/nested list>|<object>,
...
]
}
ここで、instances.yaml
はペイロードのスキーマを定義します。詳細については、カスタム トレーニング済みモデルからオンライン予測を取得するをご覧ください。
Vertex AI Vision は、予測入力が 1 つだけ名前付きのカスタム トレーニング モデルのみをサポートします。この入力タイプは、エンコードされた JPEG 文字列でなければなりません。予測入力のスキーマは、インスタンス スキーマ YAML ファイルで指定する必要があります。このスキーマ YAML ファイルは、OpenAPI スキーマ オブジェクトの形式である必要があります。
たとえば、次のスキーマは、image_bytes
を呼び出すフィールドにエンコードされた画像を含むリクエストを受け取ります。
properties:
image_bytes:
type: string
カスタムモデルは、次の形式で予測入力を受け取ります。
{
"instances": [
{
"image_bytes" : {
"b64": "BASE64_ENCODED_IMAGE_BYTES"
}
}
]
}
モデルを Vertex AI Vision にインポートする前に、この入力でモデルが正しく動作することを確認します。
予測 YAML ファイルを指定する
Vertex AI カスタム トレーニング モデルを追加するときに、Cloud Storage に保存されている予測 YAML ファイル(predictions.yaml
)を指定できます。このファイルは、モデル コンテナからの出力を指定します。
このファイルは省略可能ですが、モデルの出力構造を Vertex AI Vision に通知するために使用することをおすすめします。たとえば、次の classification_1.0.0.yaml
ファイルは、画像分類モデルのモデル出力情報を記述しています。
title: Classification
type: object
description: >
The predicted AnnotationSpecs.
properties:
ids:
type: array
description: >
The resource IDs of the AnnotationSpecs that had been identified.
items:
type: integer
format: int64
enum: [0] # As values of this enum all AnnotationSpec IDs the Model
# was trained on will be populated.
displayNames:
type: array
description: >
The display names of the AnnotationSpecs that had been identified,
order matches the IDs.
items:
type: string
enum: [""] # As values of this enum all AnnotationSpec display_names
# the Model was trained on will be populated.
confidences:
type: array
description: >
The Model's confidences in correctness of the predicted IDs, higher
value means higher confidence. Order matches the Ids.
items:
type: number
format: float
minimum: 0.0
maximum: 1.0
カスタム トレーニング モデルを追加する
次のサンプルを使用して、Vertex AI カスタム トレーニング モデルをアプリに追加します。
コンソール
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
リストからアプリケーションの名前の横にある [アプリを表示] を選択します。
アプリケーション ビルダーのページで、サイド コンポーネントのリストから [Vertex AI モデルを追加] を選択します。このオプションを選択すると、サイドメニューが開きます。
[Vertex AI モデルを追加] メニューで、[
Vertex AI からトレーニング済みモデルをインポートする] オプションを選択したまま、既存の Vertex AI AutoML モデルのリストからモデルを選択します。モデルの名前を指定します。
予測リクエストと説明リクエストで使用される単一インスタンスの形式を定義する Cloud Storage 内のインスタンス YAML ファイルを指定します。
省略可: 単一の予測または説明の形式を定義する Cloud Storage 内の予測スキーマ YAML ファイルを指定します。
モデル名、インスタンス、予測情報を入力したら、[モデルを追加] を選択します。
[モデルを追加] ボタンをクリックすると、グラフビルダー ページの横に保留中のモデルが表示されます。数秒後にモデルを使用できるようになります。
省略可。アプリケーション メタデータを追加する
画像バイトに加えて、attach_application_metadata
を設定して、Vertex AI Vision アプリ プラットフォームにアプリケーションのメタデータをカスタム コンテナに送信するように要求することもできます。
メタデータのスキーマは次のとおりです。
'appPlatformMetadata': {
'application': STRING;
'instanceId': STRING;
'node': STRING;
'processor': STRING;
}
省略可。動的構成 Pub/Sub トピックを追加
Vertex カスタム オペレーターが動画フレームを Vertex カスタム コンテナに送信するフレームレートを動的に制御するには、Pub/Sub トピックを作成します。ノード設定の Dynamic Configuration
セクションに追加します。
Pub/Sub トピックが構成されている場合、初期フレームレートは 0 です。動画処理中に、次の形式で Pub/Sub トピックに Pub/Sub メッセージをリアルタイムで送信して、フレームレートを変更できます。
{
"stream_id": "input-stream-id",
"fps": 5,
}
stream_id
フィールドは、アプリケーションの入力ストリームの ID と一致する必要があります。
サービス アカウントと権限
カスタム コンテナのデフォルトのサービス認証情報は、Vertex AI Vision アプリ プラットフォームの Google 所有のサービス アカウントに構成されています。コンテナから他の Google Cloudサービスにアクセスするには、適切な権限を付与します。service-<var>PROJECT_NUMBER</var>@gcp-sa-visionai.iam.gserviceaccount.com
省略可。Cloud Run 関数と Pub/Sub を使用してイベント通知をモデル化する
Vertex AI Vision では、モデルはカメラなどのデバイスからメディアデータを受け取り、データに対して AI 予測を実行し、アノテーションを継続的に生成します。通常、処理されたデータは、メディア ウェアハウスや BigQuery などのデータ宛先(「データシンク」)に送信され、さらに分析ジョブが行われます。ただし、一部のアノテーションを異なる方法で処理する必要がある場合や、アノテーションのニーズが時間的制約を受ける場合もあります。Cloud Run functions と Pub/Sub の統合は、これらのニーズに対応するのに役立ちます。
サポートされているモデル
次のモデルでは、Cloud Run functions のイベント生成と Pub/Sub イベント通知の統合が提供されています。
- 利用人数の分析モデル
- Vertex AI カスタム トレーニング モデル
モデル出力を処理するように Cloud Run functions を構成する
イベントベースの通知をトリガーするには、まずモデル出力を処理してイベントを生成するように Cloud Run functions を設定する必要があります。
Cloud Run 関数はモデルに接続し、後処理アクションとしてモデルの出力をリッスンします。Cloud Run 関数は AppPlatformCloudFunctionResponse
を返す必要があります。イベント(appplatformeventbody
)は、次の手順で構成する Pub/Sub トピックに送信されます。
Cloud Run functions のサンプルを表示するには、Cloud Functions と Pub/Sub を使用してモデル イベント通知を有効にするをご覧ください。
次の手順に沿って、モデルの出力ストリームを Cloud Run functions の関数に送信します。
コンソール
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
リストからアプリケーションの名前の横にある
アプリを表示を選択します。サポートされているモデルをクリックして、モデルの詳細サイドパネルを開きます。
[イベント通知] セクションの [後処理] リストで、既存の Cloud Run 関数を選択するか、新しい関数を作成します。
Pub/Sub を使用してモデル イベント通知を有効にする
モデル出力を処理してイベントを生成するように Cloud Run functions を設定したら、Pub/Sub を使用してイベント通知を設定できます。トピックからメッセージを読み取るには、Pub/Sub サブスクリプションを選択して作成することも必要です。
コンソール
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
リストからアプリケーションの名前の横にある
アプリを表示を選択します。サポートされているモデルをクリックして、モデルの詳細サイドパネルを開きます。
[イベント通知] セクションで、[イベント通知を設定] を選択します。
開いた [イベント通知の Pub/Sub を設定する] オプション ウィンドウで、既存の Pub/Sub トピックを選択するか、新しいトピックを作成します。
[Frequency] フィールドで、同じタイプのイベントの通知を送信できる頻度(秒単位)の整数値を設定します。
[設定] をクリックします。
モデル出力をダウンストリーム ノードに接続する
モデルノードを作成したら、その出力を別のノードに接続できます。
コンソール
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
リストからアプリケーションの名前の横にある [アプリを表示] を選択します。
アプリケーション グラフビルダーでデータを出力するモデルノード(Occupancy Count モデルノードなど)をクリックします。
サイド設定パネルで、[出力を追加] ボタンをクリックします。
[新しい出力を追加] を選択して追加する新しい出力ノードを選択するか、出力を送信する既存の [利用可能なノード] を選択します。
出力をデータ宛先に接続する
データ取り込みストリームを作成し、処理ノードをアプリに追加したら、処理済みデータの送信先を選択する必要があります。このデータ宛先は、ストリームデータを生成せずにストリームデータを受け入れるアプリグラフのエンドポイントです。選択する宛先は、アプリの出力データの使用方法によって異なります。

アプリの出力データを次のデータ宛先に接続できます。
Vision Warehouse: 表示とクエリが可能な元データまたは分析済み動画データを保存します。
アプリの出力データを Vision Warehouse に送信する方法については、データをウェアハウスに接続して保存するをご覧ください。
BigQuery: BigQuery にデータを保存して、オフライン分析機能を使用します。
アプリの出力データを BigQuery に送信する方法について詳しくは、BigQuery に接続してデータを保存するをご覧ください。
ライブ ストリーム データ: リアルタイム分析に基づいてよりきめ細かい制御を行いたい場合は、アプリからライブ出力を受け取ることができます。
アプリの出力データを直接ストリーミングする方法については、ライブ ストリーム出力を有効にするをご覧ください。
アプリを更新する
未デプロイのアプリ
アプリに変更を加えます(コンポーネント ノードの追加や削除など)。Vertex AI Vision は変更を自動的に保存します。
次のステップ
- アプリケーションをデプロイするで、データを取得して分析するアプリをデプロイする方法を学習する。
- アプリの入力ストリームからデータ取り込みを開始する方法については、ストリームの作成と管理をご覧ください。
- アプリを一覧表示して、デプロイされたアプリのインスタンスを表示する方法については、アプリケーションの管理をご覧ください。
- ストリーム データの読み取りで、取り込みストリームからアプリ入力データを読み取る方法、または分析されたモデル出力データを読み取る方法について学習します。