監視エージェント¶
監視エージェントを有効にすると、エージェントのインストール、および単一のtarballにパッケージ化されたMLOpsコンポーネントにアクセスできます。 次の図は、DataRobot MLOpsで外部モデルを監視する際の各コンポーネントの役割を示します。
コンポーネント | 説明 | |
---|---|---|
1 | 外部モデル | 外部モデルは、ユーザーの環境、つまりDataRobotの外部で実行する機械学習モデルです。 デプロイ(PythonまたはJavaで実行中)は、予測数や予測時間など情報を取得しつつデータをスコアリングし、予測を生成します。 |
2 | DataRobot MLOpsライブラリ | Python(v2とv3)とJavaで利用可能なMLOpsライブラリは、APIを提供し、(デプロイIDとモデルIDで特定された)特定デプロイから予測データと情報をレポートします。 MLOpsクライアントに対してサポートされているライブラリ呼び出しでは、MLOpsサービスにレポートするデータを指定できます(予測時間、予測の数、その他の予測およびデプロイ統計など)。 |
3 | スプーラー(バッファー) | ライブラリから提供されたAPIは、設定されたスプーラー(バッファー)にメッセージをパスします。 |
4 | 監視エージェント | 監視エージェントは、ターゲットバッファーの場所に書き込まれたデータを検出して、MLOpsサービスにレポートします。 |
5 | DataRobot MLOpsサービス | 監視エージェントがサービスとして実行されている場合、データは使用可能になるとすぐに表示されます。そうでない場合、予測データは手動で実行された後に表示されます。 |
モデルが独立して実行し、ネットワークから切断されている場合、MLOpsライブラリはバッファディレクトリからネットワークにアクセスできません。 そのようなデプロイでは、必要に応じてUSBドライブを使用してバッファの場所から予測データを手動でコピーできます。 エージェントは、設定されたとおりにそのデータにアクセスし、MLOpsサービスにレポートします。
追加の監視エージェント設定は、どこからデータを読み取り、データをどこにレポートするか、データをどのくらいの頻度でレポートするか、といったことを指定します。 柔軟な監視エージェントの設計により、さまざまなデプロイおよび環境の要件がサポートされます。
最後に、デプロイインベントリから、デプロイを表示し、予測統計と指標を表示および管理できます。
監視エージェントの要件¶
リモートのデプロイ環境で監視エージェントを使用するには、以下を指定する必要があります。
-
DataRobot MLOpsのURL。 (セルフマネージドAIプラットフォームがインストールされている場合、これは通常、
https://10.0.0.1
またはhttps://my-server-name
の形式になります。) -
DataRobotのAPIキー。 これを行うには、UIからアカウント設定の 開発者ツールタブに移動し、APIキーセクションを見つけます。
また、モデルパッケージの作成とデプロイに関するドキュメントを参照してください。
MLOpsエージェントtarball¶
MLOpsエージェントtarballは、2つのロケーションからダウンロードできます。
- 開発者ツールページ
- 外部モデルを監視するように設定されたデプロイの予測 > モニタリングタブ
MLOpsエージェントtarballには、インストールするMLOpsライブラリが含まれています。 エージェントを設定するには、監視エージェントと予測レポート設定を参照してください。
Pythonライブラリのパブリックダウンロード
MLOpsPythonライブラリは、パブリックPythonパッケージインデックスサイトからもダウンロード可能です。 DataRobot MLOps指標レポートライブラリとDataRobot MLOps Connected Clientをダウンロードしてインストールします。 これらのページには、ライブラリをインストールするための指示が含まれています。
Javaライブラリのパブリックダウンロード
MLOpsのJavaライブラリとエージェントは、公開されているMavenリポジトリ{ target=_blank }から、groupIdにcom.datarobot、artifactIdにdatarobot-mlops(ライブラリ)およびmlops-agent(エージェント)を指定してダウンロードできます。 また、MavenリポジトリでDataRobot MLOps LibraryとDataRobot MLOps Agentのアーティファクトにアクセスすると、すべてのバージョンを確認でき、JARファイルをダウンロードしてインストールすることが可能です。
MLOpsライブラリに加えて、tarballには、以下のことを目的としたPythonおよびJava APIのサンプルおよび関連データセットが含まれています。
- 連続値および分類の両方のモデルの(サンプル)予測を生成するデプロイを作成します。
- MLOpsライブラリを使用したデプロイからの指標をレポートします。
tarballには、以下を行うためのスクリプトも含まれています。
- エージェントを開始および停止し、現在のエージェントステータスを取得します。
- トレーニングデータセットをアップロードし、デプロイIDとモデルIDを返すリモートデプロイを作成します。
エージェントの仕組み¶
このセクションでは、さまざまな環境から監視エージェントを使用するための基本的なワークフローの概要を説明します。
DataRobot MLOpsの使用:
- モデルレジストリを使用して、モデルのメタデータに関する情報を含むモデルパッケージを作成します。
- モデルパッケージをデプロイ。 デプロイを作成して、実行中のモデルに関する指標を表示します。
- デプロイ予測タブを使用して、指標をレポートするために監視エージェントを組み込んだ形の予測コードを実行する方法を示すコードスニペットを表示します。
リモートデプロイ環境の使用:
- 監視エージェントをインストールします
- スニペットに示されているように、MLOpsライブラリを使用して、予測コードから指標をレポートします。 MLOpsライブラリは、スプーラー内の指標(Filesystem、Rabbit MQ、Kafkaなど)をバッファーし、デプロイの速度を低下させることなく高いスループットを可能にします。
- 監視エージェントは指標をDataRobot MLOpsに転送します。
- 報告された指標は、DataRobot MLOpsデプロイインベントリで表示されます。
監視エージェントと予測レポートの設定¶
次のセクションでは、監視エージェントを使用してデータをアップロードするマシンと、MLOpsライブラリを使用して予測をレポートするマシンの両方を設定する方法の概要を説明します。
監視エージェントの設定¶
監視エージェントを使用してマシンごとに次のワークフローを完了し、DataRobot MLOpsにデータをアップロードします。 このセットアップは、デプロイ環境ごとに1回だけ実行する必要があります。
- Java(バージョン8)がインストールされていることを確認します。
- 開発者ツールタブから入手できるMLOpsエージェントのtarballをダウンロードします。 tarballには、エージェントとライブラリソフトウェア、コード例、および関連するスクリプトが含まれています。
- ディレクトリを解凍したディレクトリに変更します。
- 監視エージェントをインストールします。
- 監視エージェントを設定します。
- エージェントサービスを実行します。
ホスト予測¶
MLOpsライブラリを使用して予測を報告する各マシンについて、適切なライブラリおよび要件がインストールされていることを確認します。 ライブラリの入手先には以下の2つがあります。
MLOpsエージェントのtarballをライブラリにダウンロードしてインストールします。
-
Java:Javaライブラリは
lib/datarobot-mlops-<version>.jar
の.tarファイルに含まれています。 -
Python:Pythonバージョンのライブラリは
lib\datarobot_mlops-*-py2.py3-none-any.whl
の.tarファイルに含まれています。 これはPython2とPython3の両方で機能します。以下のコマンドを使用してインストールできます。pip install lib\datarobot_mlops-*-py2.py3-none-any.whl
MLOps Pythonライブラリは、公開されているPythonパッケージインデックスサイトからダウンロードできます。
-
DataRobotMLOps指標レポートライブラリ
- ダウンロードしてからインストールします。
pip install datarobot-mlops
- ダウンロードしてからインストールします。
-
DataRobotMLOps Connected Client(mlops-cli)
- ダウンロードしてからインストールします。
pip install datarobot-mlops-connected-client
- ダウンロードしてからインストールします。
MLOpエージェントの.tar
ファイルには、様々な言語で書かれたエンド・ツー・エンドの例が、数点含まれています。
モデルパッケージの作成とデプロイ¶
モデルパッケージには、問題の種類(連続値など)や使用されたトレーニングデータなど、外部モデルに関するメタデータが格納されます。 モデルレジストリを使用してモデルパッケージを作成してデプロイできます。
デプロイのインテグレーションタブでは、exampleコードと、デプロイからの統計を報告するために必要なMLOPS_DEPLOYMENT_ID
およびMLOPS_MODEL_ID
の値を表示できます。
APIを使用してモデルパッケージを作成する場合は、ヘルパースクリプトを使用して、examplesディレクトリでモデルパッケージとデプロイを作成します。 各サンプルには、関連するモデルパッケージとデプロイを作成するための独自のcreate_deployment.sh
スクリプトがあります。 このスクリプトはDataRobot MLOpsと直接通信するため、接続可能なマシンで実行する必要があります。 各スクリプトを実行すると、デプロイIDとモデルIDが出力されます。これらはrun_example.sh
スクリプトで使用され、モデルの推論後、指標のレポートが行われます。
外部モデルパッケージを作成してデプロイする際に、モデルのトレーニングに使用するデータ(トレーニングデータセット、ホールドアウト データセット、またはその両方)をアップロードできます。 このデータがアップロードされると、モデルの監視に使用されます。 アップロードするデータセットでは、次の機能を提供します。
-
トレーニングデータセット 特徴量ドリフト監視のベースラインを提供します。
-
ホールドアウトデータセット 精度監視のベースラインとして使用する予測を提供します。
ホールドアウトデータセットに想定されるデータ形式の例は、エージェントtarファイルのexamples/data
フォルダーにあります。
-
mlops-example-lending-club-holdout.csv
連続値モデルのホールドアウトデータ形式を示します。 -
mlops-example-iris-holdout.csv
分類モデルのホールドアウトデータ形式を示します。備考
分類モデルの場合、すべてのクラスの予測を提供する必要があります。
監視エージェントを組み込んだデプロイ¶
デプロイごとに監視エージェントを設定するには、以下の手順に従います。
- MLOpsライブラリとサンプルコードを見つけます。 これらは、MLOps
.tar
ファイル配布に含まれています。 - ご使用の環境でデプロイIDとモデルIDを設定します。
- プログラミング言語用に提供されているサンプルコードに示されているように、MLOps呼び出しコードを組み込みます。
- 結果をDataRobot MLOpsに報告するには、エージェントで設定されている同じチャネルを使用するようにライブラリを設定する必要があります。 テストの場合、これらの呼び出しはエージェントまたはDataRobot MLOpsに転送されませんが、stdoutに出力するようにライブラリを設定できます。 :ref:
mlops API <mlops-lib>
を介してライブラリを設定します。 - デプロイは、デプロイタブのDataRobot MLOps UIで確認できます。