会話言語理解のモデルをトレーニングする

発話のラベル付けが完了したら、モデルのトレーニングを開始できます。 トレーニングは、モデルがラベル付きの発話から学習するプロセスです。

モデルをトレーニングするには、トレーニング ジョブを開始します。 正常に完了したジョブでのみモデルが作成されます。 トレーニング ジョブは、7 日後に期限切れになります。この期間を過ぎると、ジョブの詳細を取得できなくなります。 トレーニング ジョブが正常に完了し、モデルが作成されていれば、ジョブの期限切れによってモデルが影響を受けることはありません。 一度に実行できるトレーニング ジョブは 1 つのみで、同じプロジェクトで他のジョブを開始することはできません。

トレーニング時間は、単純なプロジェクトの処理のときは数秒で済みますが、発話数の上限に達したときは数時間かかります。

モデルの評価は、トレーニングが正常に完了した後に自動的にトリガーされます。 評価プロセスは、最初にトレーニング済みモデルを使用してテスト セット内の発話に対して予測を実行し、予測した結果と指定されているラベル (真実のベースラインを確立するもの) を比較します。

前提条件

トレーニング データのバランスを取る

トレーニング データに関しては、スキーマのバランスを保つようにします。 ある意図を大量に含め、別の意図をほとんど含めない場合、特定の意図に偏ったモデルになります。

このシナリオに対処するために、トレーニング セットをダウンサンプリングするか、 または追加することが必要になる場合があります。 ダウンサンプリングは、次のいずれかの方法で行うことができます。

  • 一定の割合のトレーニング データをランダムに取り除きます。
  • データセットを分析し、過剰な重複エントリを削除します。この方法の方がより体系的です。

トレーニング セットを追加するには、Language Studio の [データのラベル付け] タブで、[発話の提案] を選択します。 会話言語理解から Azure OpenAI に呼び出しが送信され、同様の発話が生成されます。

Language Studio の [発話の提案] を示すスクリーンショット。

また、トレーニング セットで意図しない "パターン" を探す必要もあります。 たとえば、特定の意図のトレーニング セットがすべて小文字であるかどうか、または特定の語句で始まるかどうかを確認します。 このような場合、トレーニングするモデルは、一般化することができず、トレーニング セットでこのような意図しない偏りを学習する可能性があります。

トレーニング セットには、大文字と小文字の区別と、句読点の多様性を導入することをお勧めします。 バリエーションの処理を想定しているモデルの場合は、必ずその多様性も反映するトレーニング セットを用意してください。 たとえば、大文字と小文字が正しい発話だけでなく、すべて小文字のものも含めます。

データの分割

トレーニング プロセスを開始する前に、プロジェクト内のラベル付き発話はトレーニング用セットとテスト用セットに分割されます。 これらはそれぞれ異なる機能を提供します。 トレーニング用セットは、モデルのトレーニングに使用されます。このセットから、モデルはラベル付き発話を学習します。 テスト用セットは、トレーニング時には導入されず、評価時にのみモデルに導入されるブラインド セットです。

モデルが正常にトレーニングされた後、そのモデルを使用して、テスト用セット内の発話から予測を行うことができます。 これらの予測は、評価メトリックの計算に使用されます。 トレーニング用とテスト用の両方のセットで、すべての意図とエンティティが適切に表現されているか確認することをお勧めします。

会話言語理解は、データ分割のための 2 つの方法をサポートしています。

  • トレーニング用データからテスト用セットを自動分割: システムにより、選択した割合に従って、タグ付けされたデータがトレーニング用セットとテスト用セットに分割されます。 推奨される分割の割合は、トレーニング用 80%、テスト用 20% です。

注意

[トレーニング用データからテスト用セットを自動分割] オプションを選択した場合、トレーニング用セットに割り当てられたデータのみが、指定された割合に従って分割されます。

  • トレーニング用データとテスト用データの手動分割を使用: この方法を使用すると、ユーザーは、どの発話をどのセットに所属させるか定義できます。 この手順は、ラベル付け中にテスト用セットに発話を追加した場合にのみ有効になります。

トレーニング モード

CLU では、モデルをトレーニングするための 2 つのモードをサポートしています

  • 標準トレーニングでは、高速機械学習アルゴリズムを使用して、モデルを比較的迅速にトレーニングします。 現在、これは英語でのみ使用でき、主言語として英語 (米国)、または英語 (英国) を使用しないプロジェクトでは無効になっています。 このトレーニング オプションは無料です。 標準トレーニングを使用すると、発話を追加し、それを無料ですばやくテストできます。 表示される評価スコアから、プロジェクトで変更を加えたり、発話を追加したりする場所がわかります。 数回反復し、段階的に改善を加えたら、高度なトレーニングを使用してモデルの別のバージョンをトレーニングすることを検討します。

  • 高度なトレーニングでは、最新の機械学習テクノロジを使用して、データを使用してモデルをカスタマイズします。 これにより、モデルのパフォーマンス スコアが向上することが期待され、CLU の多言語機能も使用できるようになります。 高度なトレーニングの価格は異なります。 詳細については、価格情報を参照してください。

評価スコアを使用して決定を導き出します。 標準トレーニング モードを使用した場合とは対照的に、高度なトレーニングで特定の例が正しく予測されない場合があります。 ただし、全体的な評価結果が "高度" を使用する方が優れている場合は、最終的なモデルを使用することをお勧めします。 そうではなく、多言語機能を使用する必要がない場合は、標準モードでトレーニングされたモデルを引き続きお使いいただけます。

注意

各アルゴリズムでスコアが異なる方法で調整されるため、トレーニング モード間で意図の信頼度スコアの動作が異なることが予想されます。

モデルのトレーニング

Language Studio 内からモデルのトレーニングを開始するには、次の手順を行います。

  1. 左側のメニューから [モデルのトレーニング] を選択します。

  2. 上部のメニューから [Start a training job] (トレーニング ジョブの開始) を選択します。

  3. [新しいモデルのトレーニング] を選択し、テキスト ボックスに新しいモデル名を入力します。 それ以外の場合、既存のモデルを新しいデータでトレーニングされたモデルに置き換えるには、[既存のモデルを上書きする](Overwrite an existing model) を選択し、既存のモデルを選択します。 トレーニング済みモデルを上書きすると、元に戻すことはできません。ただし、新しいモデルをデプロイするまで、デプロイされているモデルには影響しません。

  4. トレーニング モードを選択します。 [標準トレーニング] を選択すると、高速でトレーニングできますが、これを使用できるのは英語に限られます。 または、[高度なトレーニング] を選択できます。これは、他の言語や多言語プロジェクトでもサポートされていますが、トレーニング時間が長くなります。 トレーニング モードの詳細を参照してください。

  5. [データ分割] 方法を選択します。 [トレーニング用データからテスト用セットを自動分割] を選択できます。その場合、システムにより、指定した割合に従って、発話がトレーニング用セットとテスト用セットに分割されます。 または、[トレーニング用データとテスト用データの手動分割を使用] を選択することもできます。このオプションは、発話にラベルを付ける際に発話をテスト用セットに追加した場合にのみ有効になります。

  6. [トレーニング] ボタンを選択します。

    Language Studio のトレーニング ページを示すスクリーンショット。

  7. リストからトレーニング ジョブ ID を選択します。 ウィンドウが表示され、そのジョブのトレーニングの進行状況、ジョブの状態、その他の詳細を確認できます。

    注意

    • 正常に完了したトレーニング ジョブでのみ、モデルが生成されます。
    • トレーニングは、発話数に応じて、数分から数時間かかる場合があります。
    • 一度に実行できるトレーニング ジョブは 1 つだけです。 実行中のジョブが完了しない限り、同じプロジェクト内で他のトレーニング ジョブを開始することはできません。
    • モデルのトレーニングに使用される機械学習は定期的に更新されます。 以前の構成バージョンでトレーニングするには、[トレーニング ジョブの開始] ページから [変更するには、ここを選択してください] を選択し、以前のバージョンを選択します。

トレーニング ジョブのキャンセル

Language Studio 内でトレーニング ジョブをキャンセルするには

  1. [Train model] (モデルのトレーニング) ページで、キャンセルするトレーニング ジョブを選択し、上部のメニューから [キャンセル] を選択します。

次のステップ