マルチモーダル エンベディングを生成する

このページでは、サポートされている Vertex AI マルチモーダル モデル multimodalembedding@001 を使用してマルチモーダル エンベディングを生成する方法について説明します。

サポートされているモデルで説明されている Vertex AI マルチモーダル エンベディング モデルを使用できます。

このページでは、AlloyDB for PostgreSQL と生成 AI のコンセプトに精通していることを前提としています。エンベディングの詳細については、エンベディングとはをご覧ください。

始める前に

マルチモーダル エンベディングを使用する前に、次の操作を行います。

Vertex AI と統合して拡張機能をインストールする

  1. Vertex AI と統合します
  2. google_ml_integration の最新バージョンがインストールされていることを確認します。
    1. インストールされているバージョンを確認するには、次のコマンドを実行します。

              SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';
              extversion
              ------------
              1.4.3
              (1 row)
            
    2. 拡張機能がインストールされていない場合、またはインストールされているバージョンが 1.4.3 より前の場合は、次のコマンドを実行して拡張機能をアップデートします。

              CREATE EXTENSION IF NOT EXISTS google_ml_integration;
              ALTER EXTENSION google_ml_integration UPDATE;
            

      上記のコマンドを実行したときに問題が発生した場合、または上記のコマンドを実行しても拡張機能がバージョン 1.4.3 にアップデートされない場合は、AlloyDB サポートにお問い合わせください。

    3. バージョンが最新であることを確認したら、upgrade_to_preview_version プロシージャを実行してプレビュー機能をインストールします。

              CALL google_ml.upgrade_to_preview_version();
              SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';
              extversion
              ------------
              1.4.4
              (1 row)
            

Cloud Storage のデータにアクセスしてマルチモーダル エンベディングを生成する

  • マルチモーダル エンベディングを生成するには、gs:// URI を使用して Cloud Storage のコンテンツを参照します。
  • 現在のプロジェクトの Vertex AI サービス エージェントを介して Cloud Storage コンテンツにアクセスします。デフォルトでは、Vertex AI サービス エージェントには、同じプロジェクト内のバケットにアクセスする権限がすでに付与されています。詳細については、IAM のロールと権限のインデックスをご覧ください。
  • 別の Google Cloud プロジェクトの Cloud Storage バケット内のデータにアクセスするには、次の gcloud CLI コマンドを実行して、AlloyDB プロジェクトの Vertex AI サービス エージェントに Storage オブジェクト閲覧者ロール(roles/storage.objectViewerを付与します。

    gcloud projects add-iam-policy-binding <ANOTHER_PROJECT_ID> \
    --member="serviceAccount:service-<PROJECT_ID>@gcp-sa-aiplatform.iam.gserviceaccount.com" \
    --role="roles/storage.objectViewer"

    詳細については、バケットでの IAM ポリシーの設定と管理をご覧ください。

マルチモーダル エンベディングを生成するには、次のいずれかのスキーマを選択します。

マルチモーダル エンベディングを生成する

multimodalembedding@001 モデル エンドポイントのテキスト エンベディングを生成するには、次のステートメントを実行します。

SELECT
  ai.text_embedding(
    model_id => 'multimodalembedding@001',
    content => 'TEXT');

TEXT は、エンベディングを生成するテキストに置き換えます。

画像の mimetype がデフォルトの image/jpeg である登録済みの multimodalembedding@001 モデル エンドポイントの画像エンベディングを生成するには、次のステートメントを実行します。

SELECT
  ai.image_embedding(
    model_id => 'multimodalembedding@001',
    image => 'IMAGE_PATH_OR_TEXT',
    mimetype => MIMETYPE');

次のように置き換えます。

  • IMAGE_PATH_OR_TEXT は、画像の Cloud Storage URI(gs://my-bucket/embeddings/flowers.jpeg など)または画像の base64 文字列に置き換えます。
  • MIMETYPE は、画像の mimetype(image/jpeg など)に置き換えます。サポートされている MIME タイプの完全なリストについては、マルチモーダル エンベディング API をご覧ください。

登録済みの multimodalembedding@001 モデル エンドポイントの動画エンベディングを生成するには、次のステートメントを実行します。

SELECT
  ai.video_embedding(
    model_id => 'multimodalembedding@001',
    video => 'VIDEO_URI');

VIDEO_URI は、ターゲット動画の Cloud Storage URI(gs://my-bucket/embeddings/supermarket-video.mp4 など)または動画の base64 文字列に置き換えます。

次のステップ