Control de versiones de modelos con el registro de modelos

El control de versiones de modelos te permite crear varias versiones del mismo modelo. Con el control de versiones de los modelos, puedes organizar tus modelos de forma que te resulte más fácil desplazarte por ellos y saber qué cambios han tenido qué efecto en los modelos. Con Model Registry, puedes ver tus modelos y todas sus versiones en una sola vista. Puedes desglosar versiones de modelos concretas y ver exactamente cómo han funcionado.

Importar una nueva versión del modelo

Desde el registro de modelos, puedes importar un modelo como una versión nueva de otro modelo.

Consola

  1. En la Google Cloud consola, ve a la página Registro de modelos.
    Ir al registro de modelos
  2. En la parte superior de la página, selecciona Importar.
  3. Selecciona Importar como nueva versión.
  4. En el menú desplegable, selecciona el modelo del que se trata de una nueva versión. Añade una descripción de la versión (opcional).
  5. También puedes definir este modelo como la versión predeterminada. La versión predeterminada se selecciona automáticamente siempre que se usa el modelo para hacer predicciones (aunque puedes seleccionar otras versiones).
  6. Selecciona tu región.
  7. Selecciona Continuar.
  8. En la configuración del modelo, define el contenedor que quieras usar. Puede importar artefactos de modelo a un contenedor precompilado nuevo o a un contenedor personalizado que ya tenga. Para obtener más información sobre los contenedores, consulta Importar modelos a Vertex AI.
  9. Selecciona Continuar.
  10. Opcional: Añade compatibilidad con la interpretabilidad a tu modelo.
  11. Selecciona Importar.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: el ID del proyecto.
  • LOCATION: la ubicación.
  • MODEL_DISPLAY_NAME: nombre del modelo.
  • ARTIFACT_URI: Ruta al directorio que contiene el artefacto del modelo y cualquiera de sus archivos auxiliares.
  • IMAGE_URI: imagen de Docker que se usará como contenedor personalizado para ofrecer predicciones.
  • PARENT_MODEL: 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, despliega una de estas opciones:

Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (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

Entrenar una nueva versión del modelo

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

Consola

En el registro de modelos, puedes crear una versión de un modelo que ya tengas. Para obtener más información sobre cómo añadir o crear una versión de un modelo en tu canalización de entrenamiento, consulta CustomJob y subida de modelos.

  1. En la Google Cloud consola, ve a la página Registro de modelos.
    Ir al registro de modelos
  2. En la parte superior de la página, selecciona Crear. Introduce los detalles del método de entrenamiento y selecciona el método de entrenamiento del modelo.
  3. Haz clic en Continuar.
  4. En Detalles del modelo, selecciona la opción Entrenar nueva versión. En el menú desplegable, selecciona el modelo al que vas a añadir una versión nueva. Añade una descripción de la versión. Haz clic en Continuar.
  5. En la sección Computación y precios, introduce tu presupuesto y selecciona Iniciar entrenamiento cuando lo tengas todo listo. Cuando se complete el entrenamiento del modelo, la nueva versión estará visible en el registro de modelos.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • TRAINING_PIPELINE_NAME: nombre visible de trainingPipeline
  • TRAINING_TASK_INPUT: los parámetros de la tarea de entrenamiento.
  • PARENT_MODEL: 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, despliega una de estas opciones:

Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (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 de un modelo, puedes desplegar y probar el modelo, configurar la inferencia por lotes y evaluar el modelo en función de su tipo. También puede ver el conjunto de datos usado para entrenar la versión del modelo directamente desde la página de detalles de la versión.

Consola

En el registro de modelos, puede ver una lista de todas las versiones de un modelo. Esto puede ayudarte a obtener información de un vistazo y a organizar el modelo.

  1. En la Google Cloud consola, ve a la página Registro de modelos.
    Ir al registro de modelos
  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 asociados.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: ID de proyecto asociado a este modelo
  • LOCATION: la región en la que usas Vertex AI.
  • MODEL_ID: ID asociado a 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, despliega una de estas opciones:

Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (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 de un modelo

En el registro de modelos, puedes ver tus modelos y todas sus versiones. Al seleccionar un modelo del registro de modelos, en la página de detalles se muestra información sobre el modelo y sobre la versión específica del modelo. En la pantalla de detalles, puede evaluar y probar la versión de su modelo, ejecutar una inferencia por lotes o implementar el modelo en un endpoint para la inferencia online.

Consola

Sigue estas 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 Google Cloud consola, ve a la página Registro de modelos.
    Ir al registro de modelos
  2. En el registro de modelos de Vertex AI, haz clic en el nombre de un modelo para abrir su página de detalles.
  3. Se muestra una lista de todas las versiones y sus IDs asociados. Las versiones del modelo se muestran en filas separadas. Los detalles de la versión del modelo incluyen el ID de la versión, el alias del modelo, el estado, la descripción y las etiquetas.
  4. Para ver los detalles de una de las versiones del modelo, selecciona un ID de versión. Se abrirá la página de detalles del modelo.
  5. En la página de detalles, puede evaluar, desplegar y probar, usar la predicción por lotes y consultar los detalles de la versión. Además, en esta página puedes usar Vertex AI Model Evaluation para comparar las versiones de tu 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