NLU 専門家フィードバックループ

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月05日
  • 2 読むのに数分読む
  • チャットログの発言に関する 仮想エージェント フィードバックを提供して、システムが継続的に学習し、ユーザー入力をより適切に予測できるようにします。

    使用方法の概要

    専門家フィードバックループは、インスタンスからデータを取得し、フィードバックのために提供します。このデータは、ユーザーの仮想エージェント (VA) チャットログから取得され、それらのログからの発言が含まれます。nlu_adminロールを使用して、 すべて > NLU ワークベンチ > 専門家フィードバックループ また、インテントに対して発言が正しいか(一致)、正しくないか(不一致)を確認することで、モデル内の各発言をマークします。このフィードバックは、モデルのパフォーマンスを継続的に向上させるのに役立ちます。

    インストール

    専門家フィードバックループは、で利用可能な ServiceNow® StoreNLU Workbench - Advanced Features アプリの一部です。

    専門家フィードバックループを使用するには、インスタンスで - Advanced Features (sn_nlu_workbench) プラグインがアクティブになっていることを確認してください NLU ワークベンチ 。詳細については、「NLU Workbench のアクティブ化」を参照してくださいNLU Workbench - Advanced Features のインストール

    専門家フィードバックループは VA チャットログのデータに依存するため、Glide 仮想エージェント (com.glide.cs.chatbot) プラグインもアクティブであることを確認してください。「 仮想エージェントのアクティブ化」を参照してください。

    インスタンス間の専門家フィードバックループデータのインポート

    インポートを開始する前に、インスタンス内のデータにアクセスできることと、フィードバックを続行するのに十分なデータがあることを確認してください。

    準本番インスタンスで作業している場合は、本番インスタンスの open_nlu_predict_intent_feedback テーブルから準本番インスタンスにフィードバックデータをインポートする必要があります。インポート方法のガイダンスについては、「 別の ServiceNow インスタンスからのインポート」を参照してください。

    フィードバックループの発話を格納するモデルのシステム動作 NLU に関するデータシナリオを次に示します。
    • モデルを別のインスタンスに移動しても、フィードバックデータは保持されます。
    • インスタンスをアップグレードしても、フィードバックデータは保持されます。
    • インスタンスをクローンした場合、データは保持されないため、上記の手順に従ってクローンされたインスタンスにデータをインポートする必要があります。

    フィードバックのコンテキストとアクセス

    専門家フィードバックループは、選択した発言のサブセットに対して提供するフィードバックを通じて、VA に展開されたモデルを改善する NLU ためのメカニズムを提供します。発言ごとに、予測されるインテントを確認するか、または発言が属する正しいインテントを指定するように求められます。このフィードバックが完了すると、データを使用してモデルのパフォーマンスが調整され、モデルが改善され、再デプロイしてより多くのエンド ユーザー データを収集できるようになります。これは、システムが継続的にデータを収集し、提供されたフィードバックから学習し、そのフィードバックを使用してモデルをさらに改善 NLU できるようにする反復サイクルです。

    30 日に 1 回、システムは最大 300 の発言サンプルを VA チャットログから専門家フィードバックループにプルします。発言は、ログ内のすべての発言をどの程度適切に表しているかに基づいて、フィードバック用に選択されます。VA チャットログからサンプリングされたすべての発言には、システムによって選択された予測インテントがあります。

    システムプロパティの設定 glide.mlpredictor.option.nlu.activeLearning.label_candidate_table.max_response_size を調整することで、VA チャットログからプルする発言の数を設定することもできます。

    発言を確認しながら、各発言が予測されたインテントに属するか、別のインテントに移動する必要があるかを判断します。正しい意図がわからない場合は、さらに確認するために発言を再確認するようにマークできます。フィードバックで少なくとも 100 件の発言をマークすると、マークされたすべての発言を使用してモデルが調整および改善されます。

    VA チャットログの発言の確認

    ループに入ったので、次の画像に、VA モデルのインテントをサポートする発言のリスト NLU が表示されます。リストの各ページには、ページあたり約 20 件の発言が表示されます。目標は、各発言を確認し、その関係ステータスを特定の VA インテントにマークすることです。各発言には、 NLU_Match不一致、または 不明 のいずれかの値でマークします。

    発言を NLU_Match としてマークすることは、その発言の NLU 予測に同意することを意味します。発言を 「不一致 」としてマークすると、その発言が別のインテントに属していることを意味し、「 不一致」を選択すると、インテントのドロップダウンが表示され、正しいインテントを選択できます。どのインテントが正しいかわからない場合は、「 不明」としてマークできます。

    NLU_Match値または不一致値でマークされて保存された発言は、[完了したレビュー] セクションに移動されます。「 不明」 の値がマークされて保存された発言は、[ さらにレビューが必要 ] セクションに移動されます。

    以下は、発言レビューを完了するために使用する基本的な手順のシナリオです。
    1. [フィードバック ループのエクスポート] 画面の上部で、プロンプト に対する専門家フィードバック ループ でレビューするモデルを選択します。この機能内では、これらのモデルは主にレビューでマークしている発話を格納するのに役立つため、いくつかの点でどのモデルを選択するかは問題ではありません。したがって、このシナリオ例では、5 つのインテントと、それらの各インテント内に多数の発言がある IT モデル モデルを選択することにします。次の画像に示すように、確認する必要がある発言の数が予測インテントの名前の横に表示されます。これらのモデルのインテントは、画面の [予測されるインテント ] 列に一覧表示されます。どの予測インテントでも発言をレビューしてマークできますが、インテントが最初に表示される順序で連続してレビューを完了することをお勧めします。たとえば、 ad_password_change インテントから始めて、他の予測されるインテントに進みます。
    2. ad_password_changeインテントをクリックすると、レビュー用の [To Do] セクションに発言がロードされます。
    3. インテント内の 15 件の発言を確認します。このシナリオでは、まず [AD パスワードを変更します ] 発話を ad_password_change インテントに一致するものとして正しくマークしました。
    4. [ フィードバックを保存] をクリックします。
      結果:マークした発言が画面の [完了 ] セクションに移動します。同時に、「 To do」 発言の数が 15 から 14 に減少し、「 完了 」セクションのカウントが 0 から 1 に増加します。別の発言にも [不明] の値をマークし、その変更を保存した場合、[ さらにレビューが必要 ] セクションの発言数も 0 から 1 に増加します。
      注:
      発話に最も一致するインテントがわからない場合は、「 不明」 値でマークします。このアクションにより、発言が [さらにレビューが必要 ] セクションに移動され、[ To Do ] セクションで、インテントに一致または不一致になりやすい他の発言をマークする時間が確保されます。いつでも [ さらにレビューが必要] セクションに戻って、特定のインテントを特定するのがより困難な発言をマークできます。
    5. ステップ 1 〜 4 を繰り返しながら、[ 予測されるインテント ] 列の残りのインテントを移動します。
    図 : 1. VA インテントに一致または不一致として発言をマークする
    レビュー中にその発言をマークできるように、予測されたインテントを選択します

    ad_password_changeインテントの発話は、インテント内に少なくとも 1 つの発話に password という単語が含まれているため、予測されたインテントと一致するものとして簡単にマークできます。

    予測されたインテントの発言の確認を終了し、[ フィードバックの保存] をクリックすると、画面が更新され、モデル内の次の予測インテントが強調表示されます。

    発言を値別にグループ化して表示する場合は、[ 表示] フィルターをクリックし、プロンプトでオプションの 1 つを選択します。値は、[ すべて]、[ NLU_Match]、および [不明] です。

    カードビューオプションを使用して発言をレビューする

    専門家フィードバックループの発話は、上記の多くの画像に示されているように、デフォルトでリストビューの [To Do ] セクションに表示されます。ただし、カード内にフレーム化された各発言を表示する別のビューを選択することもできます。このオプションを選択すると、各発言が 5 つのグループでページに表示されます。リストビュー内で、 カード アイコンをクリックします。

    カードビューを有効にする方法

    結果:カードビューがリストビューに置き換わります。発言カードのページの両側にある左右の矢印に注意してください。右矢印をクリックすると、次の 5 枚のカードのセットにページがめくれます。左矢印をクリックすると、ページが前の 5 枚のカードのセットに戻ります。カードビューではなくリストビューに切り替える場合は、下の画像の右上隅に示すように リスト アイコンをクリックします。

    リストビューに戻す方法

    発言値の変更

    発言をマークした後で、選択した値に気が変わった場合は、[ 不一致 ]をクリックして別のインテントを選択することで問題を解決できます。[ フィードバックの保存 ] をクリックして変更を保存します。

    未保存のフィードバック

    発言をマークするセッションを終了してログアウトしたが、変更を保存するのを忘れた場合は、「表示」プロンプトから「未保存の変更」を選択します。このアクションでは、フィードバックを提供したが、まだ保存していないすべての発言が表示されます。

    オンデマンドで追加の VA フィードバックデータを調達する

    専門家フィードバックループで使用するデータを VA チャットログからさらに取得するには、次の手順を実行します。
    1. nlu_adminロールを使用して、 すべて > システム定義 > スケジュール済みジョブ > アクティブラーニング.
    2. [ Active Learning] をクリックします。

      アクティブラーニングジョブを開く

    3. [今すぐ実行する] をクリックします。

      [今すぐ実行] ボタンをクリックして、アクティブラーニングジョブを開始します

    4. 次の 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 インテントに含まれていないインスタンス内の発言を収集してリストに表示します。これらの発言にアクセスするには、画面上部のプロンプトに対する専門家フィードバックループ[未分類] を選択します。

    画面が更新されると、これらの発言が画面の [未分類の発言] セクションの [発言] 列に表示されます。
    重要:
    システムはこれらの発言に関連するインテントがないことを示唆しているため、この一連の発言についてフィードバックを提供することは非常に重要です。この関連付けの欠如を確認するか、これらの発話を既存のインテントに関連付けることで、モデルが正しく学習するのに役立ちます。
    未分類の発言をインテントに接続する手順は次のとおりです。
    1. [ 発言 ] 列で、リストから発言を選択します。
    2. [ 修正されたインテント ] 列で、プロンプトから発言に最も適していると思われるインテントとそのモデルを検索して選択します。
    たとえば、この接続の適切な組み合わせは、次の画像に示すように、[発言] 列の [ESPP? を取引できますか?] 発言と、[修正されたインテント] 列の [401kBenefitsInquiry] インテントです。
    注:
    [ 修正されたインテント ] 列を使用すると、インスタンス内のすべてのモデルですべてのインテントを検索して使用できます。
    図 : 2. 未分類の発言とインテントおよびそのモデルのペアリング
    未分類の発言の数は、専門家フィードバックループへの日次フィードにプルされる仮想エージェントチャットログによって異なります

    上の画像に関して、未分類の発話ページがどのように機能するかを説明するのに役立ついくつかの項目について、次のように説明しましょう。[To Do] セクションでは、インテントに接続する必要がある発言を収集します。この日は、そのような発話が120件あることがわかります。画面の [完了 ] セクションには、まだアクションを実行していないため、発言がないことに注意してください。

    また、画面の右端には垂直バーがあり、上下にスクロールして発話のリストをナビゲートできます。このスクロール画面の下部には、左右を指す矢印があり、その日の完全な発言リストの次または前のページに戻ることができます。

    また、接続を行うアクションを実行すると、通常はデフォルトでアクティブになっている [ フィードバックの保存 ] ボタンが非アクティブになります。これは、システムがアクションを認識して変更を自動的に保存するためです。

    [モデルの調整] フェーズでの専門家フィードバック ループのデータ

    専門家フィードバックループの [ モデルの調整 ] ボタンは常に有効になっており、専門家フィードバックループの [ 完了 ] タブからモデルとそのテストセットに発言を移動するエクスペリエンスがサポートされています。モデルを調整または再調整する必要があるときはいつでも、nlu_adminロールを使用してこのボタンをクリックします。

    モデルを調整すると、公開前に最適化されます

    専門家フィードバックループで発言を確認した後、フィードバックデータの一部をモデルのデフォルトのテストセットにプッシュできます。これらの発話は、モデルの [ テスト発話] タブに直接追加されます。これにより、実際のエンドユーザーの発話でテストセットを継続的に維持および更新できます。テスト発言のソースが追跡され、専門家フィードバックループからのものか別のソースからのものかが可視化されます。

    少なくとも 100 個の発言をマークして保存する前に [ モデルの調整 ] ボタンをクリックすると、画面が更新され、下の画像のテキストで参照されているように、100 個の発言フィードバック目標をクリアすると、モデルのパフォーマンスの品質が向上することが通知されます。

    [モデルを調整] ボタンをクリックすると、いつでもモデルを改善できますが、最初に少なくとも 100 個のマークされた発言の目標を設定すると、チューニング結果が最適になります

    フィードバックデータのマークと保存を続けると、レビュー済みの発言 (緑色) とまだレビュー可能な発言 (白色) の比率が、下の進捗状況バー画像で確認できます。

    進捗状況バーには、レビュー済みの発言の数と、レビュー可能な発言が表示されます。

    下の [モデルを調整 ] の画像では、モデル トレーニング セットとモデル テスト セットの既定の 60 対 40 の割合の分割を確認できます。必要に応じて、2 つのボックス (%) のそれぞれで独自の数値を選択することで、これらのデフォルト値を調整できます。割合の分割に問題がなければ、[ 調整 ] ボタンをクリックして、選択した割合値に基づいてモデルを調整します。
    注:
    [ フィードバックを表示 ] キャレットをクリックすると、[専門家フィードバックループ] 画面が表示され、フィードバック発言の確認、マーク付け、保存を続行できます。

    [調整] ボタンをクリックする前に、パーセンテージ分割値を設定します

    アクティブラーニングジョブの使用

    スケジュールされたジョブは、バッチ ジョブまたはバッチ スケジューリングとも呼ばれ、特定の時間または定期的なスケジュールで実行される自動化された作業です。多くのジョブはスケジュールに従って実行されますが、ここでは例としてアクティブラーニングジョブに焦点を当てています。

    ここでは、アクティブラーニングジョブを使用する際にできることを3つ紹介します。
    • アクティブ学習ジョブの実行に設定されている繰り返し頻度の間隔を変更します。
    • アクティブ学習ジョブに対して次回の実行スケジュールが設定されている時期を確認します。
    • 必要なときにいつでも (オンデマンドで) アクティブラーニングジョブを実行します。
    ここでは、いくつかの手順をご紹介します。
    1. nlu_adminロールを使用して、[ すべて ] フィールドに移動し、「 sysauto_script.list」と入力して、キーボードの Return キーを押します。画面が更新されて、[スケジュール] ページが表示され、すべてのジョブスケジュールが一覧表示されます。

    2. 「スケジュール」ページで、「 アクティブ・ラーニング」をクリックします。下の画像に示すように、アクティブ学習ジョブのレコードが表示されます。
      カレンダーを開く
    3. アクティブラーニングレコードで、以下のフィールドを設定します。
      • [ 実行 ] フィールドで、ジョブの 8 つの [繰り返し間隔] オプションのいずれかを選択します。オプションは、[ 日次]、[ 週次]、[ 月次]、[ 定期的]、[ 1 つ]、[ オンデマンド]、[ ビジネスカレンダー:エントリ開始]、および [ ビジネスカレンダー:エントリ終了] です。
      • [ 繰り返し間隔 ] フィールドに、現在からアクティブラーニングジョブの次の繰り返し間隔までの日数を入力します。
      • [開始] フィールドで [カレンダー] アイコンをクリックし、次のアクティブラーニングジョブ間隔の日時を選択します。
      • [ Update ] ボタンをクリックして設定を保存するか、[ Execute Now ] ボタンをクリックしてアクティブラーニングジョブの実行を開始します。
      • 次回のアクティブラーニングジョブがいつ実行されるかを確認するには、[ All ] フィールドに移動して 「sys_trigger.list」と入力し、キーボードの Return キーを押します。[スケジュール] ページが表示されます。[ Active Learning] をクリックします。スケジュールアイテム/アクティブラーニングレコードが表示され、[ 次のアクション ] フィールドに次回のアクティブラーニングジョブ実行の日時が入力されます。
        未完了の学習レコード