カスタム・モデルのワークフロー
通常、カスタム・モデルの作成には5つのステップが必要です。
ステップ3でモデルを評価した後、十分なメトリックがあるまでステップ1から3を繰り返し、モデルをデプロイします。
トレーニング・データセットの準備
カスタム・モデルをトレーニングするには、ラベル付きデータを指定します(データ・ラベリングについてを参照)。
たとえば、テキスト分類モデルを作成するには、モデルに多数のテキスト・レコードの例をあげて、それらが属するクラスでラベルを付けます。モデルは、ラベル付きレコードの特性を学習します。その後、トレーニング済モデルはクラスを推測して新しいレコードを取得できます。
トレーニング・データにはラベルをつける必要があります。たとえば、テキスト分類モデルを作成するには、各レコードのラベルを持つテキスト・レコードのモデル代表例を指定します。これらの例を使用すると、モデルではモデルで認識されない例について学習および予測できます。データをラベル付けするには、OCI CLIを使用してデータ・ラベリング・サービスを使用することをお薦めします。
- カスタム・モデルのデータセット推奨
-
トレーニングデータセットを準備するには、次の表のガイドラインに従います。検証とテストのためのデータセットが不足している場合は、アイテムの60%がトレーニングに使用され、20%が検証に使用され、20%がテストに使用されます。
検証またはテスト・データセットを指定しない場合、サービスによってランダムに20%のサンプルが選択されます。
トレーニング・セット 検証セット テスト・セット カスタム名前付きエンティティの認識
-
エンティティごとに最小- 10インスタンス。
-
推奨- エンティティ当たり50インスタンス。
-
最小- エンティティごとに5インスタンス、またはトレーニング・インスタンスの20%(どちらか大きい方)
-
推奨- エンティティごとに20インスタンス。
-
最小- エンティティごとに5インスタンス、またはトレーニング・インスタンスの20%(どちらか大きい方)
-
推奨- エンティティごとに20インスタンス。
カスタム・テキスト分類
-
クラス当たり最小- 10ドキュメント。
-
推奨- クラスごとに100のドキュメント。
-
推奨- クラスごとに20のドキュメント。
-
推奨- クラスごとに20のドキュメント。
-
-
トレーニング例に正しくラベルを付けます。モデルの質は、データの質によって異なります。モデルをトレーニングするときに、クラスまたはエンティティのタイプが期待どおりに動作しない場合は、そのクラスまたはエンティティの例を追加します。また、エンティティにトレーニング・セットのすべての出現箇所で注釈が付けられていることを確認してください。質の低いトレーニング・データではトレーニング・メトリックが不十分になり、結果が不正確になります。
-
モデルに十分なトレーニング・サンプルがあります。より多くのデータが常に優れているため、モデルのパフォーマンスが向上します。データセットが小さいモデルをトレーニングし、モデル・トレーニング・メトリックをレビューし、必要に応じてトレーニング・サンプルを追加することをお薦めします。
モデルのトレーニング
トレーニングとは、モデルがラベル付きデータから学習するプロセスです。トレーニング期間および結果は、データセットのサイズ、各レコードのサイズおよびアクティブなトレーニング・ジョブの数によって異なります。
モデルの評価
モデルのトレーニング後、モデルの品質、またはモデルが正しく予測される可能性を示す評価メトリックを取得できます。サービスは、モデルをテスト・セットに適用し、予測ラベルと予測ラベルを比較します。メトリックは、モデルがテスト・セットを予測する精度に基づきます。
コンソールを使用して、モデル・レベルで評価メトリックのセットを取得し、クラス・レベルで(またはNERモデルのエンティティ・レベル)次の項にリストします。
コンソールを使用して、次のタイプの評価メトリックを取得できます。
- クラス・レベル・メトリック
- モデル・レベル・メトリック
- NERモデルのエンティティ・レベル・メトリック
- 混同行列
APIを使用すると、マイクロ、マクロおよび加重平均精度リコール、F-1スコアなど、より完全なメトリックのセットを取得できます。
クラス基準
クラス・メトリックは、エンティティ・レベルのメトリックです。
- 精度
-
真陽性(正しく予測された例)と、特定のクラスのすべての例の比率。
正しく予測されている予測例の数が説明されています。値は0から1の範囲です。大きい値をお薦めします。
- 再現
-
真の陽性(正しく予測された例)とすべての予測例との比率。
予測される正しい例の数について説明しています。値は0から1の範囲です。大きい値をお薦めします。
- F1- スコア
-
F1-scoreは精度とリコールの調和平均であり、モデルを評価するための単一の値を提供します。値は0から1の範囲です。大きい値をお薦めします。
モデル・メトリック
モデル・メトリックは、マルチクラス・モデルのモデル・レベル・メトリックです。モデル・レベル・メトリックは、モデルの全体的な品質を示します。精度、リコール、および F-1値は、マクロ、マイクロ、および加重平均レベルで表示されます。
- マクロ平均
-
マクロ平均は、すべてのクラスのメトリック値の平均です。
たとえば、マクロ精度は、クラス数で割ったすべてのクラス精度値の合計として計算されます。
- マイクロ平均
-
マイクロ平均は、すべての例の貢献を集計し、平均メトリックを計算します。
- 重み付け平均
-
各クラスのインスタンス数を考慮して計算されます。
たとえば、重み付けされたF1-scoreは、(クラスF1-score *クラスのサポート比率)の合計として計算されます。
- 精度
-
正しく予測および予測されていないすべての例の割合。分数は、正しく予測されたクラスと予測されていないクラス(真正+真負)とすべての例の比率として計算されます
- 混同マトリックス
-
各クラスのtrueおよび予測結果を視覚化する表。
モデルのデプロイ
モデル・メトリックが期待を満たした後、モデルを本番に配置し、モデルを使用してテキストを分析できます。モデルを本番に配置するには、エンドポイントを作成します。エンドポイントは、カスタム・モデルで推測(テキスト分析を実行)するための専用コンピュート・リソースを割り当てます。
カスタム・モデル・エンドポイントはプライベートであり、エンドポイントをデプロイするためのコンパートメントを指定する必要があります。1つのモデルに複数のエンドポイントを作成できます。モデルを削除せずに、エンドポイントを作成または削除できます。
テキストの分析
モデル・エンドポイントを作成した後、カスタム・モデルを使用してモデルをデプロイし、テキストを分析できます。モデルは、次の方法でエンドポイントにデプロイできます。
- コンソール
- REST API
- SDK (Python、Java、C#、JavaScriptおよびRuby)
- クリ