カスタム・モデルのワークフロー
通常、カスタム・モデルの作成には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スコアは、精度とリコールの調和平均であり、モデルを評価するための単一の値を提供します。値は0から1の間です。値が大きいほどよい。
モデル・メトリック
モデル・メトリックは、マルチクラス・モデルのモデル・レベルのメトリックです。モデル・レベルのメトリックは、モデルの全体的な品質を示します。精度、リコール、およびF-1の値は、マクロ、マイクロ、および加重平均レベルで表示されます。
- マクロ平均
-
マクロ平均は、すべてのクラスのメトリック値の平均です。
たとえば、マクロ精度は、クラスの数で除算されるすべてのクラスの精度値の合計として計算されます。
- マイクロ平均
-
マイクロ平均は、すべての例の寄与を集約して平均メトリックを計算します。
- 重み付け平均
-
各クラスのインスタンス数を考慮して計算されます。
たとえば、重み付けされたF1スコアは合計として計算されます(クラスのF1スコア*クラスのサポート割合)。
- 精度
-
正しく予測および予測されていないすべての例の一部。割合は、正しく予測されたクラスと予測されていないクラス(真正+真正の負)とすべての例の比率として計算されます。
- 混同マトリックス
-
各クラスのtrueおよび予測結果を視覚化する表。
モデルのデプロイ
モデル・メトリックが期待を満たした後、モデルを本番環境に配置し、モデルを使用してテキストを分析できます。モデルを本番環境に配置するには、エンドポイントを作成します。エンドポイントは、カスタム・モデルで推論(テキスト分析の実行)を行うための専用コンピュート・リソースを割り当てます。
カスタム・モデル・エンドポイントはプライベートであり、エンドポイントをデプロイするためのコンパートメントを指定する必要があります。1つのモデルに対して複数のエンドポイントを作成できます。モデルを削除せずにエンドポイントを作成または削除できます。
テキストの分析
モデル・エンドポイントを作成した後、カスタム・モデルを使用してモデルをデプロイし、テキストを分析できます。モデルは、次の方法でエンドポイントにデプロイできます。
- Console
- REST API
- SDK (Python、Java、C#、JavaScriptおよびRuby)
- CLI