Gérer des modèles

Cette page explique comment gérer les modèles BigQuery ML, y compris comment les copier et les renommer.

Rôles requis

Pour obtenir les autorisations nécessaires pour lire et créer des modèles BigQuery, demandez à votre administrateur de vous accorder le rôle IAM Éditeur de données BigQuery (roles/bigquery.dataEditor) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour lire et créer des modèles BigQuery. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour lire et créer des modèles BigQuery:

  • Pour lire des informations à partir de modèles : bigquery.models.getData
  • Pour créer des modèles : bigquery.models.create

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Renommer des modèles

Vous ne pouvez pas changer le nom d'un modèle existant. Si vous devez modifier le nom, suivez les étapes pour copier le modèle. Lorsque vous spécifiez la destination dans l'opération de copie, utilisez le nouveau nom du modèle.

Copier des modèles

Vous pouvez copier un ou plusieurs modèles d'un ensemble de données source vers un ensemble de données cible à l'aide des méthodes suivantes :

  • Utiliser la console Google Cloud
  • Utiliser la commande bq cp de l'outil de ligne de commande bq
  • en appelant directement la méthode API jobs.insert et en configurant une tâche de copie ou en utilisant les bibliothèques clientes.

Limites relatives à la copie de modèles

Les tâches de copie de modèles sont soumises aux limites suivantes :

  • Lorsque vous copiez un modèle, le nom du modèle de destination doit respecter les mêmes conventions de dénomination que lorsque vous créez un modèle.
  • Les copies de modèles sont soumises aux limites de BigQuery sur les jobs de copie.
  • La copie d'un modèle n'est pas possible dans la console Google Cloud.
  • La copie de plusieurs modèles source dans une seule commande n'est pas acceptée.
  • L'interface de ligne de commande ne permet pas d'utiliser l'option --destination_kms_key pour la copie de modèles.

Copier un modèle

Vous pouvez copier un modèle à l'aide des méthodes suivantes :

  • utiliser la commande bq cp de l'outil de ligne de commande ;
  • en appelant la méthode API jobs.insert et en configurant une tâche de copie ou en utilisant les bibliothèques clientes.

Pour copier un modèle, procédez comme suit :

Console

La console Google Cloud ne permet pas de copier des modèles.

bq

Exécutez la commande bq cp. Indicateurs facultatifs :

  • -f ou --force écrase un modèle existant dans l'ensemble de données de destination et ne vous demande pas de confirmation.
  • -n ou --no_clobber renvoie le message d'erreur suivant si le modèle existe dans l'ensemble de données de destination : '[PROJECT_ID]:[DATASET].[MODEL]' already exists, skipping.

    Si -n n'est pas spécifié, le comportement par défaut consiste à vous demander si vous souhaitez remplacer le modèle de destination.

Si l'ensemble de données source ou de destination se trouve dans un projet autre que votre projet par défaut, ajoutez l'ID du projet aux noms des ensembles de données en respectant le format suivant : PROJECT_ID:DATASET.

Spécifiez l'option --location et définissez la valeur correspondant à votre emplacement.

bq --location=LOCATION cp -f -n PROJECT_ID:DATASET.SOURCE_MODEL PROJECT_ID:DATASET.DESTINATION_MODEL

Remplacez les éléments suivants :

  • LOCATION : nom de votre emplacement. L'option --location est facultative. Par exemple, si vous utilisez BigQuery dans la région de Tokyo, vous pouvez définir la valeur de l'option sur asia-northeast1. Vous pouvez définir une valeur par défaut correspondant à l'emplacement en utilisant le fichier.bigqueryrc. Pour obtenir la liste complète des emplacements, consultez la section Emplacements BigQuery.
  • PROJECT_ID : ID de votre projet.
  • DATASET : nom de l'ensemble de données source ou de destination.
  • SOURCE_MODEL : modèle que vous copiez.
  • DESTINATION_MODEL : nom du modèle dans l'ensemble de données de destination.

Exemples :

Saisissez la commande suivante pour copier mydataset.mymodel dans mydataset2. Les deux ensembles de données sont dans votre projet par défaut et ont été créés dans l'emplacement multirégional US.

bq --location=US cp mydataset.mymodel mydataset2.mymodel

Saisissez la commande suivante pour copier mydataset.mymodel et pour écraser un modèle de destination portant le même nom. L'ensemble de données source est dans votre projet par défaut. L'ensemble de données de destination se trouve dans myotherproject. Le raccourci -f permet d'écraser le modèle de destination sans invite. mydataset et myotherdataset ont été créés dans l'emplacement multirégional US.

bq --location=US cp -f mydataset.mymodel myotherproject:myotherdataset.mymodel

Saisissez la commande suivante pour copier mydataset.mymodel et renvoyer une erreur si l'ensemble de données de destination contient un modèle portant le même nom. L'ensemble de données source est dans votre projet par défaut. L'ensemble de données de destination se trouve dans myotherproject. Le raccourci -n permet d'empêcher l'écrasement d'un modèle portant le même nom. Les deux ensembles de données ont été créés dans l'emplacement multirégional US.

bq --location=US cp -n mydataset.mymodel myotherproject:myotherdataset.mymodel

Saisissez la commande suivante pour copier mydataset.mymodel dans mydataset2 et renommer le modèle mymodel2. Les deux ensembles de données sont dans votre projet par défaut. Les deux ensembles de données ont été créés dans la région asia-northeast1.

bq --location=asia-northeast1 cp mydataset.mymodel mydataset2.mymodel2

API

Pour copier un modèle à l'aide de l'API, appelez la méthode bigquery.jobs.insert et configurez une tâche copy. Spécifiez votre emplacement dans la propriété location de la section jobReference de la ressource de tâche.

Vous devez spécifier les valeurs suivantes dans votre configuration de tâche :

"copy": {
      "sourceTable": {       // Required
        "projectId": string, // Required
        "datasetId": string, // Required
        "tableId": string    // Required
      },
      "destinationTable": {  // Required
        "projectId": string, // Required
        "datasetId": string, // Required
        "tableId": string    // Required
      },
      "createDisposition": string,  // Optional
      "writeDisposition": string,   // Optional
    },

Où :

  • sourceTable : fournit des informations sur le modèle à copier.
  • destinationTable : fournit des informations sur le nouveau modèle.
  • createDisposition : spécifie s'il faut créer le modèle si celui-ci n'existe pas.
  • writeDisposition : spécifie s'il faut écraser un modèle existant.

Chiffrer des modèles

Pour en savoir plus sur l'utilisation d'une clé de chiffrement gérée par le client (CMEK) pour chiffrer un modèle, consultez la section Utiliser des clés CMEK pour protéger des modèles BigQuery ML.

Étapes suivantes