Controlo de versões de modelos com o Registo de modelos

A gestão de versões de modelos permite-lhe criar várias versões do mesmo modelo. Com a gestão de versões de modelos, pode organizar os seus modelos de uma forma que ajude a navegar e a compreender que alterações tiveram que efeito nos modelos. Com o registo de modelos, pode ver os seus modelos e todas as respetivas versões numa única vista. Pode analisar detalhadamente versões específicas do modelo e ver exatamente o respetivo desempenho.

Importe uma nova versão do modelo

No Model Registry, pode importar um modelo como uma nova versão de um modelo existente.

Consola

  1. Na Google Cloud consola, aceda à página Model Registry.
    Aceder ao Registo de modelos
  2. Na parte superior da página, selecione Importar.
  3. Selecione Importar como nova versão.
  4. No menu pendente, selecione o modelo do qual esta é uma nova versão. Adicione uma descrição da versão opcional.
  5. Opcionalmente, defina este modelo como a versão predefinida. A versão predefinida é pré-selecionada sempre que o modelo é usado para previsão (embora possa selecionar outras versões).
  6. Selecione a sua região.
  7. Selecione Continuar.
  8. Nas Definições do modelo, defina o contentor que quer usar. Pode optar por importar artefactos de modelos para um novo contentor pré-criado ou importar para um contentor personalizado existente. Para saber mais sobre contentores, consulte o artigo Importe modelos para o Vertex AI.
  9. Selecione Continuar.
  10. Opcional: adicione suporte de explicabilidade ao seu modelo.
  11. Selecione Importar.

REST

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: o ID do projeto.
  • LOCATION: a localização.
  • MODEL_DISPLAY_NAME: o nome do modelo.
  • ARTIFACT_URI: o caminho para o diretório que contém o artefacto do modelo e quaisquer ficheiros de apoio.
  • IMAGE_URI: imagem de Docker a usar como contentor personalizado para publicar previsões.
  • PARENT_MODEL: o nome do recurso do modelo para o qual carregar a versão.

Método HTTP e URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/models:upload

Corpo JSON do pedido:

{

  "model": {
    "displayName": "MODEL_DISPLAY_NAME",
    "artifactUri": "ARTIFACT_URI",
    "containerSpec": {
       "imageUri": "IMAGE_URI"
    }
   },
 "parentModel": "PARENT_MODEL"
}

Para enviar o seu pedido, expanda uma destas opções:

Deve receber um código de estado de êxito (2xx) e uma resposta vazia.

Python

Python


from typing import List

from google.cloud import aiplatform


def upload_new_model_version_using_custom_training_pipeline(
    display_name: str,
    script_path: str,
    container_uri,
    model_serving_container_image_uri: str,
    dataset_id: str,
    replica_count: int,
    machine_type: str,
    accelerator_type: str,
    accelerator_count: int,
    parent_model: str,
    args: List[str],
    model_version_aliases: List[str],
    model_version_description: str,
    is_default_version: bool,
    project: str,
    location: str,
):
    """
    Uploads a new model version using a custom training pipeline.
    Args:
        display_name: The display name of the model version.
        script_path: The path to the Python script that trains the model.
        container_uri: The URI of the container to use for training.
        model_serving_container_image_uri: The URI of the serving container image to use.
        dataset_id: The ID of the dataset to use for training.
        replica_count: The number of replicas to use for training.
        machine_type: The machine type to use for training.
        accelerator_type: The accelerator type to use for training.
        accelerator_count: The number of accelerators to use for training.
        parent_model: The parent resource name of an existing model.
        args: A list of arguments to pass to the training script.
        model_version_aliases: The aliases of the model version to create.
        model_version_description: The description of the model version.
        is_default_version: Whether the model version is the default version.
        project: The project ID.
        location: The region name.
    Returns:
        The new version of the model.
    """
    # Initialize the client.
    aiplatform.init(project=project, location=location)

    # Create the training job.
    # This job will upload a new, non-default version of the my-training-job model
    job = aiplatform.CustomTrainingJob(
        display_name=display_name,
        script_path=script_path,
        container_uri=container_uri,
        model_serving_container_image_uri=model_serving_container_image_uri,
    )

    # Create dataset
    # This examples uses a TabularDataset, but you can use any dataset type.
    dataset = aiplatform.TabularDataset(dataset_id) if dataset_id else None

    # Run the training job.
    model = job.run(
        dataset=dataset,
        args=args,
        replica_count=replica_count,
        machine_type=machine_type,
        accelerator_type=accelerator_type,
        accelerator_count=accelerator_count,
        parent_model=parent_model,
        model_version_aliases=model_version_aliases,
        model_version_description=model_version_description,
        is_default_version=is_default_version,
    )

    return model

Prepare uma nova versão do modelo

No Model Registry, pode preparar uma nova versão de um modelo.

Consola

No registo de modelos, pode criar uma versão de um modelo existente. Para saber como adicionar ou criar uma versão do modelo no pipeline de preparação, consulte o artigo CustomJob e carregamento de modelos

  1. Na Google Cloud consola, aceda à página Model Registry.
    Aceder ao Registo de modelos
  2. Na parte superior da página, selecione Criar. Introduza os detalhes do método de preparação e selecione o método de preparação do modelo.
  3. Clique em Continuar.
  4. Em Detalhes do modelo, selecione a opção Formar nova versão. No menu pendente, selecione o modelo ao qual está a adicionar uma nova versão. Adicione uma descrição da versão. Clique em Continuar.
  5. Na secção Computação e preços, introduza o seu orçamento e selecione Iniciar preparação quando tiver tudo pronto. Quando a preparação do modelo estiver concluída, a nova versão fica visível no registo de modelos.

REST

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • TRAINING_PIPELINE_NAME: um nome a apresentar para o trainingPipeline
  • TRAINING_TASK_INPUT: os parâmetros da tarefa de preparação.
  • PARENT_MODEL: o nome do recurso do modelo para o qual carregar a versão.

Método HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/trainingPipelines

Corpo JSON do pedido:

{
  "displayName": "TRAINING_PIPELINE_NAME",
  "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/custom_task_1.0.0.yaml",
  "trainingTaskInputs":"TRAINING_TASK_INPUT"
  },
  "modelToUpload": {
    "displayName": "MODEL_DISPLAY_NAME",
    "containerSpec": {
       "imageUri": "IMAGE_URI"
    },
  },
  "parentModel": "PARENT_MODEL",

Para enviar o seu pedido, expanda uma destas opções:

Deve receber um código de estado de êxito (2xx) e uma resposta vazia.

Python

Python


from google.cloud import aiplatform


def create_default_model_sample(model_id: str, project: str, location: str):
    """
    Initialize a Model resource to represent an existing model version with alias 'default'.
    Args:
        model_id: The ID of the model to initialize. Parent resource name of the model is also accepted.
        project: The project ID.
        location: The region name.
    Returns:
        Model resource.
    """
    # Initialize the client.
    aiplatform.init(project=project, location=location)

    # Initialize the Model resource with the ID 'model_id'. The parent_name of the Model resource can be also
    # 'projects/<your-project-id>/locations/<your-region>/models/<your-model-id>'
    default_model = aiplatform.Model(model_name=model_id)

    return default_model

Como ver uma lista de todas as versões de um modelo

Na página de detalhes de uma versão do modelo, pode optar por implementar e testar o modelo, configurar a inferência em lote e fazer a avaliação consoante o tipo de modelo. Também pode ver o conjunto de dados usado para preparar a versão do modelo diretamente na página de detalhes da versão.

Consola

No Model Registry, pode ver uma lista de todas as versões de um modelo. Isto pode ajudar a obter estatísticas rápidas e facilita a organização do modelo.

  1. Na Google Cloud consola, aceda à página Model Registry.
    Aceder ao Registo de modelos
  2. Na coluna Nome, selecione o nome de um modelo que tenha várias versões. É apresentada a página Versões.
  3. É apresentada uma lista de todas as versões e os respetivos IDs de versão associados.

REST

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: o ID do projeto associado a este modelo
  • LOCATION: a região onde está a usar o Vertex AI.
  • MODEL_ID: o ID associado a um modelo específico.

Método HTTP e URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID

Para enviar o seu pedido, expanda uma destas opções:

Deve receber um código de estado de êxito (2xx) e uma resposta vazia.

Python

Python


from google.cloud import aiplatform


def list_model_versions_sample(model_id: str, project: str, location: str):
    """
    List all model versions of a model.
    Args:
        model_id: The ID of the model to list. Parent resource name of the model is also accepted.
        project: The project ID.
        location: The region name.
    Returns:
        versions: List of model versions.
    """
    # Initialize the client.
    aiplatform.init(project=project, location=location)

    # Initialize the Model Registry resource with the ID 'model_id'.The parent_name of Model resource can be also
    # 'projects/<your-project-id>/locations/<your-region>/models/<your-model-id>'
    model_registry = aiplatform.models.ModelRegistry(model=model_id)

    # List all model versions of the model.
    versions = model_registry.list_versions()

    return versions

Como ver os detalhes da versão do modelo

No registo de modelos, pode ver os seus modelos e todas as versões dos modelos. Quando seleciona um modelo no Model Registry, a página de detalhes apresenta os detalhes do modelo e os detalhes específicos da versão do modelo. No ecrã de detalhes, pode avaliar e testar a versão do modelo, executar uma inferência em lote ou implementar o modelo num ponto final para inferência online.

Consola

Use as instruções seguintes para ver a página de detalhes do modelo. Para ver os detalhes da versão, clique no nome da versão.

  1. Na Google Cloud consola, aceda à página Model Registry.
    Aceder ao Registo de modelos
  2. No Registo de modelos da Vertex AI, clique no nome de um modelo para abrir a página de detalhes do modelo.
  3. É apresentada uma lista de todas as versões e os respetivos IDs de versão associados. As versões do modelo são apresentadas separadas por linhas. Os detalhes da versão do modelo incluem o ID da versão, o alias do modelo, o estado, a descrição e as etiquetas.
  4. Para ver os detalhes de uma das versões do modelo, selecione um ID da versão. É apresentada a página de detalhes do modelo
  5. Na página de detalhes, pode avaliar, implementar e testar, usar a previsão em lote e analisar mais detalhadamente os detalhes da versão. Além disso, nesta página, pode usar a avaliação de modelos do Vertex AI para comparar as versões do seu modelo.

Python

Python


from google.cloud import aiplatform


def get_model_version_info_sample(
    model_id: str, version_id: str, project: str, location: str
):
    """
    Get model version info.
    Args:
        model_id: The ID of the model.
        version_id: The version ID of the model version.
        project: The project ID.
        location: The region name.
    Returns:
        VersionInfo resource.
    """

    # Initialize the client.
    aiplatform.init(project=project, location=location)

    # Initialize the Model Registry resource with the ID 'model_id'.The parent_name of Model resource can be also
    # 'projects/<your-project-id>/locations/<your-region>/models/<your-model-id>'
    model_registry = aiplatform.models.ModelRegistry(model=model_id)

    # Get model version info with the version 'version_id'.
    model_version_info = model_registry.get_version_info(version=version_id)

    return model_version_info