Closed4

Vertex AI Experimetns 調査

Tomonori HayashiTomonori Hayashi
  • aiplatform.start_run("run-1") で実験管理レコードの記録開始
  • 記録開始中は下記でレコードコラムを自由に変更可能
metaparams = {}
metaparams["units"] = 128000
aiplatform.log_params(metaparams)

hyperparams = {}
hyperparams["epochs"] = 100
hyperparams["batch_size"] = 320
hyperparams["batch_size_tets"] = 320000
hyperparams["learning_rate"] = 0.03
aiplatform.log_params(hyperparams)
Log Parameters

実験のパラメータを記録する

通常、実験は特定のデータセットとモデルアーキテクチャに関連付けられています。実験内には、それぞれ異なる構成を持つ複数のトレーニング実行が存在する可能性があります。例:

  • データの供給方法
    • データセットの分割
    • データセットのサンプリングとブースト
  • メタパラメータ
    • レイヤーの深さと幅
  • ハイパーパラメータ
    • バッチサイズ
    • 学習率

これらの構成設定はパラメータと呼ばれ、log_params() メソッドを使用してキーと値のペアとして保存します。

  • 同様にメトリクスも登録可能
metrics = {}
metrics["test_acc"] = 98.7
metrics["train_acc"] = 99.3
aiplatform.log_metrics(metrics)
Log metrics for the experiment

実験の指標を記録する

実験内の実行が完了または終了したときに、実行を比較するために使用する結果を記録できます。例:

  • 評価指標
  • ハイパーパラメータ検索の選択
  • モデルのトレーニング時間
  • 早期停止トリガー
    これらの結果は指標と呼ばれ、log_metrics() メソッドを使用してキーと値のペアとして保存します。
  • aiplatform.end_run() で終了

  • 下記でデータフレーム形式で取得可能

experiment_df = aiplatform.get_experiment_df()
experiment_df = experiment_df[experiment_df.experiment_name == EXPERIMENT_NAME]
print(experiment_df.T)

  • Console からはこんな感じ
Tomonori HayashiTomonori Hayashi
  • レコードとアーティファクトを紐づけられる
# Create experiment
EXPERIMENT_NAME = f"example-{uuid.uuid1()}"
aiplatform.init(experiment=EXPERIMENT_NAME)
aiplatform.start_run("run-1")

DATASET_URI = f"gs://{BUCKET_URI}/dataset.csv"
MODEL_URI = f"gs://{BUCKET_URI}/saved_model.pb"

dataset_artifact = aiplatform.Artifact.create(
    schema_title="system.Dataset", display_name="example_dataset", uri=DATASET_URI
)

model_artifact = aiplatform.Artifact.create(
    schema_title="system.Model", display_name="example_modl", uri=MODEL_URI
)

with aiplatform.start_execution(
    schema_title="system.ContainerExecution", display_name="example_training"
) as execution:
    execution.assign_input_artifacts([dataset_artifact])

    aiplatform.log_params({"units": 256})
    aiplatform.log_metrics({"acc": 96.8})

    execution.assign_output_artifacts([model_artifact])

    aiplatform.log_metrics(
        {"lineage": execution.get_output_artifacts()[0].lineage_console_uri}
    )

aiplatform.end_run()

experiment_df = aiplatform.get_experiment_df()
experiment_df = experiment_df[experiment_df.experiment_name == EXPERIMENT_NAME]
print(experiment_df.T)
  • Console 上はこちら

  • 関連情報は Vertex ML Metadata に記録される

  • これの中身はリネージとしてグラフィカルにわかる

このスクラップは3ヶ月前にクローズされました