モデルメタデータおよび検証スキーマ¶
model-metadata.yaml
ファイルは、次に示すような、カスタムタスクまたはカスタム推論モデルの追加情報の指定に使用されます。
-
ブループリントの作成時にタスクの入出力要件の隣接タスクとの一致を検証する、サポートされている入出力データ型。
-
drum push
実行中のタスクまたはモデルの環境IDおよびモデルID。
メタデータを定義するには、model-metadata.yaml
ファイルを作成して、タスクまたはモデルのディレクトリのトップレベルに置きます。 この手順はほとんどのケースで省略できますが、カスタムタスクが非数値データを出力する場合のカスタム変換タスクには必要です。 model-metadata.yaml
は、custom.py
と同じフォルダーにあります。
以下のセクションでは、カスタムモデルとカスタムタスクのメタデータを定義する方法について説明します。 詳細については、DRUMリポジトリのカスタムモデルとタスクの完全な例を参照してください。
一般的なメタデータのパラメーター¶
次の表で、タスクや推論モデルで利用可能なオプションについて説明します。 drum push
を使用して、作成するモデル/タスク/バージョンに関する情報を提供するには、そのパラメーターが必要です。 一部のパラメーターは、互換性の理由から、drum push
以外でも必要です。
備考
そのmodelID
パラメーターは、指定されたIDを持つ既存のカスタムモデルやカスタムタスクに新しいバージョンを追加します。 このため、新しいベースレベルのカスタムモデルやカスタムタスクを構成するすべてのオプションは、このパラメーターと一緒に渡された場合、無視されます。 ただし、現時点ではまだこれらのパラメーターを含める必要があります。
オプション | 必要な場合 | タスクまたは推論モデル | 説明 |
---|---|---|---|
name |
常時 | 両方 | drum push がカスタムモデルのタイトルとして使用する文字列で、検索を容易にするため、ユニークなものにすることが望ましいです。 |
type |
常時 | 両方 | training (カスタムタスク用)またはinference (カスタム推論モデル用)のいずれかの文字列です。 |
environmentID |
常時 | 両方 | カスタムモデルやカスタムタスクの実行中に使用する実行環境のハッシュです。 利用可能な実行環境の一覧は、モデルレジストリ > カスタムモデルワークショップ > 環境で確認できます。 環境を展開して、環境情報タブをクリックすると、ファイルIDが表示され、コピーできます。 drum push の場合のみに必要です。 |
targetType |
常時 | 両方 | ターゲットのタイプを示す文字列です。 次のいずれかである必要があります: • binary • regression • anomaly • unstructured (推論モデルのみ) • multiclass • textgeneration (推論モデルのみ)• transform (変換タスクのみ) |
modelID |
オプション | 両方 | モデルやタスクの作成後に、バージョン管理を使って反復しながらコードを追加することがベストプラクティスです。 新しいモデルやタスクの代わりに新しいバージョンを作成する場合は、このフィールドを使用して作成したカスタムのモデルやタスクをリンクします。 このID(ハッシュ)は、カスタムのモデルやタスクのURLを介して、UIから取得できます。 drum push でのみ使用します。 |
description |
オプション | 両方 | 検索可能なフィールドです。 modelID が設定されている場合、モデルやタスクの説明の変更にはUIを使います。 drum push でのみ使用します。 |
majorVersion |
オプション | 両方 | このパラメーターで、作成するモデルのバージョンをメジャー(True 、デフォルト)または、マイナー(False )のどちらの更新バージョンにするか指定します。 たとえば、更新前のモデルのバージョンが2.3の場合、メジャーなら3.0、マイナーなら2.4の更新バージョンが作成されます。drum push にのみ使用します。 |
targetName |
常時 | モデル | inferenceModel では、モデルが予測するデータ内の列を示す文字列。 |
positiveClassLabel / negativeClassLabel |
二値分類モデル用 | モデル | inferenceModel では、モデルが確率を予測する場合、positiveClassLabel は予測がどのクラスに対応するかを示します。 |
predictionThreshold |
オプション(二値分類モデルでのみ使用) | モデル | inferenceModel では、予測ラベルとして選択されるラベルを示す、0と1の間のカットオフポイント。 |
trainOnProject |
オプション | タスク | モデルやバージョンのトレーニングを行う、プロジェクトID(PID)のハッシュ。 drum push を使用してカスタム推定タスクのテストとアップロードを行う場合、DataRobotへの推定タスクのアップロードに成功した直後に、シングルタスクのブループリントをトレーニングするオプションを選択できます。 trainOnProject オプションは、そのブループリントをトレーニングするプロジェクトを指定します。 |
検証スキーマとフィールド¶
model_metadata.yaml
内のtypeSchema
フィールドで定義されるスキーマ検証システムは、所定のカスタムタスク用に期待される入出力データ要件を定義するために使用されます。 オプションのinput_requirements
フィールドとoutput_requirements
フィールドを含めることにより、カスタムタスクが期待または出力するデータの種類を正確に指定できます。 DataRobotは指定した条件をプル―プリントエディターに表示して、近接するタスクがその条件と一致するかどうかを示します。 それらはブループリントのトレーニング中にも使用され、タスクのデータ形式が条件に一致するかどうかが検証されます。 サポートされる条件は次の通りです:
- データ型
- データのスパース性
- 列数
- 欠損値のサポート
備考
output_requirements
はカスタム変換タスクでのみサポートされており、推定タスクでは省略される必要がある点に注意してください。
以下のセクションでは、許可される条件と値について説明します。 特に明記されていない限り、入出力の要件として必要なのは1つのエントリーだけです。
data_types
¶
data_types
フィールドは、期待されるデータ型、あるいは特定的に許可しないデータ型を指定します。 input_requirements
には、単一のデータ型またはリストを指定できます。output_requirements
には、単一のデータ型のみを指定できます。
許可される値は、NUM、TXT、IMG、DATE、CAT、DATE_DURATION、COUNT_DICT、GEOです。
data_types
で使用できる条件は次のとおりです:
- EQUALS(等しい):データフレームには、リストされているすべてのデータ型が必要です。 データ型の欠損や予期しない型が含まれる場合は、エラーとなります。
- IN:リストされたすべてのデータ型をサポートしますが、そのすべてが存在する必要はありません。
- NOT_EQUALS:入力データフレームのデータ型はこの値であってはなりません。
- NOT_IN:このタスクはリストされたデータ型をいずれもサポートしません。
sparse
¶
sparse
フィールドは、タスクが疎データを入力としてサポートするか、またはタスクが疎形式の出力データを作成できるかを定義します。
- スパース性の仕様には常にEQUALS条件を含める必要があります。
入力の場合は次の値を適用します:
- FORBIDDEN:タスクは、疎行列形式を処理できません。もし提供された場合は処理が失敗します。
- SUPPORTED:このモデルは、CSR形式の密なデータフレームと疎データフレームの両方をサポートする必要があります。 どちらも前のタスクから渡されます。
- REQUIRED:タスクは、入力として疎行列のみをサポートし、密行列は使用できません。 DRUMの場合、行列を疎データフレームに読み込みます。
タスク出力の場合は次の値を適用します。
- NEVER:タスクは、疎データフレームを出力できません。
- DYNAMIC:タスクは、密行列または疎行列のいずれかを出力できます。
- ALWAYS:タスクは、常に疎行列を出力します。
- IDENTITY:タスクは、疎行列または密行列のいずれかを出力でき、スパース性は入力行列と一致します。
number_of_columns
¶
number_of_columns
フィールドは、特定の最小列数または最大列数のどちらか必要な方を指定します。 この値は負でない整数である必要があります。
時間のかかるタスクにおいて最大列数を指定すれば、パフォーマンスを妥当に保つことに役立ちます。 number_of_columns
フィールドでは、許容値の範囲を作成するための複数エントリーを可能にします。 一部の条件では1つのエントリーだけが許可されます(例を参照してください)。
データフレームのnumber_of_columns
で使用する条件は次のとおりです:
- EQUALS(等しい):列数とこの値は一致する必要があります。 追加条件は許可されません。
- IN:複数の可能な値が許容可能です。 値は値フィールドにリストとして提供されます。 追加条件は許可されません。
- NOT_EQUALS:列数は指定する値と一致してはなりません。
- GREATER_THAN:列数は提供された値よりも大きいことが必要です。
- LESS_THAN:列数は提供された値よりも小さいことが必要です。
- NOT_GREATER_THAN:列数は提供された値以下である必要があります。
- NOT_LESS_THAN:列数は提供された値以上である必要があります。
この値は負でない整数である必要があります。
contains_missing
¶
contains_missing
フィールドは、タスクが欠損データを承認できるか、欠損値を出力できるかを指定します。
- EQUALSの条件を常に使用する必要があります。
入力の場合、次の値が入力データフレームに適用されます。
- FORBIDDEN:タスクは、欠損値およびNAを承認することができません。
- SUPPORTED:タスクは、欠損値を処理できます。
タスク出力の場合は次の値を適用します。
- NEVER:タスクは、欠損値を出力できません。
- DYNAMIC:タスクは、欠損値を出力できます。
デフォルトスキーマ¶
タスクにスキーマが提供されていない場合、DataRobotはデフォルトスキーマを使用します。これにより、入力で疎データと欠損値が許可されます。 デフォルトは以下のとおりです。
name: default-transform-model-metadata
type: training
targetType: transform
typeSchema:
input_requirements:
- field: data_types
condition: IN
value:
- NUM
- CAT
- TXT
- DATE
- DATE_DURATION
- field: sparse
condition: EQUALS
value: SUPPORTED
- field: contains_missing
condition: EQUALS
value: SUPPORTED
output_requirements:
- field: data_types
condition: EQUALS
value: NUM
- field: sparse
condition: EQUALS
value: DYNAMIC
- field: contains_missing
condition: EQUALS
value: DYNAMIC
デフォルトの出力データ型はNUMです。 これらの値のいずれかがタスクに適していない場合、model-metadata.yaml
でスキーマを提供する必要があります(これは、非数値データを出力するカスタム変換タスクに必要です)。
ローカルチェックの実行¶
drum fit
またはdrum push
を実行すると、フルセットの検証が自動的に実行されます。 検証では最初に、提供されたtypeSchema
アイテムが要求された形式を満たしているかを確認します。 ローカルまたはDataRobotでタスクをトレーニングする前に、形式の問題に対処する必要があります。 形式の検証後、適合に使用される入力データセットが、提供されたinput_requirements
の仕様と比較されます。 タスクをトレーニングした後に、タスクの出力とoutput_requirements
が比較され、不一致が存在する場合はエラーが報告されます。
検証の無視¶
タスクの開発中は、検証の無効化が役立つ場合があります。 エラーを無視するには、drum fit
またはdrum push
で以下のコマンドを使用します。
--disable-strict-validation