Registe modelos numa execução de experiência

Para que um modelo seja monitorizado, partilhado e analisado, o SDK Vertex AI para Python fornece uma API que serializa um modelo de aprendizagem automática numa classe ExperimentModel e regista o modelo nas experiências da Vertex AI.

Depois de selecionar o melhor modelo a usar, pode registar esse modelo do Vertex AI Experiments no Vertex AI Model Registry.

Os frameworks suportados são scikit-learn, XGBoost e TensorFlow.

Guarde e registe o modelo de AA

Guarde modelos

O SDK da Vertex AI fornece o método save_model para serializar um modelo de ML, carregar o modelo para o Cloud Storage e representar o modelo como um artefato Vertex ML Metadata.

Python

from typing import Optional, Union

from google.cloud import aiplatform


def save_model_sample(
    project: str,
    location: str,
    model: Union[
        "sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"  # noqa: F821
    ],
    artifact_id: Optional[str] = None,
    uri: Optional[str] = None,
    input_example: Optional[
        Union[list, dict, "pd.DataFrame", "np.ndarray"]  # noqa: F821
    ] = None,
    display_name: Optional[str] = None,
) -> None:
    aiplatform.init(project=project, location=location)

    aiplatform.save_model(
        model=model,
        artifact_id=artifact_id,
        uri=uri,
        input_example=input_example,
        display_name=display_name,
    )

  • project: . Pode encontrar estes IDs na página de Google Cloud boas-vindas da consola.
  • location: consulte a lista de localizações disponíveis
  • model: (obrigatório). Um modelo de aprendizagem automática. (Union["sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"])
  • artifact_id: opcional. O ID do recurso do artefacto. Este ID tem de ser globalmente exclusivo num metadataStore. Pode ter até 63 carateres e os carateres válidos são [a-z0-9_-]. O primeiro caráter não pode ser um número nem um hífen.
  • uri: opcional. Um diretório do GCS no qual guardar o ficheiro do modelo. Se não for fornecido um URI, é usado gs://default-bucket/timestamp-uuid-frameworkName-model. Se não for definido um contentor de preparação predefinido, é criado um novo contentor.
  • input_example: opcional. Cada modelo recebe dados de entrada e, em seguida, produz uma previsão. Cada modelo aceita um formato de entrada específico (por exemplo, um número, uma string, uma matriz 2D) e é armazenado como um ficheiro YAML no URI do GCS. Aceita list, dict, pd.DataFrame e np.ndarray. O valor numa lista tem de ser um escalar ou uma lista. O valor num dicionário tem de ser um escalar, uma lista ou um np.ndarray. (Union[list, dict, pd.DataFrame, np.ndarray]).
  • display_name: o nome a apresentar do artefacto.

Registe modelos

O SDK Vertex AI fornece um método log_model que orquestra save_model e um passo adicional para registar o artefacto Vertex ML Metadata na execução da experiência atual. O método log_model para gerir e analisar vários modelos de ML nas experiências do Vertex AI.

Python

from typing import Optional, Union

from google.cloud import aiplatform


def log_model_sample(
    experiment_name: str,
    run_name: str,
    project: str,
    location: str,
    model: Union[
        "sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"  # noqa: F821
    ],
    artifact_id: Optional[str] = None,
    uri: Optional[str] = None,
    input_example: Optional[
        Union[list, dict, "pd.DataFrame", "np.ndarray"]  # noqa: F821
    ] = None,  # noqa: F821
    display_name: Optional[str] = None,
) -> None:
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name, resume=True)

    aiplatform.log_model(
        model=model,
        artifact_id=artifact_id,
        uri=uri,
        input_example=input_example,
        display_name=display_name,
    )

  • experiment_name: indique o nome da sua experiência. Pode encontrar a sua lista de experiências na consola selecionando "Experiências" na navegação da secção. Google Cloud
  • run_name: especifique um nome de execução.
  • project: . Pode encontrar estes IDs na página de Google Cloud boas-vindas da consola.
  • location: consulte a lista de localizações disponíveis.
  • model: obrigatório. Um modelo de aprendizagem automática. (Union["sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"])
  • uri: opcional. Um diretório do GCS no qual guardar o ficheiro do modelo. Se não for fornecido um URI,é usado o gs://default-bucket/timestamp-uuid-frameworkName-model. Se não estiver definido um contentor de preparação predefinido, é criado um novo contentor.
  • input_example: opcional. Cada modelo recebe dados de entrada e, em seguida, produz uma previsão. Cada modelo aceita um formato de entrada específico (por exemplo, um número, uma string, uma matriz 2D) e é armazenado como um ficheiro YAML no URI do GCS. Aceita list, dict, pd.DataFrame e np.ndarray. O valor numa lista tem de ser um escalar ou uma lista. O valor num dicionário tem de ser um escalar, uma lista ou um np.ndarray. (Union[list, dict, pd.DataFrame, np.ndarray]).
  • display_name: opcional. O nome a apresentar do artefacto.

Faixa ExperimentModel

Obtenha o modelo de experiência

Para usar get_experiment_model para devolver um modelo guardado, transmita-lhe o ID do artefacto do modelo guardado.

Python

from google.cloud import aiplatform


def get_experiment_model_sample(
    project: str,
    location: str,
    artifact_id: str,
) -> "ExperimentModel":  # noqa: F821
    aiplatform.init(project=project, location=location)
    experiment_model = aiplatform.get_experiment_model(artifact_id=artifact_id)

    return experiment_model

  • project: . Pode encontrar estes IDs na página de Google Cloud boas-vindas da consola.
  • location: consulte a lista de localizações disponíveis.
  • artifact_id: Obrigatório: o ID do recurso do modelo existente.

Obtenha modelos de experiências

O método get_experiment_models obtém uma lista de todos os ExperimentModel registados numa execução de experiência específica.

Python

from typing import List, Union

from google.cloud import aiplatform


def get_experiment_run_models_sample(
    run_name: str,
    experiment: Union[str, aiplatform.Experiment],
    project: str,
    location: str,
) -> List["ExperimentModel"]:  # noqa: F821
    experiment_run = aiplatform.ExperimentRun(
        run_name=run_name, experiment=experiment, project=project, location=location
    )

    return experiment_run.get_experiment_models()

  • run_name: especifique um nome de execução.
  • experiment: indique o nome da sua experiência. Pode encontrar a sua lista de experiências na consola do Google Cloud selecionando "Experiências" na navegação da secção.
  • project: . Pode encontrar estes IDs na página de Google Cloud boas-vindas da consola.
  • location: consulte a lista de localizações disponíveis.

Obtenha informações do modelo

O método get_model_info devolve os metadados do modelo de uma determinada instância ExperimentModel, por exemplo, a classe do modelo e o tipo de framework.

Python

from typing import Any, Dict

from google.cloud import aiplatform


def get_model_info_sample(
    artifact_id: str,
    project: str,
    location: str,
) -> Dict[str, Any]:
    experiment_model = aiplatform.get_experiment_model(
        artifact_id=artifact_id, project=project, location=location
    )

    return experiment_model.get_model_info()

  • artifact_id: obrigatório. O ID do recurso do ExperimentModel existente.
  • project: . Pode encontrar estes IDs na página de Google Cloud boas-vindas da consola.
  • location: consulte a lista de localizações disponíveis.

Carregar ExperimentModel

Carregue o modelo

O método load_experiment_model ajuda a desserializar uma instância ExperimentModel de volta para o modelo de ML original.

Python

from typing import Union

from google.cloud import aiplatform


def load_experiment_model_sample(
    artifact_id: str,
    project: str,
    location: str,
) -> Union["sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"]:  # noqa: F821:
    experiment_model = aiplatform.get_experiment_model(
        artifact_id=artifact_id, project=project, location=location
    )

    return experiment_model.load_model()

  • artifact_id: (obrigatório). O ID do recurso do ExperimentModel existente. Exemplo: artifact_id="my-sklearn-model"
  • project: . Pode encontrar estes IDs na página de Google Cloud boas-vindas da consola.
  • location: consulte a lista de localizações disponíveis.

Registe ExperimentModel

Registe o modelo guardado

A API register_experiment_model permite registar o modelo que foi considerado o melhor no Registo de modelos Vertex AI com uma quantidade mínima de configuração. A API escolhe automaticamente um contentor de previsão pré-criado com base na estrutura e versão do modelo.

Python

from google.cloud import aiplatform


def register_experiment_model_sample(
    artifact_id: str,
    project: str,
    location: str,
    display_name: str,
) -> aiplatform.models.Model:
    experiment_model = aiplatform.get_experiment_model(
        artifact_id=artifact_id, project=project, location=location
    )

    return experiment_model.register_model(display_name=display_name)

  • artifact_id: (obrigatório). O ID do recurso do ExperimentModel existente.
  • project: . Pode encontrar estes IDs na página de Google Cloud boas-vindas da consola.
  • location: consulte a lista de localizações disponíveis.
  • display_name: opcional. O nome definido pelo utilizador do modelo registado.

Veja a lista de execuções de experiências na Google Cloud consola

  1. Na Google Cloud consola, aceda à página Experiências.
    Aceda a Experiências
    É apresentada uma lista de experiências.
  2. Selecione a experiência que quer verificar.
    É apresentada uma lista de execuções.

Página da lista de experiências do Vertex AI

O que se segue?

Exemplo de bloco de notas relevante

Publicação no blogue