メルマガ登録
このたびブレインパッドは、LLM/Generative AIに関する研究プロジェクトを立ち上げ、この「Platinum Data Blog」を通じてLLM/Generative AIに関するさまざまな情報を発信をしています。5月16日から毎日更新を続けてきたLLM特集も、本ブログで第1弾が一区切りとなります。最後を飾るブログでは、知りたいことを質問すると社内データから関連する内容を検索し、質問に対してよしなに回答をしてくれるSlack BotおよびWebアプリをChatGPT APIを使って作成したので、その内容をご紹介します。
【生成AI・LLM解説記事】
生成AI(ジェネレーティブAI)とは?ChatGPTとの違いや仕組み・種類・活用事例
LLM(大規模言語モデル)とは?生成AIとの違いや活用事例・課題
こんにちは、アナリティクスサービス部の田中です。
社内には有益な情報が多くありますが、データ量が増えるにつれて調べたい情報に正確にアクセスすることが難しくなります。このプロセスを効率化することができれば、多くの時間をメインの業務に使うことができ組織全体として生産性の向上に繋がると考えられます。
今回はそんな課題を解決するために、ChatGPT APIを使い、調べたいことを質問すると社内データに対して関連する内容を検索し、質問に対してよしなに回答をしてくれるSlack BotおよびWebアプリを作成しました。
プロダクトの開発および記事の執筆は以下のメンバーで行いました。
アナリティクス本部 上田、内田、尾村、田中、橋本、林
今回はチャット形式で社内の情報について質問を行うことができるプロトタイプを構築しました。システムのおおまかな処理は以下のようになっています。
具体的な構成はアーキテクチャで記載しています。
また、インターフェースとしてSlack Botのものと、Slackを社内で使っていなくて作成することができるWebアプリのものを開発しました。以下がそれぞれの出力例になります。
上の2つのデモ動画はSlack Botの回答の様子です。
上:簡単な受け答えはできるように設定しています。
下:「休暇申請の方法」について質問をしており社内のデータに基づいて回答を行なっています。
上の2つのデモ動画はDashによるWebアプリの回答の様子です。
上:「子どもが生まれた時にどうすればよいか」をこちらも社内のデータに基づいて回答を行なっています。
下:「日本の総理大臣は誰ですか?」という質問に対しては社内のデータに含まれないため、あえて回答をしないように設定しています。
Slackの実装ではSlack APIを使い質問を受け取り、Azure Functions内でAzure OpenAI ServiceやAzure Cognitive SearchのAPIを実行します。Webアプリの実装ではDashのUIから質問を受け取りAzure OpenAI ServiceやAzure Cognitive SearchのAPIを実行しています。以下は今回使用したAzureのサービスやOSSになります。
【関連記事】Azure OpenAI ServiceでChatGPTを使ってみた
調べたい情報を検索する際に必ずしも検索先に記載されている言葉で検索を行えていない場合がほとんどです。そこで、Azure Cognitive Searchで検索を行う前に入力されたキーワードと類似する言葉や関係の深い言葉などをAzure OpenAI Serviceを使い生成し、検索キーワードを拡張してから検索を行う構成にしました。
これにより質問した内容に含まれているキーワードが検索先に記載されているものと異なっていても、安定して出力を得ることができるようになりました。
Slackを使っていない場合でも社内データに対して質問ができるWebアプリ版も作成しました。Webアプリ版はどのような企業でも導入することができると考えています。
以下は今回作成する際に用いたDashコンポーネントになります。よろしければ参考にしてください。
github.com
その他にもプロンプトを工夫し、検索結果に含まれていない内容に回答しないような工夫をしました。
今回作成したプロトタイプの課題には以下のようなものがあります。
今回のプロトタイプではGPT-3.5-turboを使っていたので、上記の課題についてはGPT-4使うことで解決できるかもしれません。
また展望としては以下のようなことを考えています。
NeMo GuardrailsはLLMを利用した会話システムの出力を制御することができ、攻撃的な発言やジェイルブレイク*を防ぐことができます。LLMのガードレールに関する詳細な説明は以下の記事が参考になると思います。
【関連記事】LLMにガードレールを適用してビジネスリスクを抑制する
Slack APIのBlock Kitという機能を用いることで、インタラクティブなボタンの追加などが可能となります。この機能により、ユーザーからの直接的なフィードバックを出力した回答に対して収集することが可能となり、質の高い回答を生成するためのサービス改善に繋げることもできます。
今後は上記のようなことにも取り組み、よりユーザーが使いやすいものを作っていきたいと考えています。
今回は、「ChatGPT APIで社内データについて回答するSlack BotとWebアプリ」の開発を行いました。
今回のプロトタイプを作る過程で社内データを活用する難しさを身をもって経験することができました。しかし、その壁を乗り越え様々な社内データに効率的にアクセスできる環境を作ることができれば、企業全体の業務の効率化に繋がると感じました。
この記事のプロトタイプのプロダクトに関心がある方は、ぜひお気軽にご連絡ください。ChatGPTなどのLLMを活用したプロダクト開発をともに進めていきましょう。
あなたにオススメの記事
2023.12.01
生成AI(ジェネレーティブAI)とは?ChatGPTとの違いや仕組み・種類・活用事例
2023.09.21
DX(デジタルトランスフォーメーション)とは?今さら聞けない意味・定義を分かりやすく解説【2024年最新】
2023.11.24
【現役社員が解説】データサイエンティストとは?仕事内容やAI・DX時代に必要なスキル
2023.09.08
DX事例26選:6つの業界別に紹介~有名企業はどんなDXをやっている?~【2024年最新版】
2023.08.23
LLM(大規模言語モデル)とは?生成AIとの違いや活用事例・課題
2024.03.22
生成AIの評価指標・ベンチマークとそれらに関連する問題点や限界を解説