AlloyDB は、ベクトル インデックス作成とエンベディングの自動化により AI を加速
Tabatha (Tabby) Lewis-Simo
Product Manager, AlloyDB
Alan Li
Software Engineer
※この投稿は米国時間 2025 年 11 月 8 日に、Google Cloud blog に投稿されたものの抄訳です。
最新のアプリケーションでは、商品カタログやユーザー プロフィールなどの最も価値の高いデータが運用データベースに保存されます。これらのデータストアは、リアルタイムのトランザクションを処理する必要があるアプリケーションに最適です。また、ベクトル演算をサポートしているため、最新の検索や生成 AI アプリケーションのサービングの優れた基盤にもなっています。
AlloyDB AI は、強力で高性能なベクトル機能を提供し、エンベディングをインラインで生成して、強力なベクトル インデックスを手動でチューニングできます。インライン検索のユースケースでは、すぐにエンべディングを生成できますが、Google は AlloyDB で大量のベクトル エンべディングの作成とメンテナンスの複雑さにも対処したいと考えていました。
これを可能にするために、Google は AlloyDB AI の 2 つの新機能をプレビュー版で導入します。これらの新機能により、数行の SQL だけで既存の運用データベースを強力な AI ネイティブ データベースに変換できます。
- 自動ベクトル エンベディング
- 自動ベクトル インデックス
自動ベクトル エンベディングは、AlloyDB 内に保存されたデータを大規模にベクトル化することで、運用データをベクトル検索対応データに変換します。自動ベクトル インデックスは、お客様のワークロードに最適化されたベクトル インデックスを自動構成し、高品質とパフォーマンスを確保します。
ベクトルを作成してデータベースに読み込むという従来のアプローチと比較してください。基本的な手順は、AI デベロッパーなら誰でもよく知っているものです。専門の AI モデルを使用してベクトル エンベディングを生成し、基盤となるテキストとともにベクトルをデータベースにインポートして、ベクトル インデックスをチューニングします。つまり、ETL(抽出、変換、読み込み)パイプラインを構築し、データベースからデータを抽出して変換を加え、AI モデルで実行した後、再フォーマット・再読み込みしてデータベースに再挿入してから、ベクトル インデックスをチューニングします。このアプローチは技術的に複雑なだけでなく、レイテンシも発生するため、データがアプリケーションと同じ場所に保存されていたとしても、アプリケーションをライブデータと同期させるのが困難になります。
もう一つの課題は、ベクトル インデックスを最新の状態に保つことです。これは手動では困難です。手動でチューニングされたインデックスはパフォーマンスが高く、優れた結果をもたらしますが、基盤となるデータの更新に影響を受けやすく、本番環境に移行する前にパフォーマンスと品質のテストが必要になります。
運用ワークロードの移行の例を見て、AlloyDB AI の新機能がエンタープライズ グレードの AI の構築から摩擦を取り除き、ユーザーがデータベースからアプリケーションをモダナイズできるようにする方法を確認しましょう。
ベクトル データベースとしての AlloyDB
たとえば、大規模な e コマース プラットフォームを運営しているとします。AlloyDB には products テーブルがあり、product_id、color、price、inventory_count などの構造化データに加えて、product_description のような非構造化データも含まれています。
アプリケーションの検索の質を向上させ、ユーザーにとってより動的でパーソナライズされたものにするために、こうしたデータをもとに、生成 AI を活用した検索機能の導入を検討しています。「ジャケット」のような単純な字句検索(完全一致)のみをサポートするのではなく、「冬用の暖かいコート」のような検索で、ジャケット、コート、ベストなど、意味的に類似したアイテムを見つけられるようにしたいと考えています。さらに精度を高めるために、このセマンティック マッチングを color = 'maroon' や price < 100 のような構造化フィルタと組み合わせることも検討しています。こうしたフィルタの一部は、ユーザーの注文履歴を保存する orders テーブルなど、別のテーブルに存在する可能性もあります。
運用型から AI ネイティブへ
アプリケーション ロジックに着手する前に、まずはデータに対してエンベディングを生成し、ベクトル検索の準備を整える必要があります。これを行うには、通常以下のような処理が必要です。
-
AlloyDB から
productsデータを抽出する ETL パイプラインを構築する -
データをバッチ処理して Vertex AI のエンべディング モデル API に送信するカスタムコードを記述する
-
レート制限、トークン制限、エラーを慎重に管理する
-
結果のベクトルをデータベースに書き戻す
-
UPDATEコマンドを監視する別のプロセスを構築し、データを最新の状態に保つため毎回同じ処理を繰り返す
AlloyDB AI の新機能である自動ベクトル エンベディングは、このワークフロー全体を不要にします。
これにより、データベースから直接エンベディングを作成して維持できる、フルマネージドのスケーラブルなソリューションが提供されます。このシステムは、Vertex AI への API 呼び出しをバッチ処理してスループットを最大化し、バックグラウンド プロセスとして動作して、重要なトランザクションがブロックされないようにします。
product_description 列からベクトル エンベディングを生成するには、SQL コマンドを 1 行実行するだけです。
これで AlloyDB でエンベディングの生成を処理できるようになりました。products テーブルは AI 対応で、データが変更されるとエンべディングが自動的に更新されます。
エンべディングを手動で更新する場合は、次の SQL コマンドを実行します。
AlloyDB AI で検索を強化
エンベディングが作成されたら、次のハードルとなるのが検索のパフォーマンスと品質です。ユーザーが「暖かい冬用コート」を検索したとします。クエリは次のようになります。
このベクトル検索クエリを効率的に実行するには、ベクトル インデックスが必要です。しかし、従来のベクトル インデックスには深い専門知識が求められます。パラメータを手動で構成し、データが変更されるたびにインデックスを定期的に再構築して、あとはチューニングが正しいことを願うしかありません。このような複雑さにより、開発が遅れ、運用が複雑になります。
新しい自動ベクトル インデックス機能は、これらすべてを抽象化し、自己構成、自己保守、自己チューニングを行う、完全に自動化された統合ベクトル検索エクスペリエンスを提供します。完全に最適化されたインデックスを作成するには、次のコマンドを実行するだけです。
mode='AUTO' の場合、AlloyDB がすべてを処理します。
-
自動構成: データを分析し、作成時にインデックス パラメータを自動的に構成して、パフォーマンスと品質の目標を達成します。
-
自動メンテナンス: データが変更されると、インデックスは自動的に増分更新されるため、手動で介入しなくても最適化された状態が維持されます。インデックスのサイズが大きくなると自動的に分割され、データの分布がドリフトすると自動的にセントロイドが更新されます。
-
自動クエリプランの最適化: ここからが AI の本領発揮です。ScaNN インデックスは、リアルタイムのワークロード統計を利用して、実行計画を自己チューニングして最適化します。詳細については、以前のブログ投稿「AlloyDB のベクトル検索の機能強化の詳細」をご覧ください。
AI ネイティブ化を進める 2 つの新しいアプローチ
AlloyDB の新しい機能により、運用ワークロードを AI ネイティブ化する際に必要だった、複雑な ETL パイプラインやインフラストラクチャ コードは不要になりました。
-
自動ベクトル エンベディングは、エンベディングの生成と管理のライフサイクル全体をデータベース内で処理することで、データを変換します。
-
自動ベクトル インデックスは、自己チューニングと自己メンテナンスのインデックスを提供することで、複雑なフィルタ付きのベクトル検索を自動的に最適化し、検索を簡素化します。
この複雑さを排除することで、AlloyDB では既存の SQL スキルを使用して、世界クラスの AI エクスペリエンスを迅速かつ確実に構築・スケーリングし、コンセプト実証から本番環境への移行をこれまで以上に迅速に実現します。自動ベクトル エンベディングと自動ベクトル インデックスを使用すれば、今日から AI を活用できます。
まずは、 30 日間の AlloyDB 無料トライアルをお試しください。Google Cloud の新規のお客様には、$300 分の無料クレジットを差し上げます。
-プロダクト マネージャー、Tabatha Lewis-Simo
-ソフトウェア エンジニア、Alan Li



