Controle de versões de modelo com o Model Registry

O controle de versões do modelo permite criar várias versões dele. Com o controle de versões de modelos, é possível organizar seus modelos de uma maneira que ajude você a navegar e entender quais alterações tiveram efeito nos modelos. Com o Model Registry, é possível ver os modelos e todas as versões deles em uma única visualização. Detalhamento por versões de modelo específicas e veja exatamente como foi o desempenho.

Importar uma nova versão do modelo

No Model Registry, é possível importar um modelo como uma nova versão de um modelo atual.

Console

  1. No Console do Google Cloud, acesse a página Registro do modelo..
    Acesse Model Registry
  2. Na parte superior da página, selecione Importar.
  3. Selecione Importar como nova versão.
  4. No menu suspenso, selecione o modelo da nova versão. Adicione uma descrição opcional à versão.
  5. Opcionalmente, defina esse modelo como a versão padrão. A versão padrão é pré-selecionada sempre que o modelo é usado para previsão, mas ainda é possível selecionar outras versões.
  6. Selecione sua região
  7. Selecione Continuar.
  8. Em "Configurações do modelo", defina o contêiner que você quer usar. É possível importar artefatos de modelo para um novo contêiner pré-criado ou importar para um contêiner personalizado atual. Para saber mais sobre contêineres, consulte Importar modelos para a Vertex AI.
  9. Selecione Continuar.
  10. Opcional: adicione suporte de explicabilidade ao modelo.
  11. Selecione Importar.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID do projeto.
  • LOCATION: o local.
  • MODEL_DISPLAY_NAME: o nome do modelo.
  • ARTIFACT_URI: o caminho para o diretório que contém o artefato do modelo e qualquer um dos arquivos de suporte dele.
  • IMAGE_URI: imagem do Docker a ser usada como o contêiner personalizado para exibir previsões.
  • PARENT_MODEL: o nome do recurso do modelo em que será feito o upload da 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 da solicitação:

{

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

Para enviar a solicitação, expanda uma destas opções:

Você receberá um código de status bem-sucedido (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

Como treinar uma nova versão do modelo.

No Model Registry, é possível treinar uma nova versão de um modelo.

Console

No Model Registry, é possível criar uma versão de um modelo. Para saber mais sobre como adicionar ou criar uma versão de modelo no pipeline de treinamento, consulte Upload de modelo e job personalizado

  1. No Console do Google Cloud, acesse a página Registro do modelo..
    Acesse Model Registry
  2. Na parte superior da página, selecione Criar. Insira os detalhes do método de treinamento e selecione o modelo de treinamento do modelo.
  3. Clique em Continuar.
  4. Em "Detalhes do modelo", selecione a opção Treinar nova versão. No menu suspenso, selecione o modelo ao qual você está adicionando uma nova versão. Adicione uma descrição da versão. Clique em Continuar.
  5. Na seção Computação e preços, insira o orçamento e selecione Iniciar treinamento quando estiver pronto. Quando o treinamento do modelo for concluído, a nova versão ficará visível no registro de modelos.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • TRAINING_PIPELINE_NAME: um nome de exibição do trainingPipeline.
  • TRAINING_TASK_INPUT: os parâmetros da tarefa de treinamento.
  • PARENT_MODEL: o nome do recurso do modelo em que será feito o upload da versão.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "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 a solicitação, expanda uma destas opções:

Você receberá um código de status bem-sucedido (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 visualizar uma lista de todas as versões de um modelo

Na página de detalhes de uma versão do modelo, é possível implantar e testar o modelo, configurar a previsão em lote e avaliá-lo de acordo com o tipo do modelo. Também é possível ver o conjunto de dados usado para treinar a versão de modelo diretamente na página de detalhes da versão.

Console

No Registro de modelos, é possível ver uma lista de todas as versões de um modelo. Isso pode ajudar você a ter uma visão geral e ajuda na organização do modelo.

  1. No Console do Google Cloud, acesse a página Registro do modelo..
    Acesse Model Registry
  2. Na coluna "Nome", selecione o nome de um modelo com várias versões. A página de versões será aberta.
  3. Uma lista de todas as versões e os IDs de versão associados é mostrada.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID do projeto associado a este modelo.
  • LOCATION: a região em que você está usando a 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 a solicitação, expanda uma destas opções:

Você receberá um código de status bem-sucedido (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 visualizar os detalhes da versão do modelo

No Model Registry, é possível ver os modelos e todas as versões deles. Ao selecionar um modelo do Registro de modelos, a página de detalhes exibe detalhes do modelo e detalhes específicos da versão. Na tela de detalhes, é possível avaliar e testar a versão do seu modelo, executar uma previsão em lote ou implantar o modelo em um endpoint para previsão on-line.

Console

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

  1. No Console do Google Cloud, acesse a página Registro do modelo..
    Acesse Model Registry
  2. No Vertex AI Model Registry, clique em um nome de modelo para abrir a página de detalhes do modelo.
  3. Uma lista de todas as versões e os IDs de versão associados é mostrada. As versões do modelo serão separadas por linha. Os detalhes da versão do modelo incluem o ID da versão, o alias do modelo, o status, a descrição e os rótulos.
  4. Para ver os detalhes de uma das versões do modelo, selecione um ID de versão. A página de detalhes do modelo é aberta
  5. Na página de detalhes, é possível avaliar, implantar e testar, usar a previsão em lote e analisar mais detalhadamente os detalhes da versão. Além disso, é possível usar a Avaliação de modelos da Vertex AI para comparar as versões do 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