Skip to content

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

カスタム環境の作成

本機能の提供について

Custom execution environment management in NextGen is on by default.

Feature flag: Enable Custom Execution Environments NextGen UI

Once uploaded into DataRobot, custom models, jobs, applications, and notebooks run inside of environments—Docker containers running in Kubernetes. つまり、DataRobotは、カスタムタスクを定義するアップロードされたファイルをコンテナにコピーします。 DataRobotにはさまざまなビルトイン環境が用意されているので、ほとんどの場合、カスタム環境を追加する必要はありません。 For more information on creating a custom environment for custom models, review the guidelines below.

Custom model environment guidelines

Python and/or R packages can be easily added to these environments by uploading a requirements.txt file with the code. A custom environment is only required when a custom model:

  • 追加のLinuxパッケージが必要な状況。
  • 別のオペレーティングシステムが必要な状況。
  • Python、R、Java以外の言語を使用する状況。

このドキュメントでは、これらのケースでカスタム環境を構築する方法について説明します。 カスタム環境をローカルで構築してテストするには、Docker Desktopと DataRobotユーザーモデル(DRUM)のCLIツールの両方をマシンにインストールします。

備考

環境テンプレートを使用することをお勧めします。特定のユースケースを除き、独自の環境を構築することは推奨されません。 (DRUMを使用せず、独自の予測サーバーを実装する場合など)

テンプレート環境でサポートされていないツール、言語、またはフレームワークを使用する場合は、独自に作成できます。 DataRobotでは、提供された環境を必要に応じて変更することをお勧めします。ただし、使いやすく再利用可能な環境を作成するには、次のガイドラインに従う必要があります。

  • 環境には、必要な要件をインストールするDockerfileが含まれている必要があります。

  • カスタムモデルには、予測を行うための単純なウェブサーバーが必要です。 DataRobotでは、複数のモデルで再利用できるように、これを環境内に置くことをお勧めします。 ウェブサーバーはポート8080でリッスンし、次のルートを実装する必要があります。

    URL prefix environment variable

    URL_PREFIXはランタイムで使用可能な環境変数です。 以下のルートに追加する必要があります。

    必須エンドポイント 説明
    GET /URL_PREFIX/ このルートは、モデルのサーバーが実行されているかどうかを確認するために使用されます。
    POST /URL_PREFIX/predict/ このルートは予測の作成に使用されます。
    オプションの拡張エンドポイント 説明
    GET /URL_PREFIX/stats/ このルートは、DataRobotカスタムモデルテストのメモリー使用量データを取得するために使用されます。
    GET /URL_PREFIX/health/ このルートは、モデルがロードされ、正常に機能するかどうかを確認するために使用されます。 モデルの読み込みに失敗した場合、513レスポンスコードを含むエラーが返されます。 このケースを処理しないと、バックエンドk8sコンテナがクラッシュし、数分間の再起動ループに入ることがあります。
  • モデルサーバーを起動するには、実行可能なstart_server.shファイルが必要です。

  • すべてのコードおよびstart_server.shは、Dockerfileによって/opt/code/にコピーする必要があります。

備考

完全なAPI仕様の詳細については、 DRUMサーバーAPIyamlファイルを参照してください。

カスタムモデルの環境変数

DRUMでカスタム環境を構築する場合、カスタムモデルコードは、 DataRobotクライアントMLOps Connected Clientへのアクセスを容易にするために挿入された複数の環境変数を参照できます。

環境変数 説明
MLOPS_DEPLOYMENT_ID カスタムモデルがデプロイモードで実行されている場合(カスタムモデルがデプロイされている場合)、デプロイIDを使用できます。
DATAROBOT_ENDPOINT カスタムモデルに パブリックネットワークアクセスがある場合、DataRobotエンドポイントURLを使用できます。
DATAROBOT_API_TOKEN カスタムモデルに パブリックネットワークアクセスがある場合、DataRobot APIトークンを使用できます。

環境の作成

DRUMのインストールが完了したら、GitHubにある例の1つをコピーして環境作成を開始します。 このリンクをクリックする前にGitHubにログインしてください。 以下を確認してください。

  • 環境コードは単一のフォルダーに保存されます。

  • env_info.jsonファイルを削除します。

Linuxパッケージの追加

Linuxパッケージを環境に追加するには、dockerfileの先頭の、FROM datarobot…の行の直後にコードを追加します。 Ubuntuベース用のdockerfile構文を使用します。 たとえば、次のコマンドはDataRobotにどのベースを使用するかを指示し、そしてDockerイメージ内にパッケージfooboomooをインストールするよう指示します。

FROM datarobot/python3-dropin-env-base
RUN apt-get update --fix-missing && apt-get install foo boo moo 

Python/Rパッケージの追加

場合によっては、Python/Rのパッケージを環境に含めたい場合があります。 その場合は、以下の点に注意してください。

  • インストールするパッケージをrequirements.txtに表示します。 Rパッケージの場合、バージョンはリストに含めません。

  • PythonとRのパッケージを同じrequirements.txtファイルに混在させないでください。 その代わり、複数のファイルを作成し、dockerfileを調整して、DataRobotがそれらを見つけて使用できるようにします。

ローカルで環境をテストする

次の例では、DockerツールとDRUMを使って環境をすばやくテストする方法を示しています。 カスタムタスクをカスタム環境と一緒にテストするには、タスクの内容が保存されているローカルフォルダーに移動します。 以下を実行し、< >ブラケットの中のプレースホルダー名を実際の名前に置き換えてください。

``` sh
drum fit --code-dir <path_to_task_content> --docker <path_to_a_folder_with_environment_code> --input <path_to_test_data.csv> --target-type <target_type> --target <target_column_name> --verbose 
```

更新しました June 19, 2024