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