世界一わかりみの深いAzure Bot Service 〜 応用編:QAチャットボットを作ろう 〜

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【4/18開催】VSCode Dev Containersで楽々開発環境構築祭り〜Python/Reactなどなど〜
Visual Studio Codeの拡張機能であるDev Containersを使ってReactとかPythonとかSpring Bootとかの開発環境をラクチンで構築する方法を紹介するイベントです。
https://tech-lab.connpass.com/event/311864/

こんにちは。サイオステクノロジーの川田です。
今回は、Azureで簡単にチャットボットを作れるサービス「Azure Bot Service」のQA作成やチューニング方法についてご紹介致します。

「Azure Bot Service」については「世界一わかりみの深いAzure Bot Service 〜 基本編:オウム返しボットを作ろう 〜」でわかりみ深くまとめておりますので、ご参考ください。

運用の流れ

チャットボットはQAを追加して終わりというわけではなく、会話履歴の分析やチューニングが必要になります。
会話履歴からマッチしない回答やスコアが低い回答を分析し、チャットボットの回答精度を高めていくことが重要です。

チューニングの主な作業
  • QAの追加・編集・削除
  • 代替フレーズの追加
  • 類義語の追加

 

入力式のチャットボットはユーザーが入力してくるQAを事前に考えておくことは難しいですよね。
回答がマッチしないと画像のように「マッチする回答がありません」等と返ってきます。

日々会話履歴を分析し、チューニング行うことでチャットボットの回答率を高めていくことが必要なのです。

会話履歴の分析

それではチューニングの前に会話履歴の分析を行います。

各項目の説明

ブックにアクセスすると会話履歴が表示されます。

各項目は以下の意味を持ちます。
こちらのScoreを分析し、チューニングを行います。

  • 会話履歴の検索範囲
    過去の会話履歴の検索範囲を指定
  • TimeGenerated
    生成された日時
  • Question
    チャットボットから入力された質問内容
  • Answer
    質問の回答
  • Score
    回答の精度は0から100の範囲の数値になります。公式は☞こちら

    スコア値 スコアの意味
    90-100ほぼ完全一致
    70-90高い信頼度
    50-70中程度の信頼度
    30-50低い信頼度
    1-30非常に低い信頼度
    0一致なし

 

最新の会話履歴取得方法

会話履歴に最新の情報が反映されて場合があります。その場合は上にある更新マークをクリックします。
※反映には少しお時間がかかる場合がございます。

Language Studioにアクセス

チューニングの主な作業として「QAの追加・編集・削除」「代替フレーズの追加」「類義語の追加」があります。

そのためには「Language Studio」にアクセスをし、サインインします。

以下のURLにアクセスをします。アクセスすると「Language Studio へようこそ」と表示されます。
https://language.cognitive.azure.com/

言語の変更

デフォルトは英語となっております。
日本語にしたい方は左下のプルダウンメニューから「日本語」をクリックしてください。

 

Azureにサインイン

Azure アカウントでサインイン」をクリックします。
※画面の指示に従ってAzurenにサインインを行ってください。

Language Studioにサインインすると以下の画面が表示されます。

言語リソースを選択

先ほどの「新しいLanguage Studioへようこそ」を消すと、言語リソースが選択できます。
※誤って「×」ボタンをクリックしても再度アクセスすると表示されます。

用意されているソースを選択し、「Done」をクリックしてください。

プロジェクトを選択

選択したリソースのプロジェクトが一覧で表示されます。
該当するプロジェクトをクリックしてください。

クリックをしますと、「ソースの管理」が表示されます。
QAが追加されていないとこのような画面になっているかと思います。

準備完了です!こちらの画面でチャットボットのチューニングを行います!

QAの追加(初回)

それでは初回時のQA追加方法をご紹介致します。
今回はExcelファイルでQAを追加する方法になります。

Excelファイルを作成

QAが記載されたExcelファイルを用意してください。
Excelファイルの記載例は以下の通りです。(A列:Question、B列:Answer)

ソースの追加

QAが記載されたExcelファイルが用意できたら、ソースを追加していきます。
ソースを追加するにはソースの管理画面から「ソースの追加」 ⇒ 「ファイル」をクリックします。

ファイルを追加

ファイルの追加」をクリックするとファイル名からアップロードすることができます。
※一度に追加できるファイルは10個までのようです。

例:

  • ソースの名前
     任意の値:20220414
  • ファイル名
     先ほど作成したExcelファイル
  • ファイル構成を分類する
     プルダウン:自動検出

 

完了したら「すべて追加」をクリックします。
※複数追加したい場合は「ファイルの追加」をクリックしてアップロードしてください。

ソースを削除
「すべて追加」の前にソースを削除したい場合は、削除したいソースを選択し「削除」をクリックします。

 

ソースを編集
「ソースの名前」を変更したい場合は、編集したソースを選択し「編集」をクリックします。
※アップロードし直したい場合は一度削除してから再度アップロードしてください。

 

すべて追加」をクリック後、ソースの管理にアップロードしたファイルが表示されているか確認してください。

 

ソースの管理からもソース名を変更することができます。
その場合は、編集したいソースを選択し「名前を編集」をクリックします。

ソースの削除する方法については後述記載しますので、ここでは割愛します。

QAの追加(2回目以降 -ファイル-)

先ほどは初回でのQA追加方法でした。
QAは追加していく必要があると思います。2回目以降の方法をご紹介します。
追加方法は基本的には変わりません。

追加したいQAのExcelファイルを作成

今回は追加したいQAのみを先ほどと同様のフォーマットでExcelファイルを用意します。
複数のQA可能です。

初回分のExcelファイルに追記してしまいますと、「代替フレーズの追加」等で行った設定が消えてしまいます。
元に戻したい場合はアップロードしたファイル削除すると設定した値は元に戻りますのご安心ください。
削除方法に関しては後述します。

ファイルの追加

手順は初回時と同じです。
ソースの追加から「ファイル」をクリックし、Excelファイルをアップロードしていきます。

問題なければ「すべて追加」をクリックします。

追加したソースが「ソースの管理」の一覧に表示されていることを確認してください。

以上がQAのファイル追加方法になります。

QAの追加(個別)

ナレッジベースの編集

「ナレッジベースの編集」から直接QAを追加することも可能になります。
ここに質問のペアを追加します」をクリックします。

QAを追加

QAを入力しましたら、赤枠のチェックをクリックします。
そうすると「送信」ボタンがアクティブになりますので、クリックをしてください。

変更の保存」をクリックします。
変更しましたら必ず保存を行ってください。

以上がナレッジベースの編集から直接QAを追加する方法でした。

QAの編集

次はQAの編集方法についてご紹介します。

ナレッジベースの編集

追加したQAを確認したり、QAの編集を行ったりするには「ナレッジベースの編集」から可能です。
ナレッジベースの編集」は左側メニューにありますので、クリックします。

編集したいQAをクリック

編集したいQAにチェックを入れ、上にある「編集」をクリックします。

QAを編集

クリックしますと、テキストボックスが表示され編集が可能になります。
編集が完了しましたら「送信」をクリックします。
※まだ編集の完了はしていません!!

編集したQAを保存

上にある「変更の保存」をクリックしてください。
保存しないと編集したQAは反映されませんので必ず保存を行ってください。

以上がQAの編集方法になります。

QAの削除

QAの削除には2パターンあります。

Excelファイル記載のあるQAをすべて削除する方法

1つ目はアップロードしたQAをすべて削除する方法になります。
ソースの管理から削除したいソースを選択し、「削除」をクリックします。

※こちらを実行すると記載のあるQAはすべて削除されます。

個別でQAを削除する方法

先ほどは全部削除する方法でした。 次は個別で削除する方法になります。
「ナレッジベースの編集」から行います。
削除したい質問を選択し、「削除」の「ペアを削除する」をクリックします。

 

再度ポップアップで聞かれますので、「OK」をクリックすると選択したQAのみが削除されます。

変更後は必ず「変更の保存」を行ってください。

QAの動作確認

QAの追加や編集削除が完了しました。
次はQAがちゃんと動作するのか確認が必要ですよね。

ナレッジベースの編集をクリック

アップロードしたQAに関しては「ナレッジベースの編集」から動作確認が可能です。

テストをクリック

上にある「テスト」をクリックします。
動作確認する場合は右側にあるテストからメッセージを入力します。

メッセージを入力してみよう!

それではテストのテキストボックスからメッセージを入力してみます。
入力後はEnterキーもしくは送信マークをクリックしてください。

※画像は「福利厚生」と入力して送信した例になります。

信頼度スコアを確認する

会話履歴にもありましたが、信頼度スコアがとても重要になります。
このスコアはなにかというと、質問に対し回答がどれくらいマッチしているのかを数値化しています。

スコアを確認するには質問の右下にある「検査」をクリックします。

スコアは0から1の間になります。1に近いと信頼度が高いということになります。
公式は☞こちらです。

スコア値スコアの意味
1明確に一致
0.99信頼度が高い
0.01信頼度が低い
0明確に不一致

 

代替フレーズの追加

チャットボットが回答できなかった質問に対し、すでに登録されている回答文と同じ返答したい場合もあるかと思います。
そういった場合は、「代替フレーズの追加」で対応することができます。

今回は「応募方法」の回答文をすでに登録済みの「サイオスで働きたい」と同じ回答文で返答になるように設定していきたいと思います。

下の画像は「応募方法」という問いに対してスコアが0になっています。
こちらのスコアを高めるために、「代替フレーズの追加」を行います。

代替フレーズの追加をクリック

代替フレーズの追加」はナレッジベースの編集から設定します。
追加したいコンテキストの質問にある「代替フレーズを追加する」をクリックします。

質問を追加する

クリックしますと、追加したい質問を入力することができます。
テキストボックスに入力しましたら、Enterキーもしくは右にあるチェックマークをクリックします。

例は先ほどスコアが0だった「応募方法」を入力しています。

完了しましたら、「変更の保存」を忘れずに行ってください!

動作確認をしてみよう!

それでは保存した内容が反映されているか確認してみます。
先ほどと同様で「テスト」をクリックします。

「応募方法」と入力してみます。信頼度スコアが1.00になっていることがわかります!
代替フレーズを追加したことにより、「サイオスで働きたい」と同様の回答文が表示されました。

以上が代替フレーズの追加でした。

類義語の追加

言葉の意味は一緒なのに言い回しが違うだけでスコアが低くなったり、「マッチする回答がない」といった返答をする場合もあります。
そのような場合はナレッジベースの編集から「Synonyms」をクリックすると類義語の追加を行うことができます。

※一度も追加したことがないと、画像のように何も表示されません。

追加をしてみよう!

Add synonyms」をクリックします。グレーの部分に登録したい類義語を入力します。

※「カンマ(,)」や「Enter」で複数入力が可能になります。

入力が完了しましたら、「Submit」をクリックします。

保存を忘れずに!
変更しましたら、必ず「Save changes」をクリックします。

以上で類義語の追加が完了です。

本番環境への展開

今までの設定は保存されていますが、本番環境には反映されておりません!
チャットボットに設定が反映されるよう本番環境へ展開していきます。

ナレッジーベースの展開

本番環境への反映は左側にある「ナレッジベースの展開」から行うことができます。
※「ナレッジベース状態」は前回反映した状態が表示されおります。

展開をクリック

展開」をクリックしますと、再度確認がありますので「展開」をクリックしてください。

状態を確認してみよう!

「展開」をしましたら、「ナレッジベースの状態」から正常に本番環境に展開されているか確認します。

 

以上が会話履歴の分析から本番環境への展開までご説明しました。
分析やチューニングを行いながらチャットボット育ててみてください^^

長くなりましたが、ありがとうございました!

アバター画像
About kawada 25 Articles
Webアプリケーション開発を行っており、プログラミング初心者向けの記事や動画編集に関する内容を中心とした記事を執筆しています。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる