萩原氏の自己紹介

萩原勝氏:みなさん、はじめまして。グリー株式会社の萩原です。本日はお忙しい中、会場にお集まりいただき、またご視聴いただき、ありがとうございます。

本セッションでは「目指すは自分専用アシスタント!? 〜社内向けAIチャットボットの開発とその展望〜」というタイトルで、グリーの情報システム部における生成AIの活用検討の取り組みについて話したいと思います。よろしくお願いします。

まず簡単に自己紹介をします。萩原と申します。ソフトウェアエンジニアから始まって、その後、SE、社内SEを経て、2023年4月にグリーに入社しました。情報システム部のITサービスオペレーションチームというところに所属していて、業務内容としては、主に社内に提供しているITシステムの企画・運用などをしております。

グリー社内で使用しているツールをどんな基準で選んでいるか

続いて、グリー社内でどんなツールを使っているかを紹介します。社内外から「どんな基準でツールを選んでいるのか」とよく聞かれたりするんですが、特定企業さんのツールに寄せていくといった考えではなく、長く安定して使えそうなものであったり、広く使われていてナレッジが安いかどうかという観点で選んでいます。

(スライドを示して)以上、前置きが少し長くなりましたが、本日の内容はこちらになります。まず昨今の生成AIを取り巻く状況について話した後に、情シスにおける生成AIへの取り組み、最後に今後の展望という流れで話したいと思います。よかったら最後までご視聴ください。

生成AIを取り巻く状況の整理

ということで、まず生成AIを取り巻く状況の整理です。2022年11月にChatGPTがリリースされて以来、いろいろな会社さんから生成AIを用いたサービスが発表されているかと思います。

(スライドを示して)ここにあるように、ザッと挙げただけでもいろいろな会社さんからさまざまサービスが出ているわけですが、こうやって見てみると、1つの会社さんから複数のサービスが出ていたりして、「違いは何なんだろう」と思う方もいるんじゃないかなと思います。私はなりました。

なので、私なりの理解として、先ほど挙げたサービスについて、ユースケースの観点で少し分類してみました。(スライドを示して)分類した結果がこちらになります。ChatGPTやBing Chatなどについては、一般の人でも気軽に利用できるという点で、主にコンシューマの方に向けたサービスの位置づけになるのかなと思っています。

対して右側にあるやつは、ビジネスユースを想定したサービスになるのかなというふうに思っています。その中でもさらに分類分けできて、1つは「開発型」で、もう1つは「ツールネイティブ型」なんて言い方をしていますが、こういう分け方ができるんじゃないかなと思っています。

ツールネイティブ型というのは、「各ツールから特に開発などせずとも生成AIの機能が組み込まれていて利用することができるもの」と思ってもらえるといいのかなと思います。

開発型は、「生成AIの機能がAPIというかたちで提供されていて、自分で作ったプログラムに組み込めるもの」になります。

そのため、自社で生成AIを使った独自のソリューションを開発しようと思ったら、赤枠で囲ったサービスのいずれかを活用して開発していくことになるんじゃないかなと思っています。

情シスでは「Azure OpenAI」を利用した社員向けのサービスを検討

以上を踏まえて情シスにおける生成AIの取り組みです。情シスでは、「Azure OpenAI」を利用して、社員に向けたサービスを何か提供できないかということで検討を進めてきました。

理由としては、もともとAzureを認証基盤として利用していたので利用を開始しやすかったことも1つありますが、サービスとして展開していくにあたってセキュリティやガバナンスへの対応などが大事になってくると思うので、そういったものが自分たちで柔軟に制御できるところが大きな理由になります。

あとは、最近「責任あるAI」なんていう言葉をよく聞くと思いますが、そういったことに対応するための機能であったりリソースを豊富に提供していただいているところも1つの理由になるのかなと思っています。

すでに知っている方もいるかと思いますが、「Azure OpenAI」について簡単におさらいしていくと、「Azure」という、Microsoftさんが提供しているクラウドサービスの中の1サービスとなります。

特徴としては、OpenAI社さんとパートナーシップを組んでいるので、ChatGPTで使われているような、GPTモデルという生成AIのモデルを利用できます。あとは、Azureの1サービスになるので、Azure上の各種サービスと組み合わせることで、エンタープライズ要件に対応したAIソリューションを構築できます。

自社データに答えてくれるAIチャットボットの開発を目指す

利用するサービスが決まったところで、どうやって活用していくかを考えてきたわけですが、私が入った当初、2023年5月ぐらいの検討としては、自社専用のChatGPTのクローンな環境を作るとか、Slackなどの社内ツールから使えるようにしようかということを考えました。

まず1つ目については、仮に作っても利用してもらえないかなという気が当初はしていて。というのは、グリーでは「Bard」とか「Bing Chat」といった対話型AIサービスの利用は特に禁止していなくて。

「機密情報を入力しないように」とかの一定のガイドラインはありますが、そういったサービスはどんどんアップデートされていくし、そちらを使ってもらったほうが利便性も高いだろうと思っていたのと、仮にそれと同じようなものを作って「絶対社内のものを使ってもらうようにする」というのも違うかなと思いましたので、この案は見送りました。

あとは、社内ツールから使えるようにするというのも、正直、そのうちベンダーさんから生成AIを使った機能が搭載されるのかなと当初から思っていて。実際に、例えばSlackさんからは「Slack AI」という生成AIの機能がリリースされる予定になっていますが、そういったものについてはそういうツールに組み込まれたものを利用いただいたほうがいいのかなと思っています。

そういった中で、これは世の中の動きもありますが、生成AIは基本的に特定時点までのWebに公開された情報を基に学習されています。そうなると、その中に含まれる情報にしか答えてくれないというところがあるかと思います。

なので、Webに公開されていない自社で保有しているナレッジとか情報にも答えてほしいという需要が当然出てきます。情シスとしても、そういった社内データ、社内の決まりとか手続きをユーザーさんにわかりやすく回答してくれるAIチャットボットというのは、自分たちにしか作れない、出せない価値であるかなというところで、自社データに答えてくれるAIチャットボットを目指していくことになりました。

自社データを生成AIに回答させる2つの方法

現在、自社データを生成AIに回答させる方法としては大きく2つあると思っています。1つがFine-tuningと呼ばれるもので、もう1つはちょっと言いにくいんですが、Retrieval Augmented Generation、略してRAGと言われたりするものになります。

Fine-tuningはいわゆる再学習というもので、トレーニングデータと呼ばれるデータを作って、言語モデルを再学習するイメージのものとなります。ただ、こちらはトレーニングデータの作成に手間がかかったり、再学習後のモデルの調整、あとは実行にかかるコストが高額になるなどの理由から、まだカジュアルにできるものではないのかなという印象です。

対してRAGというのは言語モデルが知り得ない情報を外部のデータソースから取得して回答を生成する手法のことで、データソースの準備など事前に必要な作業はありますが、Fine-tuningよりは比較的取り組みやすいものになるのかなと思っています。なので、自社データに回答するAIチャットボットを作る場合、現在はこちらのRAGという手法を取ることになるのかなと思っています。

(スライドを示して)RAGのアーキテクチャがどういったものかを簡単に図解してみました。まず事前準備として0番に当たるところですが、社内のドキュメントをインデックスという検索に適したかたちに分解して、データベースに保存していくということをしておきます。

その上で、ユーザーさん、フロントとなるアプリケーションから、例えば「PCやモニターを会社に発送したい」みたいな社内手続きに関する質問を投げると、まず全体の制御を担うバックエンドのプログラムが回答を受けて、そのプログラムが生成AIを使って質問内容を検索に適したクエリに分解します。

そして、先ほどの事前に用意しておいたデータベースに検索をかけて、返ってきた結果を生成AIに要約してもらってユーザーさんに返却するというような流れになります。

(スライドを示して)このアーキテクチャをAzureで実現しようとすると、このようなサービスのマッピングになるかなと思います。生成AIにはAzure OpenAIを使って、フロントとバックエンドのプログラムのところの基盤は、分けるかというところはありますが、App Service。データベースにはCognitive Searchという検索に適したデータベースサービスがあるので、そういったものを活用して構築していくことになるのかなと思います。

実際に構築するとなると、こういった個々のサービスの設定・構築はもちろんですが、例えばApp Serviceに乗せるアプリケーションのプログラムとか、インデックスに分解するところのプログラムも別に作る必要があります。

加えてサービスとして展開するとなると、非機能系、ログ、認証、あとコスト管理の仕組みとかも検討する必要があります。また、作って終わりということは当然ないので、運用方法も確立していく必要があります。

なので、「こういったものを組み合わせていけば、AIチャットボットを作れそうだ」というところではありましたが、実装にかかるコストが高いという印象が少し前まではありました。

「Azure OpenAI」関連の新機能が登場

そういった中で、6月の後半くらいでしょうか。Microsoftさんから「Azure OpenAI on your data」という機能が出てくれました。これはどういったものかというと、先ほどのRAGのアーキテクチャを画面数回のクリックで構築できるものとなっています。

(動画再生開始)

こちらについて動画で紹介したいと思います。(画面を示して)画面イメージはこんなふうになっています。

最初に「こんにちは」なんてちょっと挨拶を挟んでいます。「Macを有線LANに接続したい」というものは、よく社内で情シスにいただく質問です。その回答のドキュメントを事前に読み込ませておいた状態で質問を投げると、回答を返してくれます。

さらに、この回答の基になっているドキュメント、どのドキュメントを基に回答を出しているのかの根拠もリンクとして添付してくれるものになっています。

(動画再生終了)

これによって、先ほどの図の赤枠のあたりは比較的カジュアルに構築できる環境ができたのかなと思っています。

さらに7月くらいに今度は「Azure OpenAI Service リファレンスアーキテクチャ」が出てきました。これはエンタープライズ用途におけるいくつかのAzure OpenAIの活用シナリオを想定した参考アーキテクチャになります。

こちらは画面でクリックして構築できるものではありませんが、IaCというインフラを自動的に構築してくれるコードがついていて、それを実行することで、画面のような、先ほどのRAGの環境を作れるものになっています。

アプリの機能自体は先ほどの「Azure OpenAI on your data」と似たようなものになっていますが、こちらはさらにログも取ってくれる機能がついています。こんなふうに、誰がいつどんなことを聞いていて、AIがどんな回答をしているのかをあとから確認できるようになっています。

こういったAIサービスを社内に展開しようとすると、ガバナンスの観点からログの機能を要求されたり、あとは利用傾向の調査ですね。ユーザーさんがどんなことを聞いているのかという使い方的なところも把握して改善につなげていくということが必要になってくるかと思うので、こういった機能もわりと簡単に実装できるようになったのは、わりとカジュアルに構築できる状況が整ってきていることなのかなと思っています。

自社データに回答するAIチャットボットは比較的カジュアルに構築できそう

最後にまとめに入りたいと思います。少し前までは実装にかかるコストがかかるものであった自社データに答えてくれるAIチャットボットが、比較的カジュアルに構築できる環境が整ってきているのかなと思っています。

ただ、現状の課題として、Microsoft系のデータソースに載っているドキュメントにしか対応していなかったり、あとは特定のファイル拡張子が対応していないところが課題かなと思っています。

このあたり、最近Googleさんからも「PaLM 2」という、Googleさんが提供している生成AIのモデルが日本語対応したり、あとは開発プラットフォームも提供が開始されたと思います。

グリーの環境について話をすると、グリーは特にこういうストレージ系はGoogle Driveを使っているというところもあって、そのあたりの親和性がもしかしたらGoogleさんのほうがいいのかなというところも需要としてあったりします。

そういったところも検討しながら、グリーにとって最適な導入形態を検討していきたいなと思っています。

ちょっと将来的な話になってしまいますが、将来的な構想としては、社内のことに答えてくれるのはもちろん、例えば情シスから依頼する棚卸しとか、あとは交通費の精算とか。そういった煩雑な社内業務も依頼すればやってくれるような、イメージとしては自分専用のアシスタントが、社員一人ひとりについてくれて、本来の業務に社員のみなさんが集中できるようになるようなものを提供していきたいなと思っています。

私の発表は以上となります。ご清聴いただき、ありがとうございました。