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

ドキュメントのバージョンを選択してください。

サポートされている Vertex AI マルチモーダル モデル multimodalembedding@001 を使用して、AlloyDB Omni でマルチモーダル エンベディングを生成できます。

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

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

始める前に

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

  1. Vertex AI モデルへのユーザー アクセスを構成します。
  2. google_ml_integration の最新バージョンがインストールされていることを確認します。
    1. インストールされているバージョンを確認するには、次のコマンドを実行します。

      SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';
      extversion
      ------------
      1.5.2
      (1 row)
    2. 拡張機能がインストールされていない場合、またはインストールされているバージョンが 1.5.2 より前の場合は、拡張機能を更新します。

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

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

  3. AlloyDB AI クエリエンジンの機能を使用するには、google_ml_integration.enable_ai_query_engine フラグを on に設定します。

    1. テキスト エディタを使用して、AlloyDB Omni のインストールの postgresql.conf 構成ファイルで次のフラグを設定します。
      google_ml_integration.enable_ai_query_engine = on
    2. postgresql.conf ファイルを保存したら、AlloyDB Omni サービスを再起動して変更を有効にします。
      sudo systemctl restart alloydbomni18
  4. Cloud Storage のデータにアクセスしてマルチモーダル エンベディングを生成します

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

  • マルチモーダル エンベディングを生成するには、gs:// URI を使用して Cloud Storage のコンテンツを参照します。
  • 現在のプロジェクトの Vertex AI サービス エージェントを介して Cloud Storage コンテンツにアクセスします。デフォルトでは、Vertex AI サービス エージェントには、同じプロジェクト内のバケットにアクセスする権限がすでに付与されています。詳細については、IAM のロールと権限のインデックスをご覧ください。
  • 別の Google Cloud プロジェクトの Cloud Storage バケット内のデータにアクセスするには、次の gcloud CLI コマンドを実行して、Google Cloud プロジェクトの 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 文字列に置き換えます。 これらは、my_array[0][5] のような構文でアクセスできる 2 次元配列です。詳細については、配列をご覧ください。

次のステップ