Lors de la préparation d'ensembles de données pour des tâches de machine learning supervisées sur Google Cloud AI Platform, il est fréquent de rencontrer des métadonnées ou des annotations à des fins d'information ou d'organisation pour les utilisateurs humains, mais qui ne sont pas destinées à influencer le processus d'entraînement d'un modèle de machine learning. Une gestion adéquate de ces données est essentielle pour éviter toute fuite de données involontaire, maintenir la reproductibilité et garantir la clarté de l'ensemble de données pour les utilisateurs, qu'ils soient machines ou humains.
Comprendre les distinctions entre l'étiquetage des données
Dans le contexte du service d'étiquetage des données d'IA de Google Cloud, l'étiquetage des données désigne généralement le processus d'attribution d'annotations de vérité terrain aux instances de données (telles que les images, le texte ou l'audio) qui serviront de cibles lors de l'entraînement ou de l'évaluation du modèle. Ces annotations peuvent inclure des étiquettes de classe, des cadres de délimitation, des masques de segmentation ou des transcriptions, selon la tâche.
Cependant, les ensembles de données contiennent souvent des champs ou des métadonnées supplémentaires qui apportent une valeur informative. Par exemple :
– Commentaires ou notes du réviseur
– Drapeaux de contrôle qualité
– Descriptions ou justifications lisibles par l’homme
– Identifiants de l’annotateur ou du réviseur
– Horodatages des événements d’étiquetage
– Scores de confiance saisis par un humain, pas par un modèle
– Balises internes pour la gestion du flux de travail
Bien que ces attributs puissent aider à la gestion des données, à l’audit ou à l’interprétabilité, ils ne sont pas destinés à être des fonctionnalités ou des cibles pour le modèle d’apprentissage automatique.
Stratégies d'étiquetage des données non liées à la formation
Pour garantir que certaines annotations n'influencent pas la formation du modèle lors de l'utilisation de Google Cloud AI Platform, plusieurs stratégies peuvent être employées lors de la préparation, du stockage et de l'ingestion des ensembles de données.
1. Conception et séparation des schémas
Concevez le schéma du jeu de données de manière à ce que les champs non liés à l'apprentissage soient clairement séparés des entités et des libellés. Par exemple, si vous utilisez les formats CSV, JSONL ou TFRecord pour stocker les données, regroupez les champs comme suit :
- Caractéristiques : Utilisé comme entrée du modèle
- Étiquettes: Utilisé comme vérité fondamentale pour la formation supervisée
- Métadonnées: Utilisé pour la référence humaine ou le flux de travail
Exemple (format JSONL) :
json
{
"image_uri": "gs://bucket/path/image1.jpg",
"label": "cat",
"annotator_comment": "Blurry image, but still recognizable.",
"reviewer_id": "user_23",
"created_at": "2023-04-12T10:23:34Z"
}
Dans cet exemple, seuls « image_uri » et « label » seraient utilisés pour la formation du modèle. « annotator_comment », « reviewer_id » et « created_at » sont des champs de métadonnées destinés à la consommation humaine.
2. Utilisation de champs d'annotation personnalisés
Dans le service d'étiquetage des données Google Cloud AI, il est possible de définir des champs d'annotation personnalisés. Ces champs peuvent être réservés à un usage interne et non exportés dans le jeu de données d'entraînement. Par exemple, l'outil permet de créer des instructions spécifiques à une tâche et des attributs personnalisés qui facilitent l'étiquetage, mais qui ne sont pas exportés vers le schéma final du jeu de données utilisé pour l'entraînement du modèle.
3. Exclusion explicite lors de l'exportation
Lors de l'exportation d'ensembles de données étiquetés depuis le service d'étiquetage des données Google Cloud AI, configurez les paramètres d'exportation pour exclure les champs de métadonnées non destinés à l'entraînement. La plateforme permet de sélectionner des champs d'annotation spécifiques à inclure dans l'ensemble de données exporté, assurant ainsi une séparation nette entre les données d'entraînement et les informations auxiliaires.
4. Filtrage du pipeline d'ingestion de données
Dans le pipeline d'ingestion de données qui alimente le processus d'entraînement (par exemple, Dataflow, Apache Beam, scripts Python personnalisés), appliquez un filtrage explicite pour garantir que seuls les champs pertinents sont transmis à la tâche d'entraînement. Cela peut se faire en spécifiant les colonnes à lire dans le jeu de données ou en transformant le jeu de données dans un format (par exemple, exemples TensorFlow, CSV avec uniquement des colonnes de caractéristiques/étiquettes) qui exclut les métadonnées.
Exemple (pseudo-code Python) :
{{EJS4}}5. Documentation et contrats de données
Maintenez une documentation claire des données ou des contrats de données précisant les champs utilisés pour l'entraînement du modèle et ceux qui sont purement informatifs. Cela permet aux parties prenantes actuelles et futures de comprendre l'utilisation prévue de chaque champ, minimisant ainsi le risque d'inclure involontairement des données non pertinentes dans le processus d'entraînement.
Cas d'utilisation et exemples
Considérez une tâche de classification d'images où les étiqueteurs sont invités à classer les images comme « chat » ou « chien » et à fournir un commentaire sur toute ambiguïté qu'ils rencontrent. - Le "étiquette" le champ est la vérité fondamentale que le modèle apprendra à prédire. - Le "commenter" Le champ est destiné à l'audit et à la révision, aidant les scientifiques des données à comprendre les défis ou les ambiguïtés de l'étiquetage. - Le "annotator_id" Ce champ permet de savoir qui a étiqueté chaque image pour la gestion de la qualité. Si les champs « comment » ou « annotator_id » sont inclus comme caractéristiques lors de l'entraînement du modèle, celui-ci pourrait apprendre par inadvertance des modèles basés sur le comportement ou les commentaires de l'annotateur, ce qui entraînerait une fuite de données et une généralisation réduite. En isolant ces champs et en veillant à ce que seul le champ « label » soit utilisé comme cible et que seules les caractéristiques pertinentes (telles que les pixels de l'image) soient utilisées comme entrées du modèle, l'intégrité du processus d'entraînement est préservée.
Prévenir les fuites de données
Une fuite de données se produit lorsque des informations qui ne seraient pas disponibles au moment de la prédiction sont incluses dans les données d'entraînement. Cela entraîne des performances de modèle trop optimistes lors de l'entraînement et de l'évaluation, mais une faible généralisation en production. L'inclusion de champs réservés aux utilisateurs (tels que les commentaires des réviseurs ou les balises internes) comme caractéristiques de modèle est une source fréquente de fuite de données. Ce risque peut être atténué par : - des processus rigoureux de révision des données avant l'entraînement ; - une validation automatisée des schémas et des vérifications du pipeline ; - une formation continue des équipes d'ingénierie et de science des données aux risques de fuite.
Recommandations pour le service d'étiquetage des données Google Cloud AI
- Configuration des tâches : Lors de la configuration d'une tâche d'étiquetage, définissez les champs à utiliser comme étiquettes pour la formation du modèle et ceux à des fins auxiliaires. - Modèles d'exportation : Personnalisez les modèles d'exportation pour garantir que seul le sous-ensemble de champs pertinent est inclus dans l'ensemble de données utilisé pour les tâches de formation en aval. - Contrôle d'Accès : Utilisez les stratégies IAM de Google Cloud pour restreindre l'accès aux champs de métadonnées sensibles selon les besoins, en particulier si les métadonnées incluent des informations personnellement identifiables (PII) ou d'autres contenus sensibles. Contrôle des versions des données : Versionnez à la fois les données brutes étiquetées et les ensembles de données de formation filtrés pour garantir la reproductibilité et la traçabilité.
Stockage et suivi des métadonnées
Bien que les champs de métadonnées ne doivent pas être inclus dans la formation du modèle, ils peuvent être utiles pour : - Audit Suivi de la qualité de l'étiquetage, examen des performances individuelles de chaque étiqueteur ou enquête sur les incohérences de l'étiquetage. - Gestion du workflow: Gestion de la progression de l'étiquetage, attribution des tâches ou suivi de l'état d'avancement des révisions. - Erreur d'analyse: Comprendre les erreurs de modèle dans le contexte de cas d'étiquetage complexes. Google Cloud AI Platform prend en charge le stockage de ces champs de métadonnées dans les tables BigQuery ou dans les fichiers sources de Cloud Storage, séparément des jeux de données ingérés dans les services Vertex AI ou AutoML.
Exemple : Exportation d'annotations du service d'étiquetage des données Cloud AI
Une exportation d’annotation typique pour une tâche de classification d’images pourrait ressembler à l’objet JSON suivant :
json
{
"input_gcs_uri": "gs://bucket/images/img1.jpg",
"classification_annotations": [
{
"display_name": "cat"
}
],
"annotation_metadata": {
"labeler_notes": "Blurry but likely a cat.",
"created_by": "labeler_123",
"timestamp": "2023-04-12T10:23:34Z"
}
}
Dans cet exemple, seul le champ « classification_annotations » est utilisé comme étiquette de vérité fondamentale pour l'entraînement. L'objet « annotation_metadata » est conservé pour consultation et doit être exclu du jeu de données d'entraînement.
Gestion des données dans Vertex AI
Lors de l'utilisation de Vertex AI sur Google Cloud, les jeux de données sont souvent enregistrés sur la plateforme et la gestion des schémas est gérée explicitement. Vertex AI permet aux utilisateurs de définir les colonnes utilisées comme entités et celles utilisées comme étiquettes. Les métadonnées ou les colonnes auxiliaires peuvent être incluses dans le jeu de données à titre de référence, mais ne doivent pas être marquées comme entités ou étiquettes dans la configuration du modèle.
Pratiques d'excellence
1. Séparez clairement les données de formation et les métadonnées : Maintenez des définitions de stockage et de schéma distinctes pour les données destinées à la consommation de modèles et aux champs réservés aux humains.
2. Automatiser le filtrage : Utilisez des outils ou des scripts automatisés pour filtrer les champs non liés à la formation avant d’ingérer des données dans le pipeline de formation.
3. Utilisation des données du document : Maintenir une documentation complète pour chaque ensemble de données, expliquant le rôle de chaque champ.
4. Examiner et valider le schéma : Avant chaque exécution d’entraînement, validez le schéma du jeu de données pour confirmer que seuls les champs prévus sont inclus.
5. Activer la traçabilité : Gardez les données brutes et les métadonnées accessibles pour l'audit, mais assurez-vous que seules les données filtrées alimentent la formation.
Une gestion adéquate de l'étiquetage des données pour les champs non destinés à influencer l'entraînement du modèle est essentielle à la création de pipelines de machine learning robustes sur Google Cloud AI Platform. La conception de schémas de données clairs, l'utilisation de mécanismes d'exportation et de filtrage explicites, et la tenue d'une documentation complète, permettent de garantir que seules les données d'entraînement valides influencent le modèle, tout en capturant des métadonnées utiles à l'utilisateur. Le respect de ces pratiques permet d'éviter les fuites de données, de favoriser la reproductibilité et d'améliorer la fiabilité et la maintenabilité des workflows de machine learning.
D'autres questions et réponses récentes concernant Service d'étiquetage de données Cloud AI:
- Comment un service d'étiquetage de données par IA s'assure-t-il que les étiqueteurs ne sont pas biaisés ?
- De quelle manière les données liées à la prédiction de séries chronologiques doivent-elles être étiquetées, lorsque le résultat correspond aux x derniers éléments d'une ligne donnée ?
- Quelle est l'approche recommandée pour accélérer les tâches d'étiquetage des données afin de garantir les meilleurs résultats et une utilisation efficace des ressources ?
- Quelles mesures de sécurité sont en place pour protéger les données pendant le processus de labellisation dans le service de labellisation des données ?
- Comment le service d'étiquetage des données garantit-il une haute qualité d'étiquetage lorsque plusieurs étiqueteurs sont impliqués ?
- Quels sont les différents types de tâches d'étiquetage pris en charge par le service d'étiquetage des données pour les images, les vidéos et les données textuelles ?
- Quelles sont les trois ressources principales requises pour créer une tâche d'étiquetage à l'aide du service d'étiquetage des données ?

