"Les données sont le carburant de l'IA" - Bien que l'importance des données pour la construction de solutions de ML performantes soit indéniable, nous constatons dans la pratique que l'accent est souvent mis sur le modèle d'IA, c'est-à-dire l'essai de différents modèles ou le réglage des hyperparamètres. Certains chercheurs ont appelé à s'éloigner de cette approche centrée sur le modèle et à se concentrer sur la modification systématique des données afin d'améliorer les performances de nos solutions. En d'autres termes, il s'agit d'adopter une approche de l'IA centrée sur les données.
Dans la pratique, nous constatons que de nombreuses organisations et de nombreux projets ont encore du mal à exploiter tout le potentiel des données. Dans ce billet de blog, nous décrivons notre point de vue sur la façon de maximiser la valeur des données pour améliorer les performances des modèles de ML tout en tout en minimisant le coût de cette opération. Il va sans dire qu'il est essentiel de disposer d'un ensemble de données d'entraînement représentatif de ce que le modèle verra plus tard dans le "monde réel". Dans ce billet, nous nous concentrerons plus particulièrement sur trois autres domaines importants : l'étiquetage des données, la qualité des données et l'augmentation des données.
Dans un deuxième billet, nous aborderons le sujet des données sous un angle différent : comment débloquer les cas d'utilisation qui manquent de données (utilisables) grâce à l'anonymisation des données, à des données synthétiques ou à des données externes. Plus d'informations à ce sujet ultérieurement !
L'étiquetage, c'est-à-dire la création d'un ensemble de données d'entraînement annotées sur lequel le modèle s'entraîne, est souvent une étape cruciale lors du lancement d'un projet d'apprentissage automatique. Cette étape, et en particulier la qualité de l'étiquetage, peut avoir une forte influence sur les performances d'un modèle.
Prenons un exemple. Dans l'un de nos projets sur la classification de textes, nous devions atteindre une précision de 80 % pour que la solution ait une valeur commerciale pratique. Le premier modèle n'atteignait qu'une précision de 65 %, et nous avions deux options pour améliorer ce résultat : améliorer le modèle ou améliorer les étiquettes (les données). En essayant des modèles plus complexes et plus coûteux, il a été possible d'atteindre une précision de 68 %, ce qui est encore loin de l'objectif de l'entreprise. La seconde option s'est avérée beaucoup plus efficace : l'amélioration de la qualité des étiquettes nous a permis d'atteindre 87 %. Pourquoi ? Nous nous sommes rendu compte que, lors de la première itération, les étiquettes étaient incohérentes : deux étiqueteurs différents n'étaient d'accord sur l'étiquette correcte que dans 69 % des cas. Il était donc impossible pour le modèle d'apprendre des modèles significatifs et de faire des prédictions précises, étant donné que même les gens n'étaient pas d'accord sur les étiquettes correctes.
L'exemple ci-dessus démontre l'importance d'un étiquetage cohérent pour construire des modèles ML performants. Nous avons rassemblé 3 considérations à prendre en compte pour garantir un étiquetage de haute qualité et rentable :
Il existe un grand nombre d'outils d'étiquetage et de fournisseurs différents sur le marché. Il est essentiel de choisir le bon outil pour garantir la qualité et accroître l'efficacité de vos efforts d'étiquetage.
Le choix de l'outil d'étiquetage ou du fournisseur dépend fortement du ou des cas d'utilisation et des besoins. Vous devrez examiner les différentes modalités et fonctionnalités offertes par un outil (par exemple, pour les images et les vidéos, le langage naturel, etc.) et vous assurer qu'elles correspondent à vos besoins actuels et potentiellement futurs. Certains fournisseurs proposent non seulement l'outil, mais aussi l'externalisation de l'activité d'étiquetage proprement dite - il peut s'agir d'un moyen très rentable d'étiqueter, à moins qu'une connaissance spécifique du domaine ne soit nécessaire. En outre, vous devrez tenir compte de la facilité de mise en place de l'environnement d'étiquetage, ainsi que de la confidentialité et de la sécurité de l'outil. Enfin, il existe différents modèles de tarification sur le marché, depuis les outils gratuits à code source ouvert jusqu'aux solutions commerciales avec, par exemple, un paiement par utilisateur, un paiement par annotation ou une tarification forfaitaire mensuelle.
Nous avons comparé quelques outils open source pour l'étiquetage des données structurées dans le passé. Les résultats peuvent être consultés ici.
Garantir la qualité et la cohérence est essentiel pour construire un modèle ML performant. Cependant, les différents étiqueteurs ont souvent des conventions d'étiquetage différentes, comme nous l'avons vu dans l'exemple ci-dessus. Des lignes directrices claires à l'intention de vos étiqueteurs peuvent s'avérer utiles. Ces directives devraient contenir des instructions sur la manière d'étiqueter, ainsi que des "exemples en or" et des cas difficiles ou rares attendus.
Veillez également à inclure des experts en apprentissage automatique et des experts du domaine dès le début du projet et à définir une approche ensemble. Si possible, il est utile de brosser le tableau général du projet aux étiqueteurs, car cela leur permet de mieux juger ou de savoir quelles préoccupations soulever.
Enfin, il est généralement impossible d'atteindre une précision/cohérence des étiquettes de 100 %, soit parce que le problème est intrinsèquement ambigu, soit parce que, en fonction de la taille de l'ensemble de données, il est impossible pour les étiqueteurs d'éviter de faire des erreurs. Il est donc essentiel de comprendre la qualité et la cohérence des annotations, étant donné qu'elles impliquent une limite supérieure à la qualité du modèle. La mise en place d'une stratégie d'étiquetage exigeant que plusieurs personnes étiquettent les mêmes données permet non seulement d'améliorer la qualité/cohérence, mais aussi d'obtenir des informations sur la qualité réelle des étiquettes.
Si la qualité est importante, l'efficacité l'est tout autant. L'étiquetage est souvent un processus à forte intensité de ressources. Il est donc logique d'adopter une approche itérative de l'étiquetage. Commencez par 5 % et examinez/discutez les problèmes et les améliorations. De cette manière, vous pouvez vous assurer qu'aucun effort d'étiquetage n'est gaspillé. La possibilité d'indiquer l'incertitude lors de l'étiquetage peut aider à repérer les hypothèses et à demander des informations supplémentaires aux experts du domaine dans les cas difficiles.
Considérons également la situation dans son ensemble : vous pouvez obtenir d'importants gains d'efficacité dans les itérations ultérieures en limitant les efforts d'étiquetage supplémentaires aux données qui conduiront aux améliorations les plus importantes de la performance du modèle. Les embeddings peuvent être utilisés pour aider à visualiser les données, à regrouper les données similaires et à trouver les cas pour lesquels votre modèle a le plus de difficultés. Ces visualisations peuvent conduire à une meilleure compréhension de votre modèle et de vos données et vous permettre d'améliorer itérativement le modèle avec des efforts d'étiquetage plus ciblés.
Le deuxième sujet que nous souhaitons aborder dans le contexte de l'amélioration de nos modèles à l'aide de données est la qualité des données. Des étiquettes cohérentes et de haute qualité font bien sûr partie de la qualité des données, mais il y a aussi d'autres dimensions à prendre en compte - par exemple, s'assurer que les données introduites dans un modèle de ML ne contiennent pas d'erreurs, de données manquantes ou de valeurs aberrantes. La qualité des données a un impact important sur les performances du modèle et son amélioration est souvent une étape nécessaire dans le flux de travail de ML.
Prenons un petit exemple pour le démontrer. Pour l'un de nos projets, nous devions extraire des informations de documents textuels scannés. L'OCR (reconnaissance optique de caractères) est la première étape de ce processus, mais certains éléments sont souvent mélangés, comme les zéros et les o. Une telle confusion dans le processus d'OCR signifie souvent qu'un modèle ultérieur ne peut plus détecter les entrées mélangées comme un point de données, ce qui diminue la performance du modèle. L'amélioration de la qualité des données, dans ce cas en effectuant une correction OCR (suppression automatique des erreurs OCR courantes), a conduit à une augmentation significative de la performance du modèle.
Chez ML6, nous avons plusieurs étapes par défaut pour améliorer la qualité des données, en fonction du domaine d'apprentissage automatique dans lequel se situe un projet. Une chose que tous les projets ont en commun est qu'un ensemble de données de haute qualité commence par une bonne compréhension des données. L'exploration des données est la clé de cette compréhension et constitue donc souvent la première étape d'un projet d'apprentissage automatique.
La visualisation des données est toujours un bon point de départ, qu'il s'agisse d'examiner la distribution et les anomalies potentielles dans les données structurées ou de comparer les espaces d'intégration pour le langage ou la vision par ordinateur. Naturellement, la compréhension de vos données n'est pas une chose unique à faire. Après avoir entraîné un modèle, nous devons identifier les types de données sur lesquelles l'algorithme n'est pas performant et améliorer ces difficultés de manière itérative.
L'amélioration de la qualité des données est souvent un travail fastidieux (certains disent que 80 % du temps passé sur un projet de ML est consacré au nettoyage des données). C'est pourquoi nous essayons de l'automatiser autant que possible - en utilisant intelligemment l'apprentissage automatique ou d'autres techniques automatisées, pour nous aider à être plus efficaces dans l'amélioration de la qualité des données.
Dans nos pipelines de ML, nous voulons que les nouvelles données soient automatiquement soumises à des vérifications et à des visualisations. Parmi les outils largement applicables qui peuvent aider dans la plupart des cas d'utilisation, citons BigQueryML avec la détection automatisée d'anomalies qui vous aide à repérer facilement les valeurs aberrantes dans vos données. TFDV pour des visualisations faciles de votre ensemble de données et pour détecter les changements dans le temps, et enfin GreatExpectations pour l'intégration de règles de validation basées sur la logique d'entreprise. Nous testons également en permanence de nouveaux cadres et méthodes afin de continuer à améliorer et à automatiser. Un cadre/une approche très prometteur(e) que nous étudions actuellement est PClean, un langage de programmation probabiliste spécifique à un domaine pour le nettoyage bayésien des données.
Le troisième thème abordé est celui de l'augmentation des données. L'augmentation des données est un ensemble de techniques visant à augmenter artificiellement la taille de votre ensemble de données en créant de petites variations sur des points de données existants. Cela présente deux avantages principaux : Premièrement, nous augmentons la taille de notre ensemble de données, ce qui se traduit par un plus grand nombre d'exemples sur lesquels notre modèle peut s'entraîner. Deuxièmement, la robustesse de notre modèle augmente et nous diminuons le risque de surajustement et de biais, car le modèle doit apprendre à ignorer les transformations que nous avons introduites et à comprendre les données sous-jacentes au lieu de les mémoriser.
Ce dernier point était par exemple un élément très important d'un projet de mise en correspondance des offres d'emploi et des candidats que nous avons réalisé. Dans ce projet, il était très important de rendre nos modèles exempts de biais en augmentant les données d'apprentissage afin d'éliminer autant de biais que possible, par exemple en procédant à des permutations de sexe dans les CV et les offres d'emploi.
Lors du lancement d'un projet de ML, il est important de prendre le temps de mettre en place et de développer une bonne stratégie d'augmentation des données. L'approche de l'augmentation des données diffère d'un cas d'utilisation à l'autre, mais en général, nous suivons trois principes directeurs :
Avec ces considérations sur l'étiquetage des données, la qualité des données et l'augmentation des données, nous espérons fournir quelques indications sur la manière de commencer à maximiser la valeur des modèles de ML en se concentrant sur les données, tout en maintenant les coûts de cette démarche à un niveau raisonnable.
Ne manquez pas le deuxième billet de cette série, qui portera sur l'anonymisation des données, les données synthétiques et les données externes !