DX開発事業部 モダンエンジニアリングセクションの田村です。
Google Cloud Next ’24現地参加1日目のイベントレポートをお届けいたします。

セッション情報

セッションタイトル:Generative AI application development best practices with Cloud SQL for PostgreSQL

このセッションではJump Start Solutionsを使った汎用的なアプリケーションを30分で構築し、それをカスタマイズするためのソリューションを紹介しています。
今回使用するテンプレート:https://github.com/GoogleCloudPlatform/cloudsql-gke-demo-for-genai

Jump Start Solutionsとは

Jump Start Solutionsはクラウド上でワークロードを最短で構築するためにGoogleが用意したテンプレートです。
JavaScript製のWebアプリやKubernetesを使うEコマースWebアプリ、Generative AI RAGなどユーザ要件に合わせてテンプレートを選択してアプリを構築することが可能です。
詳しくは以下URLをご参照ください。
https://cloud.google.com/architecture/all-jss-guides?hl=ja

企業の抱える課題と解決策(デモ)

店舗概要:100000種類以上のおもちゃを扱うチェーン店でECサイトを保有している。

問題点:調査によると買い物客は選択肢の多さに圧倒されている。ユーザの混乱により、売上が失われている。

解決策:生成AIチャットボット

  • 目標は買い物客が求めている完璧なおもちゃを見つけられるようにする
  • 解決策として生成AIを使用したチャットボットを使用する
  • GKE、Cloud SQL for PostgreSQLを使用し、すぐに使い始められるようにJump Start Solutionsを使用する

問題点と解決策は、生成AI活用のユースケースとしてよくありそうな事例です。

アーキテクチャについて


アーキテクチャの構築にはJump Start Solutionsを使用し、コンピューティングにGoogle Kubernetes Engine、データベースにCloud SQLのPostgreSQL、類似検索を行うためにVertex AIを使用したアプリを作成します。
Jump Start SolutionsにはすべてのTerraFormテンプレートと、再利用できるすべてのアプリケーションコードが含まれています。

また構成図を見ると、左側から右側にかけて、ユーザーが汎用アプリを操作していることが分かり、汎用アプリをGKEにデプロイしPostgreSQLおよびVertex AIに接続しています。
なお、ケースではVertex AIは2つのモデルを使用しています。 最初のモデルは埋め込みモデルで、テキストをベクトル埋め込みに変換するために使用され、2番目のモデルはAIモデルで、チャットボットに使用しています。

Vector Embeddingsの追加


類似検索を行うために、新しい列を追加してVector Embeddingsの値を設定します。
※Vector Embeddingsとは簡単にいうと単語やテキストをAI/言語モデルが扱いやすい数値(ベクトル)に変換することです。Cloud SQL for PostgreSQLではpgvectorをサポートしているため、同じデータベースを使用してVector Embeddingsのインデックス付けを保存し、その上でクエリを実行することが可能です。
Cloud SQL for PostgreSQL: pgvector インデックスによる類似検索の高速化

この構成のメリット

  1. このデータや別個のデータベースのETLを実行する必要がない
  2. ベクトルデータが他のすべてのデータとともに存在するため、フィルターや結合が簡単に実行できる
  3. 汎用アプリケーションを構築するときは、すべての規制遵守も確実に遵守する必要があるため、コンプライアンスを気にせずアプリケーションに集中できる

まとめ

Jump Start Solutionsというテンプレートの存在を初めて知りましたが、30分程度でインフラからアプリまで作成できるのは、ちょっとした検証や簡易的な実装をする際に役に立つ場面もあると思います。
今回はセッションを通してデモで確認したのみですが、他のテンプレートもいろいろ試して検証をしていきたいと思います。