ベクトル アシストは、ベクトル検索ワークロードのデプロイと管理のための宣言型 SQL フレームワークを提供する AlloyDB for PostgreSQL の拡張機能です。 エンベディング生成、インデックス パラメータ、クエリ チューニングを手動で構成する代わりに、SQL 関数を使用して、ターゲット テーブル、ソーステキスト列、目標再現率など、ワークロードの要件を宣言します。
ベクトル アシストは、ベクトル仕様に基づいて、自動チューニング アルゴリズムを使用して、最適化された SQL の推奨事項を生成します。この推奨事項には説明が含まれており、確認、変更、適用できます。このワークフローを使用すると、手動設定を最小限に抑えて、プロダクション レディ(な)セマンティック検索アプリケーションのプロトタイプを作成してデプロイできます。
ベクトル アシストの仕組み
ベクトル アシストを使用するには、ベクトル仕様を定義する必要があります。フレームワークは、これらのベクトル仕様を使用して、ベクトル インデックスの作成に必要な手順を生成します。ベクトル アシストは、ベクトル ワークロードのデプロイに必要な手順を推奨事項として出力します。ベクトル仕様を変更するたびに、ベクトル アシストは推奨事項を再生成します。
推奨される手順でベクトル インデックスを生成したら、ベクトル アシストを使用して最適化された検索クエリを生成できます。
ベクトル アシストの仕様
ベクトル インデックスの仕様を設定することは、ベクトル仕様、ベクトル アシストを使用する最初のステップです。ベクトル仕様は、ベクトル ワークロードの意図と要件を定義するオブジェクトです。これには、次のような必要な情報がすべて含まれています。
- テーブルと関連する列(テキストまたはベクトル)
- エンベディング モデルの設定(エンベディング生成を使用している場合)
- 優先インデックス タイプ:
HNSWまたはIVFFlat。ScaNNはサポートされていません。 - 検索クエリの目標再現率
- メモリ制限
ベクトル仕様は
vector_assist.define_spec
関数を使用して定義します。これはいつでも変更できます。システムは各仕様に一意の ID を割り当て、vector_assist.VECTOR_SPECS というテーブルに保存します。
ベクトル アシストは、仕様入力と、最適なインデックス構成を計算する最適化された自動チューニング アルゴリズムを推測します。ベクトル アシストはこれらの値を使用して開発プロセスを簡素化しますが、必要に応じてカスタマイズすることもできます。
ベクトル アシストの推奨事項
ベクトル仕様を定義すると、ベクトル アシストは入力を処理して推奨事項を生成します。これらの推奨事項は、仕様に合わせてベクトルのワークロードをデプロイするために実行する必要がある有用な手順(通常は SQL コマンド)の順序付きリストです。各推奨事項には、次のものが含まれます。
- 実行する SQL クエリ。
- クエリの機能と推奨される理由の詳細な説明。
- 推定インデックス サイズやビルド時間など、トレードオフや費用に関する情報。
ベクトル アシストは、推奨事項を vector_assist.RECOMMENDATIONS
というテーブルに保存します。推奨事項は、個別に、またはまとめて確認、変更、適用できます。
ワークロードのベクトル仕様を変更するたびに、ベクトル アシストは更新された仕様を遵守するように推奨事項を再生成します。
制限事項
AlloyDB インスタンスでベクトル アシストを使用する場合は、次の制限事項を考慮してください。
- ベクトル アシストは、PostgreSQL バージョン 17 以降でのみサポートされています。
- ベクトル アシストはすべての
pgvectorバージョンをサポートしていますが、最適なパフォーマンスと機能サポートを得るには、最新バージョンを使用することをおすすめします。詳細については、 の変更ログpgvectorをご覧ください。 - インスタンスが
google_ml_integration拡張機能を使用してエンベディングを生成する場合、ベクトル アシストを使用するときにもその制限が適用されます。 詳細については、 AlloyDB の概要でリモート AI モデルを登録して呼び出すをご覧ください。 - ベクトル アシストは、
HNSWとIVFFlatのインデックス タイプのみをサポートします。ScaNNインデックス タイプはサポートされていません。 - ベクトル アシストは、エンベディングの自動生成用のテキスト エンベディング モデルのみをサポートし、
text_column_nameを入力パラメータとして使用します。ベクトル ワークロードにマルチモーダル エンベディング モデルが必要な場合は、google_ml_integration拡張機能または別の拡張機能を使用して、これらのエンベディングを手動で生成してから、ベクトル アシストを使用してこれらのエンベディングのセマンティック検索を有効にします。