Vertex AI のマルチモーダルエンベディングの実行例のメモ。
画像のエンベディング
概要
- 外部接続の作成
- 権限設定
- Cloud Storage への画像ファイルのアップロード
- オブジェクトテーブルの作成
外部接続の作成
- GCP メニューの「BigQuery」を選択。
- 「+追加」をクリック。
- 「外部データソースへの接続」を選択。
- 接続タイプで「Vertex AI リモートモデル」を選択。
- 「リージョン」:「asia-northeast1」を選択。
- 「接続を作成」をクリック。
権限設定
外部接続の IAM に対して以下の権限を設定。
- GCP メニューの「IAM と管理」を選択。
- 「アクセス件を付与」をクリック。
- 「新しいプリンシパル」に外部データへの接続で作成したユーザを指定し、以下の権限を設定。
- Storage オブジェクト管理者
- BigQuery connection Admin
Cloud Storage への画像ファイルのアップロード
$ gsutil cp *.jpg gs://{バケット}/{パス}/
オブジェクトテーブルを作成
以下を実行。
CREATE OR REPLACE EXTERNAL TABLE `{プロジェク}.{データセット}.{テーブル}` WITH CONNECTION `{リージョン}.{接続ID}` OPTIONS ( object_metadata = 'SIMPLE', uris = ['gs://{バケット}/{パス}/*.jpg'] );
画像のエンベディング
select regexp_extract(uri, '/([0-9]+).jpg$') as id , ml_generate_embedding_result as image_vecctor from ml.generate_embedding( model {データセット}.{テーブル}, table {データセット}.{オブジェクトテーブル}, struct( true as flatten_json_output, 512 as output_dimensionality ) ) ;