カスタム固有表現認識についてよくあるご質問
Azure AI Language でのカスタム NER に関する概念とシナリオについてのよくあるご質問に対する回答を示します。
サービスの使用を開始するにはどうすればよいですか?
初めてのプロジェクトを手軽に作るには、クイックスタートに関する記事をご覧ください。詳しくは、プロジェクトの作成方法に関する記事をご覧ください。
サービスの制限とは何ですか。
詳細については、サービスの制限に関する記事をご覧ください。
タグ付けされたファイルはどれくらい必要ですか?
一般に、タグ付けが正確に、一貫して、完全に行われていれば、タグ付けされたデータが多様で代表的であるほど、良い結果が得られます。 タグ付けされたインスタンスの数に、すべてのモデルのパフォーマンスを向上させる決まった数はありません。 パフォーマンスは、スキーマと、スキーマのあいまいさに大きく依存します。 あいまいなエンティティの種類には、より多くのタグが必要です。 パフォーマンスは、タグ付けの質にも依存します。 エンティティあたりのタグ付けされたインスタンスの推奨数は 50 です。
トレーニングに長い時間がかかりますが、これは予想されることですか?
トレーニング プロセスには長時間かかることがあります。 大まかな見積もりとして、合計の長さが 12,800,000 文字のファイルの予想されるトレーニング時間は 6 時間です。
カスタム モデルをプログラムから作成するにはどうすればよいでしょうか?
Note
現在、モデルの構築に使用できるのは、REST API と Language Studio のみです。
REST API を使用して、カスタム モデルを構築できます。 オーサリング API を呼び出す方法の例については、このクイックスタートに従って、プロジェクトの作成と API を使用したモデルの作成を開始します。
モデルを使用して予測を開始する準備ができたら、REST API またはクライアント ライブラリを使用できます。
推奨される CI/CD プロセスを教えてください
同じプロジェクト内の同じデータセットで複数のモデルをトレーニングできます。 モデルのトレーニングが成功したら、そのパフォーマンスを表示できます。 Language Studio 内でモデルをデプロイしてテストできます。 データのラベルを追加または削除し、新しいモデルをトレーニングしてテストすることもできます。 同じプロジェクトを使用したトレーニング済みモデルの最大数については、サービスの制限を参照してください。 モデルをトレーニングするときに、データセットをトレーニングとテストのセットに分割する方法を決定できます。 データセットをトレーニングとテストのセットにランダムに分割することもできます。その場合、反映されたモデル評価が同じテスト セットに存在する保証はないため、結果は比較できません。 改善を測定できるよう、独自のテスト セットを開発し、それを使用して両方のモデルを評価することをお勧めします。
モデル スコアの高さまたは低さは、実稼働環境でのパフォーマンスの高さや低さを保証しますか?
モデルの評価が常に包括的であるとは限りません。 次の要素に左右されます。
- テスト セットが小さすぎる場合、良いスコアと悪いスコアはモデルの実際のパフォーマンスを示す値にはなりません。 また、特定のエンティティ型がテスト セットに存在しない場合や出現率が低い場合、その点がモデルのパフォーマンスに影響します。
- データの多様性は、データが実稼働環境で予想されるテキストのシナリオや例の一部のみを対象とし、モデルが可能性があるすべてのシナリオの影響を受けなかった場合、トレーニング対象でなかったシナリオではパフォーマンスが低い可能性があります。
- データ表現は、モデルのトレーニングに使用されるデータセットが、実稼働環境でモデルに導入されるデータを表すものでない場合、モデルのパフォーマンスは大きく影響を受ける可能性があります。
詳細については、データの選択とスキーマ設計に関する記事を参照してください。
モデルのパフォーマンスを向上させるにはどうすればよいですか?
モデルの混同行列をご覧ください。 特定のエンティティ型が正しく予測されないことが多い場合は、このクラスのタグ付けされたインスタンスを追加することを検討してください。 2 つのエンティティ型が相互に他方として頻繁に予測される場合、これはスキーマがあいまいであることを意味し、パフォーマンスを向上させるために、両方を 1 つのエンティティ型に統合することを検討する必要があります。
テスト セットの予測を確認します。 いずれか 1 つのエンティティ型に他のエンティティ型よりもはるかに多くのタグ付けされたインスタンスがある場合、モデルはこの型に偏っている可能性があります。 他のエンティティ型にデータを追加するか、偏りのある型から例を削除します。
データの選択とスキーマの設計の詳細をご覧ください。
テスト セットを調べて、予測されたエンティティとタグ付けされたエンティティを並べて表示すると、モデルのパフォーマンスをよりよく理解し、スキーマまたはタグの変更が必要かどうかを判断できます。
モデルを再トレーニングしたときに異なる結果が得られるのはなぜですか?
モデルをトレーニングするときに、データをトレーニングとテストのセットにランダムに分割するかどうかを決定できます。 そうした場合、反映されたモデル評価が同じテスト セットに存在する保証はないため、結果を比較できません。
同じモデルを再トレーニングする場合、テスト セットは変わりませんが、モデルによって行われる予測にわずかな変化が見られることがあります。 これはトレーニング済みモデルのロバストネスが十分ではないためであり、データの表現と多様性、そしてタグ付けされたデータの質の要因となります。
異なる言語で予測を取得するにはどうすればよいですか?
まず、プロジェクトの作成時に多言語オプションを有効にする必要があります。または、後でプロジェクト設定ページから有効にすることもできます。 モデルをトレーニングしてデプロイした後は、複数の言語でモデルのクエリを開始できます。 言語によって結果が異なる場合があります。 任意の言語の精度を向上させるには、その言語でプロジェクトにタグ付きインスタンスを追加して、その言語のさらに多くの構文にトレーニング済みモデルを導入します。
モデルをトレーニングしましたが、テストできません
テストする前に、モデルをデプロイする必要があります。
トレーニング済みのモデルを予測に使用するにはどうすればよいですか?
モデルをデプロイした後、REST API またはクライアント ライブラリを使用して予測 API を呼び出します。
データのプライバシーとセキュリティ
カスタム NER は、一般データ保護規則 (GDPR) を目的とするデータ プロセッサです。 GDPR ポリシーに準拠したカスタム NER ユーザーは、Language Studio を使用するか、REST API を使用してプログラムによって、すべてのユーザー コンテンツを表示、エクスポート、または削除するように全面的に制御できます。
データは、Azure ストレージ アカウントにのみ格納されます。 トレーニング中は、そこから読み取るためのアクセス権だけがカスタム NER に与えられます。
プロジェクトをクローンする方法を教えてください
プロジェクトを複製するには、エクスポート API を使用してプロジェクト アセットをエクスポートし、新しいプロジェクトにインポートする必要があります。 両方の操作については、REST API リファレンスを参照してください。