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 データでは、次のクラスが使用されます。
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
メソッドのいずれかを使用して、エンティティのデータ項目を提供します。
batch_serve_to_bq
は、BigQuery テーブルにデータを提供します。batch_serve_to_df
は、pandasDataFrame
にデータを提供します。batch_serve_to_gcs
は、CSV ファイルまたは TensorFlowTFRecord
ファイルにデータを提供します。
EntityType
EntityType
クラスは、エンティティ タイプのリソースを表します。これは、意味的に関連する定義済みの特徴の集合です。たとえば、音楽サービスのエンティティ タイプは musical_artist
と user
です。エンティティ タイプを作成するには、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_birth
や last_name
など)が含まれていることがあります。特徴はエンティティ タイプに対して一意である必要がありますが、グローバルに一意である必要はありません。
Feature
を作成する場合は、値の型(BOOL_ARRAY
、DOUBLE
、DOUBLE_ARRAY
、STRING
など)を指定する必要があります。次のコードは、特徴の作成方法の例を示しています。
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',
)
次のステップ
- Vertex AI SDK について学習する。