Von Bedeutung
英語以外の翻訳は便宜上のみ提供されています。 バインドのバージョンについては、このドキュメントの EN-US
バージョンを参照してください。
カスタム テキスト分類モデルのパフォーマンスは、シナリオと入力データによって異なります。 次のセクションは、カスタム テキスト分類モデルのパフォーマンスと評価に関する主要な概念を理解するのに役立ちます。
パフォーマンス評価メトリック
モデル評価のレビューは、カスタム テキスト分類モデルの開発ライフサイクルにおける重要なステップです。 これは、モデルのパフォーマンスを判断し、運用環境でモデルが使用されるときに予想されるパフォーマンスを測定するのに役立ちます。
モデルを構築するプロセスでは、トレーニング セットとテスト セットはタグ付け中に定義されるか、トレーニング中にランダムに選択されます。 いずれの場合も、カスタム テキスト分類モデルのトレーニングと評価には、トレーニング セットとテスト セットが不可欠です。 トレーニング セットは、カスタム機械学習モデルのトレーニングに使用されます。 テスト セットは、モデルのパフォーマンスを評価するためのブラインド セットとして使用されます。
モデル評価プロセスは、トレーニングが正常に完了した後にトリガーされます。 評価プロセスは、トレーニング済みのモデルを使用して、テスト セット内のファイルのユーザー定義クラスを予測し、予測を指定されたデータ タグ (グラウンド トゥルース) と比較することによって行われます。 結果が返され、モデルのパフォーマンスが確認されます。
モデルの評価を計算する最初の手順は、予測ラベルを、真陽性、偽陽性、または偽陰性のいずれかのカテゴリに分類することです。 次の表では、これらの用語についてさらに説明します。
任期 | 正しい/正しくない | 定義 | 例 |
---|---|---|---|
真陽性 | 正解です | モデルはクラスを予測し、テキストがタグ付けされているのと同じです。 | comedy ムービー スクリプトの場合、クラス comedy が予測されます。 |
偽陽性 | 不正解です | モデルは、特定のテキストに対して間違ったクラスを予測します。 | comedy ムービー スクリプトの場合、クラス drama が予測されます。 |
偽陰性 | 不正解です | 人間の判事が正しい結果を返す場合、システムは結果を返しません。 | drama ムービー スクリプトの場合、クラス comedy が予測されます。 多クラス化でのみ、 romance および comedy ムービー スクリプトの場合、クラス comedy は予測されますが、クラス romance は予測されません。 |
単一ラベル分類モデルでは常にファイルごとに 1 つのクラスが予測されるため、単一ラベル分類の場合、偽の否定を設定することはできません。 複数ラベル分類の場合、タグ付けされたクラスでは偽陰性と偽陽性、予測クラスの偽陽性の両方としてカウントされます。
その後、上記のカテゴリを使用して、 精度、 再現率 、 F1 スコアを計算します。 これらのメトリックは、サービスのモデル評価の一部として提供されます。 メトリック定義とその計算方法を次に示します。
精度: 実際の正のクラスを予測するモデルの能力の測定値。 予測された真陽性と実際にタグ付けされた陽性の比率です。 再現率は、予測クラスがいくつ正しいかを返します。
再現率: 実際の正のクラスを予測するモデルの能力の尺度。 予測された真陽性と実際にタグ付けされた陽性の比率です。 再現率は、予測クラスがいくつ正しいかを返します。
F1 スコア: 精度と再現率の関数。 精度と再現率のバランスを求める場合は、F1 スコアが必要です。
注
単一分類の場合、偽陽性と偽陰性の数は常に等しいので、精度、再現率、F1 スコアは常に互いに等しくなります。
モデルの評価スコアが必ずしも包括的であるとは限りません。特に、特定のクラスが不足しているか、トレーニング データに過小評価されている場合です。 これは、トレーニング フェーズでタグ付けされたファイルの数が不足している場合に発生する可能性があります。 この状況は、テスト分割の数量と品質に影響し、評価の品質に影響を与える可能性があります。
カスタム テキスト分類モデルでは、偽陰性と偽陽性の両方のエラーが発生することが予想されます。 各種類のエラーがシステム全体に与える影響を考慮し、真のイベントが認識されず、正しくないイベントが認識されるシナリオを慎重に検討する必要があります。 シナリオによっては、精度または再現率が、モデルのパフォーマンスを評価するためのより適切なメトリックになる可能性があります。 たとえば、シナリオがチケットトリアージに関する場合、間違ったクラスを予測すると、それが間違ったチームに転送され、時間と労力がかかります。 この場合、システムは誤検知に対してより敏感であるべきで、精度はその評価においてより重要な指標となります。
電子メールを重要またはスパムとして分類するシナリオの場合、特定の電子メールが重要であると予測しないと、メールが見落とされます。 しかし、スパムメールが誤って重要とマークされた場合は、単にそれを無視します。 この場合、システムは偽陰性に対してより機密性が高く、リコールはより関連性の高い評価メトリックになります。
汎用シナリオに合わせて最適化する場合、または精度と再現率が同様に重要な場合は、F1 スコアが最も関連性の高いメトリックになります。 評価スコアは、シナリオと受け入れ基準に依存します。 すべてのシナリオで機能する絶対メトリックはありません。
システムのパフォーマンスを向上するためのシステムの制限事項とベスト プラクティス
サービスの制限事項を理解する: データまたはエンティティの長さに含まれるファイルとクラスの数など、ユーザーに適用される制限がいくつかあります。 システムの制限事項について詳しくは、こちらをご覧ください。
スキーマを計画する: データを分類するカテゴリを特定します。 あいまいさを回避し、クラスの複雑さを考慮するために、スキーマを計画する必要があります。 推奨されるプラクティスの詳細を確認します。
トレーニング データを選択します。 トレーニング データの品質は、モデル品質の重要な要素です。 運用環境で予想されるデータと同様の多様で実際のデータを使用すると、モデルがより堅牢になり、実際のシナリオをより適切に処理できるようになります。 運用環境で使用されるすべてのレイアウトとテキスト形式を必ず含めます。 トレーニング中にモデルが特定のシナリオまたはクラスに公開されていない場合、運用環境では認識できません。 推奨されるプラクティスの詳細を確認します。
データに正確にタグを付け: タグ付けされたデータの品質はモデルのパフォーマンスの重要な要因であり、モデルが学習する基礎となる真実と見なされます。 正確かつ一貫したタグ付け。 特定のファイルにタグを付ける場合は、最も関連性の高いクラスに割り当てるようにしてください。 データ内の同様のファイルが常に同じクラスでタグ付けされていることを確認します。 すべてのクラスが適切に表現されていること、およびすべてのエンティティ間でバランスの取れたデータ分散があることを確認します。 データ分散を調べて 、すべてのクラスが適切に表現されていることを確認します。 特定のクラスのタグが他のクラスよりも低い頻度でタグ付けされている場合、このクラスは低表示になり、運用環境でモデルによって正しく認識されない可能性があります。 この場合は、不足しているクラスからトレーニング データにさらにファイルを追加し、新しいモデルをトレーニングすることを検討してください。
評価をレビューし、モデルを改善する: モデルが正常にトレーニングされたら、モデルの評価と混同行列を確認します。 このレビューは、モデルの問題が発生した場所を理解し、パフォーマンスが良くないクラスについて学習するのに役立ちます。 また、 テスト セットを確認 し、予測されたクラスとタグ付けされたクラスを並べて表示することもベスト プラクティスと見なされます。 モデルのパフォーマンスを把握しやすくし、スキーマまたはタグの変更が必要かどうかを判断するのに役立ちます。 混 同行列 を確認して、誤って予測されることが多いクラスを特定し、モデルのパフォーマンスを向上させるために何かを実行できるかどうかを確認することもできます。
パフォーマンスを把握して向上させるための一般的なガイドライン
次のガイドラインは、カスタム テキスト分類のパフォーマンスを理解し、改善するのに役立ちます。
信頼度スコアを理解する
データにタグを付け、モデルをトレーニングしたら、運用環境で使用されるようにデプロイする必要があります。 モデルをデプロイするということは、送信されたテキストのクラスを予測するために ランタイム API を介して使用できるようにするということです。 API は、予測されたクラスまたはクラスと信頼度スコアを含む JSON オブジェクトを返します。 信頼度スコアは、ゼロ (0) から 1 (1) までの 10 進数です。 これは、システムが予測にどの程度自信を持っているかを示すインジケーターとして機能します。 値が大きいほど、その結果の精度が高いことを示します。 返されるスコアは、カスタム モデルの作成時にタグ付けしたデータの影響を直接受けます。 ユーザーの入力がトレーニングで使用されるデータに似ている場合は、より高いスコアとより正確な予測が期待できます。 特定のクラスが信頼度スコアが低い状態で一貫して予測される場合は、タグ付けされたデータを調べて、このクラスのインスタンスを追加してから、モデルを再トレーニングすることができます。
信頼度スコアのしきい値を設定する
信頼度スコアのしきい値は、シナリオに基づいて調整できます。 システムが返す信頼度スコアに基づいて、シナリオの決定を自動化できます。 また、特定のしきい値を設定して、信頼度スコアがこのしきい値より高いまたは低い予測クラスが異なる方法で処理されるようにすることもできます。 たとえば、予測がしきい値を下回る信頼度スコアで返された場合、ファイルに追加のレビューのフラグを設定できます。
異なるシナリオでは、さまざまなアプローチが必要です。 予測されたクラスに基づくアクションに影響が大きい場合は、分類の精度を確保するために、より高いしきい値を設定することができます。 この場合、誤検知は少なくなりますが、偽陰性が多いほど精度が高くなります。 予測されたクラスに基づく影響の大きい決定がシナリオで行われなくなる場合は、送信されたテキストに適用される可能性があるすべての可能なクラスを予測する必要があるため、より低いしきい値を受け入れる場合があります (複数ラベル分類の場合)。 この場合、偽陽性が増える反面、偽陰性は少なくなります。 結果として、再現率が高くなります。
システムが運用環境で処理する実際のデータを使用して、設定されたしきい値を使用してシステムを評価し、精度と再現率への影響を判断することが非常に重要です。
さまざまなトレーニング セッションと評価の変更
タグ付けされたデータを変更せずに同じモデルを再トレーニングすると、同じモデル出力が生成され、その結果、同じ評価スコアが得られます。 タグを追加または削除すると、それに応じてモデルのパフォーマンスが変化します。 タグ付け中に新しいファイルが追加されなかった場合は、トレーニング セットとテスト セットに同じファイルがあるため、評価スコアを以前のバージョンのモデルと比較できます。
ランダム セット分割を使用して新しいファイルを追加したり、別のモデルをトレーニングしたりすると、トレーニング セットとテスト セット内のファイルが異なります。 評価スコアの変更は発生する可能性がありますが、テスト セットの異なる分割でパフォーマンスが計算されるため、他のモデルと直接比較することはできません。
不適切な予測を確認してパフォーマンスを向上させる
モデルのトレーニングが完了したら、 モデルの評価の詳細を確認 して、改善点を特定できます。 モデル レベルのメトリックは、モデルの全体的なパフォーマンスに関する情報を提供します。 クラス レベルのパフォーマンス メトリックを観察することで、特定のクラス内に問題があるかどうかを特定できます。
特定のクラスのパフォーマンスが低い場合は、モデルの予測に問題があることを意味します。 この問題は、あいまいなスキーマが原因である可能性があります。つまり、クラスを他のクラスと区別することはできません。 また、データの不均衡が原因で発生する可能性もあります。これは、このクラスが過小評価されていることを意味します。 このインスタンスでは、このクラスをより適切に予測するために、モデルのタグ付けされた例をさらに追加する必要があります。
混 同行列 を確認して、誤って予測されることが多いクラスを特定し、モデルのパフォーマンスを向上させるために何かを実行できるかどうかを確認することもできます。 特定のクラスが別のクラスとして予測されることが多い場合は、これら 2 つのクラスが互いに似ているという強い指標になります。 スキーマの再考が必要になる場合があります。 または、モデルがこれらのクラスを区別できるように、データセットにタグ付けされた例をさらに追加することもできます。
モデルの評価の詳細を表示したら、 モデルを改善できます。 このプロセスを使用すると、予測されたクラスとタグ付けされたクラスを並べて表示し、モデルの評価中に何が問題が発生したかを判断できます。 一部のクラスが同じ意味で繰り返されている場合は、それらを複数のクラスを表す上位の順序に追加して予測を向上することを検討してください。
パフォーマンスは機能と言語によって異なります
カスタム テキスト分類では、複数の言語でデータを使用できます。 異なる言語のデータセットに複数のファイルを含めることができます。 また、モデルを 1 つの言語でトレーニングし、それを使用して他の言語のテキストにクエリを実行することもできます。 多言語オプションを使用する場合は、 プロジェクトの作成時にこのオプションを有効にする必要があります。
特定の言語でスコアが低い場合は、この言語のデータをデータセットに追加することを検討してください。 サポートされている言語の詳細については、[こちらの Web サイト/azure/ai-services/language-service/custom-text-classification/language-support] を参照してください。