# モデルメタデータおよび検証スキーマ

> モデルメタデータおよび検証スキーマ - model-metadata.yamlファイルを使用してカスタムタスクまたはカスタム推論モデルの追加情報を指定する方法。

This Markdown file sits beside the HTML page at the same path (with a `.md` suffix). It summarizes the topic and lists links for tools and LLM context.

Companion generated at `2026-07-23T18:01:59.810072+00:00` (UTC).

## Primary page

- [モデルメタデータおよび検証スキーマ](https://docs.datarobot.com/ja/docs/reference/pred-ai-ref/cml-ref/cml-validation.html.md): Full documentation for this topic (Markdown sidecar).

## Sections on this page

- [一般的なメタデータのパラメーター](https://docs.datarobot.com/ja/docs/reference/pred-ai-ref/cml-ref/cml-validation.html.md#general-metadata-parameters): In-page section heading.
- [推論モデルのメタデータ（inferenceModel）](https://docs.datarobot.com/ja/docs/reference/pred-ai-ref/cml-ref/cml-validation.html.md#inference-model-metadata): In-page section heading.
- [検証スキーマとフィールド](https://docs.datarobot.com/ja/docs/reference/pred-ai-ref/cml-ref/cml-validation.html.md#validation-schema-and-fields): In-page section heading.
- [data_types](https://docs.datarobot.com/ja/docs/reference/pred-ai-ref/cml-ref/cml-validation.html.md#data-types): In-page section heading.
- [sparse](https://docs.datarobot.com/ja/docs/reference/pred-ai-ref/cml-ref/cml-validation.html.md#sparse): In-page section heading.
- [number_of_columns](https://docs.datarobot.com/ja/docs/reference/pred-ai-ref/cml-ref/cml-validation.html.md#number-of-columns): In-page section heading.
- [contains_missing](https://docs.datarobot.com/ja/docs/reference/pred-ai-ref/cml-ref/cml-validation.html.md#contains-missing): In-page section heading.
- [デフォルトスキーマ](https://docs.datarobot.com/ja/docs/reference/pred-ai-ref/cml-ref/cml-validation.html.md#default-schema): In-page section heading.
- [ローカルチェックの実行](https://docs.datarobot.com/ja/docs/reference/pred-ai-ref/cml-ref/cml-validation.html.md#running-checks-locally): In-page section heading.
- [検証の無視](https://docs.datarobot.com/ja/docs/reference/pred-ai-ref/cml-ref/cml-validation.html.md#ignore-validation): In-page section heading.

## Documentation content

`model-metadata.yaml` ファイルは、次に示すような、カスタムタスクまたはカスタム推論モデルの追加情報の指定に使用されます。

- ブループリントの作成時にタスクの入出力要件の隣接タスクとの一致を検証する、サポートされている入出力データ型。
- drum push実行中のタスクまたはモデルの環境IDおよびモデルID。

メタデータを定義するには、 `model-metadata.yaml` ファイルを作成して、タスクまたはモデルのディレクトリのトップレベルに置きます。 この手順はほとんどのケースで省略できますが、カスタムタスクが非数値データを出力する場合のカスタム変換タスクには必要です。 `model-metadata.yaml` は、 `custom.py` と同じフォルダーにあります。

以下のセクションでは、カスタムモデルとカスタムタスクのメタデータを定義する方法について説明します。 詳細については、DRUMリポジトリの [カスタムモデル](https://github.com/datarobot/datarobot-user-models/blob/master/model_templates/python3_sklearn/model-metadata.yaml) と [タスク](https://github.com/datarobot/datarobot-user-models/blob/master/task_templates/1_transforms/1_python_missing_values/model-metadata.yaml) の完全な例を参照してください。

## 一般的なメタデータのパラメーター

次の表で、タスクや推論モデルで利用可能なオプションについて説明します。 `drum push` を使用して、作成するモデル/タスク/バージョンに関する情報を提供するには、そのパラメーターが必要です。 一部のパラメーターは、互換性の理由から、 `drum push` 以外でも必要です。

> [!NOTE] 備考
> その `modelID` パラメーターは、指定されたIDを持つ既存のカスタムモデルやカスタムタスクに新しいバージョンを追加します。 このため、新しいベースレベルのカスタムモデルやカスタムタスクを構成するすべてのオプションは、このパラメーターと一緒に渡された場合、無視されます。 ただし、現時点ではまだこれらのパラメーターを含める必要があります。

| オプション | 必要な場合 | タスクまたは推論モデル | 説明 |
| --- | --- | --- | --- |
| name | 常時 | 両方 | drum pushがカスタムモデルのタイトルとして使用する文字列で、検索を容易にするため、ユニークなものにすることが望ましいです。 |
| type | 常時 | 両方 | training（カスタムタスク用）またはinference（カスタム推論モデル用）のいずれかの文字列です。 |
| environmentID | 常時 | 両方 | カスタムモデルやカスタムタスクの実行中に使用する実行環境のハッシュです。 利用可能な実行環境の一覧は、モデルレジストリ > カスタムモデルワークショップ > 環境で確認できます。 環境を展開して、環境情報タブをクリックすると、ファイルIDが表示され、コピーできます。 drum pushの場合のみに必要です。 |
| targetType | 常時 | 両方 | ターゲットのタイプを示す文字列です。 次のいずれかである必要があります。binaryregressionanomalyunstructured（推論モデルのみ）multiclassmultilabel（推論モデルのみ）textgeneration（推論モデルのみ）agenticworkflow（推論モデルのみ）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内） | モデル | inferenceModelで、モデルが予測する列の名前。 多クラスおよび多ラベルの場合、ワークショップのターゲット名と同じ名前を使用し、classLabelsにはターゲットクラスまたはターゲットラベルと同じクラスまたはラベルの順序を使用します。 |
| positiveClassLabel / negativeClassLabel | 二値分類モデル用 | モデル | inferenceModelでは、モデルが確率を予測する場合、positiveClassLabelは予測がどのクラスに対応するかを示します。 |
| classLabels | 多クラスおよび多ラベル分類モデルの場合 | モデル | inferenceModelでは、クラス名またはラベル名（文字列）のリスト。 リスト順は、モデルが返す予測クラスまたはラベル確率の順序（たとえば、確率出力の列順）と一致している必要があります。 ワークショップでカスタムモデルに設定したターゲットクラスまたはターゲットラベルと同じラベルを使用します。 |
| predictionThreshold | オプション（二値分類モデルでのみ使用） | モデル | inferenceModelでは、予測ラベルとして選択されるラベルを示す、0と1の間のカットオフポイント。 |
| trainOnProject | オプション | タスク | モデルやバージョンのトレーニングを行う、プロジェクトID（PID）のハッシュ。 drum pushを使用してカスタム推定タスクのテストとアップロードを行う場合、DataRobotへの推定タスクのアップロードに成功した直後に、シングルタスクのブループリントをトレーニングするオプションを選択できます。 trainOnProjectオプションは、そのブループリントをトレーニングするプロジェクトを指定します。 |

## 推論モデルのメタデータ（inferenceModel）

構造化推論モデルの場合、ターゲットおよびクラスラベルの設定は、 `model-metadata.yaml` 内の最上位キー `inferenceModel` に属します。 DataRobotまたはDRUMが `targetType` に必要とするフィールドを省略すると、構築、テスト、またはデプロイが失敗する可能性があります。

| targetType | inferenceModelにおいて必須 | 備考 |
| --- | --- | --- |
| binary | targetName, positiveClassLabel, negativeClassLabel | オプション：predictionThreshold。 |
| multiclass | targetName, classLabels | classLabelsは、モデルの確率出力と同じ順序のクラス名のYAMLリストです。 |
| multilabel | targetName, classLabels | classLabelsは、モデルのラベルごとの確率出力と同じ順序で、少なくとも2つのラベル名を列挙したYAMLリストです。 各確率は0から1の間である必要があります。多クラスモデルとは異なり、ラベルの確率は互いに独立しており、合計が1.0になる必要はありません。 |
| regression | （多くの場合なし） | 多くの連続値テンプレートは、inferenceModelブロックなしで動作します。環境およびDRUMの要件に従ってください。 |
| anomaly、unstructured、textgeneration、… | テンプレート/DRUMに従います | ターゲットタイプの例を参照してください。 |

ワークショップで生成されたファイル： レジストリワークショップの アセンブル タブで、 model-metadata.yamlを作成 すると、モデルのターゲットタイプのスターターファイルが生成されます。 多クラスおよび多ラベルモデルの場合、そのファイルには `targetName` および `classLabels` （ ターゲットクラス または ターゲットラベル と一致）とともに `inferenceModel` が含まれており、デプロイを成功させるために必要な要件を満たしています。

## 検証スキーマとフィールド

`model_metadata.yaml` 内の `typeSchema` フィールドで定義されるスキーマ検証システムは、所定のカスタムタスク用に期待される入出力データ要件を定義するために使用されます。 オプションの `input_requirements` フィールドと `output_requirements` フィールドを含めることにより、カスタムタスクが期待または出力するデータの種類を正確に指定できます。 DataRobotは指定した条件をプル―プリントエディターに表示して、近接するタスクがその条件と一致するかどうかを示します。 それらはブループリントのトレーニング中にも使用され、タスクのデータ形式が条件に一致するかどうかが検証されます。 サポートされる条件は次の通りです：

- データ型
- データのスパース性
- 列数
- 欠損値のサポート

> [!NOTE] 備考
> `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つのエントリーだけが許可されます（ [例](https://docs.datarobot.com/ja/docs/reference/pred-ai-ref/cml-ref/cml-validation.html.md#typeSchema-example) を参照してください）。

データフレームの `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はデフォルトスキーマを使用します。これにより、入力で [疎データ](https://docs.datarobot.com/ja/docs/reference/pred-ai-ref/cml-ref/cml-validation.html.md#sparse-data) と [欠損値](https://docs.datarobot.com/ja/docs/reference/pred-ai-ref/cml-ref/cml-validation.html.md#contains-missing) が許可されます。 デフォルトは以下のとおりです。

```
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 
```
