コンテンツに移動
データベース

AI 対応のアプリケーションを活用した PostgreSQL サービスでのベクトル サポートの発表

2023年7月5日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 6 月 27 日に、Google Cloud blog に投稿されたものの抄訳です。

ジェネレーティブ AI により、私たちと情報やブランドの関わり方、そして私たち同士の関わり方を変えるエクスペリエンスの新しい波が到来しようとしています。将来は、ほぼすべてのアプリケーションに AI が活用されると予想され、そのようなアプリケーションを構築するデベロッパーには、新しいエクスペリエンスをアプリケーションに組み込むための適切なツールが必要となります。

新しいエクスペリエンスでは、ユーザーのニーズにより的確に応えるため、アプリケーションの状態、ユーザー入力、オペレーション データを利用して関連性の高いコンテキストが提供されます。オペレーショナル データベースは、そのようなアプリケーションの一部ですでに中核として利用されているため、新しいジェネレーティブ AI ユーザー エクスペリエンスの実現に不可欠です。

本日、Cloud SQL for PostgreSQLAlloyDB for PostgreSQL においてベクトルの格納と効率的なクエリがサポートされるようになったことをお知らせします。広く利用されている pgvector PostgreSQL 拡張機能を通じて、データベースを使用し、大規模言語モデル(LLM)により生成されたベクトル エンベディングを格納およびインデックス化できるようになりました。これにより、アプリケーションでジェネレーティブ AI を活用できるようになります。Vertex AI や他の AI プラットフォームで運用される LLM は、正確な近似最近傍探索を使用して似ているアイテムを効率的に見つけることができるため、リレーショナル データベースのデータと機能を利用してデータをさらに拡充し、処理できるようになります。

ベクトル エンベディングは、テキスト、音声、動画などの複雑なユーザー作成コンテンツを、格納、操作、インデックス化しやすい形式に変換するために広く使用されている数値表現です。これらの表現はそのようなエンベディング モデルにより生成され、コンテンツの 2 つの部分が意味的に似ている場合、それに対応するエンベディングがエンベディング ベクトル空間内の互いに近接した場所に配置されます。その後、ベクトル エンベディングはインデックス化され、類似性に基づいてデータを効率的にフィルタするために使用されます。

たとえば、衣料品小売業者であれば、ユーザーのカートに入っているアイテムと似たおすすめ商品を表示できます。現在、Vertex AI の事前トレーニング済みテキスト エンベディング モデルを使用し、商品の説明文に基づいてエンベディングを生成することができます。pgvector 拡張機能を使用すると、それらのエンベディングを Cloud SQL または AlloyDB データベースに格納してインデックス化し、似ている商品を簡単にクエリできます。それらのエンベディングはオペレーション データとともに格納されるため、ユーザーや商品について知っている情報に基づいて結果をさらにカスタマイズできます。たとえば、価格やカテゴリなどの構造化データをフィルタしたり、ユーザー プロフィールや在庫データなどのリアルタイムのオペレーション データと結果を結合して、ユーザーのサイズに合った、在庫のあるアイテムのみを表示したりすることができます。

ベクトル エンベディングは、昨年世界を席巻した事前トレーニング済みの LLM をデベロッパーが活用できるようにする点でも重要な役割を果たします。LLM は、大量のデータでトレーニングされており、翻訳、要約、質問応答、クリエイティブな文書作成などのユースケースに適用できます。ML についての専門知識やカスタムモデルのトレーニングを必要とせずにアプリケーション固有のニーズに合わせてカスタマイズできるため、ML を活用したアプリケーション開発に役立ちます。LLM の出力は、プロンプトを戦略的に作成することによりカスタマイズできます。そのプロンプトにより、ドキュメント、ユーザー プロフィール、チャットの履歴などのアプリケーション固有のコンテキスト データを使用して LLM の根拠づけができます。

LLM について留意すべき 1 つの点は、状態の概念がないことです。しかし、すべての chatbot ユーザーが知っているように、会話についていき、関連性の高い応答を生成するには、チャットの履歴が必要です。モデルには厳密な入力トークン制限があるため、必ずしもプロンプトで完全なコンテキストを提供できるとは限りません。エンベディングにより、ドキュメントや長期にわたるチャットの履歴など、大規模なコンテキストをデータベースに格納してフィルタすることで、最も関連性の高い情報を見つけられるようになります。言い換えると、コンテキストには、チャットで発言のあった内容と発言がなかった関連情報の両方を含めることができます。反復処理のたびにその情報をモデルにフィードし、長期記憶とビジネス特有の知識をシミュレートできます。

主な利点

Cloud SQL および AlloyDB データベースにベクトルのサポートが直接組み込まれたことで、アプリケーションとユーザーの状態を認識する、AI を活用したエクスペリエンスを作成できるようになります。基本的なベクトル サポートに加えて、Cloud SQL と AlloyDB により次の利点がもたらされます。

  • エンタープライズ グレードのサービス スタック: Cloud SQL と AlloyDB は、低レイテンシのサービス アプリケーションを活用できるフルマネージド サービスです。どちらのデータベースでも、自動プロビジョニングおよびメンテナンスによりデータベース費用を削減でき、24 時間 365 日対応の SRE チームがサポートする高可用性、データ保護、組み込みのセキュリティなどのエンタープライズ機能が用意されています。

  • 簡単で使い慣れているプロセス: PostgreSQL でのベクトル サポートは、既存のオペレーション データベースを使用した AI 対応エクスペリエンスと、既存の PostgreSQL スキル(PostgreSQL エコシステムが提供するあらゆるものを含む)を活用できることを意味します。

  • オペレーション データとの緊密なインテグレーション: Google では、アプリケーションと緊密に統合して AI を最大限に活用することで、リアルタイムのトランザクション データを使ってユーザー エクスペリエンスを強化できると考えています。AlloyDB と Cloud SQL for PostgreSQL は、オペレーショナル データベースに AI を直接埋め込み、構造化 / 非構造化オペレーション データ間での高度なクエリをサポートして、ベクトル述部を標準的な PostgreSQL フィルタと組み合わせることにより、これを実現します。

エンタープライズ ワークロードを AlloyDB または Cloud SQL for PostgreSQL で実行する場合、ベクトル エンベディングに加えてフルマネージドのオペレーショナル データベースを活用することができます。

Vertex AI とのインテグレーション

Cloud SQL と AlloyDB のベクトル サポートは、テキストと画像における事前トレーニング済みの基盤モデルやエンベディング モデルなど、Vertex AI のジェネレーティブ AI サービスと組み合わせた場合に特に威力を発揮します。また、AlloyDB では、カスタム Vertex AI モデルをデータベースから直接呼び出し、高スループットで低レイテンシの強化されたトランザクションを実現できます。この組み合わせにより、大規模言語モデルをアプリケーションに統合するツールキットを使用できます。

ベクトル サポートを、業界をリードする大規模で低レイテンシのベクトル データベースである Vertex AI Matching Engine と組み合わせて使用し、エンベディングの格納やベクトル類似性マッチングを行うこともできます。Cloud SQL と AlloyDB には、ベクトル エンベディングをアプリケーションで直接使用するための同様の機能が追加されました。これにより、信頼できる PostgreSQL データベースを使用し、リアルタイムのオペレーション データとリレーショナル データベース機能を活用してより豊かなエクスペリエンスを創出できるようになります。

使ってみる

始めるのは簡単です。まだ作成していない場合は、Cloud SQL または AlloyDB のコンソールにアクセスし、データベース インスタンスを作成しましょう。すでに作成している場合は、PostgreSQL psql ツールを使用して pgvector 拡張機能をインストールすれば準備は完了です。使い始めるのに役立つブログ投稿デモ動画をご覧ください。Codelab の詳細なチュートリアルも活用できます。


- Google Cloud データベース担当プロダクト マネージャー Sandhya Ghai
- Google Cloud データベース担当プロダクト マネージャー Bala Narasimhan

投稿先