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 日に一度、システムは 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値または不一致値でマークが付けられて保存された発言は、[完了したレビュー] セクションに移動されます。[不明] 値でマークが付けられて保存された発言は、[さらにレビューが必要] セクションに移動されます。
- [フィードバックループのエクスポート] 画面の上部で、 プロンプト用に専門家フィードバックループ でレビューするモデルを選択します。この機能内では、これらのモデルは主にレビューでマークする発言を格納するために使用されるため、どのモデルを選択しても問題ありません。したがって、このシナリオ例では、5 つのインテントとそれらの各インテント内に多数の発言がある IT モデル モデルを選択することにしました。次の画像に示すように、レビューが必要な発言の数が予測インテントの名前の横に表示されます。これらのモデルのインテントは、画面の [予測されるインテント ] 列に一覧表示されます。予測されたインテントのいずれかで発言をレビューしてマークを付けることができますが、インテントが最初に表示される順序でレビューを連続して完了することをお勧めします。たとえば、 ad_password_change インテントから始めて、他の予測インテントに進みます。
- ad_password_changeインテントをクリックすると、その発言がレビューのために [To Do] セクションにロードされます。
- インテント内の 15 件の発言を確認します。このシナリオでは、まず [AD パスワードを変更したい (I want to change my AD password )] 発話を ad_password_change インテントに一致するものとして正しくマークしました。
- [フィードバックの保存] をクリックします。結果:マークした発言が画面の [完了 ] セクションに移動します。同時に、 To Do 発言の数は 15 から 14 に減少し、[ 完了 ] セクションのカウントは 0 から 1 に増加します。別の発話も [不明 ] 値でマークし、その変更を保存した場合、[ さらにレビューが必要 ] セクションの発話の数も 0 から 1 に増加します。注:どのインテントが発話に最も一致するかわからない場合は、[ 不明 ] 値でマークします。このアクションにより、発言が [さらにレビューが必要 ] セクションに移動し、[ To Do ] セクションでインテントと一致しやすい、または不一致になりやすい他の発言をマークする時間が与えられます。いつでも [さらにレビューが必要 ] セクションに戻って、特定のインテントに特定するのが難しい発言をマークできます。
- ステップ 1 〜 4 を繰り返しながら、[ 予測されるインテント ] 列の残りのインテントに移動します。
ad_password_changeインテントの発言は、インテント内にパスワードという単語を含む発言が少なくとも 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 インテントに含まれていないインスタンス内の発言を収集してリストに表示します。これらの発言にアクセスするには、画面上部の [専門家フィードバックループ] で [未分類] を選択します。
- [ 発言 ] 列で、リストから発言を選択します。
- [ 修正されたインテント ] 列で、発言に最適と思われるプロンプトからインテントとそのモデルを検索して選択します。
上の画像について、未分類の発話ページがどのように機能するかを説明するのに役立ついくつかの項目を次のように説明します。[ To Do ] セクションでは、インテントに接続する必要がある発言を収集します。この特定の日には、そのような発言が120件あることがわかります。まだアクションを実行していないため、画面の [完了 ] セクションには発言がないことに注意してください。
また、画面の右端には垂直バーがあり、上下にスクロールして発言のリストを移動できます。このスクロール画面の下部には、左右を指す矢印があるため、その日の完全な発言リストの次または前のページに移動できます。
また、接続するためのアクションを実行すると、システムがアクションを認識して変更を自動的に保存するため、通常はデフォルトで有効になっている [フィードバックの保存 ] ボタンが無効になります。
専門家フィードバック:モデルの調整フェーズでデータをループ
専門家フィードバックループの [モデルの調整 ] ボタンは常に有効であり、専門家フィードバックループ の [完了 ] タブからモデルとそのテストセットに発言を移動するエクスペリエンスをサポートします。モデルを調整または再調整する必要があるときはいつでも、nlu_admin ロールを使用してこのボタンをクリックします。
専門家フィードバックループで発言を確認した後、フィードバックデータの一部をモデルのデフォルトのテストセットにプッシュできます。これらの発言は、モデルの [ テスト発言 ] タブに直接追加されます。これにより、実際のエンドユーザーの発言でテストセットを継続的に維持および更新できます。システムは、テスト発言のソースを追跡して、エキスパートフィードバックループからのものか、別のソースからのものかを可視化します。
100 件以上の発言をマークして保存する前に [ モデルを調整 ] ボタンをクリックすると、画面が更新され、下の画像のテキストで参照されているように、100 件の発言フィードバック目標を超えたときにモデルのパフォーマンスの品質が向上することが通知されます。
フィードバック データをマークして保存し続けると、レビュー済みの発話の比率 (緑色) と、まだレビュー可能な発話の比率 (白色) が、下の進行状況バーの画像に表示されます。
アクティブラーニングジョブの使用
スケジュール済みジョブは、バッチジョブまたはバッチスケジューリングとも呼ばれ、特定の時間または繰り返しスケジュールで実行される自動化された作業です。多くのジョブはスケジュールに従って実行されますが、ここでは例としてアクティブラーニングジョブに焦点を当てます。
- アクティブ学習ジョブの実行を設定する繰り返し間隔を変更します。
- アクティブ学習ジョブに対して次回のスケジュール実行がいつ設定されているかを確認します。
- Active Learning ジョブを必要なときにいつでも (オンデマンドで) 実行します。
- nlu_admin ロールを使用して、[ すべて ] フィールドに移動して 「sysauto_script.list」と入力し、キーボードの Return キーを押します。画面が更新され、[スケジュール] ページが表示され、すべてのスケジュール済みジョブが一覧表示されます。
- [スケジュール] ページで、[ アクティブラーニング] をクリックします。下の画像に示すように、アクティブラーニングジョブのレコードが表示されます。
- アクティブラーニングレコードで、次のフィールドを設定します。
- [実行] フィールドで、ジョブの 8 つの [繰り返し間隔] オプションのいずれかを選択します。オプションは、[ 日次]、[ 週次]、[ 月次]、[ 定期的]、[ 1 つ]、[ オンデマンド]、[ ビジネスカレンダー:エントリ開始 (Business Calendar:Entry Start)]、および [ビジネスカレンダー:エントリ終了 (Business Calendar:Entry End)] です。
- [繰り返し間隔] フィールドに、現在からアクティブラーニングジョブの次の繰り返し間隔までの日数を入力します。
- [ 開始] フィールドで、[カレンダー] アイコンをクリックし、次のアクティブ学習ジョブ間隔の日時を選択します。
- [ 更新 ] ボタンをクリックして構成を保存するか、[ 今すぐ実行 ] ボタンをクリックしてアクティブ学習ジョブの実行を開始します。
- 次のアクティブラーニングジョブがいつ実行されるかを確認するには、[ すべて ] フィールドに移動して 「sys_trigger.list」と入力し、キーボードの Return キーを押します。[スケジュール] ページが表示されます。[Active Learning (アクティブラーニング)] をクリックします。スケジュールアイテム/アクティブラーニングレコードが表示され、[ 次のアクション ] フィールドに次回のアクティブラーニングジョブの実行日時が入力されます。