Meilleures pratiques pour le versionnement des données et la boucle de rétroaction

Meilleures pratiques pour le versionnement des données et la boucle de rétroaction

Le versionnage du code logiciel est depuis longtemps une pratique courante dans le secteur des technologies de l'information, à l'aide d'outils tels que git. Le versionnage de l'environnement gagne également du terrain, grâce à des outils comme Docker. Cependant, le versionnage des données n'est pas encore aussi répandu dans l'industrie de l'apprentissage automatique, même si son adoption offre des avantages précieux. Vous pouvez donc vous demander pourquoi le versionnage est si important.

Comme pour le code d'un logiciel, le fait de versionner les ensembles de données à différents moments vous permet de revenir facilement aux versions précédentes. Cela est essentiel pour la reproductibilité de l'expérience, car tout changement dans les données modifiera les résultats d'un modèle dans des directions différentes. En outre, il offre une solution adéquate pour documenter la lignée et l'origine des données, ce qui est particulièrement crucial lorsque des boucles de rétroaction sont incorporées dans un système. Le versionnage est également un moyen indirect de sauvegarder les données, , bien qu'il ne doive pas remplacer les sauvegardes formelles.

En outre, le versionnage des données est une méthodologie efficace que vous devez suivre lorsque vous réalisez de nombreuses expériences qui impliquent différentes techniques de traitement des données. Chaque expérience doit faire l'objet d'une version, ce qui permet d'accéder facilement à une étape spécifique et d'éviter les modifications involontaires. Enfin, le versionnage prend toute son importance lorsque de grandes équipes d'ingénieurs travaillent sur les mêmes données. Nous reviendrons plus loin sur la gouvernance des données.

Mais tout d'abord, présentons quelques bonnes pratiques en matière de versionnement des données que vous devez prendre en compte dans vos projets de vision par ordinateur.

5 bonnes pratiques pour le versionnage des données dans le domaine de la vision par ordinateur

  1. Version sur les étapes clés du pipeline. Les versions de données sont plus significatives lorsqu'elles sont utilisées au début et/ou à la fin des tâches du pipeline de données. Un script ETL a fini de s'exécuter ? Créez une version. Vous avez exécuté un script de détection de la corruption et supprimé les images corrompues ? Créez une version. Idéalement, vous souhaitez disposer d'une version après chaque tâche d'acheminement des données, depuis les données brutes jusqu'à la version finale.
  2. Les noms de version doivent refléter l'état des données et leur position dans le pipeline. Le nom d'une version doit être descriptif. Il ne doit pas être nécessaire de revenir à une version pour vérifier l'état d'avancement du jeu de données. Voici quelques exemples de noms de version auto-descriptifs : "defects_dataset-cleaned-normalized-feedback_loop", "non_defects_dataset-raw". Cependant, une convention standard de numéro de version sémantique en trois parties peut être utilisée pour encoder efficacement les étapes d'un pipeline. Dans tous les cas, le nom doit transmettre des informations pertinentes.
  3. Créez des métadonnées pour chaque version. Il peut s'agir d'un simple fichier .txt contenant des informations importantes sur l'ensemble de données jusqu'à ce point. Vous devez inclure les informations qui ne peuvent pas figurer dans le titre mais qu'il est important de documenter. Un fichier de métadonnées doit indiquer quelles données, en particulier, ont été affectées par les modifications, le nombre d'images nouvelles et totales incluses dans l'ensemble de données, l'origine des nouvelles données, le traitement qui a été effectué en détail, et tout autre fait important décidé par votre équipe de données. Cette nécessité est renforcée par l'introduction de boucles de rétroaction, mais nous y reviendrons plus tard. 
  4. Automatiser le versionnage. Dans la plupart des cas, le versionnage des données est une tâche répétitive et ennuyeuse. Ces tâches font perdre du temps aux data scientists qui devraient plutôt se consacrer à la création et au déploiement de modèles utiles. L'objectif est de versionner automatiquement un jeu de données après chaque étape clé du pipeline. La plateforme de gestion de données unique de Picsellia peut vous faire gagner un temps précieux et vous soulager. Vérifiez par vous-même comment vous pouvez utiliser des solutions avec ou sans code pour versionner rapidement des jeux de données sans aucune difficulté, en utilisant Picsellia.
  5. Exploiter le versionnage pour la coopération au sein de l'équipe. Lorsque plusieurs personnes travaillent sur la même version d'un ensemble de données, il est toujours possible d'apporter par inadvertance des modifications qui affectent le travail des autres. En général, chaque collaborateur doit travailler sur sa version pendant les expériences, tout en conservant une version principale ("master"), que tout le monde peut lire, mais sur laquelle il n'est pas possible d'écrire. Il s'agit d'une politique de gouvernance des données que les chefs d'équipe doivent mettre en œuvre.

L'importance de la gouvernance des données 

Avec l'adoption massive de l'analyse prédictive et de l'apprentissage automatique, les données sont le carburant de la croissance. L'afflux de données augmente de mois en mois dans la plupart des entreprises. Les données sont une ressource et doivent être gérées en conséquence. Cependant, lorsque l'on travaille avec de grandes équipes d'ingénieurs, la gestion efficace des données devient une opération complexe, mais néanmoins cruciale. Il est essentiel de mettre en place un système de gouvernance des données. Par gouvernance des données, nous entendons un ensemble de règles, de politiques et de normes à respecter. 

Voici quelques politiques et normes importantes qu'il convient de définir :

  1. Comment les données sont-elles collectées ?
  2. Quelles sont les métadonnées qui doivent être documentées.
  3. Quelle est la qualité de données acceptable et qu'advient-il des données qui ne répondent pas aux critères. Par exemple, les images floues, corrompues et/ou très contrastées doivent être supprimées et ne pas être déplacées dans le pipeline.
  4. Établir des conventions de dénomination pour les fichiers, les ensembles de données et les versions. 
  5. Quand les ensembles de données doivent-ils être versionnés ? Différents membres de l'équipe travailleront-ils sur leurs versions respectives ? Qui est autorisé à écrire sur la version principale ?
  6. Quel type d'architecture de stockage de données répond le mieux aux besoins de votre organisation. Devriez-vous les stocker dans un lac de données ou un entrepôt de données ? Est-il utile de créer un "feature store" ? 

La définition, la mise en place et le respect de ces règles et lignes directrices permettent de mettre de l'ordre dans l'afflux croissant de données et d'éviter le chaos qui l'accompagne. La plupart du temps, l'utilisation d'une plateforme MLOps pour aider à la gestion des données vaut l'investissement, car les data scientists et les ingénieurs ML peuvent concentrer leur énergie sur la manière d'apporter de la valeur à leurs modèles. 

Ce besoin se fait de plus en plus sentir à mesure que nous nous éloignons des cycles de vie traditionnels des données pour passer à des cycles modernes tels que les boucles de rétroaction. 

Le scénario de déploiement de la boucle de rétroaction

Le déploiement d'un modèle d'apprentissage automatique est un processus continu plutôt qu'une tâche. Il est dynamique car il implique un suivi constant des performances d'un modèle. Les modèles en production ont des dates d'expiration. La dérive des données et des concepts dégrade rapidement les performances d'un modèle, ce qui finit par nuire aux indicateurs et aux bénéfices de l'entreprise. Mais même sans dérives, une fois déployé, la performance d'un modèle peut tout simplement ne pas répondre aux attentes fixées au cours de la phase d'évaluation. C'est là que les boucles de rétroaction et l'apprentissage en ligne deviennent essentiels. Ils permettent de mettre rapidement à jour les modèles, en les adaptant aux nouvelles distributions de données et aux variables environnementales.

Pensez à un modèle de détection des défauts dans un environnement industriel ; un système de détection visuelle des écrans mobiles cassés ou rayés. Après la collecte de données, l'entraînement et le déploiement d'un modèle, des changements se produisent dans l'environnement industriel, hors du contrôle des ingénieurs en apprentissage automatique. L'intensité de la lumière est modifiée et la couleur de la bande transporteuse en arrière-plan change. Même ces petites modifications de l'environnement peuvent entraîner une sous-performance involontaire du système visuel. Il est donc nécessaire de procéder à un réentraînement. 

Dans cet exemple, supposer que le modèle n'est plus complètement inutile et reprendre le processus de formation à zéro n'est pas rentable et demande beaucoup de temps. Vous avez besoin d'un système capable de recycler dynamiquement un modèle en ligne, en utilisant moins de données mais des données pertinentes. Le recyclage peut être déclenché par des seuils de performance, la détection d'une dérive des données ou des intervalles de temps fixes. Lorsque le modèle produit une sortie incorrecte, celle-ci doit être capturée, documentée et incluse dans une version mise à jour du jeu de données. Les fonctions de surveillance de Picsellia offrent ces possibilités. La détection de prédictions erronées nécessite toujours l'intervention d'un humain. Par conséquent, une combinaison d'anciennes et de nouvelles données est utilisée pour entraîner à nouveau le modèle. Cet ensemble de données mis à jour fournit une meilleure représentation de la "nouvelle" réalité.

Boucles de rétroaction Pros

Des boucles de rétroaction sont mises en place :

  •  Les modèles ne deviennent pas obsolètes et les performances sont maintenues à des niveaux élevés tout au long de la phase de déploiement. Selon le cas d'utilisation d'un modèle, cela se traduit par des services de qualité supérieure ou des bénéfices plus importants.
  •  Vous réduirez les temps d'arrêt des modèles. Moins de temps consacré à la reconception, à l'entraînement et à l'évaluation d'un modèle, c'est plus de temps consacré à l'exploitation. 
  •  Les ressources informatiques sont économisées. Étant donné que le recyclage est généralement effectué avec moins d'époques et de données, vous réduirez les besoins en calcul. Cet aspect est crucial lorsque vous utilisez des solutions en nuage et que vous êtes facturé sur la base de l'utilisation.

Boucles de rétroaction Cons

Cependant, les boucles de rétroaction présentent des inconvénients cachés. Tout d'abord, étant donné que les versions d'ensembles de données créées au cours d'une boucle de rétroaction sont principalement échantillonnées à partir des erreurs d'un modèle, la version peut être intrinsèquement liée au modèle utilisé pour la générer. Elle risque donc de ne pas être bien transférée à un autre modèle. Deuxièmement, l'équipe d'ingénieurs peut se retrouver piégée dans une boucle sans fin de recyclage, afin de faire revivre un modèle "mort". Parfois, les dérives des concepts et des données sont si importantes que la seule option viable est de reprendre la formation à zéro. 

En outre, les boucles de rétroaction ajoutent de la complexité à l'architecture d'un système. L'architecture typique "former-évaluer-déployer" ne peut pas gérer efficacement les boucles de rétroaction. Vous avez besoin d'une architecture qui intègre la surveillance des performances, du concept et de la dérive des données. De tels systèmes sont plus difficiles à concevoir et à maintenir. Heureusement, la plateforme CVOps de Picsellia offre ces services par le biais d'une interface conviviale et collaborative, vous aidant ainsi à préserver les ressources pertinentes.

Commencez à gérer vos données d'IA de la bonne façon.

Demander un essai gratuit

Recommandé pour vous :