Vous trouverez sur cette page la procédure à suivre pour étiqueter vos ressources afin de pouvoir les organiser et les filtrer de manière plus efficace.
Présentation des étiquettes
Vous pouvez ajouter des étiquettes à vos tâches, modèles et versions de modèles AI Platform Prediction, puis les utiliser pour organiser les ressources en catégories lorsque vous les consultez ou les supervisez.
Vous pouvez ainsi étiqueter les tâches correspondant à différentes équipes (par exemple, engineering
ou research
) ou à différentes phases de développement (prod
ou test
), puis les filtrer en fonction de l'équipe ou de la phase.
Les opérations peuvent aussi bénéficier d'étiquettes, mais celles-ci sont alors dérivées de la ressource à laquelle l'opération s'applique. Vous ne pouvez pas ajouter ni modifier d'étiquettes sur une opération.
Une étiquette est une paire clé/valeur dont la clé et la valeur sont des chaînes personnalisées que vous fournissez.
Limites et règles :
- Une ressource peut recevoir un maximum de 64 étiquettes.
- Une clé ou une valeur peut contenir un maximum de 63 caractères.
- Les clés et les valeurs peuvent contenir des lettres minuscules, des chiffres, des traits de soulignement et des tirets.
- Les clés doivent commencer par une lettre.
- Les caractères internationaux sont acceptés.
Exemples :
- Étiquettes indiquant une équipe ou un centre de coûts :
team:engineering
etteam:research
- Étiquettes indiquant une phase de développement :
phase:prod
etphase:test
- Étiquettes indiquant un propriétaire ou un contact :
owner:alice
etowner:bob
Ajouter des étiquettes lors de la création d'une ressource
Lorsque vous créez une ressource, vous pouvez utiliser la commande gcloud
ou l'API AI Platform Training and Prediction dans votre application Python pour ajouter des étiquettes à vos tâches, modèles et versions de modèles. Sélectionnez l'un des onglets ci-dessous pour afficher des exemples de chaque méthode d'ajout d'étiquette :
Console
Vous devez créer la ressource avant d'ajouter des étiquettes. Découvrez comment ajouter et modifier des étiquettes.
gcloud
Lors de la création d'une ressource, spécifiez le champ labels
pour associer une étiquette à la nouvelle ressource.
Pour les exemples ci-dessous, supposons que vous souhaitiez utiliser les étiquettes suivantes : team:engineering
, phase:test
et owner:alice
.
Pour plus de simplicité, configurez une variable d'environnement contenant les étiquettes :
RESOURCE_LABELS="team=engineering,phase=test,owner=alice"
Le code suivant crée un modèle doté des libellés spécifiés :
REGION="us-central1"
MODEL_NAME="your_model_name"
gcloud ai-platform models create $MODEL_NAME \
--labels $RESOURCE_LABELS \
--regions $REGION
Le code suivant envoie une tâche d'apprentissage dotée des libellés spécifiés :
JOB_NAME="your_job_name"
TRAINER_PACKAGE_PATH="/path/to/your/application/sources"
MAIN_TRAINER_MODULE="trainer.task"
JOB_DIR="gs://your/job/output/path"
TRAIN_DATA="gs://your/training/data/path"
EVAL_DATA="gs://your/eval/data/path"
gcloud ai-platform jobs submit training $JOB_NAME \
--labels $RESOURCE_LABELS \
--scale-tier basic \
--package-path $TRAINER_PACKAGE_PATH \
--module-name $MAIN_TRAINER_MODULE \
--job-dir $JOB_DIR \
--runtime-version 2.11 \
--region $REGION \
-- \
--train-files $TRAIN_DATA \
--eval-files $EVAL_DATA \
--train-steps 1000
Python
Configurez un dictionnaire contenant les champs de la ressource que vous souhaitez créer. Incluez les étiquettes sous la forme d'une entrée de dictionnaire mappant les chaînes par paires.
L'exemple suivant montre comment créer un modèle avec trois étiquettes : team:engineering
, phase:test
et owner:alice
.
requestDict = {'name': modelName,
'description': 'A model with labels.',
'labels': {
'team': 'engineering',
'phase': 'test',
'owner': 'alice'
}}
Envoyez la requête :
request = ml.projects().models().create(parent=projectID,
body=requestDict)
response = request.execute()
L'exemple suivant montre comment créer une tâche avec trois étiquettes : team:engineering
, phase:test
et owner:alice
.
training_inputs = {'scaleTier': 'BASIC',
'packageUris': ['gs://your/trainer/path/package-0.0.0.tar.gz'],
'pythonModule': 'trainer.task'
'args': ['--arg1', 'value1', '--arg2', 'value2'],
'region': 'us-central1',
'labels': {
'team': 'engineering',
'phase': 'test',
'owner': 'alice'
},
'jobDir': 'gs://your/training/job/directory',
'runtimeVersion': '2.11'}
job_spec = {'jobId': your_job_name, 'trainingInput': training_inputs}
Envoyez la requête :
request = cloudml.projects().jobs().create(body=job_spec,
parent=project_id)
response = request.execute()
Modifier et supprimer des étiquettes
Vous pouvez modifier ou supprimer des étiquettes associées à des tâches ou des modèles à l'aide de la commande gcloud
ou directement dans votre application Python. Il n'est pas possible de modifier les étiquettes sur les versions de modèles existantes.
Choisissez un onglet ci-dessous pour voir des exemples de chaque méthode de suppression ou de modification des étiquettes :
Console
Ouvrez la page de la console Google Cloud de la ressource à laquelle ajouter une étiquette :
Pour étiqueter des tâches, ouvrez la page Tâches d'AI Platform Prediction dans la console Google Cloud.
Pour étiqueter des modèles, ouvrez la page Modèles d'AI Platform Prediction dans la console Google Cloud.
Cochez la case
à côté du nom de la ou des ressources que vous souhaitez étiqueter.Toutes les modifications d'étiquettes sont effectuées dans le volet situé à droite des noms de ressources.
Pour ajouter une étiquette, saisissez sa clé et, éventuellement, sa valeur. Pour ajouter plusieurs étiquettes, cliquez sur le bouton Ajouter une étiquette.
Pour supprimer des étiquettes, placez le pointeur de la souris à droite de celles-ci, puis cliquez sur
l'icône Supprimer qui s'affiche.
Après avoir modifié vos étiquettes, cliquez sur Enregistrer pour confirmer les modifications ou sur Annuler les modifications pour recommencer.
gcloud
Vous pouvez utiliser la commande gcloud
pour modifier ou supprimer des étiquettes sur une ressource existante. Par exemple, pour modifier les étiquettes appliquées à une tâche, exécutez la commande gcloud ai-platform jobs update avec les options suivantes :
--update-labels
pour modifier la valeur des étiquettes existantes et ajouter des étiquettes. Par exemple, pour remplacer la valeur de l'étiquettephase
parproduction
et ajouter une étiquettestatus
, procédez comme suit :gcloud ai-platform jobs update $JOB_NAME \ --update-labels phase=production,status=deployed
--clear-labels
pour supprimer toutes les étiquettes de la tâche. Si vous incluez une option--update-labels
dans la même commande, la commande clear est appliquée en premier, suivie de la commande update. Par exemple, pour supprimer toutes les étiquettes et appliquer les nouvelles étiquettesfoo
etbaz
, procédez comme suit :gcloud ai-platform jobs update $JOB_NAME \ --clear-labels \ --update-labels foo=bar,baz=qux
--remove-labels
pour supprimer des étiquettes spécifiques de la tâche. Si vous spécifiez une étiquette qui n'existe pas dans la tâche, la commande remove est ignorée pour celle-ci. Par exemple, pour supprimer les étiquettesstatus
etvisibility
, procédez comme suit :gcloud ai-platform jobs update $JOB_NAME \ --remove-labels=status,visibility
Python
Pour modifier ou supprimer des étiquettes associées à une ressource existante, telle qu'un modèle, procédez comme suit :
- Récupérez le modèle à l'aide d'une requête
GET
. - Modifiez le champ
labels
. - Modifiez le modèle à l'aide d'une requête
PATCH
.
L'exemple suivant montre le schéma LIRE-MODIFIER-ÉCRIRE correspondant à la mise à jour des étiquettes d'un modèle :
existingModel = ml.projects().models().get(name=fullModelName).execute()
etag = existingModel['etag']
updatedModel = {
'labels': {
'phase': 'prod',
'team': 'research'
},
'etag': etag
}
# projects.models.patch API returns a long-running operation object
# instead of a model object. See
# https://cloud.google.com/ai-platform/prediction/docs/reference/rest/v1/projects.models/patch
updateModelRequest = ml.projects().models().patch(name=fullModelName,
body=updatedModel, updateMask='labels,etag')
updateModelOperation = updateModelRequest.execute()
# You can choose appropriate ways to poll the operation.
delay = 1
while not updateModelOperation['done']:
time.sleep(delay)
delay *= 2
updateModelOperation = ml.projects().operations().get(name=updateModelOperation['name'])
updatedModel = ml.projects().models().get(name=fullModelName).execute()
Pour supprimer ou modifier les étiquettes d'une tâche existante, procédez comme suit :
- Récupérez la tâche à l'aide d'une requête
GET
. - Modifiez le champ
labels
. - Modifiez la tâche à l'aide d'une requête
PATCH
.
L'exemple suivant présente le schéma "LIRE-MODIFIER-ÉCRIRE" correspondant à la mise à jour des étiquettes d'une tâche :
existingJob = ml.projects().jobs().get(jobId=jobId).execute()
etag = existingJob['etag']
updatedJob = {
'labels': {
'phase': 'prod',
'team': 'research'
},
'etag': etag
}
updateJobRequest = ml.projects().jobs().patch(name=jobId,
body=updatedJob, updateMask='labels,etag')
updatedJob = updateJobRequest.execute()
Filtrer les ressources à l'aide d'étiquettes
Lorsque vous répertoriez vos ressources, vous pouvez filtrer la liste par étiquette.
Console
Ouvrez la page de la console Google Cloud de la ressource à filtrer :
Pour filtrer des tâches, ouvrez la page Tâches d'AI Platform Prediction dans la console Google Cloud.
Pour filtrer des modèles, ouvrez la page Modèles d'AI Platform Prediction dans la console Google Cloud.
Cliquez dans le champ
Filtrer par préfixe, situé au-dessus de votre liste de tâches. Sélectionnez le préfixe Label (Étiquette).Pour terminer le filtrage, saisissez la clé et la valeur en appliquant la syntaxe "key.value". Par exemple, "team:engineering" ou "owner:alice".
Le filtre est appliqué à votre liste de ressources et le nom du filtre s'affiche dans le champ de filtrage. Par exemple, "Labels:owner:alice" ou "Labels:team:engineering". Vous pouvez ajouter plusieurs filtres si nécessaire.
gcloud
L'exemple suivant répertorie tous les modèles étiquetés avec la paire clé/valeur team:engineering
:
gcloud ai-platform models list --filter='labels.team:engineering'
L'exemple suivant répertorie toutes les tâches étiquetées avec la paire clé/valeur team:engineering
et la paire clé/valeur owner:alice
:
gcloud ai-platform jobs list \
--filter='labels.team:engineering AND labels.owner=alice'
Python
L'exemple suivant utilise la requête models.list pour récupérer tous les modèles étiquetés avec la paire clé/valeur team:engineering
:
request = ml.projects().models().list(parent=projectID,
filter='labels.team=engineering')
results = request.execute()
L'exemple suivant utilise la requête jobs.list pour récupérer toutes les tâches étiquetées avec la paire clé/valeur team:engineering
et la paire clé/valeur owner:alice
:
request = ml.projects().jobs().list(parent=projectID,
filter='labels.team=engineering AND labels.owner=alice')
results = request.execute()
Étape suivante
- Découvrez comment gérer les modèles et les tâches.