カスタム環境¶
カスタムモデルは、DataRobotにアップロードされると、Kubernetes上で動作するDockerコンテナという環境の中で実行されます。 つまり、DataRobotは、カスタムタスクを定義するアップロードされたファイルをコンテナにコピーします。 DataRobotにはさまざまなビルトイン環境が用意されているので、ほとんどの場合、カスタム環境を追加する必要はありません。 タスクのコードを記載したrequirements.txt
ファイルをアップロードすることにより、これらの環境にPythonやRのパッケージを容易に追加できます。 カスタム環境が必要なのは、カスタムタスクが次の状況にある場合だけです。
- 追加のLinuxパッケージが必要な状況。
- 別のオペレーティングシステムが必要な状況。
- Python、R、Java以外の言語を使用する状況。
このドキュメントでは、これらのケースでカスタム環境を構築する方法について説明します。 カスタム環境をローカルで構築してテストするには、Docker Desktopと DataRobotユーザーモデル(DRUM)のCLIツールの両方をマシンにインストールします。
カスタム環境ガイドライン¶
備考
環境テンプレートを使用することをお勧めします。特定のユースケースを除き、独自の環境を構築することは推奨されません。 (DRUMを使用せず、独自の予測サーバーを実装する場合など)
テンプレート環境でサポートされていないツール、言語、またはフレームワークを使用する場合は、独自に作成できます。 DataRobotでは、提供された環境を必要に応じて変更することをお勧めします。ただし、使いやすく再利用可能な環境を作成するには、次のガイドラインに従う必要があります。
-
環境には、必要な要件をインストールするDockerfileが含まれている必要があります。
-
カスタムモデルには、予測を行うための単純なウェブサーバーが必要です。 DataRobotでは、複数のモデルで再利用できるように、これを環境内に置くことをお勧めします。 ウェブサーバーはポート
8080
でリッスンし、次のルートを実装する必要があります。備考
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イメージ内にパッケージfoo
、boo
、moo
をインストールするよう指示します。
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を使って環境をすばやくテストする方法を示しています。
-
カスタムタスクをカスタム環境と一緒にテストするには、タスクの内容が保存されているローカルフォルダーに移動します。
-
以下を実行し、
< >
ブラケットの中のプレースホルダー名を実際の名前に置き換えてください。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
DataRobotにカスタム環境を追加¶
カスタム環境を作成するには、.tar
、.tar.gz
、または.zip
形式の圧縮フォルダーをアップロードする必要があります。 作業を続ける前に、カスタム環境フォルダーの準備に関するガイドラインを確認してください。 ドロップイン環境は、スコアリングコードとstart_server.sh
ファイルを環境フォルダーに追加することによって作成することもできます。
以下に示す環境数と環境バージョン数の上限に注意してください。
バッジ | 説明 |
---|---|
環境数は上限の75%未満です。 | |
環境数は上限の75%以上です。 | |
環境数が上限に達しました。 最初に環境を削除しないと、環境を追加することはできません。 |
モデルレジストリ > カスタムモデルワークショップに移動し、環境タブを選択します。 このタブには、DataRobotが提供する環境と自分の作成した環境が一覧表示されます。 新しい環境を追加をクリックして環境の詳細を設定し、ワークショップに追加します。
新しい環境を追加ダイアログボックスのフィールドに入力します。
フィールド | 説明 |
---|---|
環境名 | 環境の名前。 |
アップロードするファイルを選択してください | Dockerfileおよびその他の関連ファイルを含むtarballアーカイブ。 |
プログラミング言語 | 環境が作られた言語。 |
説明(任意) | カスタム環境に関するオプションの説明。 |
すべてのフィールドに入力して追加をクリックします。 カスタム環境をワークショップで使用する準備が整います。
環境をアップロードすると、他の個人と共有しない限り、その環境は自分だけが利用できます。
既存の環境に変更を加える場合は、新しいバージョンを作成します。
環境バージョンの追加¶
ワークショップにカスタム環境の新規バージョンを追加して、トラブルシューティングまたは更新します。 バージョンタブで、新しいバージョンを選択します。
新規バージョンのファイルをアップロードし、簡単な説明をしてから、追加をクリックします。
バージョンタブで新規バージョンを使用でき、過去の環境バージョンは後で使用できるように保存されます。
デフォルトでは、モデルのバージョンを作成するとき、選択された実行環境が変更されない場合、その実行環境のバージョンは、より新しい環境のバージョンが利用可能であっても、以前のカスタムモデルのバージョンから維持されます。 カスタムモデルのバージョンが最新バージョンの実行環境を使用するようにする方法の詳細については、 基本実行環境の更新をトリガーするを参照してください。
基本実行環境の更新をトリガーする
新しい環境バージョンが使用可能であっても、実行環境バージョンがカスタムモデルバージョン間で保持される、実行環境バージョン選択のデフォルトの動作をオーバーライドするには、基本環境の設定を一時的に変更する必要があります。 これを行うには、別の基本環境設定を使用して新しいカスタムモデルバージョンを作成してから、目的の基本環境に切り替えて、新しいカスタムモデルバージョンを作成します。 この変更後、カスタムモデルの最新バージョンでは、実行環境の最新バージョンが使用されます。
環境情報の表示¶
各カスタム環境およびビルトイン環境用のさまざな情報が用意されています。 表示方法:
-
モデルレジストリ > カスタムモデルワークショップ > 環境 に移動します。 表示されるリストには、ユーザーのアカウントで利用できるすべての環境が、サマリー情報とともに表示されます。
-
個々の環境の詳細については、クリックして選択します。
バージョンタブには、バージョン固有のさまざまな情報が表示され、そのバージョンの環境コンテキストファイルをダウンロードするためのリンクが表示されます。
-
現在のデプロイをクリックすると、現在の環境が使用されているすべてのデプロイのリストが表示されます。
-
環境情報をクリックすると、バージョン情報を含まない一般的な環境に関する情報が表示されます。
環境の共有とダウンロード¶
カスタム環境は、右のメニューオプションから組織内の誰とでも共有することができます。 これらのオプションは、組織のすべてのメンバーがアクセスするので、ビルトイン環境では使用できません。これらの環境オプションは削除しないでください。
備考
タスクまたは環境は、明示的に共有されていない限り、モデル登録で他のユーザーが利用することはできません。 しかし、それは、ユーザーがそのタスクを含むブループリントを使用することを制限するものではありません。 詳細については暗黙の共有の説明を参照してください。
モデルレジストリ > カスタムモデルワークショップ > 環境 から、メニューを使用して、ユーザーが適切な権限を持つカスタム環境を共有および/または削除することができます。 (リンク先はカスタムモデルのアクションですが、カスタムのタスクと環境でのオプションは同じであることに注意してください。)
セルフマネージドAIプラットフォームの管理者¶
以下は、セルフマネージドAIプラットフォームでのみ利用可能です。
環境可用性¶
各カスタム環境はパブリックまたはプライベートのいずれかです(デフォルト可用性)。 環境をパブリックにすると、同じDataRobotインストールの一部である他のユーザーは、オーナーが明示的にシェアまたはユーザーが独自のバージョンを作成またはアップロードすることなく使用できます。 プライベート環境は、オーナーおよび環境が共有されているユーザーだけが表示できます。 カスタム環境をパブリックにする場合は、DataRobotシステム管理者にお問い合わせください。