Skip to content

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

カスタムモデルコンポーネント

カスタムモデルを作成してアップロードするには、2つのコンポーネント、つまりモデルコンテンツと、そのモデルコンテンツが実行される環境を定義する必要があります。

  • モデルコンテンツは、PythonまたはRで記述されたコードです。 DataRobotで正しく解析するには、コードは特定の条件に従う必要があります。 モデルアーティファクトの構造は、モデルで使用されるライブラリと一致する必要があります。 さらに、Python、R、およびJavaモデルに適切な カスタムフックを使用する必要があります。 (オプション)アップロードしてモデルのコードとともに使用するファイルを追加できます(たとえば、カスタムモデルにテキスト前処理が含まれている場合、別のファイルに辞書を追加したい場合があります)。

  • モデル環境は、Dockerファイルと追加のファイルを使用して定義されます。この機能により、DataRobotはモデルが実行されるイメージを構築できます。 さまざまなビルトイン環境があります。ユーザーはLinuxパッケージをインストールする必要がある場合にのみ独自の環境を構築する必要があります。 詳細については、 カスタムモデル環境に関するセクションを参照してください。

高レベルでは、これらのコンポーネントのあるカスタムモデルを定義するステップには以下が含まれます。

  1. ローカル(コンピューター)でモデルコンテンツを定義してテストします。

  2. (オプション)モデルを実行するコンテナ環境を作成します。

  3. モデルコンテンツと環境(該当する場合)をDataRobotにアップロードします。

モデルコンテンツ

カスタムモデルを定義するには、以下のテーブルにリストされているファイルを含むローカルフォルダーを作成します(詳細については表を参照してください)。

ヒント

構築済みのカスタムモデルフォルダーのコンテンツが正しいことを確認するために、これらのファイルの例がGitHubの DataRobotモデルテンプレートリポジトリにあります。

ファイル 説明 必須
モデルアーティファクトファイル
または
custom.py/custom.Rファイル
モデルアーティファクトおよびカスタムコードファイルを提供します。
  • モデルアーティファクト:選択した環境言語に対応するファイル拡張子のあるシリアル化されたモデルアーティファクト。
  • カスタムコード:DataRobotがコードを実行し、それを他の機能と統合できるようにするフック(または関数)で実装されたカスタム機能。
はい
model-metadata.yaml 入/出力データ要件や ランタイムパラメーターを含むモデルのメタデータを記述したファイル。 ブループリントを構築してトレーニングする際にモデルを検証するために使用できるスキーマを供給できます。 スキーマを使用してカスタムモデルがサポートするか出力するかを指定できます。
  • 特定のデータ型
  • 個の値が欠如しています
  • スパースデータ
  • 特定の列数
カスタムモデルが非数値データを出力するときに必要です。 提供しない場合、デフォルトスキーマが使用されます。
requirements.txt 基本環境に追加するPythonまたはRパッケージのリスト。 このリストは、カスタムモデルで使用されるが、基本環境には含まれていないPythonまたはRパッケージをプレインストールします。 いいえ
追加ファイル モデルで使用するその他のファイル(たとえば、custom.py内で使用するヘルパー関数を定義するファイル)。 いいえ

Pythonでは、バージョン(行に1つのパッケージ)でパッケージのリストを提供します。 例:

numpy>=1.16.0, <1.19.0
pandas==1.1.0
scikit-learn==0.23.1
lightgbm==3.0.0
gensim==3.8.3
sagemaker-scikit-learn-extension==1.1.0 

Rでは、バージョン(行に1つのパッケージ)でパッケージのリストを提供します。 例:

dplyr
stats 

モデルコード

DataRobotのフレームワークを使用してカスタムモデルを定義するには、カスタムモデルには、選択した環境言語に対応するモデルアーティファクト、custom.py(Pythonモデルの場合)またはcustom.R(Rモデルの場合)ファイルのカスタムコード、またはその両方が含まれている必要があります。 (モデルアーティファクトなしで)カスタムコードのみを指定する場合は、load_modelフックを使用する必要があります。 フックは、カスタムモデルのライフサイクル内の特定の時間中に、カスタムモデルフレームワークによって呼び出される関数です。 以下のフックはカスタムコードで使用できます。

フック(機能) 非構造化 / 構造化 目的
init() 両方 モデルライブラリをロードしてモデルファイルを読み取り、モデル実行を初期化します。 このフックは、実行の開始時に1回だけ実行されます。
load_model() 両方 複数のアーティファクトからすべてのサポート対象オブジェクトとトレーニング済みオブジェクトをロードするか、DataRobotでネイティブにはサポートされていない形式でアーティファクトに保存されているトレーニング済みオブジェクトをロードします。 このフックは、実行の開始時に1回だけ実行されます。
read_input_data() 構造化 モデルがデータを読み取る方法をカスタマイズします。例えば、エンコーディングや欠損値の処理などです。
transform() 構造化 変換されたデータを生成するために、カスタムのトランスフォーマーおよび推定器で使用されるロジックを定義します。
score() 構造化 予測を生成するカスタム推定器で使用するロジックを定義します。
score_unstructured 非構造化 カスタム推定器の出力を定義し、出力データに予測を返します。 変換モデルにこのフックは使用しないでください。
post_process() 構造化 モデルの予測に適用される後処理ステップを定義します。

カスタムモデルのフック実行順序

それぞれのフックがカスタムモデルのライフサイクルステップを表すように、これらのフックは、リストされた順序で実行されます。

カスタムモデルのコードの定義に関する詳細については、 構造化カスタムモデルまたは 非構造化カスタムモデルのフックを参照してください。

モデルメタデータ

To define a custom model's metadata and input validation schema, create a model-metadata.yaml file and add it to the top level of the model/model directory. このファイルでは、runtimeParameterDefinitionsによる ランタイムパラメーターなど、カスタムモデルに関する追加情報を指定します。

モデル環境

カスタムモデルが実行される環境を定義するための複数のオプションがあります。 以下を実行することが可能です。

  • さまざまな ドロップイン環境から選択します。

  • モデルのrequirements.txtファイルでパッケージを指定して、欠損しているPythonパッケージまたはRパッケージを含めるようにドロップイン環境を変更します。 提供された場合、requirements.txtをモデルコンテンツ内のcustom.pyまたはcustom.Rと共にアップロードする必要があります。 モデルコンテンツにサブフォルダーが含まれている場合、上部フォルダーに置く必要があります。

  • Linuxパッケージをインストールする必要がある場合、 カスタム環境を構築してください。

    カスタムモデルを作成する場合、使用するカスタム環境にはモデルコンテンツとの互換性がある必要があります(モデルのランタイム環境が定義されます)。 互換性ガイドラインを確実に遵守するには:

  • デフォルトでは、モデルのバージョンを作成するとき、選択された実行環境が変更されない場合、その実行環境のバージョンは、より新しい環境のバージョンが利用可能であっても、以前のカスタムモデルのバージョンから維持されます。 For more information on how to ensure the custom model version uses the latest version of the execution environment, see Trigger base execution environment update.

Trigger base execution environment update

To override the default behavior for execution environment version selection, where the execution environment version persists between custom model versions even when a new environment version is available, you must temporarily change the Base Environment setting. To do this, create a new custom model version using a different Base Environment setting, then create a new custom model version, switching back to the intended Base Environment. この変更後、カスタムモデルの最新バージョンでは、実行環境の最新バージョンが使用されます。


更新しました June 7, 2024