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