概要

セッション

Vertex AI Search を使った社内向け AI チャット サービスの構築 (D1-AIML-07)
Google Cloud 藤好 健太郎 氏
株式会社WFS 郡司 匡弘 氏

実際にチャットサービスを構築した際のとても興味深い知見について、お話しいただきました。
Vertex AI Searchの検索精度向上がメインの内容です。

アジェンダ

Vertex AI Search

ベクトル化

ベクトル化はそもそもなぜ必要か?
非構造データなど、さまざまなデータを同じように比較できるようにするため。(土台を揃える)

キーワード検索では、データの整備も人間が管理してようやく、検索可能となる。

セマンティック検索では、さまざまな形式のデータをベクトルに変化することで検索可能となる。(自動化しやすい)
また、検索範囲も、より広い。文字通り意味での検索なため、ゆれがあっても検索可能。



サービス事例 (WFS AI CHAT)

全体像

背景

  • 使用する情報は多言語
    • 日本語・英語・繁体字・韓国語
    • 検索も多言語で可能
  • 非構造データも多い

チャットサービスについて

  • RAGを使用
  • 社内向けチャットボット
  • チャットはブラウザで動作
    • チャット回答に、エビデンスのリンクあり
    • 従業員が自分でリンクを確認して使用



データ情報

  • データ内容
    • 非構造データ
    • シナリオ対訳集、用語集、Push通知、SNSの投稿文章、など
  • データ量
    • 約3万4千ファイル
  • 変換処理
    • HTML
    • Cloud Storageに保管


検索精度向上の6つのポイント

  • パース処理
  • メタデータ付与
  • データストア分割
  • ファイル分割
  • データ加工
  • クエリ補正 (クエリ拡張)

パース処理

使用パーサーは、デジタルパーサー:レイアウトパーサーを9:1

使用方法は、基本的にデジタルパーサーを使用。
検索時に精度が悪い場合には、レイアウトパーサーに切り替え。

メタデータ付与

データストア分割

ゲームごと、カテゴリごとにデータストアを分割。
検索ヒット率向上。

ファイル分割

1ファイルがあまりに大きい場合には、ファイル後方でヒットしなくなる。
チャンク処理を行う。

データ加工

スプレッドシードで、カラムが離れている場合にうまく認識できない場合がある。
よって、関連度を強めたいカラムは、隣同士にするなどの加工を行う。

クエリ補正 (クエリ拡張)

ユーザクエリをそのままプロンプトに組み込むのではなく、
一度AIによって解析させ、回答生成させる。
データストアから取得時に、キーワード検索の方がヒット率が向上する。

まとめ

AIチャットサービス構築で、一番大変だったところ

AIの回答精度が毎日変動して辛かった。
昨日答えられていたものが、今日になって答えられない。がざらにある。

原因は、ゲーム本体のコード修正、などデータ変更によるもの。
修正直後に精度が低下する。

対応は、手作業。
質問用のデータセットを都度作成し、手作業で検品。

AIチャットサービスの社内の反応

社内からの反応はよかった。

使われ方は、当初想定していた質問内容と齟齬があった。
構築時には、シナリオ関係で使用される想定。
実際には、キャラクター情報、ダンジョンのクリア条件などが多かった。

記事のまとめ

検索精度向上のためのデータ加工やクエリ補正などの方法を実例ともにお話しいただきました。
大量のデータでも、便利なVertex AI Searchを使用することで、とてもスピーディに開発できますね。
Vertex AI Searchを使って、AIアプリをどんどん開発していきたいところですね。