データクラス

Vertex AI SDK には、モデルのトレーニングに使用されるデータの保存と読み取りを行うクラスが含まれています。各データ関連クラスは、構造化データ、非構造化データ、Vertex AI Feature Store データを含む Vertex AI マネージド データセットを表します。データセットを作成したら、それを使用してモデルをトレーニングします。

以下のトピックでは、Vertex AI SDK のデータ関連クラスについて簡単に説明します。各クラスのトピックには、そのクラスのインスタンスを作成するコードの例が含まれています。データセットを作成したら、その ID を使用してデータセットを取得できます。

dataset = aiplatform.ImageDataset('projects/my-project/location/my-region/datasets/{DATASET_ID}')

構造化データクラス

次のクラスは、行と列で構成される構造化データに対応しています。構造化データは、数値、日付、値、文字列を保存する際によく使用されています。

TabularDataset

このクラスは、表形式のデータセットの操作に使用します。表形式のデータセットを作成するには、CSV ファイル、BigQuery、または pandas の DataFrame を使用します。BigQuery データのページングの詳細については、BigQuery API でページネーションを使用してデータを読み取るをご覧ください。表形式データの詳細については、表形式データをご覧ください。

次のコードは、CSV ファイルをインポートして表形式のデータセットを作成する方法を示しています。

my_dataset = aiplatform.TabularDataset.create(
    display_name="my-dataset", gcs_source=['gs://path/to/my/dataset.csv'])

次のコードは、2 つのステップで CSV ファイルをインポートして表形式のデータセットを作成する方法を示します。

my_dataset = aiplatform.TextDataset.create(
    display_name="my-dataset")

my_dataset.import(
    gcs_source=['gs://path/to/my/dataset.csv']
    import_schema_uri=aiplatform.schema.dataset.ioformat.text.multi_label_classification
)

pandas DataFrame で表形式のデータセットを作成する場合は、BigQuery テーブルを使用して Vertex AI のデータをステージングする必要があります。

my_dataset = aiplatform.TabularDataset.create_from_dataframe(
    df_source=my_pandas_dataframe,
    staging_path=f"bq://{bq_dataset_id}.table-unique"
)

TimeSeriesDataset

このクラスは、時系列データセットの操作に使用します。時系列は、さまざまな時間間隔で記録されたデータを含むデータセットです。データセットには、時刻と、時間に依存する変数が 1 つ以上含まれています。予測には時系列データセットを使用します。詳細については、予測の概要をご覧ください。

マネージド時系列データセットは、Cloud Storage バケット内の CSV ファイル、または BigQuery テーブルから作成できます。

次のコードは、時系列データセットを含む CSV データソース ファイルをインポートして、TimeSeriesDataset を作成する方法を示しています。

my_dataset = aiplatform.TimeSeriesDataset.create(
    display_name="my-dataset", gcs_source=['gs://path/to/my/dataset.csv'])

次のコードは、時系列データセットを含む BigQuery テーブル ファイルをインポートして、TimeSeriesDataset を作成する方法を示しています。

my_dataset = aiplatform.TimeSeriesDataset.create(
    display_name="my-dataset", bq_source=['bq://path/to/my/bigquerydataset.train'])

非構造化データクラス

以下のクラスは、従来のリレーショナル データベースに保存できない非構造化データを操作します。多くの場合、このようなデータは音声ファイル、テキスト ファイル、動画ファイル、NoSQL データベースとして保存されます。

ImageDataset

このクラスは、マネージド画像データセットを操作する場合に使用します。マネージド画像データセットを作成するには、CSV 形式のデータソース ファイルと YAML 形式のスキーマ ファイルが必要です。カスタムモデルの場合、スキーマは省略可能です。CSV ファイルとスキーマには、Cloud Storage バケットでアクセスします。

画像データは、次の目的で使用します。

次のコードは、CSV データソース ファイルと YAML スキーマ ファイルをインポートして画像データセットを作成する方法を示しています。使用するスキーマ ファイルは、画像データセットがシングルラベル分類、マルチラベル分類、オブジェクト検出のいずれに使用されるかによって異なります。

my_dataset = aiplatform.ImageDataset.create(
    display_name="my-image-dataset",
    gcs_source=['gs://path/to/my/image-dataset.csv'],
    import_schema_uri=['gs://path/to/my/schema.yaml']
    )

TextDataset

このクラスは、マネージド テキスト データセットの操作に使用します。テキスト データセットを作成するには、CSV 形式のデータソースと YAML 形式のスキーマが必要です。カスタムモデルの場合、スキーマは省略可能です。CSV ファイルとスキーマには、Cloud Storage バケットでアクセスします。

テキストデータは次の目的で使用します。

次のコードは、CSV データソース ファイルと YAML スキーマ ファイルをインポートしてテキスト データセットを作成する方法を示しています。使用するスキーマ ファイルは、テキスト データセットが分類、エンティティ抽出、感情分析のいずれに使用されるかによって異なります。

my_dataset = aiplatform.TextDataset.create(
    display_name="my-image-dataset",
    gcs_source=['gs://path/to/my/text-dataset.csv'],
    import_schema_uri=['gs://path/to/my/schema.yaml']
    )

VideoDataset

このクラスは、マネージド動画データセットの操作に使用します。動画データセットを作成するには、CSV データソース ファイルと YAML 形式のスキーマが必要です。CSV ファイルとスキーマには、Cloud Storage バケットでアクセスします。

動画データは次の目的で使用します。

次のコードは、CSV データソース ファイルをインポートして、動画分類モデルをトレーニングするためのデータセットを作成する方法を示しています。使用するスキーマ ファイルは、動画データセットを動作分類、認識、オブジェクト トラッキングのどの目的で使用するかによって異なります。

my_dataset = aiplatform.VideoDataset.create(
    gcs_source=['gs://path/to/my/dataset.csv'],
    import_schema_uri=['gs://aip.schema.dataset.ioformat.video.classification.yaml']
)

Vertex AI Feature Store データクラス

Vertex AI Feature Store は、ML の特徴の大規模な保存、提供、管理、共有に使用されるマネージド サービスです。

Vertex AI Feature Store は、時間とともに変化する特徴を維持する 3 つのクラスで構成される時系列データモデルを使用します。3 つのクラスは次の階層順に整理されています。

Vertex AI Feature Store のクラス階層

Vertex AI Feature Store データモデルの詳細については、データモデルとリソースをご覧ください。Vertex AI Feature Store のデータソース要件については、ソースデータの要件をご覧ください。

Vertex AI Feature Store データでは、次のクラスが使用されます。

Featurestore

Featurestore クラスで表される featurestore リソースは、Vertex AI Feature Store データモデル階層の最上位クラスです。データモデルの次のレベルのリソースはエンティティ タイプです。これは、意味的に関連する特徴の集合です。エンティティ タイプと連携する Featurestore メソッドの一部を以下に示します。

エンティティ タイプを作成する

Featurestore を使用します。create_entity_type メソッドを entity_type_id とともに使用して、エンティティ タイプのリソースを作成します。エンティティ タイプのリソースは EntityType クラスで表されます。entity_type_id は英数字で、featurestore 内で一意である必要があります。エンティティ タイプの作成例を次に示します。

entity_type = aiplatform.featurestore.create_entity_type(
        entity_type_id=my_entity_type_name, description=my_entity_type_description
        )

エンティティ タイプを提供する

次の 3 つの Featurestore メソッドのいずれかを使用して、エンティティのデータ項目を提供します。

EntityType

EntityType クラスは、エンティティ タイプのリソースを表します。これは、意味的に関連する定義済みの特徴の集合です。たとえば、音楽サービスのエンティティ タイプは musical_artistuser です。エンティティ タイプを作成するには、FeatureStore.create_entity_type メソッドまたは EntityType.create メソッドを使用します。次のコードは、EntityType.create の使用方法を示しています。

entity_type = aiplatform.EntityType.create(
        entity_type_id=my_entity_type_name, featurestore_name=featurestore_name
    )

Feature

Feature クラスは、エンティティ タイプの測定可能なプロパティまたは属性である特徴リソースを表します。たとえば、musical_artist エンティティ タイプには、音楽アーティストのさまざまなプロパティを追跡するための特徴(date_of_birthlast_name など)が含まれていることがあります。特徴はエンティティ タイプに対して一意である必要がありますが、グローバルに一意である必要はありません。

Feature を作成する場合は、値の型(BOOL_ARRAYDOUBLEDOUBLE_ARRAYSTRING など)を指定する必要があります。次のコードは、特徴の作成方法の例を示しています。

my_feature = aiplatform.Feature.create(
    feature_id='my_feature_id',
    value_type='INT64',
    entity_type_name='my_entity_type_id',
    featurestore_id='my_featurestore_id',
)

次のステップ