トレーニング データを準備

このページでは、Vertex AI で分類モデルと回帰モデルのトレーニング用に表形式データを準備する方法について説明します。トレーニング データの品質は、作成するモデルの有効性に影響します。

この記事のトピックは次のとおりです。

  1. データ構造の要件
  2. インポートのソースを準備する
  3. トレーニング データに重みを追加する

デフォルトでは、Vertex AI はランダム分割アルゴリズムを使用して、データを 3 つのデータ分割に分割します。Vertex AI はトレーニング データの 80% をトレーニング セット、10% を検証セット、10% をテストセットにランダムに選択します。手動分割または時系列分割を使用することもできますが、その場合はデータ分割列または時間列を用意する必要があります。データ分割の詳細をご確認ください。

データ構造の要件

トレーニング データは次の基本要件に満たす必要があります。

要件の種類 要件
サイズ データセットは 100 GB 以下にする必要があります。
列数 データセットの列数は 2~1,000 にする必要があります。データセットには、モデルをトレーニングするためのターゲットと少なくとも 1 つの特徴が必要です。ただし、トレーニング データには 2 列に限らず、さらに多くの列があるのが理想的です。列の最大数には、特徴列と非特徴列の両方が含まれます。
ターゲット列 ターゲット列を指定する必要があります。ターゲット列を使用すると、Vertex AI はトレーニング データを目的の結果に関連付けることができます。ターゲット列は null 値を含むことはできず、カテゴリまたは数値のいずれかである必要があります。カテゴリの場合、2~500 個の固有の値が必要です。
列名の形式 列名には、任意の英数字やアンダースコア(_)を使用できます。列名の先頭をアンダースコアにすることはできません。
行数 データセットの行数は 1,000~100,000,000 行でなければなりません。データセットに含まれる特徴の数によっては、高品質のモデルをトレーニングするために 1,000 行では十分でない場合があります。詳細
データ形式 目的に適したデータ形式(ワイドまたはナロー)を使用する必要があります。通常は、1 行が 1 つのトレーニング データ項目(商品、人物など)を表すワイド形式が適しています。詳しくは、データ形式の選択方法をご覧ください。

インポートのソースを準備する

Vertex AI には、次の 2 つの方法でモデル トレーニング データを提供できます。

  • BigQuery テーブル
  • カンマ区切り値(CSV)

どちらのソースを使用するかは、データの保存方法、データのサイズと複雑性によって決まります。データセットのサイズが小さく、複雑なデータ型が必要ない場合は、CSV を使用するのが簡単です。配列や構造体を含むサイズの大きいデータセットの場合は、BigQuery を使用する必要があります。

BigQuery

BigQuery テーブルまたはビューが、BigQuery のロケーション要件を満たしている必要があります。

BigQuery テーブルまたはビューが Vertex AI データセットを作成するプロジェクトと異なるプロジェクトにある場合、または BigQuery テーブルまたはビューが外部のデータソースを使用している場合は、1 つ以上のロールを Vertex AI サービス エージェントに追加します。BigQuery のロールの追加要件をご覧ください。

BigQuery テーブルにはスキーマを指定する必要はありません。データをインポートすると、Vertex AI によって自動的にそのテーブルのスキーマが推測されます。

BigQuery の URI(トレーニング データのロケーションを指定する)は、次の形式に従っている必要があります。

bq://<project_id>.<dataset_id>.<table_id>

URI には他の特殊文字を含めることはできません。

BigQuery のデータ型と Vertex AI へのマッピング方法については、BigQuery テーブルをご覧ください。BigQuery 外部データソースの使用の詳細については、外部データソースの概要をご覧ください。

CSV

CSV ファイルは Cloud Storage またはローカル PC にあります。次の要件を満たす必要があります。

  • 最初のファイルの 1 行目は、列の名前を含むヘッダーである必要があります。後続のファイルの 1 行目がこのヘッダーと同じ場合はヘッダーとして扱われ、それ以外の場合はデータとして扱われます。
  • 列名には、あらゆる英数字やアンダースコア(_)を使用できます。列名の先頭をアンダースコアにすることはできません。
  • 各ファイルのサイズは 10 GB を超えてはなりません。

    最大サイズの 100 GB に達するまで、複数のファイルを含められます。

  • 区切り文字はカンマ(,)にする必要があります。

CSV データのスキーマは指定する必要はありません。Vertex AI によって、データのインポート時に自動的にそのテーブルのスキーマが推測され、列名にヘッダー行が使用されます。

CSV ファイルのファイル形式とデータ型の詳細については、CSV ファイルをご覧ください。

Cloud Storage からデータをインポートする場合、そのデータは次の要件を満たすバケット内にある必要があります。

ローカル コンピュータからデータをインポートする場合は、次の要件を満たす Cloud Storage バケットが必要です。

  • Vertex AI バケットの要件を満たしています。
  • バケットが Vertex AI と同じプロジェクトにない場合は、Vertex AI サービス エージェントに 1 つ以上のロールを追加する必要があります。Cloud Storage のロールの追加要件をご覧ください。

    Vertex AI では、データをインポートする前にこのバケットをステージング領域として使用します。

トレーニング データに重みを追加する

デフォルトでは、Vertex AI はトレーニング データの各行を均等に比較します。トレーニングでは、他の行より重要と見なされる行は存在しません。

場合によっては、トレーニングで一部の行を他の行より重要と見なすことがあります。たとえば、支出のデータを使用している場合、支出の多い項目に関連するデータがモデルに与える影響を、他より大きくなるよう設定できます。特定の結果が欠けることを特に避けたい場合、その結果を含む行の重み付けをより重く設定できます。

データセットに重み列を追加すると、行に相対的な重みを設定できます。重み列は数値型の列でなければなりません。重み値は 0~10,000 です。値が大きいほど、モデルのトレーニング時の行の重要性が高くなります。重み 0 の行は無視されます。重み列を含める場合は、各行の値を含める必要があります。

後でモデルをトレーニングするときに、この列を Weight 列として指定します。

カスタムの重み付けスキームはモデルのトレーニングにのみ使用されます。モデル評価に使用されるテストセットには影響しません。

次のステップ