2024.10.10
将来は卵1パックの価格が2倍に? 多くの日本人が知らない世界の新潮流、「動物福祉」とは
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.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.12
自分の人生にプラスに働く「イライラ」は才能 自分の強みや才能につながる“良いイライラ”を見分けるポイント
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.11
気づいたら借金、倒産して身ぐるみを剥がされる経営者 起業に「立派な動機」を求められる恐ろしさ
2024.11.11
「退職代行」を使われた管理職の本音と葛藤 メディアで話題、利用者が右肩上がり…企業が置かれている現状とは
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.12
先週まで元気だったのに、突然辞める「びっくり退職」 退職代行サービスの影響も?上司と部下の“すれ違い”が起きる原因
2024.11.14
よってたかってハイリスクのビジネスモデルに仕立て上げるステークホルダー 「社会的理由」が求められる時代の起業戦略
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.12
自分の人生にプラスに働く「イライラ」は才能 自分の強みや才能につながる“良いイライラ”を見分けるポイント
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.11
気づいたら借金、倒産して身ぐるみを剥がされる経営者 起業に「立派な動機」を求められる恐ろしさ
2024.11.11
「退職代行」を使われた管理職の本音と葛藤 メディアで話題、利用者が右肩上がり…企業が置かれている現状とは
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.12
先週まで元気だったのに、突然辞める「びっくり退職」 退職代行サービスの影響も?上司と部下の“すれ違い”が起きる原因
2024.11.14
よってたかってハイリスクのビジネスモデルに仕立て上げるステークホルダー 「社会的理由」が求められる時代の起業戦略