このページでは、AlloyDB Omni をインストールして AlloyDB AI を統合する方法について説明します。
AlloyDB AI は、エンタープライズ生成 AI アプリケーションを構築できる AlloyDB Omni に含まれる一連の機能です。AlloyDB の ML 機能の詳細については、生成 AI アプリケーションを作成するをご覧ください。
AlloyDB Omni で AlloyDB AI を使用すると、リモート ML モデルをクエリして、ML モデルから生成されたオンライン予測とテキスト エンベディングを操作できます。また、google_ml.predict_row インターフェースを使用してクエリ内で変換を行うなど、画像などの他のコンテンツからベクトル エンベディングを処理することもできます。
AlloyDB Omni と AlloyDB AI をインストールする場所に応じて、次のいずれかのオプションを選択します。
リモートモデルをクエリするように AlloyDB Omni インスタンスを構成する
リモートモデルをクエリするように AlloyDB Omni を構成する手順は次のとおりです。
- Google Cloudを使用してサービス アカウントを作成します。 
- JSON 形式でサービス アカウント キーを作成してダウンロードします。 
- 鍵はファイル システム上の永続的な場所に保存します。このファイルは、AlloyDB Omni サーバーの存続期間中、この場所に存在します。 - ファイル システム上のこの場所をメモします。この情報は次のステップで必要になります。 
- 適切なプロジェクトとサービス アカウントに 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 を統合する手順は次のとおりです。
- クラウドベースのモデルをクエリするように AlloyDB Omni を構成するに記載されている手順をすべて完了していることを確認します。 
- デフォルトの AlloyDB Omni 構成ファイルのローカルコピーを作成します。 - Docker- docker run -i --rm google/alloydbomni:15.5.5 cat /usr/share/postgresql/postgresql.conf.sample > my-postgres.conf- Podman- podman run -i --rm google/alloydbomni:15.5.5 cat /usr/share/postgresql/postgresql.conf.sample > my-postgres.conf
- 構成ファイルのコピーを編集して、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
- 鍵ファイルと構成ファイルのファイル システム権限を調整します。 - sudo chmod +r my-postgres.conf- sudo chmod +r KEY_PATH- KEY_PATHは、ホスト ファイル システムのサービス アカウントの秘密鍵ファイルのパスに置き換えます。これは、この手順で作成してダウンロードした鍵です。
- コンテナにマウントされた鍵ファイルと構成ファイルをインストールします。 - 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:15.5.5 -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:15.5.5 -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: ホストシステムのサービス アカウントの秘密鍵ファイルのファイル システムのフルパス。
 
AlloyDB AI のインストールで AlloyDB Omni を確認する
インストールが正常に完了し、モデル予測が使用されていることを確認するには、次のコマンドを入力します。
   CREATE EXTENSION google_ml_integration CASCADE;
   SELECT array_dims(embedding( 'textembedding-gecko@001', 'AlloyDB AI')::real[]);
   array_dims
出力は次のようになります。
    [1:768]
    (1 row)
上のクエリでは、embedding() 呼び出しによって入力テキスト AlloyDB AI のエンベディングが生成されます。array_dims は、embedding() によって返される配列のディメンションを返します。事前登録された textembedding-gecko モデルは 768 次元の出力を返すため、出力は [768] です。