生成AIで作成した社内規程をVertex AI Searchで検索してみる
この記事は Google Cloud Japan Advent Calendar 2023 (入門編) の 12 日目の記事です。
今年になってから、生成AIのプロダクトが多く発表され、それぞれの内容の詳細を把握しきれてない方も多いのではないでしょうか。今回はその中でも、最も注目されているプロダクトの一つの Vertex AI Search の設定や利用方法の紹介をしたいと思います。
tl;dr
- Vertex AI Search の設定はこんなに簡単、すぐできる
- 意味や文脈を考慮したセマンティック検索、さらに検索結果を要約してくれてわかりやすい
- 生成AIを使えば、サンプルデータも簡単に作成できる
Vertex AI Search とは
Vertex AI Search は、ウェブサイト、非構造化データ (Google Cloud Storage) 、構造化データ (BigQuery) をデータソースとした生成AI搭載の検索エンジンを迅速に構築できるサービスです。
Vertex AI Search は、セマンティック検索という単語の意味や文脈に加えて、検索者の意図や関連情報を考慮して検索結果を決定する仕組みを利用しています。そのため、キーワード検索では抽出されなかった情報を取得したり、より適切に関連度の高い順に検索結果を表示することが可能です。
社内利用であれば、今回のユースケースのような社内規程などのドキュメント検索などでのご利用が可能です。また、社外利用であれば、自社サービス内の検索機能に適用し、顧客体験の向上や売上拡大につなげる重要な機能として利用可能です。
社内規程のサンプル作成
まず、Vertex AI Search の検索対象となる社内規程のサンプルの作成をしていきます。
Vertex AI の Generative AI Studio のコンソール画面からモデル"text-bison-32k"を利用して、下記のようなプロンプトで簡単にサンプルの社内規程を作成できます。
通常皆様が Vertex AI Search を試す場合は、自社の社内規程などを PDF 化して準備してもらえれば問題ありませんので、このステップはスキップしてもらって問題ありません。
この後 Vertex AI Search でデータソースとするため、Google Cloud Storage に PDF ファイルにしてアップロードしておきます。
プロンプト
下記の内容を含む社内規程を作成してください。
採用時の提出書類
試用期間
人事異動
休職
出退勤
労働時間
遅刻早退
休日
時間外労働
有給休暇
産前産後休業
育児休業
慶弔休暇
レスポンス(一部抜粋)
Vertex AI Search の設定
ここからは、Vertex AI Search を利用して、実際に検索アプリケーションを Google Cloud コンソールから作成していきます。
手順① アプリ種類の選択
"新しいアプリ"より、まずアプリの種類の中から、"検索"を選択します。
手順② 検索のエディションやアドオンの選択
次の画面では、利用するエディションや要約などの高度な生成AI機能を利用するかどうかの選択をして、アプリ名と会社名を入力します。
今回は要約の機能を利用するため、Enterprise エディション、高度な LLM 機能をともにオンにします。ちなみにですが、この設定によって、検索回数による単価がかわってきます。
手順③ データソース作成
次に検索のデータソースを作成します。データソースは、ウェブサイトの URL、BigQuery、Cloud Storage、API の4つの選択肢があります。今回はドキュメントの検索のため、Cloud Storageを選択し、先程用意した社内規程のサンプルの PDF ファイルを選択して、最後にデータストアとしての名前をつけます。
今回は扱いませんが、ウェブサイトの URL の検索は、URL を指定するだけで、本当にすぐに作成ができて、プレビューで検証もできますので、ぜひ自社の検索機能などでお試しいただきたいです。
手順④ 検索アプリ作成完了
最後に作成したデータソースを選択して、作成ボタンを押せば、これで設定完了です。本当にこれだけです。
Google Cloud Storage をデータソースにした場合は、作成ボタンを押した後、実際に検索できるようにするためのインデックス化が実行されます。PDF ファイル一つであれば、通常数分程度で、インデックス化は完了します。
検索実行
ここからは実際にいくつかの検索を試していこうと思います。コンソール画面のプレビューから簡単に検索の検証をすることが可能です。
有給は何日とれる?
1つ目のサンプルとして、「有給は何日とれる?」と検索をしてみました。
セマンティック検索をしているので、完全に一致するキーワードで検索をする必要はなく、対象ドキュメントから必要なパートの情報を取得してくれます。さらに生成AIを利用した要約機能を利用して、検索結果を要約をしてくれることで、元ファイルから該当箇所を探す必要はありませんし、理解しやすい文章を作成くれるので、よりユーザーがほしい情報をダイレクトに得ることができます。
また、今回は検索しているファイルが1ファイルだけですが、複数ファイルをデータソースにした場合には、要約の下の部分に、根拠となるデータソースを関連度が高い順に検索結果として表示してくれるので、元のデータソースの PDF ファイルでの確認も可能です。
ドキュメントの該当パート
**有給休暇**
有給休暇は、以下の通りです。
* 入社後6ヶ月以上勤務した場合:10日
* 入社後1年以上勤務した場合:15日
* 入社後3年以上勤務した場合:20日
採用後に必要な書類は?
2つ目のサンプルとして、「採用後に必要な書類は?」と検索をしてみました。
要約された検索結果には、社内規程に記載されている必要な書類を過不足なく7つ全て記載されています。これはグラウンディングという仕組みが入っており、根拠となるデータソースから要約を作成し、間違った回答や検索結果を出しにくくなっているためで、今回は正しく検索結果を取得できています。
ドキュメントの該当パート
**採用時の提出書類**
採用時には、以下の書類を提出してください。
* 履歴書
* 職務経歴書
* 卒業証明書
* 成績証明書
* 資格証明書
* 身分証明書
* 健康診断書
結婚したら休みをもらえる?
3つ目のサンプルとして、「結婚したら休みをもらえる?」と検索をしてみました。
ここでも正しく社内規程に記載の通りの3日という答えが検索結果として取得できました。非構造化データで文章になっていない「結婚:3日」というような情報からも意味を理解し、適切な答えが作成できていることがわかります。
ドキュメントの該当パート
**慶弔休暇**
慶弔休暇は、以下の通りです。
* 結婚:3日
* 出産:5日
* 死亡:3日
まとめ
ここまで生成AIを利用してデータソースのサンプル作成と、Vertex AI Search の設定や検索機能の紹介をさせていただきました。
この記事でお伝えしたかったことは以下です。
- Vertex AI Search は、ウェブサイトの URL やドキュメントを用意すれば、すぐに簡単に利用できます。
- Vertex AI Search は、社内利用、社外利用ともに多種多様なユースケースに対応したセマンティック検索機能の実装が可能です。
- (あまり必要なケースはないかもしれませんが、)生成AIを利用すれば、構造化、非構造化どちらでもサンプルデータを簡単に作成可能です。
もし、この記事を読んで Vertex AI Search に興味を持ってもらえた方は、皆様のデータでぜひお試しください!
Discussion