Google Cloud Next Tokyo ’24 で行われたセッション「Vertex AI Search を使った社内向け AI チャット サービスの構築」のレポートです。
チャットサービスを作成した背景
株式会社WFSはゲーム事業を主業としていますが、ゲームのシナリオ情報や登場キャラクター情報など、ゲームに関する情報が日々増え続けており、さらに海外展開の多言語化なども行われている状況です。各ゲームタイトルの担当者が、適切な情報を可能な限り短時間で日本語以外の言語でも検索できるようにする、ということが生産性向上の課題として挙げられていました。
WFS-AI-CHATサービスについて
どんなサービス?
WFS-AI-CHATは、各ゲームタイトルに関わる社員に向けたAIチャットサービスです。Webブラウザ上で動作し、ゲームタイトルに関する質問をすると、AIが社内資料をもとに回答します。回答には社内資料へのリンクも含まれており、利用者はリンクを通じて資料を確認できます。
WFS-AI-CHATサービスの仕組み
社内資料(Google Drive 上にあるスプレッドシートやドキュメント)をHTMLに変換し、Cloud Storageに保存してVertex Al Search にインポートします。HTMLに変換することで、AIが理解しやすいベクトルデータにすることができるそうです。
AIに質問をすると、質問をもとにVertex AI Searchに対して社内資料をベクトル検索します。続いて、質問をもとにプロンプトを作成します。プロンプトにはベクトル検索で得られた社内資料を参考に回答するような指示も含まれています。最後に、生成AIからの回答をユーザーに返します。
Vertex AI Search利用のポイント
- パーサーを使い分ける
基本的にデジタルパーサーを使い、ベクトル検索の精度が悪い場合にレイアウトパーサーに切り替えると良いそうです。- デジタルパーサー:段落要素を検出します(HTMLの場合)
- レイアウトパーサー:段落、表、リスト、タイトル、見出し要素を検出します(HTMLの場合)
https://cloud.google.com/generative-ai-app-builder/docs/parse-chunk-documents#parsing
- メタデータを登録する
ファイルごとにメタデータを登録することで検索範囲の絞り込みに利用できるそうです。 - データストアを分割する
分類ごとにベクトルデータを保存するデータストアを分割することで、検索がヒットしやすくなるそうです。 - 登録するファイルを分割する
数千行に渡るスプレッドシートの場合、最後の方は検索にヒットしないため、適切な行数で分割するとよいそうです。 - AIが理解しやすいようにデータを加工する
スプレッドシートの場合、同じ行のデータであっても、カラム同士が離れているとAIが理解できないことがあるそうです。カラムを入れ替えることで結びつけたいカラム同士を近づけたり、同じカラムを複数の位置に配置することで検索がヒットしやすくなるそうです。 - Vertex AI Searchの検索前に生成AIでユーザクエリを補正・判定する
生成AIを使用して、ユーザーが入力した質問からキーワードを抽出し、適切なデータレイクを特定します。これにより、質問をそのまま検索に使用するよりも、検索がヒットしやすくなるそうです。