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
クラスの使用方法の詳細については、次のいずれかのチュートリアルをご覧ください。
- カスタム トレーニング用の Vertex AI Experiments リネージを構築する
- ローカルでトレーニングされたモデルのパラメータと指標を追跡する
- Vertex AI Experiments でパイプライン実行を比較する
- Vertex AI Experiments を使ってみる
Experiment
Experiment
クラスは、Vertex AI のテストを表します。テストを使用して、さまざまな構成(複数の入力アーティファクトやハイパーパラメータなど)でテスト実行とパイプライン実行を分析します。
Experiment
リソースは、次の 2 つの方法で作成できます。
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)
aiplatform.Experiment.create
を呼び出してExperiment
を作成することもできます。aiplatform.Experiment.create
はExperiment
リソースを作成しますが、これをグローバル環境には設定しません。このため、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 と連携する方法については、次のいずれかのノートブックのチュートリアルをご覧ください。
- Cloud Profiler を使用してモデルのトレーニング パフォーマンスをプロファイリングする。
- カスタム コンテナを使用した Vertex AI TensorBoard カスタム トレーニング
- ビルド済みコンテナを使用した Vertex AI TensorBoard カスタム トレーニング
- HParams ダッシュボードを使用した Vertex AI TensorBoard ハイパーパラメータ チューニング
- Cloud Profiler を使用してモデルのトレーニング パフォーマンスをプロファイリングする
- ビルド済みコンテナを使用したカスタム トレーニングで、Cloud Profiler を使用してモデルのトレーニング パフォーマンスをプロファイリングする
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
クラスは、トレーニング実行で生成される系列を表します。
次のステップ
- Vertex AI SDK について学習する。