AlloyDB Omni に AlloyDB AI をインストールする

このページでは、AlloyDB Omni をインストールして AlloyDB AI を統合する方法について説明します。

AlloyDB AI は、エンタープライズ生成 AI アプリケーションを構築できる AlloyDB Omni に含まれる一連の機能です。AlloyDB の ML 機能の詳細については、生成 AI アプリケーションを作成するをご覧ください。

AlloyDB AI を搭載した AlloyDB Omni では、リモート ML モデルをクエリして、ML モデルから生成されたオンライン予測とテキスト エンベディングを操作できます。AlloyDB AI を搭載した AlloyDB Omni は、画像などの他のコンテンツからベクトル エンベディングを処理することもできます。たとえば、google_ml.predict_row インターフェースを使用してクエリ内で変換を行う場合などです。

AlloyDB AI で AlloyDB Omni をインストールする場所に応じて、次のいずれかのオプションを選択します。

リモートモデルをクエリするように AlloyDB Omni インスタンスを構成する

リモートモデルをクエリするように AlloyDB Omni を構成する手順は次のとおりです。

  1. Google Cloudでサービス アカウントを作成します。

  2. JSON 形式でサービス アカウント キーを作成してダウンロードします。

  3. キーはファイル システム上の永続的な場所に保存します。このファイルは、AlloyDB Omni サーバーの存続期間中、この場所に存在します。

    ファイル システム上の場所をメモします。この情報は次のステップで必要になります。

  4. 適切なプロジェクトとサービス アカウントに Vertex AI Identity and Access Management(IAM)権限を追加します。

       gcloud projects add-iam-policy-binding PROJECT_ID \
           --member="serviceAccount:SERVICE_ACCOUNT_ID" \
           --role="roles/aiplatform.user"

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

    • PROJECT_ID: Google Cloud プロジェクトの ID。

    • SERVICE_ACCOUNT_ID: 前の手順で作成したサービス アカウントの ID。これには、@PROJECT_ID.iam.gserviceaccount.com 接尾辞全体が含まれます(例: my-service@my-project.iam.gserviceaccount.com)。

AlloyDB AI を使用して AlloyDB Omni をインストールする

AlloyDB Omni をインストールして AlloyDB AI を統合する手順は次のとおりです。

  1. クラウドベースのモデルをクエリするように AlloyDB Omni を構成するに記載されている手順をすべて完了していることを確認します。

  2. デフォルトの AlloyDB Omni 構成ファイルのローカルコピーを作成します。

    Docker

       docker run -i --rm google/alloydbomni cat /usr/share/postgresql/postgresql.conf.sample > my-postgres.conf

    Podman

       podman run -i --rm google/alloydbomni cat /usr/share/postgresql/postgresql.conf.sample > my-postgres.conf
  3. 構成ファイルのコピーを編集して、AlloyDB AI 統合のディレクティブを追加します。

       echo "omni_enable_ml_agent_process = 'on'" >> my-postgres.conf
       echo "omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json'" >> my-postgres.conf
  4. 鍵ファイルと構成ファイルのファイル システム権限を調整します。

       sudo chmod +r my-postgres.conf
       sudo chmod +r KEY_PATH

    KEY_PATH は、ホスト ファイル システムのサービス アカウント秘密鍵ファイルのパスに置き換えます。これは、この手順で作成してダウンロードした鍵です。

  5. コンテナにマウントされた鍵ファイルと構成ファイルをインストールします。

    Docker

      docker run --name CONTAINER_NAME -e POSTGRES_PASSWORD=NEW_PASSWORD -p HOST_PORT:5432 -v "$PWD/my-postgres.conf":/etc/postgresql/postgresql.conf -v "FULL_KEY_PATH":/etc/postgresql/private-key.json -d google/alloydbomni -c 'config_file=/etc/postgresql/postgresql.conf'

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

    • CONTAINER_NAME: ホストマシンのコンテナ レジストリにこの新しい簡素化された AlloyDB Omni インストール方法コンテナを割り当てる名前(例: my-omni-1)。

    • NEW_PASSWORD: 新しいコンテナの postgres ユーザーに作成後に割り当てられるパスワード。

    • HOST_PORT: * HOST_PORT: コンテナがポート 5432 を公開するホストマシンの TCP ポート。ホストマシンでも PostgreSQL のデフォルト ポートを使用するには、5432 を指定します。

    • FULL_KEY_PATH: ホストシステムのサービス アカウント秘密鍵ファイルのファイル システムのフルパス。

    Podman

      podman run --name CONTAINER_NAME -e POSTGRES_PASSWORD=NEW_PASSWORD -p HOST_PORT:5432 -v "$PWD/my-postgres.conf":/etc/postgresql/postgresql.conf -v "FULL_KEY_PATH":/etc/postgresql/private-key.json -d google/alloydbomni -c 'config_file=/etc/postgresql/postgresql.conf'

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

    • CONTAINER_NAME: ホストマシンのコンテナ レジストリにこの新しい簡素化された AlloyDB Omni インストール方法コンテナを割り当てる名前(例: my-omni-1)。

    • NEW_PASSWORD: 新しいコンテナの postgres ユーザーに作成後に割り当てられるパスワード。

    • HOST_PORT: コンテナが独自のポート 5432 を公開するホストマシンの TCP ポート。ホストマシンで PostgreSQL のデフォルト ポートも使用するには、5432 を指定します。

    • FULL_KEY_PATH: ホストシステムのサービス アカウント秘密鍵ファイルへの完全なファイル システム パス。

コンテナ化された psql を使用して接続する

独自のコンテナ化された psql のコピーを使用して AlloyDB Omni データベース サーバーに接続するには、次のコマンドを実行します。

Docker

  docker exec -it CONTAINER_NAME psql -U postgres

CONTAINER_NAME は、AlloyDB Omni コンテナのインストール時に割り当てた名前に置き換えます。

Podman

  podman exec -it CONTAINER_NAME psql -U postgres

CONTAINER_NAME は、AlloyDB Omni コンテナのインストール時に割り当てた名前に置き換えます。

AlloyDB AI のインストールで AlloyDB Omni を確認する

インストールが正常に完了し、モデル予測が使用されていることを確認するには、次のコマンドを入力します。

   CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;

   SELECT array_dims(embedding( 'text-embedding-005', 'AlloyDB AI')::real[]);

出力は次のようになります。

      array_dims
      ------------
      [1:768]
      (1 row) 

上のクエリでは、embedding() 呼び出しによって入力テキスト AlloyDB AI のエンベディングが生成されます。array_dims は、embedding() によって返される配列のディメンションを返します。text-embedding-005 モデルは 768 次元の出力を返すため、出力は [768] です。

次のステップ