2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
Teamsチャットボット開発:Azureを使って安全に社内文書を引用できる (全1記事)
リンクをコピー
記事をブックマーク
北爪聖也氏:では「Teamsチャットボット開発:Azureを使って安全に社内文書を引用できる」ということについて発表します。
簡単に自己紹介をします。株式会社piponの代表をやっている、北爪と申します。piponという会社は、さまざまなデータ解析やシステム開発の受託をしている会社です。人工知能学会に論文を提出したり、バイエル薬品という製薬会社さまとのオープンイノベーションプログラムに採択いただいたりしている会社になります。
ということで今回は、「ChatGPT」と「Teams」などのビジネスチャットを連携することでどんなボットが作れるかを解説したいと思います。
さらに、RAG(Retrieval-Augmented Generation)についてはみなさんいろいろなところで聞いているかなと思うのですが、piponは実は2019年から自然言語解析に取り組んでいて、その当時は、今とは本当に比べものにならない昔の技術を使っていました。
その自然言語解析の歴史から解説をしたいと思います。
では、そもそもの本題ですね。(スライドを示して)TeamsとChatGPTをつないで、RAGでどういうことができるかというところですが、こういうことができます。
文書から調べたい疑問をチャットベースで質問することができます。質問に対して回答をボットが返してくれて、そのボットが返したデータが参考にしたデータをURLで示すことができます。
これは実際に監査法人さまと通信キャリアさまに導入しています。受託開発での導入をしていて、大きい会社だと、やはり月に6,000件とか質問があります。その質問に対して人が対応していたんですが、それを自動でボットで対応することができるようになったということで、非常に好評をいただいています。
ではどういう構成なのかというと、AzureのTeamsにMicrosoft Azureの「Bot Service」というサービスを使っています。これがボットのフロントエンドになるサービスです。裏側のバックエンドではWeb Appsというものを使っていて、Web Appsの中でFastAPIでOpenAI Serviceを叩きにいくものと、「Cognitive Search」を叩きにいくものの両方を振り分けているような状況になります。
ユーザーがクエリを出します。例えば「有給取得の方法は何ですか?」とか、「『Outlook』からログインできなくなってしまったんですけど、どうしたらいいですか?」など、さまざまなユーザーからの質問が来ます。
そのクエリに対して社内の情報を「Notion」や、大きい会社さまだとサービス内にあったりする、さまざまなものをベクトルデータベースのCognitive Searchの中に入れて、ユーザーのクエリと社内文章のもっとも意味の近いものを取得してきて、その取得してきた文章を元にAzure OpenAIが回答の生成をするというような構成になっています。
RAGである程度柔軟にチャットボットを作れるところ。これ自体が以前の自然言語解析から考えると非常に新しいわけなのですが、もちろんそれで完璧なボットができるわけではありません。
そこで大事になってくるのが、ログデータをきちんと獲得して、比率でどれくらいチャット数が多かったか、そもそもその回答が正しい、良いものだったのか・悪かったものかを回答ごとにフィードバックをユーザーからもらって、良いのか・悪いのかをきちんとログデータを取って運用改善をしていく必要が非常に大事になります。
悪かった回答がどういうものだったのかに、今さらに機能追加しようとしているのは、GPTが回答できなかったものに対しては有人に切り替えて、人がきちんとマニュアルを提示したり解説をして回答していきます。(そうすることで)本来正しく回答すべきデータが溜まっていきます。
それをさらにFAQデータの形式に直して、Cognitive Searchのベクトルデータベースの中に入れていくことで、どんどんボットが改善していくような体制を作ろうとしています。
ということで、このチャットボットが非常に便利になったのですが、以前はぜんぜん違ったというところも、自然言語解析の歴史を簡単に説明できればと思います。
以前は形態素解析というものをして、それを数値に直してベクトル化をして機械学習モデルに当てはめて、どういう単語があるからどういうふうな判断ができるかというようなことを行っていました。
形態素解析というのは、意味のわかる最小単位に文章を分割して、そのあとに解析をするというような手段になります。
例えば、助詞とか句読点などはあまり意味がないものなので、名詞、形容詞、動詞など、意味のあるものに絞って解析をしていきました。
「ベクトル化」と言っているものの一番シンプルなものは、単語の出現回数をカウントするというものになります。
Bag-of-Wordsなどと言われたり、PythonのパッケージではCountVectorizerというものになっていますが、シンプルに単語のカウントをしていく。例えば「Apple computer of the apple mark」という文章があったら「appleは2回出てきて、computerが1回出てくる」というようなものです。
(スライドを示して)文章1のcomputerというものの中にはappleとはないので0で、computerとlinuxにそれぞれ1、1と付いて、他の単語は0、0というようなかたちでベクトル化していきました。
シンプル過ぎてこれだけだとさすがにあまり文章の特徴というものを捉えられないんじゃないかということで出てきたのがTF-IDFというものです。これは、単語の出現頻度だけじゃなくて、文章の中の珍しい単語に重みを付与させてあげるというようなものになります。
例えばこういう文章があります。「私はオレンジとリンゴではリンゴが好きだ」「私は以前は青森に住んでいたが、今は東京都に住んでいる」。こういう文章があった時に、「私」という単語がいっぱい出てきます。ということは、「私」という単語はあまり重要な単語ではないんじゃないかということで、重みを下げて、スコアを下げてあげるようなことをする。
逆にこの文章の中で「オレンジ」という単語は1回しか出てきていないということで、特殊な、重要な意味があるんじゃないかということで、重みを上げてあげる。そんな数値化、ベクトル化をしていました。
こういう数値化は2019年、2020年ぐらいまでは主流でした。今も行っているのですが、その当時の主流でしたというところなの、この課題点としては、出現頻度だったり、出現頻度が少ない単語にシンプルに重みを付けてあげるだけなので、文章の意味は理解できません。
例えば「私はリンゴが好きだ」「私がリンゴが嫌いだ」という文章があったとして、正反対の意味ですが、正反対なことはベクトル上、数値上では解釈できないところが問題でした。
そこで2016年からWord2Vecが出てきたり、2018年にはBERTというもので文章を理解する、文章をさらに細かい数値ベクトルに直すことができるようになって、意味が取れるようになってきたかたちになります。
そしてOpenAIが出てきて、adaというAPIを出すことによって、さらにリッチな数値ベクトルで文章を表現することができるようになって、意味をかなりの(精度の)解釈だったり、「私はリンゴが好きだ」「私はリンゴが嫌いだ」という文章が正反対にあるということを数値で表現することができるようになったかたちになります。
このようなかたちで自然言語解析が進化してきて、今のようなRAGで、ユーザーの質問があった時にその質問の意図や意味を理解して、関連する文章をきちんと取ってくることができて、しかもLLMによってその文章を基にユーザーの意図どおりの回答を生成するということができるようになった。
以前の自然言語解析から比べると非常に革命的なことなので、これだけ大きな話題になっているということになります。
もうそろそろ10分になってしまうかなと思うので……。「TeamsのチャットボットでRAGを使って業務効率化できる」という話で、それが非常に宿命的な、革新的なことなんだよという話をしました。ありがとうございました。
関連タグ:
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05