Skip to content

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

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

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

  • モデルコンテンツは、PythonまたはRで記述されたコードです。 DataRobotで正しく解析するには、コードは特定の条件に従う必要があります。 モデルアーティファクトの構造は、モデルで使用されるライブラリと一致する必要があります。 さらに、Python、R、およびJavaモデルに適切な カスタムフックを使用する必要があります。 (Optional) You can add files that will be uploaded and used together with the model’s code (for example, you might want to add a separate file with a dictionary if your custom model contains text preprocessing).

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

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

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

  2. (Optional) Create a container environment where the model will run.

  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() 構造化 モデルの予測に適用される後処理ステップを定義します。

備考

これらのフックはリストされた順序で実行されます。

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

モデルメタデータ

メタデータを定義するには、model-metadata.yamlファイルを作成して、モデルまたはモデルのディレクトリのトップレベルに置きます。 ファイルは、カスタムモデルに関する追加情報を指定します。

モデル環境

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

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

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

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

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


更新しました February 20, 2024