Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Google Cloud で利用できるRDBのベクトル検索を徹底解剖!

Google Cloud で利用できるRDBのベクトル検索を徹底解剖!

2024年6月5日に開催されたGoogle Cloudの非公開イベントでの登壇資料です。

Google CloudではGoogle Cloud Next Las Vegas '24でほぼ全てのデータベースでベクトル検索が利用できるようになったことが発表されました。
このスライドではGoogle Cloudで利用することができるマネージドRDBの特徴を整理することで、どのようなベクトル検索のユースケースでどのデータベースを利用するべきかを紹介しています。

nnaka2992

June 08, 2024
Tweet

More Decks by nnaka2992

Other Decks in Programming

Transcript

  1. \du 2 株式会社スリーシェイク Sreake事業部 業務内容 • DBRE兼SRE見習い ◦ データベースを中心にインフラ・アプリ領域もがんばってます ◦

    DB <- わかる ◦ 機械学習 <- ちょっとわかる ◦ 生成AI <- 触った 最近あったGoogle Cloudのイチオシアップデート 中楯 直希 @nnaka2992 @nnaka2992.bsky.social
  2. • 対象 ◦ データベースエンジニア ◦ アプリケーションエンジニア ◦ 生成AIで利用するベクトルデータの保存先に迷っている方 • 伝えたいこと

    ◦ Google Cloud のベクトル検索が行うことができる、 マネージドリレーショナルデータベースの選び方 この資料のコンセプト 3
  3. Google Cloud で利用可能な RDB は全 5 種類 DB レイヤーがマネージドなサービスは全 4

    種類 細分化すると 7 種類 Google Cloud のベクトル検索をサポートするマネージド RDB 7 Cloud Spanner AlloyDB BigQuery Cloud SQL PostgreSQL MySQL SQL Server PostgreSQL PostgreSQL Google SQL Google SQL ベクトルストアに どれを使えばいいかわからない!
  4. そもそもベクトル検索とは? 16 実際のアプリケーションでは次のように実装される 5. 問い合わせ内容に似た結果をユーザーに返す id 名前 説明 データベース Vertex

    AI Embedding for Text id ベクトル Cloud Run 検索内容を入力 検索内容をベクトル化する データベースを検索 似た結果をユーザーに返す
  5. そもそもベクトル検索とは? 17 実際のアプリケーションでは次のように実装される 5. 問い合わせ内容に似た結果をユーザーに返す id 名前 説明 データベース Vertex

    AI Embedding for Text id ベクトル Cloud Run 検索内容を入力 検索内容をベクトル化する データベースを検索 似た結果をユーザーに返す 今回はこの部分がメイン
  6. それぞれにおけるベクトル検索の特色とユースケース 20 どのデータベースでベクトル検索を使うかは、データベースの特性が重要になる • CloudSQL for PostgreSQL • CloudSQL for

    MySQL • AlloyDB • Cloud Spanner • BigQuery • PostgreSQL との完全な互換性 • pgvector 拡張機能によってベクトル検索を実装 ◦ 他クラウド・オンプレミスでも利用可能 ◦ 多様な計算方法をサポート • SQL から Vertex AI を呼び出す拡張機能が GA
  7. それぞれにおけるベクトル検索の特色とユースケース 21 どのデータベースでベクトル検索を使うかは、データベースの特性が重要になる • CloudSQL for PostgreSQL • CloudSQL for

    MySQL • AlloyDB • Cloud Spanner • BigQuery • MySQL との完全な互換性 ◦ MySQL 互換では唯一の選択肢 • Google Cloud による独自のベクトル検索を実 装 ◦ オンプレミスや AWS では利用できない Google Cloud の強み ◦ Preview ステータス
  8. それぞれにおけるベクトル検索の特色とユースケース 22 どのデータベースでベクトル検索を使うかは、データベースの特性が重要になる • CloudSQL for PostgreSQL • CloudSQL for

    MySQL • AlloyDB • Cloud Spanner • BigQuery • PostgreSQL との互換性 ◦ 他クラウド・オンプレミスでは AlloyDB Omni を利 用してセルフホストが可能 • pgvector 拡張機能によってベクトル検索を実装 ◦ 他クラウド・オンプレミスでも利用可能 ◦ 多様な計算方法をサポート • SQL から Vertex AI を呼び出す拡張機能が GA • カラム型エンジンをサポート ◦ 集計関数の実行に有利
  9. それぞれにおけるベクトル検索の特色とユースケース 23 どのデータベースでベクトル検索を使うかは、データベースの特性が重要になる • CloudSQL for PostgreSQL • CloudSQL for

    MySQL • AlloyDB • Cloud Spanner • BigQuery • PostgreSQL 互換インターフェイスをサポート • Google Cloud による独自のベクトル検索を実 装 • SQL から Vertex AI を呼び出す拡張機能が GA • Write のスケールアウトが可能
  10. それぞれにおけるベクトル検索の特色とユースケース 24 どのデータベースでベクトル検索を使うかは、データベースの特性が重要になる • CloudSQL for PostgreSQL • CloudSQL for

    MySQL • AlloyDB • Cloud Spanner • BigQuery • Google Cloud による独自のベクトル検索を実 装 • SQL から Vertex AI を呼び出す拡張機能が GA • 大規模データの集計が得意 • サーバメンテナンスが不要
  11. それぞれにおけるベクトル検索の特色とユースケース 25 どのデータベースでベクトル検索を使うかは、データベースの特性が重要になる ※1 Query Per Record PostgreSQL Cloud SQL

    MySQL AlloyDB Google SQL Cloud Spanner PostgreSQL BigQuery レイテンシ ミリ秒 ミリ秒 ミリ秒 ミリ秒 ミリ秒 秒 QPR ※1 数レコード 数レコード 数レコード 数レコード 数レコード 大量レコード 互換性 pgvector互換 Google Cloud 独自実装 pgvector互換 - Google Cloud 独自実装 - サポート状態 GA プレビュー GA GA GA プレビュー Vertex AI 連携 GA 未サポート GA GA GA GA 列指向ストア 未サポート 未サポート サポート 未サポート 未サポート サポート 索引タイプ KNN, ANN ANN KNN, ANN KNN KNN KNN
  12. それぞれにおけるベクトル検索の特色とユースケース 27 それぞれのデータベースにおけるベクトル検索のユースケース • CloudSQL for PostgreSQL • CloudSQL for

    MySQL • AlloyDB • Cloud Spanner • BigQuery • ミリ秒単位のレイテンシが求められる システム や複数の環境でホストしたい 場合に最適 ◦ Google Cloud にプライマリ、AWS やオンプレミ スにレプリカを配置するなど • エンドユーザー向けに商品説明やイベント概要 のようなデータを曖昧検索する機能を提供した い場合 • 生成 AI を使用したアプリケーションのベクトル データを保存したい場合
  13. それぞれにおけるベクトル検索の特色とユースケース 28 それぞれのデータベースにおけるベクトル検索のユースケース • CloudSQL for PostgreSQL • CloudSQL for

    MySQL • AlloyDB • Cloud Spanner • BigQuery • MySQL を利用する既存のアプリケーションで ベクトル検索を利用したい場合 ◦ ベクトル検索を目的に新規採用する場合は他の 選択肢に劣る • エンドユーザー向けに商品説明やイベント概要 のような文章を曖昧検索する機能を提供したい 場合
  14. それぞれにおけるベクトル検索の特色とユースケース 29 それぞれのデータベースにおけるベクトル検索のユースケース • CloudSQL for PostgreSQL • CloudSQL for

    MySQL • AlloyDB • Cloud Spanner • BigQuery • Cloud SQL for PostgreSQL ではパフォーマン スが足りない場合 • ベクトル検索だけでなく、分析・トランザクション 処理すべてを実行したい場合
  15. それぞれにおけるベクトル検索の特色とユースケース 30 それぞれのデータベースにおけるベクトル検索のユースケース • CloudSQL for PostgreSQL • CloudSQL for

    MySQL • AlloyDB • Cloud Spanner • BigQuery • 大量の書き込みが想定されるワークロードの データに対してリアルタイムでベクトル検索をし たい場合
  16. それぞれにおけるベクトル検索の特色とユースケース 31 それぞれのデータベースにおけるベクトル検索のユースケース • CloudSQL for PostgreSQL • CloudSQL for

    MySQL • AlloyDB • Cloud Spanner • BigQuery • レイテンシが気にならないのであれば データ ベースメンテナンスのコストがないので 最適 • Google Cloud 上の様々なデータストアに統合 したインターフェースでベクトル検索を利用した い場合 • 画像や動画に対するベクトル検索をしたい場合 ◦ BigLake を利用して GCS と統合できるため • ログを解析したい場合 • テーブル同士を曖昧条件で結合して集計したい 場合
  17. まとめ 33 • Google Cloud では RDB でベクトル検索を利用する場合に多様な選択肢がある。 • ベクトル検索を利用すると曖昧・類似検索が簡単に実装できる

    • Google Cloud の RDB でベクトル検索を利用する場合、 レイテンシが短く高機能な Cloud SQL for PostgreSQL やメンテナンスが簡単でインターフェースを 統合出来る BigQuery を中心にワークロードの特性に応じてその他のデータベースを 選択するとよい
  18. 34 参考資料 34 • Work with vector embeddings | Cloud

    SQL for MySQL | Google Cloud ◦ https://cloud.google.com/sql/docs/mysql/work-with-vectors • Work with vector embeddings | Cloud SQL for PostgreSQL | Google Cloud ◦ https://cloud.google.com/sql/docs/postgres/work-with-vectors • Work with vector embeddings | AlloyDB for PostgreSQL | Google Cloud ◦ https://cloud.google.com/alloydb/docs/ai/work-with-embeddings • Perform similarity vector search in Spanner by finding the K-nearest neighbors | Google Cloud ◦ https://cloud.google.com/spanner/docs/find-k-nearest-neighbors • Introduction to vector search | BigQuery | Google Cloud ◦ https://cloud.google.com/bigquery/docs/vector-search-intro • Manage vector indexes | BigQuery | Google Cloud ◦ https://cloud.google.com/bigquery/docs/vector-index
  19. 35 参考資料 35 • BigQuery のベクトル検索のご紹介 | Google Cloud 公式ブログ

    ◦ https://cloud.google.com/blog/ja/products/data-analytics/introducing-new-vector-search-capabilities-in-bigquery • Find anything blazingly fast with Google's vector search technology | Google Cloud Blog ◦ https://cloud.google.com/blog/topics/developers-practitioners/find-anything-blazingly-fast-googles-vector-search-technol ogy • pgvector/pgvector: Open-source vector similarity search for Postgres ◦ https://github.com/pgvector/pgvector • ベクトルデータの容量を 96%削減するBinary Embedding ◦ https://zenn.dev/knowledgesense/articles/346183afdf750e