Skip to content

アプリケーション内で をクリックすると、お使いのDataRobotバージョンに関する全プラットフォームドキュメントにアクセスできます。

ポータブル予測

DataRobotでは、予測 > ポータブル予測タブでポータブル予測の方法を提供しており、DataRobotアプリケーションの外で予測ジョブを実行することができます。 ポータブル予測の方法は以下に詳しく説明します。

方法 説明
ポータブル予測サーバー 自己完結型のDockerイメージとして配布されるDataRobotモデルパッケージ(.mlpkgファイル)用のリモートDataRobot実行環境を設定します。
スコアリングコード Export a Scoring Code JAR file from DataRobot and copy the Java, Python, or CLI snippet used to make predictions. スコアリングコードには移植性があるので、任意のコンピューティング環境で実行できます。 この方法は、REST APIのパフォーマンスを完全にサポートできないアプリケーションやネットワークアクセスが十分でない低レイテンシーアプリケーションの場合に便利です。

ポータブル予測サーバー

本機能の提供について

The Portable Prediction Server is a premium feature exclusive to DatRobot MLOps. この機能を有効にする方法については、DataRobotの担当者または管理者にお問い合わせください。

ポータブル予測サーバー(PPS)は、自己完結型のDockerイメージとして配布されるDataRobotモデルパッケージ(.mlpkgファイル)用のDataRobot実行環境です。 ポータブル予測サーバーを設定したら、単一または複数モデルのポータブルリアルタイム予測ポータブルバッチ予測 ジョブの実行を開始できます。

CPUに関する注意事項

DataRobotでは、Intel CPUを使用して、ポータブル予測サーバーを実行することを強く推奨します。 Intel以外のCPUを使用すると、特に、TensorflowまたはKerasで構築されたディープラーニングのようなモデルで、予測の不一致となる場合があります。 これには、ARMアーキテクチャプロセッサー(AArch32やAArch64など)が含まれます。

一般的な設定手順は次のとおりです。

  1. モデルパッケージのダウンロード
  2. PPS Dockerイメージをダウンロードします。
  3. PPS Dockerへのイメージのロード
  4. DataRobotが提供するDockerスニペットをコピーして、Dockerコンテナでポータブル予測サーバーを実行します。

重要

デプロイによってモデルのポータブル予測サーバーを設定したい場合は、まず外部の予測環境を追加して、そのモデルを外部環境へデプロイする必要があります。

モデルパッケージのダウンロード

外部予測環境で実行されているデプロイ済みDataRobotモデルのPPSモデルパッケージをダウンロードして、DataRobot外部のポータブル予測サーバーで予測ジョブを実行できます。 デプロイからモデルパッケージをダウンロードすると、ポータブル予測サーバーはモデルのパフォーマンスを監視 して予測統計を追跡します。ただし、デプロイでモデルパッケージのダウンロードがサポートされていることを確認する必要があります。 デプロイには、DataRobotの構築環境と外部予測環境が必要です。

デプロイタブ(デプロイインベントリ)で、DataRobotの構築環境と外部の予測環境の両方を持つデプロイを開き、予測 > ポータブル予測タブに移動します。

要素 説明
1 ポータブル予測方法 / ポータブル予測サーバー REST APIベースの予測サーバーをDockerイメージとして設定するのに便利です。
2 ポータブル予測サーバーの使用方法 開発者ツールタブにリンクすると、ポータブル予測サーバーのDockerイメージを取得できます。
3 モデルパッケージ(.mlpkg)をダウンロード デプロイされたモデルのモデルパッケージをダウンロードします。
4 Dockerスニペット モデルパッケージをダウンロードしたら、Dockerスニペットを使用して、モニタリングが有効になっているモデルのポータブル予測サーバーを起動します。 起動する前に、APIキー、ローカルファイル名、パス、モニタリングを指定する必要があります。
5 クリップボードにコピー Dockerスニペットをクリップボードにコピーして、コマンドラインに貼り付けられるようにします。

予測 > ポータブル予測タブで、モデルパッケージをダウンロード(.mlpkg)をクリックします。 ダウンロードが完了すると、ダウンロードがダウンロードバーに表示されます。 モデルパッケージをダウンロードしたら、クリップボードにコピーをクリックし、後で使用するためにコードスニペットを保存します。 ダウンロードしたモデルパッケージでポータブル予測サーバーを起動するには、このコードが必要です。

Download a time series model package

When you export a time series model for portable predictions, you can enable the computation of a model's time series prediction intervals (from 1 to 100) during model package generation. The interface is the same as the interface for non-time series models, with the addition of the Compute prediction intervals setting:

Model package generation performance considerations

予測区間を計算オプションはデフォルトで無効になっています。これは、予測間隔の計算と組み込みにより、モデルパッケージの生成に要する時間が大幅に増加する可能性があるためです。

モデルパッケージの予測間隔を有効にし、モデルをポータブル予測サーバーにデプロイした後、.yaml PPS設定ファイルまたはPPS環境変数を使用して、予測間隔のパーセンタイルと指数傾向を設定できます。

備考

以下の環境変数は、YAML設定が指定されていない場合にのみ使用されます。

YAML変数 / 環境変数 説明 タイプ デフォルト
prediction_intervals_percentile / MLOPS_PREDICTION_INTERVALS_PERCENTILE 予測間隔範囲の定義に使用するパーセンタイルを設定します。 整数 80

ポータブル予測サーバーの設定

ダウンロードしたモデルパッケージをポータブル予測サーバーにデプロイするには、まずPPS Dockerイメージをダウンロードし、そのイメージをDockerに読み込む必要があります。

PPS Dockerイメージの取得

開発者ツールタブに移動し、ポータブル予測サーバーのDockerイメージをダウンロードします。 次の表で説明するように、DataRobotの環境とバージョンに応じて最新のイメージにアクセスするためのオプションが異なる場合があります。

デプロイのタイプ ソフトウェアバージョン アクセス方法
セルフマネージドAIプラットフォーム v6.3以前 詳細については、DataRobotの担当者に連絡してください。 イメージはリクエストに応じて提供されます。
セルフマネージドAIプラットフォーム v7.0以降 開発者ツールからイメージをダウンロード します(以下の説明に従ってインストールしてください)。 イメージを取得できない場合は、DataRobotの担当者に連絡してください。
マネージドAIプラットフォーム 2021年1月以降 開発者ツールからイメージをダウンロード します(以下の説明に従ってインストールしてください)。

Dockerへのイメージのロード

注意

現在、DataRobotはイメージサイズの縮小に取り組んでいますが、圧縮されたDockerイメージは6 GBを超える場合があります(Dockerが読み込まれたイメージのレイヤーは14 GBを超える場合があります)。 PPSイメージをダウンロードおよびインポートする場合は、これらのサイズを考慮してください。

続行する前に、開発者ツールからイメージをダウンロードします。 Dockerで読み込める、gzipされたtarアーカイブです。

ダウンロードしてファイルのチェックサムを確認したら、docker loadを使用してイメージを読み込みます。 Dockerはgzipされたtarアーカイブからのイメージ読み込みをネイティブにサポートしているので、ダウンロードしたファイルを解凍する必要はありません。

以下のコマンドをコピーし、<version>を置き換えてコマンドを実行すると、PPSイメージがDockerに読み込まれます。

docker load < datarobot-portable-prediction-api-<version>.tar.gz 

ファイルパスに関する注意事項

PPSファイルがカレントディレクトリにない場合は、tarファイルへのローカルな絶対ファイルパスを指定する必要があります(例:/path/to/datarobot-portable-prediction-api-<version>.tar.gz)。

PPSファイルにdocker loadコマンドを実行すると、次のような出力が表示されるはずです。

docker load < datarobot-portable-prediction-api-9.0.0-r4582.tar.gz
33204bfe17ee: Loading layer [==================================================>]  214.1MB/214.1MB
62c077c42637: Loading layer [==================================================>]  3.584kB/3.584kB
54475c7b6aee: Loading layer [==================================================>]  30.21kB/30.21kB
0f91625c248c: Loading layer [==================================================>]  3.072kB/3.072kB
21c5127d921b: Loading layer [==================================================>]  27.05MB/27.05MB
91feb2d07e73: Loading layer [==================================================>]  421.4kB/421.4kB
12ca493d22d9: Loading layer [==================================================>]  41.61MB/41.61MB
ffb6e915efe7: Loading layer [==================================================>]  26.55MB/26.55MB
83e2c4ee6761: Loading layer [==================================================>]  5.632kB/5.632kB
109bf21d51e0: Loading layer [==================================================>]  3.093MB/3.093MB
d5ebeca35cd2: Loading layer [==================================================>]  646.6MB/646.6MB
f72ea73370ce: Loading layer [==================================================>]  1.108GB/1.108GB
4ecb5fe1d7c7: Loading layer [==================================================>]  1.844GB/1.844GB
d5d87d53ea21: Loading layer [==================================================>]  71.79MB/71.79MB
34e5df35e3cf: Loading layer [==================================================>]  187.3MB/187.3MB
38ccf3dd09eb: Loading layer [==================================================>]  995.5MB/995.5MB
fc5583d56a81: Loading layer [==================================================>]  3.584kB/3.584kB
c51face886fc: Loading layer [==================================================>]    402MB/402MB
c6017c1b6604: Loading layer [==================================================>]  1.465GB/1.465GB
7a879d3cd431: Loading layer [==================================================>]  166.6MB/166.6MB
8c2f17f7a166: Loading layer [==================================================>]  188.7MB/188.7MB
059189864c15: Loading layer [==================================================>]  115.9MB/115.9MB
991f5ac99c29: Loading layer [==================================================>]  3.072kB/3.072kB
f6bbaa29a1c6: Loading layer [==================================================>]   2.56kB/2.56kB
4a0a241b3aab: Loading layer [==================================================>]  415.7kB/415.7kB
3d509cf1aa18: Loading layer [==================================================>]  5.632kB/5.632kB
a611f162b44f: Loading layer [==================================================>]  1.701MB/1.701MB
0135aa7d76a0: Loading layer [==================================================>]  6.766MB/6.766MB
fe5890c6ddfc: Loading layer [==================================================>]  4.096kB/4.096kB
d2f4df5f0344: Loading layer [==================================================>]  5.875GB/5.875GB
1a1a6aa8556e: Loading layer [==================================================>]  10.24kB/10.24kB
77fcb6e243d1: Loading layer [==================================================>]  12.97MB/12.97MB
7749d3ff03bb: Loading layer [==================================================>]  4.096kB/4.096kB
29de05e7fdb3: Loading layer [==================================================>]  3.072kB/3.072kB
2579aba98176: Loading layer [==================================================>]  4.698MB/4.698MB
5f3d150f5680: Loading layer [==================================================>]  4.699MB/4.699MB
1f63989f2175: Loading layer [==================================================>]  3.798GB/3.798GB
3e722f5814f1: Loading layer [==================================================>]  182.3kB/182.3kB
b248981a0c7e: Loading layer [==================================================>]  3.072kB/3.072kB
b104fa769b35: Loading layer [==================================================>]  4.096kB/4.096kB
Loaded image: datarobot/datarobot-portable-prediction-api:9.0.0-r4582 

docker loadコマンドがLoaded imageメッセージとともに正常に完了したら、イメージがdocker imagesコマンドで読み込まれていることを確認する必要があります。

Dockerにあるイメージのリストを表示するには、以下のコマンドをコピーして実行します。

docker images 

この例では、前の手順で読み込んだ datarobot/datarobot-portable-prediction-apiイメージを確認できます。

docker images
REPOSITORY                                    TAG           IMAGE ID       CREATED        SIZE
datarobot/datarobot-portable-prediction-api   9.0.0-r4582   df38ea008767   29 hours ago   17GB 

ディスクスペースの節約

(オプション)圧縮されたイメージアーカイブdatarobot-portable-prediction-api-<version>.tar.gzは、正常に読み込めたら削除することで、ディスクスペースを節約できます(オプション)。

コードスニペットでのPPSの起動

モデルパッケージをダウンロードしてDocker PPSイメージを設定したら、関連するdocker runコードスニペットを使用して、ダウンロードしたモデルパッケージでポータブル予測サーバーを起動することができます。

デプロイされたモデルからのこちらのコードスニペット例では、以下にハイライトされたオプションを設定する必要があります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
docker run \
-p 8080:8080 \
-v <local path to model package>/:/opt/ml/model/ \
-e PREDICTION_API_MODEL_REPOSITORY_PATH="/opt/ml/model/<model package file name>" \
-e PREDICTION_API_MONITORING_ENABLED="True" \
-e MLOPS_DEPLOYMENT_ID="6387928ebc3a099085be32b7" \
-e MONITORING_AGENT="True" \
-e MONITORING_AGENT_DATAROBOT_APP_URL="https://app.jp.datarobot.com" \
-e MONITORING_AGENT_DATAROBOT_APP_TOKEN="<your api token>" \
datarobot-portable-prediction-api 
  • -v <local path to model package>/:/opt/ml/model/ \: ダウンロードしたモデルパッケージの場所へのローカルな絶対ファイルパスを指定します。 -v(または --volume)オプションのバインドでボリュームをマウントし、( <local path to model package>の)ローカルモデルパッケージディレクトリの内容をDockerコンテナの/opt/ml/modelボリュームに追加します。

  • -e PREDICTION_API_MODEL_REPOSITORY_PATH="/opt/ml/model/<model package file name>" \: /opt/ml/model/ボリュームにマウントされたモデルパッケージのファイル名を指定します。 これにより、PPSがモデルパッケージを見つけられる場所を示す環境変数PREDICTION_API_MODEL_REPOSITORY_PATHが設定されます。

  • -e MONITORING_AGENT_DATAROBOT_APP_TOKEN="<your api token>" \: 監視目的で、DataRobotの開発者ツールからAPIトークンを提供します。 これにより、環境変数MONITORING_AGENT_DATAROBOT_APP_TOKENが設定され、PPSがAPIキーを見つけられるようになります。

  • datarobot-portable-prediction-api:この行を、使用しているPPSイメージのイメージ名とバージョンで置き換えます。 例:datarobot/datarobot-portable-prediction-api:<version>

dockerタグを使用してイメージに名前とタグを付ける

あるいは、docker tagを使用して新しいイメージにlatestというタグを付けてdatarobot-portable-prediction-apiに名前を変更すれば、最後の行にdatarobot-portable-prediction-apiを残すことができます。

この例では、Dockerはイメージの名前を変更し、9.0.0-r4582タグをlatestタグで置き換えています。

docker tag datarobot/datarobot-portable-prediction-api:9.0.0-r4582 datarobot-portable-prediction-api:latest 

新しいタグと名前を確認するには、もう一度docker imagesコマンドを使用します。

docker images
REPOSITORY                                    TAG           IMAGE ID       CREATED        SIZE
datarobot/datarobot-portable-prediction-api   9.0.0-r4582   df38ea008767   29 hours ago   17GB
datarobot-portable-prediction-api             latest        df38ea008767   29 hours ago   17GB 

セットアップを完了したら、Dockerスニペットを使用して、単一または複数モデルのポータブルリアルタイム予測の実行や、ポータブルバッチ予測の実行ができます。 PPSを使用した予測ジョブの追加の例も参照してください。 PPSは、メインのDataRobotインストール環境から切り離して実行することができます。 開始すると、イメージは:8080ポートを介してHTTP APIを提供します。

FIPS対応モデルパッケージのPPSを実行する

ENABLE_FIPS_140_2_MODE: true (クラスターレベルのconfig.yamlファイルで)DataRobotクラスターを設定すると、そのクラスターは、ENABLE_FIPS_140_2_MODE: trueのPPSを起動する必要がある.mlpkgファイルを構築します。 このため、FIPS対応モデルと標準モデルを、同じPPSインスタンスでホストできません。

FIPS対応モデルをサポートしてPPSを実行するには、 docker runに、次の引数を含めることができます。

-e  ENABLE_FIPS_140_2_MODE="true" 

PPSコンテナ起動のフルコマンドは、以下の例のようになります。

docker run 
-td 
-p 8080:8080 
-e PYTHON3_SERVICES="true" 
-e ENABLE_FIPS_140_2_MODE="true" 
-v <local path to model package>/:/opt/ml/model 
--name portable_predictions_server  
--rm datarobot/datarobot-portable-prediction-api:<version> 

スコアリングコード

スコアリングコードを使用すると、DataRobotで生成済みモデルをJARファイルとしてエクスポートして、プラットフォームの外部で使用できます。 モデルのデプロイからモデルのスコアリングコードをエクスポートします。ダウンロードには、コンパイル済みのJARファイル(すべての依存関係を含む)とソースコードのJARファイルが含まれます。 エクスポートした後、モデルのソースコードを表示することで、DataRobotでの予測の生成手順について理解を深めることができます。

スコアリングコードJARには、予測モデルのJavaスコアリングコードが含まれています。 予測計算ロジックはDataRobot APIと同じです(コード生成メカニズムによって、生成プロセスの一部として各モデルの精度がテストされます)。 生成コードは、DataRobotアプリケーションに依存せず、どの環境にも簡単にデプロイできます。

DataRobotはスコアリングコードがあるモデルをどのように判断しますか?

スコアリングコード機能を有効にすると、DataRobotでは、各ブループリントの前処理のステップのJava代替が生成され、その結果が検定セット上で元の結果と比較されます。 結果の差分が0.00001よりも大きい場合、DataRobotでは、スコアリングコードをダウンロードするオプションは提供されません。 この方法により、元のモデルと同じ予測がスコアリングコードJARモデルで生成されることが保証されます。

Scoring Code considerations

For information on Scoring Code support, see the Scoring Code considerations.

スコアリングコードをダウンロードする

DataRobotプラットフォームの外部で使用するために、モデルのスコアリングコードは、コンパイル済みのJARファイル(すべての依存関係を含む)としてダウンロードできます。 このトピックでは、デプロイからスコアリングコードをダウンロードする方法について説明します。

コンソールデプロイタブで、スコアリングコード対応のデプロイ(DataRobotの構築環境)を開き、予測 > ポータブル予測タブに移動して、以下に説明するフィールドに入力します。

要素 説明
1 スコアリングコード DataRobotモデルを含むJavaパッケージを提供。 ポータブル予測法の下で、スコアリングコードを選択します。
2 監視エージェントを含める スコアリングコードでMLOpsエージェントをダウンロード。
3 予測の説明を含める/予測間隔を含める(時系列) モデルタイプに応じて、以下のいずれかの予測オプションを有効にします:
  • スコアリングコードを使用して、予測の説明を計算するコードを含めます。 これにより、コマンドラインオプションを追加して、スコアリングコードから予測の説明を取得できます。--with-explanations。 詳細については、コマンドラインでのスコアリングを参照してください。
  • 時系列デプロイの場合、スコアリングコードを使用して、予測の説明を計算するコードを含めます。 これにより、コマンドラインオプション--interval_length=<integer value from 1 to 99>を追加することで、スコアリングコードから予測間隔(1から99)を取得できます。 詳細については、コマンドラインでのスコアリングを参照してください。
4 シークレットを表示 For CLI code snippets, displays any secrets hidden by ***** in the code snippet. コードスニペットでシークレットを公開すると、APIキーやdatarobot-keyを取得する便利な方法を提供できます。ただし、これらのシークレットは、セキュリティ上の理由でデフォルトでは非表示になっているため、慎重に処理してください。
5 使用例 Provides a code example that calls the Scoring Code using the selected method: Python (Python API), Java (Java API), or CLI (command line interface). 場所を選択すると、下に表示されているスニペット例が対応する言語に更新されます。
6 クリップボードにコピー スコアリングコードの例をクリップボードにコピーして、IDEやコマンドラインに貼り付けられるようにします。
7 準備とダウンロード Depending on the options selected above, select either of the following download methods:
  • Java package: Downloads the Scoring Code as a Java package. The package contains compiled Java executables, which include all dependencies and can be used to make predictions.
  • Source code: Downloads Java source code files. これらは非難読化バージョンのモデルです。これらのモデルコンパイルされておらず、依存パッケージが含まれていないので、モデルのスコアリングには使用できません。 ソースファイルを使用して、モデルの意思決定プロセスを確認できます。 このオプションは、監視エージェントと予測の説明が有効になっていない場合にのみ使用できます。

ヒント

DataRobot予測ライブラリを利用すると、DataRobotがサポートするさまざまな予測方法を用いた予測をPython APIで行うことができます。 ライブラリは予測を行うための共通のインターフェイスを提供するので、ベースとなる実装を簡単に交換できます。 ライブラリには、スコアリングコードJARファイルが必要であることに注意してください。

Once the settings are configured, click Prepare and download.

注意

2020年3月以前の料金プランが適用されている場合、スコアリングコードをダウンロードすると、永続的なデプロイとなり、削除できなくなります。 注意メッセージが表示され、この条件を受け入れるように求められます。 Use the toggle to indicate your understanding, then click Prepare and download.

スコアリングコードのダウンロードが完了したら、タブで提供されるスニペットを使用して、スコアリングコードを呼び出します。 たとえば、MLOpsエージェントtarballドキュメントをリファレンスします。これは、開発者ツールページからダウンロードできます。 モニタリングスニペットを使用してMLOpsエージェントと連携することも可能です。


更新しました September 18, 2024