トラッキング クラス

Vertex AI SDK for Python には、可視化、測定データ、トラッキングを支援するクラスが含まれています。これらのクラスは、次の 3 つの種類に分類できます。

  • 機械学習(ML)ワークフローのリソースを追跡するためにメタデータを使用するクラス
  • Vertex AI Experiments に使用されるクラス
  • Vertex AI TensorBoard に使用されるクラス

以下のトピックでは、Vertex AI SDK for Python での ML ワークフローの追跡とモニタリングに関連するクラスの概要について説明します。

メタデータ クラス

Vertex AI SDK for Python を使用すると、Vertex ML Metadata を作成し、ML ワークフローのメタデータを追跡および分析に役立てることができます。続きは、Vertex ML Metadata の概要をご覧ください。

Artifact

Artifact クラスは、Vertex AI のアーティファクト内のメタデータを表します。アーティファクトは、ML ワークフローによって生成される個別のエンティティまたはデータの一部です。アーティファクトの例としては、データセットモデル入力ファイルなどがあります。詳細については、実行とアーティファクトを追跡するをご覧ください。

Artifact リソースを作成する場合は、そのスキーマを指定する必要があります。各種のアーティファクトには固有のスキーマがあります。たとえば、system.Dataset スキーマはデータセットを表し、system.Metrics スキーマは評価指標を表します。詳細については、システム スキーマの使用方法をご覧ください。

次のサンプルコードでは、モデルを表す Artifact リソースを作成する方法を示します。

model_artifact = aiplatform.Artifact.create(
        schema_title="system.Model",
        display_name=PREPROCESSED_DATASET_NAME,
        uri=PREPROCESSED_DATASET_URI,

Execution

Execution クラスは、Vertex AI の実行内のメタデータを表します。実行は、ML ワークフローの一ステップです。実行の例には、データ処理、トレーニング、モデルの評価などがあります。実行では、データセットなどのアーティファクトを使用し、モデルなどのアーティファクトを生成できます。

aiplatform.start_execution を使用して Execution リソースを作成します。Execution リソースを作成した後、同じ aiplatform.start_execution メソッドで resume パラメータを True に設定して再開します。

次のサンプルコードでは、Execution リソースを作成する方法を示します。

with aiplatform.start_execution(schema_title='system.ContainerExecution',
                                display_name='trainer') as execution:
    execution.assign_input_artifacts([my_artifact])
    model = aiplatform.Artifact.create(uri='gs://my-uri', schema_title='system.Model')
    execution.assign_output_artifacts([model])

Vertex AI Experiments クラス

Vertex AI SDK for Python を使用して、Vertex AI Experiments を作成、実行できます。Vertex AI Experiments を使用してログに記録された指標とパラメータを追跡し、ML ワークフローの分析と最適化に役立てます。続きは、Vertex AI Testing の概要をご覧ください。

Experiment クラスと ExperimentRun クラスの使用方法の詳細については、次のいずれかのチュートリアルをご覧ください。

Experiment

Experiment クラスは、Vertex AI のテストを表します。テストを使用して、さまざまな構成(複数の入力アーティファクトやハイパーパラメータなど)でテスト実行パイプライン実行を分析します。

Experiment リソースは、次の 2 つの方法で作成できます。

  1. Experiment の推奨される作成方法は、aiplatform.init を呼び出すときにテストの名前をパラメータとして指定することです。

    # In a real world scenario it's likely you would specify more parameters
    # when you call aiplatform.init. This sample shows only how to use the
    # parameter used to create an Experiment.
    
    # Specify a name for the experiment
    EXPERIMENT_NAME = "your-experiment-name"
    
    # Create the experiment
    aiplatform.init(experiment=EXPERIMENT_NAME)
    
  2. aiplatform.Experiment.create を呼び出して Experiment を作成することもできます。aiplatform.Experiment.createExperiment リソースを作成しますが、これをグローバル環境には設定しません。このため、aiplatform.start_run でテストを実行することはできません。次のサンプルコードでは、aiplatform.Experiment.create を使用してテストを作成し、実行する方法を示します。

    # Specify a name for the experiment
    EXPERIMENT_NAME = "your-experiment-name"
    EXPERIMENT_RUN_NAME = "your-run"
    
    # Create the experiment
    experiment = aiplatform.Experiment.create(experiment_name=EXPERIMENT_NAME)
    experiment_run = aiplatform.ExperimentRun.create(EXPERIMENT_RUN_NAME, experiment=EXPERIMENT_NAME)
    

ExperimentRun

ExperimentRun クラスはテストの実行を表します。

次のサンプルコードでは、テストの実行と開始を行い、それを使用してテストに関する情報を取得する方法を示します。テスト実行を解除するには、ExperimentRun インスタンスへの参照を取得し、その delete メソッドを呼び出します。

# Specify your project name, location, experiment name, and run name
PROJECT_NAME = "my-project"
LOCATION = "us-central1"
EXPERIMENT_NAME = "experiment-1"
RUN_NAME = "run-1"

# Create the experiment to run
aiplatform.init(experiment_name=EXPERIMENT_NAME,
                project=PROJECT_NAME,
                location=LOCATION)

# Create and run an ExperimentRun resource. Next, you can use it to get
# information about your experiment. For example, you can log parameters and
# metrics with specified key-value pairs.
with aiplatform.start_run(RUN_NAME):
     aiplatform.log_params({'learning_rate': 0.1, 'dropout_rate': 0.2})
     aiplatform.log_metrics({'accuracy': 0.9, 'recall': 0.8})

# Get a reference to the ExperimentRun resource, get the parameters logged to 
# the run, get the summary metrics logged to the run, then delete it.
with aiplatform.start_run(RUN_NAME, resume=True) as run:
     run.get_params()
     run.get_metrics()
     run.delete()

Vertex AI TensorBoard クラス

Vertex AI SDK for Python には、オープンソースの Vertex AI TensorBoard のマネージド バージョンを操作するクラスが含まれています。Vertex AI TensorBoard は、ML ワークフロー中に測定と可視化をモニタリングするために使用されるツールです。詳細については、Vertex AI TensorBoard を使ってみるをご覧ください。

Vertex AI SDK for Python を使用して Vertex AI TensorBoard と連携する方法については、次のいずれかのノートブックのチュートリアルをご覧ください。

Tensorboard

Tensorboard クラスは、Vertex AI TensorBoard のテストを保存するマネージド リソースを表します。テストを可視化する前に、Tensorboard インスタンスを作成する必要があります。Google Cloud プロジェクトには、複数の Tensorboard インスタンスを作成できます。

次のサンプルコードでは、Tensorboard インスタンスを作成する方法を示します。

# Specify your project name, location, and the name of your Tensorboard
PROJECT_NAME = "my-project"
LOCATION = "us-central1"
TENSORBOARD_NAME = "my-tensorboard"

aiplatform.init(project=PROJECT_NAME, location=LOCATION)

tensorboard = aiplatform.Tensorboard.create(
    display_name=TENSORBOARD_NAME,
    project=PROJECT_NAME,
    location=LOCATION,
)

TensorboardExperiment

TensorboardExperiment は、TensorboardRun オブジェクトのグループを表します。TensorboardRun インスタンスは、TensorBoard で実行されたトレーニング ジョブの結果を表します。

TensorboardRun

TensorboardRun クラスのインスタンスは、指定された一連のハイパーパラメータ、モデル定義、データセットなどを使用して、TensorBoard で実行されるトレーニング ジョブにマッピングされます。

TensorboardTimeSeries

TensorboardTimeSeries クラスは、トレーニング実行で生成される系列を表します。

次のステップ