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 surasia-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
- Pour obtenir plus d'informations sur BigQuery ML, consultez la page Présentation de BigQuery ML.
- Consultez la page Créer des modèles de machine learning dans BigQuery ML pour faire vos premiers pas avec BigQuery ML.
- Pour en savoir plus sur l'utilisation des modèles, consultez les pages suivantes :