ML.NET CLI を使用してモデルのトレーニングを自動化する
ML.NET CLI は、.NET 開発者のためにモデル生成を自動化します。
(ML.NET AutoML CLI を使用せずに) ML.NET API を単独で使用するには、トレーナー (特定のタスクに対する機械学習アルゴリズムの実装) と、データに適用する一連のデータ変換 (特徴エンジニアリング) を選択する必要があります。 最適なパイプラインはデータセットごとに異なるので、すべての選択肢から最適なアルゴリズムを選択すると、複雑さが増します。 さらに、各アルゴリズムには調整が必要な一連のハイパーパラメーターがあります。 そのため、特徴エンジニアリング、学習アルゴリズム、およびハイパーパラメーターの最適な組み合わせを見つけようとすると、機械学習モデルの最適化に数週間から数か月かかる可能性があります。
ML.NET CLI は、このプロセスを、自動機械学習 (AutoML) を使用して簡略化します。
Note
この記事は、現在プレビュー段階の ML.NET CLI と ML.NET AutoML について述べており、内容が変更される場合があります。
ML.NET コマンドライン インターフェイス (CLI) とは
ML.NET CLI は、.NET ツールです。 ツールをインストールしたら、機械学習タスクとトレーニング データセットを提供します。その後、ML.NET モデルと、アプリケーションでそのモデルを使用するときに実行する C# コードが生成されます。
次の図に示すように、高品質の ML.NET モデル (シリアル化されたモデルの .zip ファイル) と、そのモデルを実行/スコア付けするサンプル C# コードを簡単に生成できます。 さらに、そのモデルを作成/トレーニングする C# コードも生成されるので、その生成された "最適なモデル" に使用されるアルゴリズムと設定を調べ、反復処理することができます。
自力でコーディングすることなく、所有しているデータセットからこうした資産を生成できるので、ML.NET について知っている場合でも生産性が向上します。
現在、ML.NET CLI でサポートされている ML タスクは次のとおりです。
- 分類
- 回帰
- 推奨事項
- 画像の分類
- 予測
- トレーニング
ML.NET CLI は、オペレーティング システムとそのアーキテクチャに基づいて、次のコマンドを使用してインストールできます:
dotnet tool install --global mlnet-<OS>-<ARCH>
たとえば、x64 バージョンの Windows は次のようにインストールできます:
dotnet tool install --global mlnet-win-x64
詳細については、 ML.NET CLI のインストール に関する攻略ガイドを参照してください。
使用例 (分類シナリオ):
mlnet classification --dataset "yelp_labelled.txt" --label-col 1 --has-header false --train-time 10
また、mbconfig ファイルを使用してトレーニングできるコマンドもあります。 mbconfig ファイルは、Model Builder セッションを開始するときに作成されます。
Windows PowerShell、macOS/Linux bash、または Windows CMD でも同じ方法で実行できます。 ただし、タブのオートコンプリート (パラメーター候補) は Windows CMD では機能しません。
生成される出力資産
CLI で ML タスク コマンドを使用すると、出力フォルダーに以下の資産が生成されます。
- C# ソリューション:
- 生成されたモデルを実行/スコア付けするためのコンソール アプリ (そのモデルを使用してエンドユーザー アプリで予測を行うため)。
- そのモデルの生成に使用されるトレーニング コードを含むコンソール アプリ (学習目的またはモデルの再トレーニングのため)。
- このシリアル化されたモデル ("最適なモデル") は、予測の実行に使用する準備が整った圧縮済み .zip ファイルとしても提供されます。
- Model Builder でモデルを開くことを可能にする構成データが含まれる mbconfig ファイル。
- 詳細な構成/パイプラインなど、評価される複数のアルゴリズム全体にわたるすべての反復処理/スイープの情報を含むログ ファイル。
最初の 2 つの資産は、エンドユーザー アプリ (ASP.NET Core Web アプリ、サービス、デスクトップ アプリなど) で直接使用して、生成された ML モデルで予測を行うことができます。
3 つ目の資産のトレーニング コードは、生成されたモデルをトレーニングするために CLI によって使用された ML.NET API コードを示しています。そのため、モデルを再トレーニングし、背後で CLI および ML.NET AutoML エンジンによって選択された特定のトレーナー/アルゴリズムとハイパーパラメーターを調べて反復処理することができます。
モデルの品質を理解する
CLI ツールを使用して "最適なモデル" を生成すると、対象の ML タスクに適した品質メトリック (正確度、R-2 乗など) が表示されます。
ここでは、自動生成された "最適なモデル" の品質を理解できるように、これらのメトリックを ML タスク別にグループ化してまとめています。
分類モデルのメトリック
CLI によって検出される上位 5 つのモデルの分類メトリックの一覧を次の画像に示します。
正確度は分類問題の一般的なメトリックですが、以下のリファレンスで説明されているように、最適なモデルを選択する場合に正確度が常に最適なメトリックとは限りません。 必要に応じて追加のメトリックを使用してモデルの品質を評価する場合があります。
CLI によって出力されるメトリックを調べて理解するには、分類の評価メトリックに関する記事をご覧ください。
回帰とレコメンデーション モデルのメトリック
観測値とモデルの予測値の差が小さく偏りがない場合、回帰モデルがデータに適しています。 回帰は特定のメトリックを使用して評価できます。
CLI で見つかる上位 5 つの品質モデルには、同様のメトリック リストが表示されます。ただしこの場合、上位 5 つは回帰 ML タスクに関連しています。
CLI によって出力されるメトリックを調べて理解するには、回帰の評価メトリックに関するトピックをご覧ください。
関連項目
.NET