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 A file describing model's metadata, including input/output data requirements and runtime parameters. ブループリントを構築してトレーニングする際にモデルを検証するために使用できるスキーマを供給できます。 スキーマを使用してカスタムモデルがサポートするか出力するかを指定できます。
  • 特定のデータ型
  • 個の値が欠如しています
  • スパースデータ
  • 特定の列数
カスタムモデルが非数値データを出力するときに必要です。 提供しない場合、デフォルトスキーマが使用されます。
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フックを使用する必要があります。 A hook is a function called by the custom model framework during a specific time in the custom model lifecycle. 以下のフックはカスタムコードで使用できます。

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

Custom model hook execution order

These hooks are executed in the order listed, as each hook represents a step in the custom model lifecycle.

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

モデルメタデータ

メタデータを定義するには、model-metadata.yamlファイルを作成して、モデルまたはモデルのディレクトリのトップレベルに置きます。 The file specifies additional information about a custom model, including runtime parameters through runtimeParameterDefinitions.

モデル環境

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

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

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

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

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


更新しました April 8, 2024