Control de versiones de modelos con Model Registry

El control de versiones de modelos te permite crear varias versiones del mismo modelo. Con el control de versiones de modelos, puedes organizar tus modelos de una manera que ayude a navegar y comprender qué cambios tuvieron qué efecto en los modelos. Con Model Registry, puedes ver tus modelos y todas sus versiones en una sola vista. Puedes desglosar versiones de modelo específicas y ver exactamente su rendimiento.

Importa una versión nueva del modelo

Desde Model Registry, puedes importar un modelo como una versión nueva de un modelo existente.

Console

  1. En la consola de Google Cloud, ve a la página Model Registry.
    Ir a Model Registry
  2. En la parte superior de la página, selecciona Importar.
  3. Selecciona Importar como versión nueva.
  4. En el menú desplegable, selecciona el modelo del que es una versión nueva. Agrega una descripción de versión opcional.
  5. De manera opcional, configura este modelo como la versión predeterminada. La versión predeterminada se preselecciona cada vez que se usa el modelo para la predicción (aunque puedes seleccionar otras versiones).
  6. Selecciona tu región,
  7. Selecciona Continuar.
  8. En la configuración del modelo, define qué contenedor deseas usar. Puedes seleccionar importar artefactos del modelo a un contenedor precompilado nuevo o importarlos a un contenedor personalizado existente. Para obtener más información sobre los contenedores, consulta Importa modelos a Vertex AI.
  9. Selecciona Continuar.
  10. Agrega asistencia de explicabilidad a tu modelo (opcional).
  11. Selecciona Importar.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID del proyecto
  • LOCATION: La ubicación.
  • MODEL_DISPLAY_NAME: Es el nombre del modelo.
  • ARTIFACT_URI: La ruta de acceso al directorio que contiene el artefacto del modelo y cualquiera de sus archivos de respaldo.
  • IMAGE_URI: La imagen de Docker que se usará como contenedor personalizado para entregar predicciones.
  • PARENT_MODEL: Es el nombre del recurso del modelo en el que se subirá la versión.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{

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

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.

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

Entrena una nueva versión de un modelo

Desde el registro de modelos, puedes entrenar una versión nueva de un modelo.

Console

Desde el registro de modelos, puedes crear una versión de un modelo existente. Para obtener más información sobre cómo agregar o crear una versión del modelo en la canalización de entrenamiento, consulta CustomJob y model upload.

  1. En la consola de Google Cloud, ve a la página Model Registry.
    Ir a Model Registry
  2. En la parte superior de la página, selecciona Crear. Ingresa los detalles del método de entrenamiento y selecciona el método de entrenamiento de modelos.
  3. Haz clic en Continuar.
  4. En Detalles del modelo, selecciona la opción Entrenar versión nueva. En el menú desplegable, selecciona el modelo al que deseas agregar una versión nueva. Agrega una descripción de la versión. Haga clic en Continuar.
  5. En la sección Compute y precios, ingresa tu presupuesto y selecciona Comenzar entrenamiento cuando comiences. Cuando se completa el entrenamiento del modelo, la versión nueva es visible desde Model Registry.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • TRAINING_PIPELINE_NAME: Un nombre visible para TrainingPipeline.
  • TRAINING_TASK_INPUT: Los parámetros de la tarea de entrenamiento.
  • PARENT_MODEL: Es el nombre del recurso del modelo en el que se subirá la versión.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "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 tu solicitud, expande una de estas opciones:

Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.

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

Cómo ver una lista de todas las versiones de un modelo

En la página de detalles de una versión del modelo, puedes elegir implementar y probar tu modelo, configurar la predicción por lotes y evaluar según el tipo de modelo. También puedes ver el conjunto de datos usado para entrenar la versión del modelo directamente desde la página de detalles de la versión.

Console

En Model Registry, puedes ver una lista de todas las versiones de un modelo. Esto puede ayudarte a obtener una estadística rápida y a ayudar a la organización de modelos.

  1. En la consola de Google Cloud, ve a la página Model Registry.
    Ir a Model Registry
  2. En la columna Nombre, selecciona el nombre de un modelo que tenga varias versiones. Se abrirá la página de versiones.
  3. Se muestra una lista de todas las versiones y sus IDs de versión asociadas.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID del proyecto asociado con este modelo
  • LOCATION: la región en la que usas Vertex AI.
  • MODEL_ID: El ID asociado con un modelo específico.

Método HTTP y URL:

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

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.

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

Cómo ver los detalles de la versión del modelo

Desde Model Registry, puedes ver tus modelos y todas las versiones. Cuando seleccionas un modelo del registro de modelos de Vertex AI, la página de detalles muestra detalles del modelo y los detalles específicos de la versión del modelo. En la pantalla de detalles, puedes evaluar y probar la versión del modelo, ejecutar una predicción por lotes o implementar el modelo en un extremo para la predicción en línea.

Console

Usa las siguientes instrucciones para ver la página de detalles de tu modelo. Para ver los detalles de la versión, haz clic en el nombre de la versión.

  1. En la consola de Google Cloud, ve a la página Model Registry.
    Ir a Model Registry
  2. En Vertex AI Model Registry, haz clic en el nombre de un modelo para abrir la página de detalles del modelo.
  3. Se muestra una lista de todas las versiones y sus IDs de versión asociadas. Verás las versiones del modelo separadas por fila. Los detalles de la versión del modelo incluyen el ID, el alias, el estado, la descripción y las etiquetas del modelo.
  4. Para ver los detalles de una de las versiones del modelo, selecciona un ID de versión. Se abre la página de detalles del modelo
  5. En la página de detalles, puedes evaluar, implementar y probar, usar la predicción por lotes y ver con más detalle los detalles de la versión. Además, en esta página, puedes usar Evaluación de modelos de Vertex AI para comparar tus versiones de modelos.

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