Gérer les versions de modèles avec Model Registry

La gestion des versions de modèles vous permet de créer plusieurs versions du même modèle. La gestion des versions de modèles vous permet d'organiser vos modèles de manière à vous aider à naviguer et à comprendre les modifications qui ont eu un effet sur les modèles. Avec Model Registry, vous pouvez afficher vos modèles et toutes leurs versions dans une même vue. Vous pouvez afficher le détail des versions de modèles spécifiques et voir avec précision leurs performances.

Importer une nouvelle version de modèle

À partir de Model Registry, vous pouvez importer un modèle en tant que nouvelle version d'un modèle existant.

Console

  1. Dans la console Google Cloud, accédez à la page Registre de modèles.
    Accéder à la page Model Registry
  2. En haut de la page, sélectionnez Importer.
  3. Sélectionnez Importer en tant que nouvelle version.
  4. Dans la liste déroulante, sélectionnez le modèle pour lequel il s'agit d'une nouvelle version. Ajoutez une description de version facultative.
  5. Vous pouvez éventuellement définir ce modèle comme version par défaut. La version par défaut est présélectionnée chaque fois que le modèle est utilisé pour la prédiction (bien que vous puissiez toujours sélectionner d'autres versions).
  6. Sélectionnez votre région.
  7. Cliquez sur Continuer.
  8. Dans les paramètres du modèle, définissez le conteneur que vous souhaitez utiliser. Vous pouvez choisir d'importer des artefacts de modèle dans un nouveau conteneur prédéfini ou de les importer dans un conteneur personnalisé existant. Pour en savoir plus sur les conteneurs, consultez la section Importer des modèles dans Vertex AI.
  9. Cliquez sur Continuer.
  10. Facultatif : ajoutez la prise en charge de l'explicabilité à votre modèle.
  11. Sélectionnez Importer.

REST

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID du projet
  • LOCATION : emplacement.
  • MODEL_DISPLAY_NAME : nom du modèle.
  • ARTIFACT_URI : chemin d'accès au répertoire contenant l'artefact de modèle et les fichiers associés.
  • IMAGE_URI : image Docker à utiliser comme conteneur personnalisé pour diffuser les prédictions.
  • PARENT_MODEL : nom de ressource du modèle dans lequel importer la version.

Méthode HTTP et URL :

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

Corps JSON de la requête :

{

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

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

Entraîner une nouvelle version de modèle

À partir de Model Registry, vous pouvez entraîner une nouvelle version d'un modèle.

Console

À partir de Model Registry, vous pouvez créer une version d'un modèle existant. Pour savoir comment ajouter ou créer une version de modèle dans votre pipeline d'entraînement, consultez la section Importer des objets CustomJob et des modèles.

  1. Dans la console Google Cloud, accédez à la page Registre de modèles.
    <a{: class="button button-primary" l10n-attrs-original-order="href,target,class,track-name,track-type" l10n-encrypted-href="eE471CdLRMtrJ6UgOX6O4ltigmNHgUGOXn/QVSGplOheMVJU/yDyZ/OoAbOtzTXtQQdc2CaGxVtVGC/5S+Yj6A==" target="console" track-name="consoleLink" track-type="tasks" }="">Accéder à Model Registry </a{:>
  2. En haut de la page, sélectionnez Créer. Saisissez les détails de la méthode d'entraînement, puis sélectionnez la méthode d'entraînement de modèle.
  3. Cliquez sur Continuer.
  4. Sous "Informations sur le modèle", sélectionnez l'option Entraîner la nouvelle version. Dans la liste déroulante, sélectionnez le modèle auquel vous ajoutez une nouvelle version. Ajoutez une description de la version. Cliquez sur Continuer.
  5. Dans la section Calcul et tarification, saisissez votre budget et sélectionnez Démarrer l'entraînement lorsque vous êtes prêt. Une fois l'entraînement du modèle terminé, la nouvelle version est visible à partir de Model Registry.

REST

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • TRAINING_PIPELINE_NAME : nom à afficher pour le trainingPipeline.
  • TRAINING_TASK_INPUT : paramètre(s) de la tâche d'entraînement.
  • PARENT_MODEL : nom de ressource du modèle dans lequel importer la version.

Méthode HTTP et URL :

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

Corps JSON de la requête :

{
  "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",

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

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

Afficher la liste de toutes les versions d'un modèle

Sur la page d'informations d'une version de modèle, vous pouvez choisir de déployer et de tester votre modèle, configurer la prédiction par lot et effectuer des évaluations en fonction du type de modèle. Vous pouvez également afficher l'ensemble de données utilisé pour entraîner la version du modèle directement à partir de la page d'informations de la version.

Console

À partir du registre de modèles, vous pouvez afficher la liste de toutes les versions d'un modèle. Cela peut vous aider à obtenir un aperçu rapide du modèle et à l'organiser.

  1. Dans la console Google Cloud, accédez à la page Registre de modèles.
    <a{: class="button button-primary" l10n-attrs-original-order="href,target,class,track-name,track-type" l10n-encrypted-href="eE471CdLRMtrJ6UgOX6O4ltigmNHgUGOXn/QVSGplOheMVJU/yDyZ/OoAbOtzTXtQQdc2CaGxVtVGC/5S+Yj6A==" target="console" track-name="consoleLink" track-type="tasks" }="">Accéder à Model Registry </a{:>
  2. Dans la colonne "Nom", sélectionnez le nom d'un modèle comportant plusieurs versions. La page des versions s'ouvre.
  3. Une liste de toutes les versions et des identifiants associés s'affiche.

REST

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID du projet associé à ce modèle.
  • LOCATION : région dans laquelle vous utilisez Vertex AI.
  • MODEL_ID : ID associé à un modèle spécifique.

Méthode HTTP et URL :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

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

Afficher les détails d'une version de modèle

À partir de Model Registry, vous pouvez afficher vos modèles et toutes les versions de vos modèles. Lorsque vous sélectionnez un modèle dans Model Registry, la page d'informations du modèle affiche les détails du modèle et des détails sur la version spécifique. Sur l'écran des détails, vous pouvez évaluer et tester la version de votre modèle, exécuter une prédiction par lot ou déployer le modèle sur un point de terminaison pour la prédiction en ligne.

Console

Suivez les instructions ci-dessous pour afficher la page des détails de votre modèle. Pour afficher les détails d'une version, cliquez sur son nom.

  1. Dans la console Google Cloud, accédez à la page Registre de modèles.
    <a{: class="button button-primary" l10n-attrs-original-order="href,target,class,track-name,track-type" l10n-encrypted-href="eE471CdLRMtrJ6UgOX6O4ltigmNHgUGOXn/QVSGplOheMVJU/yDyZ/OoAbOtzTXtQQdc2CaGxVtVGC/5S+Yj6A==" target="console" track-name="consoleLink" track-type="tasks" }="">Accéder à Model Registry </a{:>
  2. À partir de Vertex AI Model Registry, cliquez sur le nom d'un modèle pour ouvrir la page des détails du modèle.
  3. Une liste de toutes les versions et de leurs ID s'affiche. Les versions de modèle sont séparées par une ligne. Les détails de la version du modèle incluent l'ID de version, l'alias, l'état, la description et les étiquettes du modèle.
  4. Pour afficher les détails d'une version de modèle, sélectionnez un ID de version. La page des détails du modèle s'ouvre.
  5. Sur la page des détails, vous pouvez évaluer, déployer et tester des applications, utiliser la prédiction par lot et examiner de plus près les détails de la version. En outre, sur cette page, vous pouvez utiliser les fonctionnalités d'évaluation de Vertex AI Model pour comparer les versions de votre modèle.

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