モデル クラス

Vertex AI SDK には、トレーニングして予測に使用するモデルで機能する Model クラスが含まれています。この SDK には、トレーニング済みの AutoML モデルの指標を評価するための ModelEvaluation クラスも含まれています。モデルの詳細については、独自のモデルをトレーニングして使用するをご覧ください。

Model

Model クラスは、Vertex AI Model Registry に登録されたトレーニング済みモデルを表します。予測を生成するには、トレーニング済みモデルを使用します。

aiplatform.Model() メソッドを使用して、モデルへの参照を見つけて返します。名前または ID を使用してモデルを指定できます。1 つのプロジェクト内で複数のモデルが同じ名前を使用する可能性があるため、モデル ID のあるモデルを指定することをおすすめします。次のコードサンプルは、モデル ID を使用して既存のモデルへの参照を見つけて返す方法を示しています。

MODEL_ID="my-sample-model-ID"
model = aiplatform.Model(model_name=MODEL_ID)

トレーニング済みモデルへの参照を取得したら、Modelプロパティメソッドを使用して予測を取得できます。

登録済みのモデルを作成する

Vertex AI Model Registry に登録されたモデルリソースを作成するには、トレーニング ジョブ クラスの run メソッドを呼び出します。次のメソッドでは、モデルを作成してトレーニングし、Vertex AI Model Registry に登録してからモデルへの参照を返します。

次のサンプルコードでは、CustomTrainingJob リソースを作成し、その run メソッドを使用してモデルを作成します。さらにモデルをトレーニングして、Vertex AI モデル レジストリに登録し、そのモデルへの参照を返します。

# Create a custom training job using a script
job = aiplatform.CustomTrainingJob(
    display_name="my-training-job",
    script_path="task.py",
    container_uri="us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-8:latest",
    requirements=["google-cloud-bigquery>=2.20.0", "db-dtypes", "protobuf<3.20.0"],
    model_serving_container_image_uri="us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-8:latest",
)

# Create and train your model using a BigQuery dataset. The method
# returns a reference to the trained model.
model = job.run(
    dataset=dataset,
    model_display_name="my-model-name",
    bigquery_destination=f"bq://{project_id}",
    args=CMDARGS,
)

未登録のモデルを作成する

Vertex AI Model Registry に登録されていないモデルを作成するには、CustomJob クラスとその run メソッドを使用します。CustomJob.run メソッドはモデルをトレーニングしますが、Vertex AI Model Registry にはモデルを登録しません。また、モデルへの参照も返しません。

CustomJob クラスを使用する場合は、スクリプトを使用して Cloud Storage バケットなどの場所にモデルを書き込む必要があります。詳細については、トレーニング済み ML モデルをエクスポートするをご覧ください。

モデルを登録する

Vertex AI Model Registry にモデルを登録していない場合は、モデルを登録してモデルのライフサイクルを管理する必要があります。Vertex AI Model Registry は、モデルの概要を提供する一元的なリポジトリで、モデルの管理に使用できます。詳細については、Vertex AI Model Registry の概要をご覧ください。

Vertex AI SDK には、Vertex AI Model Registry にモデルをインポートする次のメソッドが含まれています。Vertex AI SDK リファレンス ガイドでいずれかのメソッドをクリックして、詳細をご確認ください。

モデルをデプロイする

モデルを登録したら、モデルを予測に使用する前にエンドポイントにデプロイする必要があります。Model.deploy メソッドを使用して、モデルを Endpoint にデプロイします。詳細については、エンドポイントにモデルをデプロイするをご覧ください。

ModelEvaluation

ModelEvaluation クラスを使用して、適合率や再現率などの AutoML モデルの評価指標を取得し、モデルのパフォーマンスを判定します。詳細については、Vertex AI でのモデル評価をご覧ください。

次のコードサンプルは、プロジェクト ID が my-project のプロジェクトに属し、us-central1 リージョンにあるモデル ID model-id のモデルのすべての評価を一覧表示する方法を示しています。

model = aiplatform.Model('projects/my-project/locations/us-central1/models/{model-id}')

evaluations = model.list_model_evaluations()

次のコードサンプルは、プロジェクト ID が my-project のプロジェクトに属し、us-central1 リージョンにあるモデル ID model-id のモデル評価を取得する方法を示しています。

model = aiplatform.Model('projects/my-project/locations/us-central1/models/{model-id}')

# Return the first evaluation with no arguments. You can also specify a model
# using its model ID.
evaluation = model.get_model_evaluation()

eval_metrics = evaluation.metrics

モデル評価への参照を作成するには、リソース名またはモデル ID と評価 ID を使用します。次のコードサンプルは、リソース名を使用してモデル評価への参照を作成する方法を示しています。

evaluation = aiplatform.ModelEvaluation(
  evaluation_name='projects/my-project/locations/us-central1/
    models/{model-id}/evaluations/{evaluation-id}')

eval_metrics = evaluation.metrics

次のコードサンプルは、モデル ID と評価 ID を使用してモデル評価への参照を作成する方法を示しています。

evaluation.metrics = aiplatform.ModelEvaluation(
  evaluation_name={evaluation-id},
  model_id={model-id})

eval_metrics = evaluation.metrics

次のステップ