NLU 専門家フィードバックループ
仮想エージェントチャットログの発話に関するフィードバックを提供して、システムが継続的に学習し、ユーザー入力をより適切に予測できるようにします。
使用方法の概要
専門家フィードバックループは、インスタンスからデータを取得し、フィードバックのために提供します。このデータは、ユーザーの仮想エージェント (VA) チャットログから取得され、それらのログからの発言が含まれます。nlu_adminロールを使用して、 そして、発話がインテントに対して正しい (一致) か正しくない (不一致) かを確認することで、モデル内の各発話をマークします。このフィードバックは、モデルがモデルのパフォーマンスを継続的に改善するのに役立ちます。
インストール
専門家フィードバックループは、 ServiceNow® Store で利用可能な NLU ワークベンチ - 拡張機能アプリの一部です。
専門家フィードバックループを使用するには、インスタンスで NLU ワークベンチ - 拡張機能型 (sn_nlu_workbench) プラグインがアクティブになっていることを確認してください。詳細については、「NLU ワークベンチのNLU ワークベンチのインストール:拡張機能とアクティブ化」を参照してください。
専門家フィードバックループは VA チャットログのデータに依存するため、Glide 仮想エージェント (com.glide.cs.chatbot) プラグインもアクティブであることを確認してください。「 仮想エージェントのアクティブ化」を参照してください。
インスタンス間での専門家フィードバックループデータのインポート
インポートを開始する前に、インスタンス内のデータへのアクセス権があり、フィードバックを処理するのに十分なデータがあることを確認してください。
準本番インスタンスで作業している場合は、本番インスタンスの open_nlu_predict_intent_feedback テーブルから準本番インスタンスにフィードバックデータをインポートする必要があります。インポート方法のガイダンスについては、「 別の ServiceNow インスタンスからのインポート」を参照してください。
- モデルを別のインスタンスに移動しても、フィードバックデータは保持されます。
- インスタンスをアップグレードしても、フィードバックデータは保持されます。
- インスタンスをクローンした場合、データは保持されないため、上記の手順に従ってクローンされたインスタンスにデータをインポートする必要があります。
フィードバックのコンテキストとアクセス
専門家フィードバックループは、発話の選択したサブセットで提供するフィードバックを通じて、VA に展開された NLU モデルを改善するためのメカニズムを提供します。発話ごとに、予測されたインテントを確認するか、発話が属する正しいインテントを指定するように求められます。このフィードバックが完了すると、データを使用してモデルのパフォーマンスが調整され、その結果、モデルが改善され、再展開してより多くのエンドユーザーデータを収集できるようになります。これは、システムが継続的にデータを収集し、提供されたフィードバックから学習し、そのフィードバックを使用して NLU モデルをさらに改善できるようにする反復サイクルです。
システムは 30 日に 1 回、VA チャットログから専門家フィードバックループに最大 300 の発言サンプルをプルします。発言は、ログ内のすべての発言をどの程度適切に表しているかに基づいて、フィードバック用に選択されます。VA チャットログからサンプリングされたすべての発話には、システムによって選択された予測インテントがあります。
glide.mlpredictor.option.nlu.activeLearning.label_candidate_table.max_response_size システムプロパティの設定を調整することで、VA チャットログからプルされる発言の数を設定することもできます。
VA チャットログから発話を取得するプロセスの詳細については、以下の「オンデマンドで追加の VA フィードバックデータを調達する」および「アクティブラーニングジョブを使用する」セクションを参照してください。
発話を確認しながら、各発話が予測されたインテントに属するか、別のインテントに移動する必要があるかを判断します。正しいインテントがわからない場合は、さらにレビューするために発話にマークを付けることができます。少なくとも 100 の発言にフィードバックのマークを付けると、マークされたすべての発言を使用してモデルが調整および改善されます。
VA チャットログの発話の確認
ループに入ると、次の画像に、VA モデルのインテントをサポートする NLU 発話のリストが表示されます。リストの各ページには、ページあたり約 20 件の発言が表示されます。目標は、各発話を確認し、その関係ステータスを特定の VA インテントにマークすることです。各発話を [NLU_Match]、[ 不一致]、または [不明] のいずれかの値でマークします。
発言を NLU_Match としてマークすることは、その発言の NLU 予測に同意することを意味します。発話を 不一致 としてマークすると、その発話が別のインテントに属していることを意味します。 「不一致」を選択すると、インテントのドロップダウンが表示され、正しいインテントを選択できます。どのインテントが正しいかわからない場合は、「 不明」としてマークできます。
NLU_Match値または不一致値でマークされて保存された発言は、[完了したレビュー] セクションに移動されます。[ 不明 ] 値でマークされて保存された発言は、[ さらにレビューが必要 ] セクションに移動されます。
- [フィードバックループをエクスポート (Export Feedback Loop)] 画面の上部で、プロンプト に対する専門家フィードバックループ でレビューするモデルを選択します。この機能内では、これらのモデルは主にレビューでマークしている発話を格納する機能を備えているため、ある意味ではどのモデルを選択しても問題ありません。したがって、このシナリオ例では、5 つのインテントと、それらの各インテント内に多数の発話がある IT モデル モデルを選択することにします。次の画像に示すように、確認する必要がある発言の数が、予測されるインテントの名前の横に表示されます。これらのモデルのインテントは、画面の [ 予測されるインテント] 列に一覧表示されます。どの予測済みインテントでも発言をレビューしてマークできますが、インテントが最初に表示される順序で連続してレビューを完了することをお勧めします。たとえば、 ad_password_change インテントから始めて、他の予測されるインテントに進みます。
- ad_password_changeインテントをクリックすると、レビューのためにその発言が [To do] セクションにロードされます。
- インテントの 15 個の発言を確認します。このシナリオでは、まず [AD パスワードを変更します ] 発言を ad_password_change インテントに一致するように正しくマークすることから始めました。
- [ フィードバックを保存] をクリックします。結果:マークした発言が画面の [完了 ] セクションに移動します。同時に、[ To Do (To Do )] 発言のカウントは 15 から 14 に減少し、[ Done (完了 )] セクションのカウントは 0 から 1 に増加します。別の発言にも [ 不明] 値をマークし、その変更を保存した場合、[ さらにレビューが必要 ] セクションの発言数も 0 から 1 に増加します。注:どのインテントが発話に最も一致するかわからない場合は、「 不明 」値でマークします。このアクションにより、発話が [さらにレビューが必要 ] セクションに移動し、[ To Do ] セクションで、インテントとの照合や不一致が容易な他の発話をマークする時間が確保されます。いつでも [Needs further review (さらにレビューが必要)] セクションに戻って、特定のインテントにピン留めするのが難しい発話をマークできます。
- 手順 1 から 4 を繰り返しながら、[ 予測されたインテント ] 列の残りのインテントに移動します。
ad_password_changeインテントの発話は、インテント内に少なくとも 1 つの発話に「password」という単語が含まれているため、予測されたインテントに一致するものとして簡単にマークできます。
予測されたインテントの発言の確認が終了し、[ フィードバックを保存] をクリックすると、画面が更新され、モデル内の次の予測インテントが強調表示されます。
発言を値別にグループ化して表示する場合は、[ 表示 ] フィルターをクリックし、プロンプトでオプションの 1 つを選択します。値は、[ すべて]、[ NLU_Match]、および [不明] です。
カードビューオプションを使用して発言をレビューする
専門家フィードバックループの発話は、これまで見てきた多くの画像に示すように、デフォルトでリストビューの [To do ] セクションに表示されます。ただし、カード内にフレーム内の各発言を表示する別のビューを選択することもできます。このオプションを選択すると、各発言が 5 つのグループでページに表示されます。リストビュー内で 、カード アイコンをクリックします。
結果:カードビューがリストビューに置き換わります。発言カードのページの両側にある左右の矢印に注意してください。右矢印をクリックすると、次の 5 枚のカードのセットにページがめくれます。左矢印をクリックすると、前の 5 枚のカードセットにページがめくれます。カードビューではなくリストビューに戻す場合は、下の画像の右上隅に示すように リスト アイコンをクリックします。
発言値の変更
発話をマークした後で、選択した値を変更した場合は、[ 不一致 ] をクリックして別のインテントを選択することで問題を解決できます。[ フィードバックを保存 ] をクリックして変更を保存します。
未保存のフィードバック
発言をマークするセッションを終了してログアウトしたが、変更を保存するのを忘れた場合は、[表示中] プロンプトから [未保存の変更] を選択します。このアクションでは、フィードバックを提供したが、まだ保存していないすべての発言が表示されます。
追加の VA フィードバックデータをオンデマンドで調達する
- nlu_adminロールを使用して、 .
- [Active Learning (アクティブラーニング)] をクリックします。
- [Execute Now (今すぐ実行する)] をクリックします。
- 次の 4 つの NLU システムプロパティの値を増減します。
- glide.mlpredictor.option.nlu.activeLearning.va_chat_logs.max_row_limit - 3000
- glide.mlpredictor.option.nlu.activeLearning.label_candidate_table.max_data_size - 10000
- glide.mlpredictor.option.nlu.activeLearning.label_table.max_data_size - 10000
- glide.mlpredictor.option.nlu.activeLearning.label_candidate_table.max_response_size-300
これらのプロパティが他の NLU プロパティのコンテキスト内でどのように機能するかを確認するには、「 NLU ワークベンチのプロパティ」を参照してください。
未分類の発話の確認
VA チャットログから専門家フィードバックループへのフィードの一部として、VA インテントに含まれていないインスタンス内の発話が収集され、リストに表示されます。これらの発話にアクセスするには、画面上部のプロンプトに対する専門家フィードバックループで [Uncategorized (未分類)] を選択します。
- [ 発言 ] 列で、リストから発言を選択します。
- [ 修正されたインテント ] 列で、発話に最も一致すると思われるインテントとそのモデルをプロンプトから検索して選択します。
上の画像に関して、次のように、未分類の発言ページがどのように機能するかを説明するのに役立ついくつかの項目について説明します。[ To Do (To Do )] セクションでは、インテントに接続する必要がある発話を収集します。この日は、そのような発話が120件あります。まだアクションを実行していないため、画面の [完了 ] セクションには発話がないことに注意してください。
また、画面の右端には垂直バーがあり、上下にスクロールして発話のリストを移動できることにも注意してください。このスクロール画面の下部には左右を指す矢印があり、その日の完全な発言リストの次または前のページに戻ることができます。
また、接続を確立するアクションを実行すると、通常はデフォルトでアクティブになっている [ フィードバックの保存 ] ボタンが非アクティブになります。これは、システムがアクションを認識して変更を自動的に保存するためです。
[モデルを調整] フェーズでの専門家フィードバックループのデータ
専門家フィードバックループの [ モデルの調整 ] ボタンは常に有効になっており、[専門家フィードバックループの [完了 ] タブからモデルとそのテストセットに発話を移動するエクスペリエンスをサポートします。モデルを調整または再調整する必要があるときはいつでも、nlu_adminロールを使用してこのボタンをクリックします。
専門家フィードバックループで発話を確認した後、フィードバックデータの一部をモデルのデフォルトのテストセットにプッシュできます。これらの発話は、モデルの [ Test utterances (発話のテスト)] タブに直接追加されます。これにより、実際のエンドユーザーの発話でテストセットを継続的に維持および更新できます。システムは、テスト発話のソースを追跡して、エキスパートフィードバックループからのものか、別のソースからのものかを把握します。
少なくとも 100 件の発言をマークして保存する前に [ モデルの調整] ボタンをクリックすると、画面が更新され、下の画像のテキストで参照されているように、100 件の発言フィードバック目標を超えるとモデルのパフォーマンスの品質が向上することが通知されます。
フィードバックデータのマークと保存を続けると、レビュー済みの発言 (緑色) とまだレビュー可能な発言 (白色) の比率が、下の進捗状況バー画像に表示されます。
アクティブラーニングジョブの使用
スケジュール済みジョブは、バッチジョブまたはバッチスケジューリングとも呼ばれ、特定の時間または定期的なスケジュールで実行される自動化された作業です。多くのジョブはスケジュールに従って実行されますが、ここでは例としてアクティブラーニングジョブに焦点を当てています。
- アクティブ学習ジョブの実行に設定する繰り返し頻度の間隔を変更します。
- アクティブ学習ジョブに次のスケジュールされた実行がいつ設定されているかを確認します。
- 必要なときにいつでも (オンデマンドで) アクティブ学習ジョブを実行します。
- nlu_adminロールを使用して、[ All ] フィールドに移動し、「 sysauto_script.list」と入力してから、キーボードの Return キーを押します。画面が更新されて [スケジュール] ページが表示され、すべてのスケジュール済みジョブが一覧表示されます。
- 「スケジュール」ページで、「 アクティブラーニング」をクリックします。以下の画像に示すように、アクティブ学習ジョブのレコードが表示されます。
- アクティブラーニングレコードで、次のフィールドを設定します。
- [ 実行 ] フィールドで、ジョブの 8 つの [繰り返し間隔] オプションのいずれかを選択します。オプションは、[ 日次]、[ 週次]、[ 月次]、[ 定期的]、[ 1]、[ オンデマンド]、[ ビジネスカレンダー:エントリ開始]、および [ビジネスカレンダー:エントリ終了] です。
- [ 繰り返し間隔 ] フィールドに、アクティブ学習ジョブの現在から次の繰り返し間隔までの日数を入力します。
- [開始(Starting)] フィールドで [カレンダー(Calendar)] アイコンをクリックし、次のアクティブ学習ジョブ間隔の日時を選択します。
- [ 更新 ] ボタンをクリックして設定を保存するか、[ 今すぐ実行] ボタンをクリックしてアクティブラーニングジョブの実行を開始します。
- 次のアクティブ学習ジョブがいつ実行されるかを確認するには、[ All ] フィールドに移動して「 sys_trigger.list」と入力し、キーボードの Return キーを押します。[スケジュール] ページが表示されます。[Active Learning (アクティブラーニング)] をクリックします。[スケジュールアイテム/アクティブラーニング] レコードが表示され、[ 次のアクション ] フィールドに次のアクティブラーニングジョブの実行日時が入力されます。