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 に登録してからモデルへの参照を返します。
AutoMLForecastingTrainingJob.run
AutoMLImageTrainingJob.run
AutoMLTabularTrainingJob.run
AutoMLTextTrainingJob.run
AutoMLVideoTrainingJob.run
CustomContainerTrainingJob.run
CustomPythonPackageTrainingJob.run
CustomTrainingJob.run
次のサンプルコードでは、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.upload
Model.upload_scikit_learn_model_file
Model.upload_tensorflow_saved_model
Model.upload_xgboost_model_file
モデルをデプロイする
モデルを登録したら、モデルを予測に使用する前にエンドポイントにデプロイする必要があります。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
次のステップ
- Vertex AI SDK について学習する。