# DataRobot MLOpsを使用したML.NETモデルのデプロイおよび監視

> DataRobot MLOpsを使用したML.NETモデルのデプロイおよび監視 - DataRobot MLOpsを使用したML.NETモデルのデプロイおよび監視

This Markdown file sits beside the HTML page at the same path (with a `.md` suffix). It summarizes the topic and lists links for tools and LLM context.

Companion generated at `2026-07-15T05:55:44.913551+00:00` (UTC).

## Primary page

- [DataRobot MLOpsを使用したML.NETモデルのデプロイおよび監視](https://docs.datarobot.com/ja/docs/classic-ui/integrations/azure/mlnet-deploy-and-monitor.html.md): Full documentation for this topic (Markdown sidecar).

## Sections on this page

- [前提条件](https://docs.datarobot.com/ja/docs/classic-ui/integrations/azure/mlnet-deploy-and-monitor.html.md#prerequisites): In-page section heading.
- [ML.NETモデルの作成](https://docs.datarobot.com/ja/docs/classic-ui/integrations/azure/mlnet-deploy-and-monitor.html.md#create-the-mlnet-model): In-page section heading.
- [モデルの評価](https://docs.datarobot.com/ja/docs/classic-ui/integrations/azure/mlnet-deploy-and-monitor.html.md#evaluate-your-model): In-page section heading.
- [モデルのテスト](https://docs.datarobot.com/ja/docs/classic-ui/integrations/azure/mlnet-deploy-and-monitor.html.md#test-your-model): In-page section heading.
- [DataRobot MLOps環境パッケージの作成](https://docs.datarobot.com/ja/docs/classic-ui/integrations/azure/mlnet-deploy-and-monitor.html.md#create-a-datarobot-mlops-environment-package): In-page section heading.
- [DataRobot MLOps環境パッケージのアップロード](https://docs.datarobot.com/ja/docs/classic-ui/integrations/azure/mlnet-deploy-and-monitor.html.md#upload-the-datarobot-mlops-environment-package): In-page section heading.
- [DataRobot MLOpsを使用したML.NETモデルのアップロードおよびテスト](https://docs.datarobot.com/ja/docs/classic-ui/integrations/azure/mlnet-deploy-and-monitor.html.md#upload-and-test-the-mlnet-model-in-datarobot-mlops): In-page section heading.
- [新しいML.NETモデルでの予測の作成](https://docs.datarobot.com/ja/docs/classic-ui/integrations/azure/mlnet-deploy-and-monitor.html.md#make-predictions-with-the-new-mlnet-model): In-page section heading.

## Documentation content

このページでは、ML.NETで構築されたモデルをDataRobot MLOpsでデプロイおよび監視する方法について説明します。 ML.NETは、Microsoftが.NET開発者プラットフォーム用に作成したオープンソースの機械学習フレームワークです。 詳細については、 [ML.NETとは](https://dotnet.microsoft.com/learn/ml-dotnet/what-is-mldotnet) を参照してください。

このページの例では、 [公開されているLendingClubのデータセット](https://datarobot-doc-assets.s3.us-east-1.amazonaws.com/10K_Lending_Club_Loans.csv) を使用しています。

ローン申込者が債務不履行になる可能性を予測したいと考えています。機械学習では、これを「二値分類問題」と呼びます。DataRobot AutoMLで解決できますが、この場合はML.NETでモデルを作成し、それを本番環境にデプロイして、DataRobot MLOpsで監視します。 DataRobot MLOpsを使用すると、ソースやプログラミング言語に関係なく、一元化されたダッシュボードですべてのモデルを監視できます。

モデルをDataRobot MLOpsにデプロイする前に、新しいML.NETモデルを作成してから、DataRobot MLOps用のML.NET環境を作成する必要があります。

> [!NOTE] 備考
> このDataRobot MLOps ML.NET環境は1回だけ作成する必要があります。二値分類モデルと連続値モデルのサポートのみが必要な場合は、この手順をスキップして、 [DataRobotコミュニティGitHub](https://github.com/datarobot-community/ai_engineering/tree/master/mlops/DRMLOps_MLNET_environment) の既存の「DataRobot ML.NETドロップイン」環境を使用することができます。

## 前提条件

.NETアプリの構築を開始するには、.NETソフトウェア開発キット（SDK）をダウンロードしてインストールします。 SDKをインストールするには、 [.NETの概要](https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/intro) に記載されている手順に従ってください。

1. .NET SDKをインストールしたら、新しいターミナルを開き、次のコマンドを実行します。 dotnet
2. 前のコマンドがエラーなく実行された場合は、次の手順に進み、次のコマンドを使用してML.NETフレームワークをインストールできます。 dotnettoolinstall-gmlnet

### ML.NETモデルの作成

ML.NETフレームワークのインストールが成功したら、ML.NETモデルを作成します。

```
mkdir DefaultMLApp
cd DefaultMLApp
dotnet new console -o consumeModelApp

dotnet classification --dataset "10K_Lending_Club_Loans.csv" --label-col "is_bad" --train-time 1000 
```

### モデルの評価

ML.NET CLIが最適なモデルを選択すると、実験結果（探索プロセスの概要）が表示されます。これには、特定のトレーニング時間内に探索されたモデルの数が含まれます。

ML.NET CLIは、パフォーマンスが最も高いモデルのコードを生成しますが、特定の探索時間中に見つかった精度が最も高いモデルを最大5つ表示します。 AUC、AUPRC、F1スコアなど、上位モデルのいくつかの評価指標が表示されます。

### モデルのテスト

ML.NETコマンドラインインターフェイス（CLI）は、機械学習モデルを生成し、モデルのトレーニングと使用に必要な.NETアプリとライブラリを追加します。 作成されるファイルには次のものがあります。

- A .NET console app (SampleBinaryClassification.ConsoleApp), which containsModelBuilder.cs(builds and trains the model) andProgram.cs(runs the model).
- A .NET Standard class library (SampleBinaryClassification.Model), which containsModelInput.csandModelOutput.cs(the input and output classes for model training and consumption) andMLModel.zip(a generated serialized ML model).

モデルをテストするには、コンソールアプリ（ `SampleBinaryClassification.ConsoleApp` ）を実行し、単一の申請者の不履行の可能性を予測します。

```
cd SampleClassification/SampleClassification.ConsoleApp
dotnet run 
```

## DataRobot MLOps環境パッケージの作成

DataRobotは事前定義済みの多くの環境テンプレート（R、Python、Java、PyTorchなど）を提供しますが、このセクションでは、ML.NETを使用して独自のランタイム環境を一貫して作成する方法を説明します。

次のガイドラインに従うと、使いやすく再利用可能な環境を作成できます。

- 環境パッケージには、依存関係をインストールするためのDockerfileと、モデルサーバーを起動するための実行可能start_server.shスクリプトが含まれている必要があります。
- カスタムモデルには、予測を行うための単純なウェブサーバーが必要です。 モデルサーバースクリプトは、モデルパッケージ内に配置することも、環境パッケージに分離することもできます。ただし、同じプログラミング言語を利用する複数のモデルで使用できるように、別の環境パッケージにする必要があります。
- すべてのコードとstart_server.shスクリプトを/opt/code/にコピーするDockerfile。MLOps環境パッケージ用のコードは、DataRobotコミュニティGitHubからダウンロードできます。
- ウェブサーバーはポート8080でリッスンし、次のルートを実装する必要があります。

DataRobot MLOpsは、信頼性を確保するために広範なテストを実行してから、カスタムモデルをデプロイします。したがって、ウェブサーバーで欠損値を処理し、上記で概説したように予期される応答形式で結果を返すことが重要です。

前述のように、DataRobotがウェブサーバーを正しく識別できるように、ポート `8080` を使用する必要があります。 したがって、以下に示すように、 `appsettings.json` で `Kestrel` ウェブサーバーのポート `8080` を指定します。

```
    {
      "Kestrel": {
        "EndPoints": {
          "Http": {
            "Url": "http://0.0.0.0:8080"
          }
        }
      }
    } 
```

`Startup.cs` クラス内のモデルコード（ `mlContext` 、 `mlModel` 、 `predEngine` ）を初期化します。 これにより、モデルパッケージを新規作成するたびに、.NETがファイルの変更を認識できるようになります。

```
    // Initialize MLContext

    MLContext ctx = new MLContext();        

    // Load the model

    DataViewSchema modelInputSchema;

    ITransformer mlModel = ctx.Model.Load(modelPath, out modelInputSchema);         

    // Create a prediction engine & pass it to our controller

    predictionEngine  = ctx.Model.CreatePredictionEngine<ModelInput,ModelOutput>(mlModel);​ 
```

`start_server.sh` シェルスクリプトは、コンテナ内のモデルサーバーを起動します。 モデルとサーバーを一緒にパッケージ化した場合は、コンパイルされたバージョンのみが必要で、シェルスクリプトは `dotnet consumeModelApp.dll` を実行します。 モデルコードとサーバー環境コードは再利用のために分離されているため、以下のコマンドのように、コンテナ起動時にソースから再コンパイルします。

```
    #!/bin/sh
    export DOTNET_CLI_HOME="/tmp/DOTNET_CLI_HOME"
    export DOTNET_CLI_TELEMETRY_OPTOUT="1"
    export TMPDIR=/tmp/NuGetScratch/
    mkdir -p ${TMPDIR}
    rm -rf obj/ bin/
    dotnet clean
    dotnet build
    dotnet run
    # to ensure Docker container keeps running
    tail -f /dev/null 
```

カスタム環境をDataRobot MLOpsにアップロードする前に、以下に示すように、カスタム環境コードをtarballに圧縮します。

```
    tar -czvf mlnetenvironment.tar.gz -C DRMLOps_MLNET_environment/. 
```

## DataRobot MLOps環境パッケージのアップロード

新しいMLOps ML.NET環境をアップロードするには、 [新しいカスタムモデル環境の作成](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/custom-models/custom-model-environments/custom-environments.html.md) に関する手順を参照してください（下のスクリーンショットを参照）。

## DataRobot MLOpsを使用したML.NETモデルのアップロードおよびテスト

環境が作成されたら、新しいカスタムモデルエンティティを作成し、実際のモデル（ `MLModel.zip` と `ModelInput.cs` ）をアップロードします。

新しいML.NETモデルをアップロードするには、 [新しいカスタム推論モデルの作成](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/custom-models/custom-model-workshop/custom-inf-model.html.md) に関する手順を参照してください。

DataRobot MLOps内に環境とモデルを作成したら、テストデータをアップロードして、予測どおりに動作することを確認します（以下のスクリーンショットを参照）。

このフェーズでは、DataRobotはテストを実行して、モデルが欠損値を処理する方法と、内部ウェブサーバーが応答形式に準拠しているかどうかを判断します。

## 新しいML.NETモデルでの予測の作成

テストが完了したら、以下の設定を使用してカスタムモデルをデプロイします。

この手順が完了すると、他のDataRobotモデルと同様に、新しいカスタムモデルで予測を行うことができます（ [Postmanコレクション](https://github.com/datarobot-community/ai_engineering/blob/master/mlops/DRMLOps_MLNET_model%20samples/DR%20MLNET%20Custom%20Models.postman_collection.json) も参照）。

ML.NETを使用してDataRobotの外部でモデルを構築した場合でも、他のDataRobotモデルと同様に使用して、以下に示す一元化されたダッシュボードでサービスの正常性とデータドリフトを追跡できます。
