Création d'une Application Web tout-en-un pour la science des données à l'aide de Python : évaluation de l'outil en source ouverte Django

Par : Nikhil Widhani, Statistique Canada

Du fait des progrès technologiques considérables, de nombreux outils et techniques utilisés au sein de la communauté de la science des données effectuent une lente transition vers la source ouverte. Les outils en source ouverte sont des solutions sans frais dont le code base peut être modifié pour l'adapter aux besoins de l'utilisateur, lui fournissant ainsi souplesse et réduction des coûts. Des outils exclusifs permettent généralement de faire le travail de façon efficace, mais ils peuvent être coûteux et doivent toujours être adaptés aux besoins de l'organisation. Les outils exclusifs manquent souvent d'options de personnalisation et ne résolvent parfois qu'une partie d'un problème. Dans le cas d'enjeux plus complexes, comme créer une collection de microservices relatifs à diverses tâches, il peut être nécessaire d'utiliser simultanément plusieurs outils exclusifs.

Les outils en source ouverte, donnant à l'utilisateur un contrôle total du code base, permettent aux organisations d'appliquer des correctifs de sécurité en cas de nouvelles menaces et de maintenir la protection des renseignements personnels et la confidentialité des données. De nombreux projets en source ouverte peuvent être combinés pour former une solution centrale répondant à une exigence plus vaste.

Prenons l'exemple d'un projet permettant de créer un pipeline sécurisé pour l'ingestion de données. Des modules séparés de ce processus pourraient inclure d'extraire régulièrement de nouvelles données obtenues de manière éthique, d'exécuter des algorithmes d'apprentissage automatique responsables aux moments opportuns et de créer un tableau de bord permettant la visualisation des données. Dans le présent article, je vais expliquer le processus d'utilisation d'un cadre de travail Web Django, afin de créer une application Web tout-en-un prête pour la production fournissant de l'information, tout en protégeant les renseignements personnels et la confidentialité des données qu'elle utilise. Cette solution particulière a recours à un tableau de bord pour les clients et à une interface utilisateur graphique (IUG) pour les développeurs. L'IUG d'administration peut servir à exécuter régulièrement des tâches planifiées afin d'extraire de nouvelles données et d'exécuter un pipeline d'un clic de bouton.

Django est un cadre de travail Web en source ouverte fondé sur le langage de programmation Python et est utilisé par des firmes multinationales. Sa conception de base offre souplesse, sécuritéNote de bas de page 1 et évolutivité. Les applications développées avec Django peuvent être réutilisées pour d'autres projets sans devoir récrire le code. Parfois, il suffit de copier le code d'un projet à un autre. Pour créer ce type d'application Web, nous allons utiliser la trousse à outils Django et des modules externes, afin de développer une architecture souple, tout en gardant l'évolutivité à l'esprit. L'architecture proposée est représentée à la figure 1.

Figure 1 : Architecture proposée pour créer une application Web tout-en-un.

Figure 1 : Architecture proposée pour créer une application Web
Description - Figure 1 : Architecture proposée pour créer une application Web tout-en-un

Architecture proposée pour créer une application Web tout-en-un. La base de données fonctionne avec l'application dorsale Django (qui comprend l'interface de programmation REST, le pipeline, le serveur Redis et un planificateur de tâches), puis avec le système frontal, comme l'ont développé ses utilisateurs ou administrateurs. Toutes les composantes de ce diagramme sont expliquées ci-dessous.

Composantes

Les composantes de l'architecture et ses fonctions sont la base de données, l'application dorsale, le pipeline, le planificateur de tâches et l'interface de programmation REST. Je vais détailler chacune de ces composantes.

Base de données

Une base de données recueille et stocke des données. Il s'agit de la composante principale d'un projet, puisque toutes les parties d'un projet sont liées aux données. Les bases de données peuvent être classées comme étant relationnelles et non relationnelles. Les bases de données relationnelles peuvent stocker des données de façon structurée dans des tableaux et permettre des relations avec d'autres tableaux. Par défaut, Django prend en charge des bases de données relationnelles, comme PostgreSQL (langage de requête structuré), SQLite et MySQL. Le choix dépend du type de projet; PostgreSQL pouvant être plus adapté à des projets de plus grande envergure, alors que SQLite peut être plus adapté à des projets moins importants, comme ceux comprenant moins de 100 000 lignes. MySQL est généralement utilisé lorsque les capacités de PostgreSQL, comme le soutien pour des données géospatiales ou des types de données avancées, ne sont pas nécessaires. Les bases de données non relationnelles n'utilisent pas le format d'un schéma tabulaire pour stocker les données. Elles ont plutôt recours à des modèles d'objets propres au type de données stockées. Elastic Search consiste en une base de données moderne axée sur les documents couramment utilisée pour effectuer des recherches rapides dans des millions de documents. Elastic Search pourrait être utilisée lorsque l'utilisateur doit stocker un volume important de données et de requêtes devant être exécutées en temps réel. Dans le présent projet, je vais utiliser SQLite qui est adaptée à la taille de la tâche.

Application dorsale

L'application dorsale effectue la majorité du travail. Utiliser Django comme cadre d'application dorsale facilite le travail en bénéficiant des améliorations apportées au cours des 15 ans de développement constant depuis sa parution le 21 juillet 2005.Note de bas de page 2 Les utilisateurs de Django peuvent également tirer profit d'une vaste communauté en ligne. De nombreux progiciels tiers sont en outre disponibles pour répondre à une variété de tâches. Dans les sections suivantes, je vais présenter les progiciels et trousses d'outils utilisés pour créer une application Web tout-en-un pour la science des données.

Pipeline

Dans le domaine de la science des données, un pipeline est un ensemble de codes ou de processus qui convertit des données brutes en données utilisables. Les pipelines peuvent parfois servir à extraire et à structurer des données à partir d'un format brut, alors que dans d'autres cas, ils peuvent utiliser des modèles d'apprentissage automatique afin d'extraire de l'information précieuse à partir des données. Il existe de nombreux cas d'utilisation de pipelines, mais la sélection d'un pipeline dépend des exigences du projet. Souvent, les projets de science des données font intervenir un ensemble de codes Python pouvant être exécutés pour effectuer certaines des opérations.

Planificateur de tâches

Un planificateur de tâches sert à effectuer des tâches asynchrones exécutées en arrière-plan sans interrompre d'autres processus de l'application. Pour des tâches chronophages comme le traitement de pipeline de données, on préfère souvent gérer ces tâches en arrière-plan grâce à des fils d'exécution, sans bloquer le flux normal de requêtes-réponses.Note de bas de page 3 Si votre application Web nécessite, par exemple, que vous téléversiez un document PDF numérisé à prétraiter avant d'invoquer un module d'extraction, l'utilisateur verra une page de chargement jusqu'à ce que le fichier soit traité. Parfois, la page de chargement peut s'afficher plus longtemps que prévu; un message d'erreur de dépassement de délai d'inactivité est alors reçu. Cette erreur se produit, car les navigateurs et les requêtes Web ne sont pas conçus pour attendre interminablement qu'une page se charge. Cela peut être résolu en prétraitant les données du PDF en arrière-plan et en envoyant un avis à l'utilisateur une fois le traitement terminé. Les planificateurs de tâches sont une manière pratique de résoudre ce comportement.

Par défaut, Django ne prend pas en charge la planification de tâches; toutefois, des applications Django tierces, comme Django-Celery,Note de bas de page 4 peuvent intégrer des files d'attente de tâches asynchrones. Ce progiciel peut être installé avec une commande pip install Django-Celery. Une documentation complète est disponible pour la bibliothèque et peut être consultée en cas de besoin. Un serveur d'agents comme Redis est nécessaire pour faciliter la communication entre le planificateur de tâches et l'application dorsale. Redis stocke les messages que produit l'application de file d'attente de tâches Celery décrivant le travail à faire. Redis sert également à stocker les résultats des listes d'attente de Celery, qui peuvent alors être extraits du système frontal pour présenter l'état de la progression à l'utilisateur. Django-Celery peut prendre en charge certains des cas d'utilisation suivants :

  • exécuter des tâches cron d'extraction de données planifiées, afin de mettre ces nouvelles données à jour dans la base de données (p. ex. extraction de nouvelles données tous les jours à 4h00);
  • nettoyage et restructuration des données;
  • exécution de modèles d'apprentissage automatique dès que de nouvelles données sont ingérées;
  • mise à jour de la base de données et application des modifications au tableau de bord.

Figure 2: Déroulement du processus d'un planificateur de taches.

Figure 2: Déroulement du processus d'un planificateur de taches
Description - Figure 2: Déroulement du processus d'un planificateur de taches

Déroulement du processus d'un planificateur de tâches. Le serveur Redis agit comme support pouvant lancer des tâches et suivre la progression.
Trois cases en haut sont libellées « Tâche 1 – Terminé », « Tâche 2 – En cours d’exécution » et « Tâche 3 – En cours d’exécution »; chacune pointant individuellement vers la case inférieure libellée « Serveur Redis / IPA REST ».

Figure 3 : Interface utilisateur du planificateur de tâches

Figure 3 : Interface utilisateur du planificateur de tâches
Description - Figure 3 : Interface utilisateur du planificateur de tâches

Interface utilisateur du planificateur de tâches pour le tableau de bord frontal. Le tableau présente également des renseignements utiles, tels que le nom de la tâche, son état et la valeur de sa réussite. La colonne Action comprend un bouton triangulaire d'exécution pour exécuter la tâche et un bouton carré d'arrêt pour mettre fin à la tâche en cours d'exécution.
Les tâches ainsi que leur état, leur réussite et l'action sont les suivantes :
Tâche 1 – Extraction de nouvelles données : état Terminé, réussite Vrai et l'action affiche un bouton triangulaire d'exécution blanc et bleu.
Tâche 2 – Nettoyage du PDF : état En cours d'exécution, réussite Faux et l'action affiche un bouton carré noir d'arrêt.
Tâche 3 – Extraction des données : état En cours d'exécution, réussite Faux et l'action affiche un bouton carré noir d'arrêt.

Exécuter ainsi un pipeline permet une meilleure utilisation des ressources; l'exécution des tâches de pipeline pouvant être planifiées la nuit, lorsqu'un moins grand nombre d'utilisateurs utilisent l'application. Séparer les tâches de production et les tâches de développement permet également un développement plus efficace. Toutes les parties distinctes du projet peuvent être combinées en une seule application prête pour la production. Enfin, exécuter le pipeline peut fournir aux utilisateurs un contrôle supplémentaire sur le produit, puisqu'ils peuvent facilement exécuter le pipeline comme ils le souhaitent.

Interfaces de programmation REST

Les interfaces de programmation (IPA) sont des microservices simplifiant le développement de logiciels. Elles sont souvent utilisées pour séparer des fonctions distinctes d'une application en services Web de moindre envergure. Lors de la recherche d'une adresse à l'aide d'un code postal, par exemple, une IPA REST de recherche d'adresses retournera toutes les adresses de voirie au sein de la zone du code postal. La réponse est souvent fournie au format JSON (notation d'objet JavaScript), une norme de l'industrie comprise par de nombreuses applications et de nombreux langages de programmation. Une IPA REST prend en charge de multiples méthodes; les plus courantes étant GET, POST, DELETE et UPDATE. Chaque méthode sépare la logique et permet de structurer le code. Ces méthodes s'expliquent d'elles-mêmes et sont respectivement responsables d'obtenir, d'ajouter ou de publier de nouvelles données, de supprimer et de mettre à jour des données. Utiliser des IPA REST dans des applications Web agit comme un intergiciel entre une base de données et un système frontal, protégeant la base de données de vulnérabilités en matière de sécurité.

Dans Django, il est possible de créer des IPA avec une simple réponse HTTP JSON. Toutefois, une trousse d'outils en source ouverte dédiée appelée Django-rest-framework permet de créer des IPA.Note de bas de page 5 Les avantages d'utiliser le cadre Django REST incluent, entre autres, les suivants :

  • une IPA prête à utiliser pouvant être recherchée en ligne;
  • des politiques intégrées d'authentification en matière de sécurité des données;
  • des convertisseurs préconçus pouvant facilement convertir un objet Python en objet JSON;
  • une documentation complète, personnalisable et prise en charge par divers autres modules Django externes.

Pour des cas d'utilisation similaires à ce qui est présenté dans cet article, le cadre Django REST peut être utilisé pour créer des IPA de données et d'extraction de tâches et de progression de pipeline lors d'une exécution en arrière-plan. Ces données peuvent être intégrées au système frontal pour indiquer la progression comme l'illustre la figure 4.

Figure 4 : Traitement des fichiers PDF

Figure 4 : Traitement des fichiers PDF
Description - Figure 4 : Traitement des fichiers PDF

Barre de progression indiquant la progression d'un code traitant des fichiers PDF. La barre indique 70 %. Lors du traitement d'un fichier PDF, la taille de la barre de progression, la valeur en pourcentage et le nombre de fichiers traités sont mis à jour pour refléter l'état du pipeline.
Le texte au-dessus de la barre de progression indique Exécution d'un pipeline d'extraction de PDF et le texte sous la barre de progression indique 7/10 fichiers traités. Il reste 2 minutes.

Sécurité

Il conviendrait de toujours considérer la sécurité lors de l'examen des options de cadre de travail. Dans le présent article, je mentionne le cadre Python de Django et certains de ses progiciels. Django est un cadre présentant de nombreuses fonctionnalités de sécurité. Il prend en charge le déploiement derrière des sites https et chiffrés à l'aide de SSL (couche de sockets sécurisée). Django ORM (mise en correspondance relationnelle d'objets) protège également contre des requêtes SQL de type injection, avec lesquelles des utilisateurs peuvent exécuter du code SQL indésirable dans la base de données. Il authentifie également des adresses Web au moyen d'une valeur « ALLOWED_HOSTS » (hôtes autorisés) dans le fichier de paramètres, qui comprend le nom d'hôte de la page Web. Ce paramètre évite des attaques « cross-site scripting » (injection de contenu) avec lesquelles des noms d'hôte fictifs peuvent être utilisés.

À Statistique Canada, bon nombre des applications Web Python sont déployées dans l'Espace de travail d'analyse avancée qui respecte les lignes directrices de StatCan en matière de sécurité, de protection des renseignements personnels et de confidentialité. Des éléments standard de protection de réseau, comme des pare-feu, la gestion du trafic, des droits d'utilisateur réduits pour le code de l'application et la séparation des préoccupations, servent tous à réduire la surface d'attaque générale pour tout vecteur potentiel. De plus, RBAC (contrôle de l'accès fondé sur le rôle) sert à limiter l'accès au tableau de bord, évitant que des utilisateurs indésirables accèdent aux applications. Diverses méthodes d'analyse et de détection des vulnérabilités permettent également de veiller au maintien de l'activité des applications sécurisées.

Conclusion

Dans le présent article, nous avons traité d'une possibilité de création d'application Web pouvant servir à exécuter automatiquement un pipeline, ainsi que de la composante de tableau de bord pour les clients. Nous avons également discuté de techniques et d'outils modernes pouvant être utilisés avec la programmation Python pour atteindre des résultats.

La composante frontale peut être créée à l'aide de Django et d'une combinaison de langages, tels que HTML (langage de balisage hypertexte), JavaScript et CSS (feuilles de style en cascade). D'autres cadres, comme React, peuvent également être utilisés. Ce type de système dorsal peut également être intégré à Microsoft PowerBI, à l'aide d'une IPA. Même si la création du système frontal est hautement subjective, utiliser des modèles Django pour le système frontal est utile, car il peut servir à créer une application Web tout-en-un. Dans ce cadre de travail, les possibilités sont infinies. L'architecture aide principalement à réduire le codage, les ressources et la maintenance, et facilite la création d'applications réutilisables pour des projets similaires. Elle consiste en de nombreuses composantes non isolées pouvant être réutilisées pour d'autres applications à l'aide d'une architecture de microservices.

L'article du Réseau de la science des données intitulé Déploiement de votre projet d'apprentissage automatique en tant que service développe plus en détail les pratiques mentionnées propres au développement de projets. Les techniques et concepts décrits dans le présent article sont également utiles aux diverses étapes du développement de projet et pourraient être intégrés lors du déploiement d'applications. Des liens vers la plupart des ressources figurent dans les références.

Pour de plus amples renseignements, veuillez communiquer avec nous à l'adresse statcan.datascience-sciencedesdonnees.statcan@statcan.gc.ca.

Répondez à notre bref sondage de 2 minutes

Nous avons besoin de votre aide pour améliorer le Réseau de la science des données. Merci de consacrer 2 minutes à répondre à quelques questions rapides. Vos commentaires sont bienvenus et précieux. C'est votre dernière chance de répondre au Sondage sur le bulletin d'information du Réseau de la science des données. Nous remercions ceux et celles qui y ont déjà répondu!

Date de modification :

Comparaison des outils de reconnaissance optique de caractères pour les documents à forte densité de texte et les textes provenant de scènes

Par : Sayema Mashhadi, Statistique Canada

La reconnaissance optique de caractères (ROC) est utilisée pour saisir du texte à partir de photos contenant certains renseignements textuels, ainsi qu'à partir de documents numérisés, tels que des formulaires, des factures ou des rapports. Le texte peut être composé de toute combinaison de caractères imprimés ou manuscrits et peut comprendre des symboles, des chiffres, des signes de ponctuation, etc. Il existe de nombreux outils de ROC de source libre dans divers langages de programmation qui peuvent être utilisés sans aucune formation préalable en données ou en apprentissage automatique. Cet article compare deux outils de ROC de source libre couramment utilisés pour reconnaître les textes imprimés dans les projets d'extraction d'information de la Division de la science des données de Statistique Canada : Tesseract, le moteur de ROC de Google (le contenu de cette page est en anglais), et CRAFT, l'outil de ROC de Clova AI (le contenu de cette page est en anglais). Tesseract a été développé par Hewlett-Packard (HP) dans les années 1980 en tant que logiciel propriétaire, puis rendu ouvert en 2005. Depuis, Google a continué à le développer et publie des versions améliorées gratuites à quelques années d'intervalles. Grâce aux mises à jour régulières et majeures du code source, Tesseract est très populaire dans la communauté de source libre. CRAFT est un outil de ROC de pointe destiné à la détection de texte de scène (images avec des zones de texte à différents angles dans un arrière-plan complexe) avec le score le plus élevé de moyenne harmonique (le contenu de cette page est en anglais) sur de multiples ensembles de données publiques par rapport à d'autres outils de source libre de ROC utilisés pour la détection de texte de scène. Pour voir d'autres scores de moyenne harmonique, visitez le site Character Region Awareness for Text Detection (le contenu de cette page est en anglais).

Motivation

L'extraction d'information est le processus qui consiste à extraire des informations structurées utiles à partir de données non structurées sous forme de fichiers texte, d'images, de vidéos, de clips audio, etc. L'information extraite est utilisée pour préparer les données à une analyse. Habituellement, l'information provenant de données non structurées est obtenue en la parcourant manuellement, ce qui prend du temps et est susceptible d'entraîner des erreurs. Les outils d'extraction d'information permettent de réduire les efforts manuels, de gagner du temps et de réduire le risque d'erreurs humaines.

Les outils de ROC sont nécessaires pour l'extraction d'information lorsqu'on traite des images ou des documents numérisés. Dans le cadre de projets antérieurs, nous avons travaillé avec des images numérisées de produits de santé naturels, des formulaires numérisés et des états financiers numérisés qui nécessitent, entre autres, la détection et la reconnaissance de texte dans le but de convertir des données non structurées en données structurées utilisables. Pour en savoir plus sur l'un de nos projets concernant l'intelligence documentaire, consultez notre récent article du Réseau de la science des données Intelligence documentaire : L'art de l'extraction d'information à partir des PDF.

Qualité de l'image

La performance de la ROC, quel que soit l'algorithme ou la technologie exploitée, dépend fortement de la qualité de l'image. Si la qualité de l'image est nette et claire pour l'œil humain, un outil de ROC a plus de chances de convertir l'image en une chaîne de texte avec une grande précision. D'autre part, des images de mauvaise qualité peuvent rapidement dégrader la performance des outils de ROC. Certaines techniques de prétraitement des images peuvent être appliquées pour améliorer la visibilité de l'information textuelle dans les images ou les données numérisées. Ces techniques peuvent inclure la binarisation, la suppression du bruit et l'augmentation du contraste et de la netteté afin d'améliorer la visibilité du texte. Les documents numérisés peuvent également contenir des problèmes d'alignement qui doivent être corrigés par le rajustement de l'image et la correction de la perspective ou de la courbure. Apprenez-en plus sur les techniques typiques de prétraitement des images utilisées avant la ROC (le contenu de cette page est en anglais).

Détection et reconnaissance de texte

La reconnaissance n'est qu'une partie de la solution. Bien qu'elle soit souvent appelée simplement ROC, la ROC comporte deux parties : la détection et la reconnaissance. L'outil doit d'abord détecter où se trouve le texte dans l'image, puis reconnaître ce texte ou le convertir en une chaîne de caractères simple. Une image peut contenir des espaces vides, des objets, des figures, des dessins, des graphiques et d'autres éléments qui ne peuvent pas être convertis en une chaîne de caractères simple. Par conséquent, un modèle de détection identifie et isole d'abord les zones de texte, puis les transmet au modèle de reconnaissance pour la conversion.

Il existe de nombreux outils de ROC disponibles pour des types spécifiques d’image. Les deux plus populaires sont la détection/reconnaissance de texte de scène et la détection/reconnaissance de documents. Les outils de ROC entraînés sur des images de scène sont plus aptes à détecter les zones de texte sur des fonds complexes et reconnaissent mieux les textes courbes que les outils de ROC entraînés sur des documents numérisés contenant du texte sur des fonds unis. Il est important de choisir des modèles qui ont été formés pour les tâches similaires à notre cas d'utilisation. En outre, nous avons observé que l'utilisation d'un modèle de détection d'un outil et d'un modèle de reconnaissance d'un autre outil peut également aboutir à une amélioration de la performance.

Cas d'utilisation : documents à forte densité de texte

Les documents sont généralement denses en zones de texte, et l'outil de ROC choisi doit être entraîné sur des données similaires : texte foncé sur fond clair, paragraphes, polices de tailles différentes, souvent avec des espaces blancs, ou figures, tableaux, graphiques et diagrammes occupant une partie de la page.

En comparant les performances de Tesseract et de CRAFT, on peut voir que Tesseract reconnaît mieux le texte complet dans un image alors que CRAFT fait quelques erreurs. Nos expériences nous ont également permis de constater que Tesseract est plus performant pour la reconnaissance des caractères alphabétiques et de la ponctuation. Cependant, CRAFT est meilleur que Tesseract pour reconnaître les chiffres et les codes (une combinaison de chiffres et de lettres), y compris dans les documents à forte densité de texte. Au cours de nos tests, nous avons observé que CRAFT confond le caractère « O » avec le chiffre zéro. Cela indique que le modèle CRAFT n'est pas biaisé pour la prédiction des caractères alphabétiques lorsqu'il traite des paragraphes de texte.

Cas d'utilisation : texte de scène

Le texte de scène est une image avec des zones de texte à différents angles sur un fond complexe. Les images d'un marché animé, d'une rue avec des panneaux de signalisation ou de produits commerciaux peuvent entrer dans cette catégorie. Dans l'exemple ci-dessous, un produit de santé naturel est illustré. Il peut être assez difficile de détecter du texte dans différents alignements, polices et couleurs, et aucun des deux outils de ROC n'a atteint une précision parfaite. On peut toutefois noter que CRAFT a détecté plus de zones de texte que Tesseract. Cela s'explique surtout par le fait que CRAFT est un modèle de détection et de reconnaissance de texte de scène et qu'il est entraîné à repérer avec précision une variété de zones de texte sur des fonds complexes. Nos expériences ont permis de constater que CRAFT est plus performant pour détecter même les plus petites zones de texte sur une image et qu'il surpasse les autres modèles de détection de texte de scène disponibles.

Image

Photo d'un produit de santé naturel, la crème pour bébé Zincofax
Description - Figure 2

Photo d'un produit de santé naturel, la crème pour bébé Zincofax. La photo représente la face avant de la boîte avec les mots « Recommandé par les médecins » en haut à gauche et « Utilisé par les parents depuis des générations » en haut à droite. Un bébé heureux, placé sur le ventre, se trouve au centre de l'image. Le mot Zincofax est inscrit en gros caractères au centre de l'image, partiellement recouvert par la tête du bébé. Une petite description du produit en bas de l'image indique « Prévient et traite l'érythème fessier ». En bas à gauche, le poids de 130 g est indiqué.


Résultat Tesseract

Utilisé par les
parents depuis
des générations
| Recommandé
NON PA
£
130 g


Résultat CRAFT

Recommandé
Utilisé par
par les médecins
No
parents depuis
des générations

Outil de ROC personnalisé

En plus de la variété des outils disponibles selon le cas d'utilisation, il est possible de créer un outil ROC unique en utilisant le modèle de détection de texte d'un outil et le modèle de reconnaissance d'un autre outil. Cette méthode a été employée avec succès dans l'un de nos projets d'extraction d'information portant sur des formulaires numérisés, où CRAFT a été utilisé pour la détection et Tesseract pour la reconnaissance. La combinaison a bien fonctionné, car CRAFT est plus performant pour détecter toutes les zones de texte (tailles de police beaucoup plus petites pour les titres des champs de formulaire) et Tesseract est plus performant pour convertir les zones de texte individuelles détectées en chaînes de caractères simples.

Conclusion

Les outils de ROC de source libre sont un excellent moyen d'extraire des informations à partir d'images ou de documents numérisés. De nombreux outils de ROC de pointe sont entraînés pour un cas d'utilisation spécifique et peuvent être utilisés sans aucune formation préalable. La performance dépend fortement de la qualité de l'image, mais certaines techniques de prétraitement de l'image peuvent être mises à profit pour améliorer les résultats. Dans nos tests, Tesseract, le moteur de ROC de Google, a produit de meilleurs résultats sur les documents à forte densité de texte, et CRAFT, de Clova AI, a produit de meilleurs résultats sur les données de textes de scène. Une fois les outils combinés, nous avons pu utiliser les points forts des deux outils pour effectuer une extraction d'information plus précise à partir d'ensembles plus complexes d'images contenant une variété de textes.

Veuillez s'il vous plaît prendre 2 minutes pour répondre à notre sondage

Nous sollicitons votre aide afin d'améliorer le Réseau de la science des données. Veuillez s'il vous plaît prendre 2 minutes pour répondre à quelques questions rapides. Nous sommes impatients de recevoir vos commentaires et les apprécions. C'est votre dernière chance de compléter le Sondage sur le bulletin d'information du Réseau de la science des données. Merci à tous ceux qui l'ont déjà rempli !

Date de modification :

Série sur les développements en matière d’apprentissage automatique – premier numéro

Par : Nicholas Denis, Statistique Canada

Note de l'éditeur : Cette série présente des faits nouveaux et intéressants sur les recherches faites en matière d'apprentissage automatique provenant du monde entier. Nous espérons que vous trouverez quelque chose qui vous aidera dans votre travail, ou dans celui de vos collègues.

Les sujets du mois :

Révolution : Une nouvelle approche de pré-entraînement d'apprentissage par transfert voit le jour!

Figure 1: Contrastive Language-Image Pre-training (CLIP)

Figure 1: Contrastive Language-Image Pre-training (CLIP)
Description - Figure 1

Une image de trois organigrammes. Le premier graphique intitulé "1)Préentraînement contrasté" illustre l'entrée du texte "Pepper le chien" dans un codeur de texte avec les sorties suivantes comme en-têtes de colonne pour le tableau ; T1, T2, T3, ..., et TN. Sous le texte " Pepper le chien" se trouve l'image d'un chien assis sur de l'herbe. L'image est transmise à un codeur d'images dont les sorties sont les suivantes ; I1, I2, I3, I4, I5. Les valeurs de la première ligne de données dans le tableau sont les suivantes ; I1-T1, I1-T2, I1-T3,..., I1-TN. Les valeurs de la deuxième ligne de données sont les suivantes ; I2-T1, I2-T2, I2-T3,..., I2-TN. Les valeurs de la troisième ligne de données sont les suivantes I3-T1, I3-T2, I3-T3,..., I3-TN. Les valeurs de la quatrième ligne de données sont les suivantes ; IN-T1, IN-T2, IN-T3,..., IN-TN
Le deuxième graphique intitulé "2) Créer un ensemble de données classificateur de texte d'étiquette" montre des cases superposées verticalement contenant le texte suivant ; avion, voiture, oiseau,..., chien. Une flèche est dessinée allant du texte "oiseau" directement vers une autre case contenant le texte "Photo d'un objet". Ceci alimente ensuite un processus appelé codeur de texte, qui produit les valeurs suivantes ; T1, T2, T3, ..., et TN.
Le troisième tableau intitulé "3) Zéro-coup prédiction" commence par montrer la photo d'un chien debout sur l'herbe. L'image est introduite dans un codeur d'image qui produit la valeur suivante ; I1.
Les deuxième et troisième graphiques sont ensuite combinés pour produire les valeurs suivantes ; I1-T1, I1-T2, I1-T3,..., I1-TN. La valeur I1-T3 est mise en évidence et une flèche est dessinée allant de la valeur à une boîte contenant le texte "Photo d'un chien".

L'entreprise OpenAI présente une nouvelle approche de pré-entraînement produisant des modèles pré-entraînés de pointe pour la vision par ordinateur

La nouveauté : L'approche CLIP utilise à la fois des entrées sous forme de textes et d'images pour entraîner des modèles de vision par ordinateur, sans aucune étiquette, qui peuvent exécuter une grande variété de tâches à des niveaux de performance de pointe (ou presque) sur 30 ensembles de données différents. Quelques exemples de tâches comprennent la reconnaissance d'objets, la reconnaissance optique de caractères, la reconnaissance d'actions à partir de vidéos, la géolocalisation et la classification d'objets finement détaillés. OpenAI, l'entreprise qui a créé cette nouvelle approche, a mis les modèles à code source libre à la disposition du public.

Comment ça fonctionne : OpenAI a construit un ensemble de données extraites du Web contenant 400 millions d'images associées à des descriptions textuelles. L'entreprise a mis en place l'approche CLIP (Contrastive Language-Image Pre-training), une approche qui prend l'entrée d'une image et la description textuelle de l'image et apprend à intégrer les représentations de l'image et du texte sur la surface d'une (hyper) sphère aussi précisément que possible. C'est tout!

Pourquoi cela fonctionne-t-il? Imaginez que vous puissiez déterminer les descriptions textuelles associées à 400 millions d'images différentes? Il serait juste de dire que vous avez appris la sémantique des objets dans les images, et que vous avez correctement découvert un grand nombre de catégories et de concepts. C'est exactement ce qui se passe avec CLIP. Cette approche présente un nouveau mécanisme d'inférence utilisant des invites textuelles :

  • puisque CLIP est entraîné sans aucune étiquette, il n'y a pas de couche de classification;
  • pour une image d'entrée donnée, CLIP produit une représentation de l'image;
  • pour un ensemble donné de classes pour une application donnée, des invites textuelles entrent dans le modèle sous la forme d'« Une photo d'une <CLASSE> », où CLASSE est remplacé par les classes d'intérêt (p. ex. chat, chien);
  • CLIP produit une représentation du texte pour chaque invite, et la classe la plus proche de la représentation de l'image est sélectionnée comme classe inférée.

Résultats : Après avoir pré-entraîné un modèle avec un énorme corpus de données image-texte provenant du Web, les auteurs utilisent plus de 30 ensembles de données de référence en vision par ordinateur et étudient les performances de CLIP sur un grand nombre de tâches de vision par ordinateur. Les auteurs testent les performances du modèle sur l'apprentissage par transfert à zéro coup (aucun apprentissage supplémentaire), ainsi que sur l'évaluation linéaire et la mise au point.

  • L'approche CLIP utilisant l'apprentissage à zéro coup (où, au moment de l'inférence, un algorithme d'apprentissage doit effectuer une classification sur des catégories de classes non observées pendant l'entraînement) dépasse un classificateur linéaire entièrement supervisé ajusté aux caractéristiques ResNet-50 sur 16 des 27 ensembles de données, y compris ImageNet.
  • L'ajustement d'un classificateur linéaire sur les caractéristiques de CLIP dépasse l'utilisation du Noisy Student EfficientNet-L2 (apprentissage par transfert de pointe à partir de l'ensemble de données ImageNet) sur 21 des 27 ensembles de données (jusqu'à 23,6 % d'amélioration de la précision).
  • La performance de CLIP zéro coup était incroyablement résistante aux changements de distribution, y compris les attaques adverses, les images stylisées, l'utilisation de bruit synthétique et l'utilisation d'images synthétiques fournies.

Quel est le contexte? L'entreprise OpenAI a contribué à ouvrir la voie au pré-entraînement des modèles de langage avec la famille de modèles de langage GPT (Generative Pre-trained Transformer) qui sont couramment utilisés. Il est clair que son expertise dans ce domaine l'a aidée à produire cette approche novatrice. Depuis la diffusion de la publication au sujet de cette approche au début de l'année 2021, plusieurs dizaines de travaux ont été menés, ont été analysés et ont utilisé CLIP, ce qui en fait l'ouvrage phare de l'année 2021. Les modèles et le code sont disponibles gratuitement en ligne: openAI/CLIP GitHub (le contenu de cette page est en anglais). Comme indiqué sur leur site web, OpenAI est une enterprise de recherche et de déploiement de l'IA. Sa mission est de faire en sorte que l'intelligence artificielle générale profite à l'ensemble de l'humanité. (le contenu de cette page est en anglais) - des systèmes très autonomes qui surpassent les humains dans la plupart des travaux à valeur économique - qui profite à l'ensemble de l'humanité. Ils tentent de construire directement des IAG sûres et bénéfiques, de mettre leur travail à la disposition d'autres personnes visant le même résultat, et sont régis par le conseil d'administration à but non lucratif d'OpenAI.

Et puis? CLIP a été utilisé pour la recherche d'images et de vidéos à l'aide de texte, de segmentation et de sous-titrage d'images. Bien que CLIP ait d'autres utilités comme faire la mise au point du modèle, les approches traditionnelles d'apprentissage par transfert (qui impliquent de geler le modèle CLIP) ou l'utilisation de ses caractéristiques comme entrées d'un nouveau modèle de réseau neuronal plus petit, l'aspect très important de CLIP réside dans sa capacité de transfert à zéro coup.

Lorsque l'approche a été évaluée sur ImageNet (un ensemble de données d'un million d'images comprenant 1 000 classes), CLIP a atteint une précision de 76,2 %, sans aucune supervision au niveau des classes. CLIP peut agir comme un classificateur à jeu ouvert (open-set) en utilisant les invites textuelles. Plutôt que d'avoir un modèle paramétrique produisant une distribution sur un nombre fixe de classes, au moment de l'inférence, l'approche CLIP est capable d'interroger le modèle avec un nombre quelconque de classes en utilisant la conception novatrice de l'invite, ce qui la rend incroyablement polyvalente et générale.

Une recherche distincte utilisant l'approche CLIP pour la segmentation montre que lorsque l'on fournit une image de zèbres buvant le long de la rivière, l'invite textuelle se lit comme suit : « Le zèbre devant les autres zèbres », ce qui permet au modèle CLIP de segmenter correctement le zèbre qui lui est demandé. De quoi changer la donne!

Notre avis : La littérature parle d'elle-même. Le nombre d'articles de recherche utilisant l'approche CLIP montre le côté novateur et la puissance de cette dernière. CLIP est utile pour un large éventail de tâches de vision par ordinateur. Nous pensons que les approches d'apprentissage profond qui utilisent de multiples modalités de données (c.-à-d. image/texte/audio, etc.) deviendront de plus en plus courantes. Cependant, comme on l'a vu avec le pré-entraînement des modèles de langage, tels que GPT-3 d'OpenAI, il est probable que la taille de ces modèles augmentera. À mesure que les paramètres de ces modèles augmenteront, seules les plus grandes entreprises technologiques seront en mesure d'assumer les coûts pour l'apprentissage de ces modèles, ce qui rendra peu probable leur utilisation par le public et la possibilité de les rendre à code source libre.

La normalisation par lots (BatchNorm) est tout ce dont vous avez besoin

Figure 2 : Relation entre le nombre de paramètres de normalisation par lots et l'exactitude lors de la mise à l'échelle de la profondeur et de la largeur des ResNets; dans CIFAR-10.

Figure 2:Relation entre le nombre de paramètres de normalisation par lots et l'exactitude lors de la mise à l'échelle de la profondeur et de la largeur des ResNets; dans CIFAR-10.
Description - Figure 2

Un graphique linéaire montrant la précision des tests (%) sur l'axe y avec les valeurs 45, 55, 65, 75 et 85. L'axe x est intitulé Milliers de paramètres de normalisation par lots (échelle logarithmique) et contient les valeurs 1, 2, 4, 8, 16, 32 et 64. Le graphique montre que la "profondeur accrue" et la "largeur accrue", ainsi que les "Milliers de paramètres de normalisation par lots (échelle logarithmique)" augmentent en précision. La profondeur accrue affiche les valeurs suivantes : pente=5.897, r2=0.984, p=6.14E-05. La largeur accrue affiche les valeurs suivantes : pente=4.994, r2=0.996, p=2.93E-05.

Figure 3: La distribution de y pour ResNet-110 et ResNet-101 agrégé à partir de cinq (CIFAR-10).

Figure 3: La distribution d'y pour ResNet-110 et ResNet-101 agrégé à partir de cinq (CIFAR-10).
Description - Figure 3

Deux graphiques. Le premier graphique intitulé "Distribution d'y - ResNET-110 pour CIFAR-10" représente un histogramme avec deux valeurs : "Tous paramètres entraînables" et "Normalisation par lot". L'axe y est intitulé Densité, avec des valeurs comprises entre 0 et 6. L'axe x est intitulé Valeur et comporte les valeurs comprises entre -1,0 à 1,5 par incréments de 0,5. Le graphique montre que la densité des valeurs de la Normalisation par lot sont systématiquement inférieures à 1, à l'exception d'un pic important à une densité d'environ 5,5 pour une valeur de 0,0. La densité des valeurs associées à "Tous paramètres entraînables" commence à augmenter progressivement entre -0,5 et 0,0. Il y a un pic considérable à une valeur de 0,0 jusqu'à une densité d'environ 1,5, puis la densité chute à nouveau, mais augmente progressivement jusqu'à une densité maximale supérieure à 3 avec une valeur comprise entre 0,0 et 0,5 avant de retomber progressivement à une densité proche de 0 une fois que les valeurs approchent 1,0.
Le deuxième graphique intitulé "Distribution de y-Reset-101 pour ImageNet" représente un histogramme avec deux valeurs : "Tous paramètres entraînables" et "Normalisation par lot". L'axe y est intitulé Densité, avec des valeurs allant de 0 à 18 par incréments de 3. L'axe x est intitulé Valeur et contient des valeurs allant de -0,3 à 0,4 par incréments de 0,1. Le graphique montre que la densité des valeurs de Normalisation par lot est toujours bien inférieure à une densité de 3, à l'exception d'un pic important à une densité d'environ 18 pour une valeur de 0,0. La densité des valeurs "Tous paramètres entraînables" commence à augmenter progressivement entre -0.1 et 0.0. Il y a un pic considérable à une valeur de 0,0 jusqu'à une densité d'environ 3, puis la densité chute à nouveau, mais augmente progressivement jusqu'à un pic de densité d'environ 5 avec une valeur entre 0,0 et 0,2 avant de retomber progressivement à une densité proche de 0 une fois que les valeurs approchent 0,4.

Des chercheurs du Massachusetts Institute of Technology et de Facebook Research obtiennent une précision de 83 % pour l'apprentissage de CIFAR10 en utilisant uniquement des paramètres de normalisation par lots.

La nouveauté : La normalisation par lots est une technique omniprésente dans l'apprentissage profond. Les auteurs étudient le pouvoir expressif des paramètres de normalisation par lots en entraînant des réseaux de neurones, fournissant la preuve que la normalisation par lots est extrêmement puissante dans l'apprentissage profond, capable d'apprendre à partir de caractéristiques aléatoires.

Comment ça fonctionne : L'écart réduit est une technique courante de prétraitement des données, qui vise à transformer les entrées pour qu'elles soient approximativement normales (0,1). Cependant, dans l'apprentissage profond, lorsque chaque lot de données passe dans le réseau, les données sont transformées à chaque couche et ne suivent plus cette distribution. La normalisation par lots est similaire à l'écart réduit, cependant elle ne vise pas à transformer les données pour qu'elles soient normales (0,1), mais plutôt normales (β,γ)β et γ sont des paramètres assimilables. Les auteurs forment des réseaux neuronaux où tous les paramètres de poids sont fixes et ne sont pas mis à jour, tandis que les paramètres de la normalisation par lots sont les seuls paramètres mis à jour par apprentissage.

Résultats :

  • Les auteurs démontrent d'abord que pour différentes architectures de réseaux neuronaux, l'utilisation de la normalisation par lots est toujours avantageuse et améliore les performances du modèle.
  • Lors de l'utilisation d'un ResNet-110 sur CIFAR10, avec l'ensemble des 1,7 million de paramètres assimilables, le modèle atteint une précision de test de 93,3 %, mais lorsqu'il utilise uniquement les 8 300 paramètres de normalisation par lots, le modèle est capable d'atteindre une précision de test de 69,7 %. De plus, un ResNet-866 avec 65 000 paramètres atteint une précision de test de 83 %.
  • En utilisant uniquement les paramètres de normalisation par lots pour l'apprentissage, les auteurs ont trouvé une corrélation de Pearson presque parfaite entre les paramètres de normalisation par lots (couches d'un réseau) et la précision du test.
  • Une analyse des paramètres appris a montré que le modèle apprend à désactiver efficacement entre un tiers et un quart de toutes les caractéristiques, en élaguant implicitement le réseau.

Quel est le contexte? La normalisation par lots a fait l'objet de nombreuses études visant à faire la lumière sur le pourquoi et le comment de son fonctionnement. Bien qu'aucun praticien de l'apprentissage profond n'ait besoin de plus de preuves pour utiliser la normalisation par lots dans ses modèles, le fait qu'un modèle puisse avoir de bonnes performances en utilisant uniquement la normalisation par lots est assez impressionnant et révélateur. Étant donné que tous les autres paramètres sont initialisés et fixés de manière aléatoire, cela signifie en réalité que les caractéristiques produites à partir des données d'entrée sont aléatoires, et que les paramètres de la normalisation par lots sont capables de transformer de manière itérative les caractéristiques aléatoires en caractéristiques discriminantes pour la classification en aval.

Mais... Bien que le résultat soit très intéressant et puisse donner lieu à d'autres recherches, les auteurs ne suggèrent pas aux praticiens de former uniquement des réseaux à normalisation par lots.

Et puis? Les implications de ce travail fournissent un soutien supplémentaire pour la puissance et l'importance de l'utilisation de la normalisation par lots dans l'apprentissage profond. Un ResNet de 866 couches avec seulement 65 000 paramètres est capable d'obtenir de très bons résultats, alors qu'un réseau à une seule couche avec ce nombre de paramètres échouerait probablement complètement à la même tâche. Ce résultat pourrait très bien ouvrir la voie à de nouvelles conceptions architecturales et à des recherches centrées sur des réseaux plus profonds, mais plus étroits (moins de paramètres par couche).

Notre avis : Cette recherche est intéressante en soi, et est importante pour l'avancement de la recherche sur la normalisation par lots. Comme les poids de chaque couche des réseaux sont initialisés de façon aléatoire, chaque couche agit comme une transformation aléatoire sur les données, produisant des caractéristiques aléatoires. Étant donné que la normalisation par lots apprend uniquement à rééchelonner et à décaler ces caractéristiques aléatoires, ce travail fournit la preuve que cette approche peut être efficace pour les tâches d'apprentissage par transfert utilisant des modèles pré-entraînés. De plus, étant donné qu'une grande partie des paramètres appris ont effectivement élagué ou désactivé des caractéristiques, il pourrait y avoir une certaine pollinisation croisée avec la communauté sur l'élagage des réseaux (le contenu de cette page est en anglais). Pour nos lecteurs, le message à retenir est simple : utilisez la normalisation par lots.

Mesurer des instances de données difficiles à apprendre

Figure 4:Fréquence de sélection humaine par opposition à la dureté visuelle angulaire

Figure 4:Fréquence de sélection humaine par opposition à la dureté visuelle angulaire
Description - Figure 4

Une carte thermique montrant la relation entre la fréquence à laquelle les instances de données sont sélectionnées par les humains comme étant représentatives d'une classe donnée, et la dureté visuelle angulaire. Les couleurs foncées représentent une relation faible, tandis que les couleurs jaunes plus vives représentent une relation plus forte. L'axe x est intitulé "Fréquence de sélection humaine" et contient les valeurs de 0,0 à 1,0 par incréments de 0,2. L'axe y intitulé AVH(x) contient les valeurs de 0,0 à 1,0 par incréments de 0,2. La carte thermique montre une concentration du nombre d'échantillons en bas à droite représentant une dureté visuelle angulaire plus faible et une fréquence de sélection humaine plus élevée.

Les chercheurs ont établi une mesure de la « difficulté » d'une instance de données à être correctement classée, qui présente une corrélation négative avec la fréquence à laquelle les annotateurs humains sélectionnent les instances comme exemples d'une classe donnée.

La nouveauté : Des chercheurs de l'Université de Toronto, de l'Université Rice, du California Institute of Technology, du Georgia Institute of Technology, de NVIDIA Corporation et du Vector Institute établissent une mesure de la difficulté d'un exemple par rapport à la capacité d'un modèle à classer correctement une instance de données, et forment le modèle en utilisant un programme basé sur cette mesure.

Comment ça fonctionne : La dureté visuelle angulaire calcule l'angle que fait une représentation avec chacun des centres de classe et produit un score où, en gros, les valeurs les plus grandes correspondent aux représentations qui ont des angles plus grands par rapport aux classes de leurs étiquettes identifiant la vérité (et qui sont donc plus éloignées). Ensuite, à l'aide de la dureté visuelle angulaire, l'ensemble de données peut être classé en matière de difficulté des instances, et un sous-ensemble peut être utilisé pour entraîner un modèle à l'aide d'instances d'un niveau de difficulté approprié (apprentissage par programme).

Résultats :

  • Les chercheurs ont constaté que la dureté visuelle angulaire présente une forte corrélation (négative) avec la fréquence de sélection humaine, soit la fréquence à laquelle les annotateurs humains sélectionneraient une instance comme exemple d'une classe donnée. Par conséquent, plus l'exemple est facile, plus il est probable qu'un humain le sélectionnera et le reconnaîtra comme un exemple d'une classe donnée.
  • Les chercheurs utilisent la dureté visuelle angulaire pour l'auto-formation semi-supervisée dans le cadre de l'adaptation au domaine. En bref, cela implique deux ensembles de données complètement différents, générés à partir de distributions complètement différentes, mais avec les mêmes classes. Avec des étiquettes sur l'ensemble de données « source » et aucune étiquette d'entraînement dans l'ensemble de données « cible », l'objectif est de généraliser à des instances non vues de l'ensemble de données « cible ». Les modèles ont d'abord été formés sur l'ensemble de données « source », puis la dureté visuelle angulaire a été appliquée à l'ensemble de données « cible ». Les instances inférieures à un seuil (instances plus faciles) ont été sélectionnées pour produire des pseudo-étiquettes par les modèles précédemment formés (voir voir Pseudo-Labeling to deal with small datasets - le contenu de cette page est en anglais). Ces instances pseudo-étiquetées ont été ajoutées à l'ensemble de données et le modèle a été entraîné de nouveau. Cette approche a donné de meilleurs résultats que les précédentes approches de pointe d'adaptation au domaine sur différents ensembles de données.

Quel est le contexte? L'apprentissage par programmes est un domaine largement étudié en apprentissage automatique. Les techniques d'extraction d'échantillons durs et semi-durs sont cruciales pour de nombreuses techniques d'apprentissage métrique profond et d'apprentissage auto-supervisé.

Et puis? De l'apprentissage métrique profond à l'apprentissage par programmes, la mesure de la difficulté des instances d'un ensemble de données est de plus en plus importante pour une grande variété de techniques d'apprentissage automatique. De nombreux ensembles de données concrètes comportent des étiquettes approximatives (lisez : incorrectes) et il est probable (lisez : avec un peu de chance) que le modèle ne classifie jamais « correctement » ces instances. Le domaine de l'identification des instances mal étiquetées utilise des exemples difficiles à ajuster, à réétiqueter ou à supprimer de l'ensemble de données afin d'améliorer les performances du modèle. L'apprentissage par programmes bénéficie de la production d'instances correctement séquencées pour que le modèle puisse apprendre, en trouvant un niveau de difficulté « idéal ». Les instances trop faciles sont un gaspillage de puissance informatique et ne produisent pas de gradients utiles pour les mises à jour de l'apprentissage, tandis que les exemples trop difficiles peuvent être aberrants, mal étiquetés ou simplement peu susceptibles d'être classés correctement. Dans un cas comme dans l'autre, les deux peuvent nuire au modèle et représenter un gaspillage de puissance informatique.

Mais... Bien que la dureté visuelle angulaire soit nouvelle dans sa formulation exacte, l'utilisation de l'angle entre une représentation et son centre de classe véritable, ou des variantes de celui-ci, a déjà existé auparavant. Cependant, c'est le premier travail (à notre connaissance) qui montre une corrélation entre une mesure de dureté et la façon dont les humains peuvent juger une instance comme étant facile ou difficile.

Notre avis : Bien qu'il soit peu probable que la dureté visuelle angulaire soit adoptée comme mesure ultime de la dureté des instances, le but du présent article était de souligner le fait qu'il existe un large corpus de littérature visant à mesurer la difficulté des instances d'apprentissage, et d'utiliser ces renseignements pour éclairer l'apprentissage sous la forme de fonctions de perte, de pseudo-étiquetage, de détection d'anomalies et d'apprentissage par programmes.

Tous les projets d'apprentissage automatique à Statistique Canada sont conçus dans le contexte du Cadre pour l'utilisation des processus d'apprentissage automatique de façon responsable de l'organisme, qui vise à proposer des orientations et des conseils pratiques sur la façon responsable d'élaborer ces processus automatisés.

Date de modification :

Apprentissage automatique explicable, théorie des jeux et valeurs de Shapley : un examen technique

Par : Soufiane Fadel, Statistique Canada

Les modèles d'apprentissage automatique sont souvent considérés comme une boîte noire opaque. Ils regroupent des caractéristiques à utiliser comme données d'entrée et génèrent des prédictions. Après la phase d'entraînement, quelques questions courantes se posent. Comment les différentes caractéristiques influent-elles sur les résultats de la prédiction? Quelles sont les variables les plus importantes qui influent sur les résultats de la prédiction? Dois-je croire les conclusions, bien que les indicateurs de rendement du modèle semblent être excellents? Par conséquent, l'explicabilité du modèle s'avère importante dans l'apprentissage automatique. Les renseignements obtenus à partir de ces méthodes d'intelligibilité sont utiles pour effectuer le débogage, guider l'ingénierie des caractéristiques, orienter les futures collectes des données, éclairer la prise de décision humaine et instaurer la confiance.

Pour être plus précis, distinguons deux idées essentielles dans l'apprentissage automatique : l'intelligibilité et l'explicabilité. L'intelligibilité désigne le degré avec lequel un modèle d'apprentissage automatique peut lier avec précision une cause (données d'entrée) à un résultat (données de sortie). L'explicabilité fait référence au degré avec lequel le fonctionnement interne d'une machine ou d'un système d'apprentissage profond peut être articulé avec des mots humains. En d'autres termes, c'est la capacité d'expliquer ce qui se passe.

Dans le présent article, nous nous penchons également sur les valeurs de Shapley, qui constituent l'une des méthodes d'explicabilité des modèles les plus utilisées. Nous donnons un aperçu technique des détails sous-jacents à l'analyse de la valeur de Shapley et décrivons les bases du calcul des valeurs de Shapley en formalisant mathématiquement le concept et en donnant également un exemple pour illustrer l'analyse de la valeur de Shapley dans un problème d'apprentissage automatique.

Quelles sont les valeurs explications additives de Shapley (SHAP)?

Si vous recherchez l'expression anglaise « SHAP analysis » (analyse SHAP), vous découvrirez qu'elle provient d'un article de 2017 de Lundberg et Lee, intitulé « A Unified Approach to Interpreting Model Predictions » (le contenu de cette page est en anglais), qui introduit l'idée de « Shapley Additive exPlanations » (explications additives de Shapley, également appelée SHAP). SHAP permet de fournir une explication pour la prédiction d'un modèle d'apprentissage automatique en calculant la contribution de chaque caractéristique à la prédiction. L'explication technique du concept de SHAP repose sur le calcul des valeurs Shapley à partir de la théorie des jeux de coalition. Les valeurs de Shapley ont été nommées en l'honneur de Lloyd Shapley, qui a introduit le concept en 1951 et a ensuite remporté le Prix de la Banque de Suède en sciences économiques en mémoire d'Alfred Nobel en 2012. Concrètement, les valeurs de Shapley s'apparentent à une méthode permettant de montrer l'impact relatif de chaque caractéristique (ou variable) que nous mesurons sur les données de sortie finales du modèle d'apprentissage automatique en comparant l'effet relatif des données d'entrée à la moyenne.

Théorie des jeux et théorie des jeux coopératifs

Tout d'abord, expliquons la théorie des jeux afin de comprendre comment elle est utilisée pour analyser les modèles d'apprentissage automatique. La théorie des jeux constitue un cadre théorique pour les interactions sociales avec des acteurs en concurrence. C'est l'étude de la prise de décision optimale par des agents indépendants et concurrents dans un contexte stratégique. Un « jeu » s'entend d'un scénario comportant de nombreux décideurs, chacun d'entre eux cherchant à maximiser ses résultats. Le choix optimal sera influencé par les décisions des autres. Le jeu détermine les identités, les préférences et les tactiques possibles des participants, ainsi que la manière dont ces stratégies influent sur le résultat. Dans le même contexte, la théorie des jeux coopératifs (une branche de la théorie des jeux) postule que les coalitions de joueurs constituent les principales unités de prise de décision et peuvent contraindre à une conduite coopérative. Par conséquent, au sein des jeux coopératifs, la compétition s'opère davantage entre une coalition de joueurs qu'entre des joueurs individuels. L'objectif vise à mettre au point une « formule » pour mesurer la contribution au jeu de chaque joueur, cette formule est la valeur de Shapley.

Valeurs de Shapley : intuition

Le scénario s'entend comme suit : une coalition de joueurs collabore afin d'obtenir un bénéfice total particulier grâce à leur collaboration. Étant donné que certains joueurs peuvent contribuer davantage à la coalition que d'autres et que divers joueurs peuvent présenter divers degrés d'influence ou d'efficacité, quelle devrait être la répartition finale des bénéfices entre les joueurs dans un jeu donné? En d'autres termes, nous voulons connaître l'importance de la collaboration de chaque participant et le type de gain qu'il peut escompter en conséquence. Une solution potentielle à ce problème est fournie par les valeurs du coefficient de Shapley. Ainsi, dans le contexte de l'apprentissage automatique, les valeurs des caractéristiques d'une instance de données servent de membres de la coalition. Les valeurs de Shapley nous indiquent alors comment répartir le « gain » entre les caractéristiques de manière équitable, ce qui constitue la prédiction. Un joueur peut être une valeur de caractéristique unique, comme dans les données tabulaires. Un joueur peut également être défini comme un ensemble de valeurs des caractéristiques.

Valeurs de Shapley : formalisme

Il est important de comprendre la base mathématique et les propriétés qui soutiennent le cadre de la valeur de Shapley. Ce point est abordé plus en détail dans cette section.

Formule de la valeur de Shapley

La valeur de Shapley est définie comme la contribution marginale de la valeur de la variable à la prédiction parmi toutes les « coalitions » concevables ou sous-ensembles de caractéristiques. En d'autres termes, il s'agit d'une approche visant à redistribuer les bénéfices globaux entre les joueurs, étant donné qu'ils coopèrent tous. Le montant que chaque « joueur » (ou caractéristique) obtient après une partie est défini comme suit :

ϕix=SF{i} |S|!|F|-|S|-1!|F|!fS{i}xS{i}-fSxS

Où :

  • x : données d'entrée observées
  • ϕi(x) : valeur de Shapley pour la caractéristique i des données d'entrée x pour le jeu/modèle f.
  • F : ensemble de toutes les caractéristiques
  • fS : modèle formé sur le sous-ensemble de caractéristiques S.
  • fSi  : modèle formé sur le sous-ensemble de caractéristiques S et {i}.
  • xS : données d'entrée restreintes de x étant donné le sous-ensemble de caractéristiques S.
  • xSi: données d’entrée restreintes de x étant donné le sous-ensemble de caractéristiques S et {i}.

Cela pourrait être reformulé et exprimé comme suit :

ϕix=1|F|SF{i}Moyenne |F|-1|S|-1poids combinatoiresfS{i}xS{i}-fSxScontribution marginale

Le concept des valeurs de Shapley peut être divisé en trois composantes : contribution marginale, pondération combinatoire et moyenne. Il est préférable de lire de droite à gauche tout en développant son intuition.

  • La contribution marginale s'entend de la mesure dans laquelle le modèle change lorsqu'une nouvelle caractéristique i est ajoutée. Étant donné un ensemble de caractéristiques S, nous désignons fs comme le modèle formé avec les caractéristiques S présentes. fS{i} est le modèle formé avec une caractéristique supplémentaire i. Lorsque ces deux modèles présentent des prédictions différentes, la quantité entre crochets indique exactement de combien ils diffèrent l'un de l'autre.
  • La pondération combinatoire s'entend de la pondération à donner à chacun des différents sous-ensembles de caractéristiques de taille |S| (en excluant la caractéristique i).
  • Enfin, la moyenne déterminera la moyenne de toutes les contributions marginales de toutes les tailles de sous-ensembles imaginables allant de 0 à |F|-1 . Nous devons omettre la seule caractéristique pour laquelle nous souhaitons évaluer l'importance.

Propriétés théoriques

Les valeurs de Shapley présentent un certain nombre de caractéristiques souhaitables; de telles valeurs satisfont aux quatre propriétés suivantes : efficacité, symétrie, joueur nul et linéarité. Ces aspects peuvent être considérés comme une définition d'une pondération équitable lorsqu'ils sont pris ensemble.

Les quatre propriétés des valeurs de Shapley
  Définition Formalisme mathématique
Efficacité La somme des valeurs de Shapley de toutes les caractéristiques est égale à la valeur de la prédiction formée avec toutes les caractéristiques, de sorte que la prédiction totale est répartie entre les caractéristiques. iFϕix=fFx
Symétrie Les contributions de deux valeurs des caractéristiques devraient être les mêmes si elles contribuent de manière égale à toutes les coalitions possibles. [SF\{i,j}:fS{i}(xS{i})=fS{j}(xS{j})]ϕi(x)=ϕj(x)
Joueur nul  Une caractéristique qui ne modifie pas la valeur prédite, quelle que soit la coalition de valeurs des caractéristiques à laquelle elle est ajoutée, doit avoir une valeur de Shapley de 0. SF:[fS{i}(xS{i})=fS(xS)ϕi(x)=0]
Linéarité Si deux modèles décrits par les fonctions de prédiction f et g sont combinés, la prédiction distribuée devrait correspondre aux contributions dérivées de f et aux contributions dérivées de g. ϕif+gx=ϕifx+ϕigx
aRϕia.fx=a.ϕifx

Considérez le scénario suivant : vous avez entraîné un modèle de forêt aléatoire, ce qui implique que la prédiction est basée sur une moyenne de plusieurs arbres de décision différents. Vous pouvez calculer la valeur de Shapley pour chaque arbre indépendamment, en faire la moyenne, et utiliser la valeur de Shapley résultante pour calculer la valeur de la caractéristique dans une forêt aléatoire. Cela est garanti par la propriété de linéarité.

Exemple d'application d'apprentissage automatique : intelligibilité

Les qualités théoriques des valeurs de Shapley sont toutes intéressantes et souhaitables, mais en pratique, il se peut que nous ne soyons pas en mesure de déterminer la valeur de Shapley précise en raison de contraintes pratiques. L'obtention de la formulation précise de la valeur de Shapley nécessite un temps de traitement important. Lorsqu'il s'agit de situations réelles, la réponse approximative est souvent la plus pratique, car il existe 2|F| coalitions potentielles des valeurs des caractéristiques. Le calcul de la valeur exacte de Shapley est trop coûteux d'un point de vue informatique. Heureusement, nous pouvons appliquer certaines approches d'approximation; la qualité de ces techniques influe sur la robustesse des caractéristiques théoriques. Plusieurs tests en recherche ont été menés (en anglais seulement) pour démontrer que les résultats de l'approximation SHAP sont plus cohérents par rapport aux valeurs produites par d'autres algorithmes couramment utilisés.

La figure suivante fournit un exemple de la façon d'examiner les contributions des caractéristiques pour étudier les prédictions d'un modèle « Xgboost » qui estime le prix de vente des maisons à l'aide de 237 variables explicatives, décrivant presque tous les aspects des maisons résidentielles à Ames, dans l'lowa. L'ensemble des données liées à cette analyse est accessible au public sur Kaggle - House Prices - Advanced Regression Techniques (le contenu de cette page est en anglais).

Figure 1

Figure 1 - exemple de la façon d’examiner les contributions des caractéristiques pour étudier les prédictions d’un modèle « Xgboost » qui estime le prix de vente des maisons
Description - Figure 1

Un graphique en cascade montrant l'évolution prévue de la valeur d'une maison en fonction de caractéristiques telles que la taille de la surface habitable, la taille du garage, la superficie en pieds carrés, la salle de bain, etc. La sortie du modèle pour cette prédiction varie en fonction de chaque caractéristique pour obtenir une valeur prédite complète de la maison. L'axe y contient la liste des caractéristiques et leur valeur associée. L'axe x représente la valeur attendue de la sortie du modèle, E[f(X) = 182711.595. Les caractéristiques, et leur valeur, sont listées avec leur contribution positive ou négative comme suit :
7 565 = Total des pieds carrés de la superficie du sous-sol +18693.31
7 = Qualité Générale des matériaux et de la finition +13485.23
650 = Pieds carrés du garage +10668.53
7050 = Taille du terrain en pieds carrés -7660.98
3 = Qualité des matériaux extérieurs +6583.78
1057 = Total des pièces au-dessus du niveau du sol -6415.29
9 = Âge de la construction +6133.73
3 = Qualité de la garage +5648.2
1 = Salles de bain au-dessus du niveau du sol +5301.53
228 autres caractéristiques +7397.47

En bas du graphique est indiquée la valeur prévue des données de sortie du modèle (182 000 $). Chaque ligne au-dessus montre comment la contribution positive (en rouge) ou négative (en bleu) de chaque caractéristique fait évoluer la valeur en la faisant passer des données de sortie prévues du modèle aux données de sortie du modèle pour cette prédiction (242 000 $). Les informations en gris devant les noms des caractéristiques indiquent la valeur de chaque caractéristique pour cet échantillon. À partir de ce graphique, nous pouvons conclure que 228 caractéristiques ajoutent un total de 7 397,47 $ à la valeur prédite, et que chacune des variables énumérées ci-dessus a un impact supérieur à 5 000 $. Le prix prévu de cette maison particulière grimpe à plus de 18 000 $ avec une surface habitable au sol de 7 500 pieds carrés. Le prix est réduit de 7 660,98 $ en raison de la taille du terrain de 7 050 pieds carrés.

Conclusion

Comme nous l'avons vu, les valeurs de Shapley comportent des propriétés théoriques mathématiquement satisfaisantes en tant que solution aux problèmes de la théorie des jeux. Le cadre fournit des explications contrastives, ce qui signifie qu'au lieu de comparer une prédiction à la prédiction moyenne de l'ensemble des données, il est possible de la comparer à un sous-ensemble ou même à un seul point des données. Il explique qu'une prédiction est un jeu joué par les valeurs des caractéristiques.

En outre, cette méthodologie constitue l'une des rares méthodes explicatives fondées sur une théorie solide, puisque les axiomes mathématiques (efficacité, symétrie, joueur nul, linéarité) fournissent une base raisonnable pour l'explication.

Enfin, il convient de préciser que cette stratégie figure parmi les nombreuses solutions possibles. Cependant, la valeur de Shapley est souvent préférable, car elle est basée sur une théorie solide, répartit équitablement les effets et fournit une explication complète.

Références

Bosa, K. (2021). Utilisation responsable de l'apprentissage automatique à Statistique Canada.

Cock, D. D. (2011). Ames, Iowa: Alternative aux données sur le logement à Boston.  Journal of Statistics Education.

Molnar, C. (2021). Apprentissage automatique interprétable : Un guide pour rendre les modèles de la boîte noire explicables.

Scott Lundberg, S.-I. L. (2017). Une approche unifiée de l'interprétation des prédictions des modèles.

Yadvinder Bhuller, H. C., & O'Rourke, K. (n.d.). De l'exploration à l'élaboration de modèles d'apprentissage automatique interprétables et précis pour la prise de décision : privilégiez la simplicité et non la complexité.

Tous les projets d'apprentissage automatique à Statistique Canada sont conçus dans le contexte du Cadre pour l'utilisation des processus d'apprentissage automatique de façon responsable de l'organisme, qui vise à proposer des orientations et des conseils pratiques sur la façon responsable d'élaborer ces processus automatisés.

Date de modification :

Communauté de pratique (CdP) de l'apprentissage automatique appliqué à l'analyse de texte: Bilan de l'année 2021

La Communauté de pratique (CdP) de l'apprentissage automatique appliqué à l'analyse de textes est un groupe interministériel d'employés du gouvernement du Canada qui font part et discutent de solutions d'apprentissage automatique (AA) de haute qualité concernant les données textuelles. Le groupe a été créé en 2018 sous la forme d'un petit groupe de spécialistes de la science des données de Statistique Canada et s'est rapidement élargi pour devenir une CdP interministérielle composée de représentants de plus de 15 ministères et organismes fédéraux qui se réunissent virtuellement tous les mois.

La CdP a pour principal objectif d'accroître la capacité de l'AA dans de multiples disciplines au sein de la fonction publique. Aucune expérience préalable de l'AA n'est requise pour participer à ces réunions. Les personnes de toutes les disciplines et de tous les ministères et organismes sont invitées à participer aux réunions et à prendre part aux discussions.

La CdP atteint son objectif en:

  • Collaborant par le biais de discussions sur divers aspects de l'analyse de textes
  • Partageant des présentations et d'autres documents concernant l'analyse de textes
  • Fournissant des mises à jour sur les questions et les problèmes rencontrés lors de l'application de l'apprentissage automatique sur des données textuelles (utilisation de Gitlab, de certains packages, etc.)
  • Établissant des pratiques exemplaires fondées sur diverses expertises au sein du gouvernement.

Au cours de l'année 2021, la CdP a organisé 13 présentations de différents ministères et organismes. Chaque présentation permettait d'illustrer une solution concrète d'AA appliquée aux données textuelles ou un exemple de cas qui nécessitait le développement d'une application d'AA au texte.

Présentations de 2021

Vous trouverez ci-dessous une description de chacune des présentations qui ont eu lieu l'année dernière. Si vous souhaitez accéder aux présentations ou obtenir plus de renseignements à leur sujet, veuillez communiquer avec la CdP de l'apprentissage automatique appliqué à l'analyse de textes : statcan.appliedmltextcop-cdpaaappliquetexte.statcan@statcan.gc.ca.

Classification des commentaires sur le Recensement de 2021 à Statistique Canada

Dans le but d'améliorer l'analyse des commentaires sur le Recensement de la population de 2021, la division de la science des données de Statistique Canada a travaillé en collaboration avec le Secrétariat des domaines spécialisés du recensement pour créer une preuve de concept sur l'utilisation des techniques d'apprentissage automatique pour classer rapidement et en toute objectivité les commentaires formulés dans le cadre du recensement. En plus de classer les commentaires par domaine spécialisé, le modèle visait aussi à classer les commentaires sur des problèmes techniques et des préoccupations en matière de protection de la vie privée.

Tirer profit des données pour solidifier son savoir d'affaires: Utiliser la rétroaction des clients pour nourrir l'innovation et la prise de décision à Immigration, Réfugiés et Citoyenneté Canada (IRCC)

Depuis 2014, IRCC récolte de la rétroaction sur ses services de la part de sa clientèle. La Direction générale de l'expérience client a prévu de lancer un projet d'apprentissage automatique pour analyser les commentaires de manière plus approfondie. Cette analyse plus poussée de ces données lui permettrait d'avoir une meilleure compréhension des attentes et opinions de cette dernière et d'aligner ses projets d'innovation et son processus de prise de décision. Le présentateur a discuté avec les membres de la CdP des approches de projet appropriées pour démontrer la valeur ajoutée des projets d'apprentissage automatisé à la haute gestion.

Analyse des données pour les services d'assurance et de consultation à l'Agence du revenu du Canada (ARC)

La section de l'analyse des données au sein de la Direction générale de la vérification, de l'évaluation et des risques de l'ARC a créé un musée des données en 2016. Le musée des données a permis :

  1. la fourniture d'analyses de données descriptives et diagnostiques pour de multiples activités d'assurance et de consultation,
  2. l'utilisation de l'apprentissage automatique pour une meilleure reconnaissance des patrons, une meilleure classification et une meilleure détection des valeurs aberrantes, et
  3. l'élaboration de procédures opérationnelles standardisées pour la confidentialité et la protection des données.

La section de l'analyse des données a constaté de visu que les méthodes et techniques de traitement du langage naturel (TLN) sont sous-utilisées dans le secteur de l'audit interne, et a saisi l'occasion d'appliquer le TLN à diverses étapes du processus d'audit interne. Par exemple, le TLN a aidé les équipes d'audit interne à :

  1. analyser de grands volumes de données textuelles non structurées, telles que des notes d'entrevue, des rapports de 400 pages de l'Office Gouvernemental des Comptes, et des pages Web lors de la génération automatique de résumés de risques à partir de l'environnement socio-économique,
  2. visualiser l'interconnectivité des risques,
  3. mesurer le ton des rapports en utilisant l'analyse des sentiments, et
  4. exploiter un moteur de recherche de questions et réponses en langage naturel.

Ingénierie des données avec R, R Markdown, Shiny et les algorithmes

Cette présentation a présenté les défis et les solutions liés à l'ingénierie des données, et le domaine qui traite de l'automatisation et de la transformation des données. Le présentateur a discuté de la taxonomie des tâches d'ingénierie des données et des outils pour y répondre. Il a décrit les efforts pour créer la trousse des outils d'ingénierie des données et la Communauté de pratique. Des applications Shiny pour la fusion/déduplication de données floues et l'analyse TLN de la base de données ouvertes du Canada des demandes d'accès à l'information complétées ont été présentées.

La Modélisation thématique dynamique à Statistique Canada

Cette présentation a fourni un aperçu technique de la méthodologie sous-jacente à la modélisation thématique, expliquant la base de l'allocation de Dirichlet latente et introduisant une dimension temporelle dans l'analyse de modélisation thématique. Cela a été fait dans le contexte de la détection d'événements à l'aide des données de la Base canadienne de données des coroners et des médecins légistes (BCDCML).

Analyse des événements à l'aide des structures du centre de situation à Transports Canada

La Direction des préparatifs d'urgence envoi des notifications sur les événements (incidents, accidents, etc.) qui touchent l'infrastructure de transport du Canada (maritime, aérien et de surface), 24 heures sur 24 et 7 jours sur 7, aux abonnés par courriel. L'équipe du présentateur a conçu ces notifications bilingues pour produire des ensembles de données analytiques afin d'extraire des renseignements, de permettre l'analyse de texte et de détecter des modèles pour des événements similaires.

L'analyse des médias sociaux en temps réel à Transports Canada

Cette application Web de validation de concept a exploité les données des médias sociaux en temps réel et a fourni des informations géospatiales et des analyses de texte à l'aide du traitement du langage naturel. L'objectif de l'application était d'aider les analystes à déterminer dans quelle mesure des événements reliés à la sûreté et à la sécurité pouvaient être extraits des médias sociaux. En outre, un composant attribuant des scores aux sentiments a été ajouté pour permettre une analyse des sentiments basée sur des sujets ou des organisations clés. Bien qu'elle n'ait jamais été mise en œuvre, la preuve de concept a permis une analyse rapide des problèmes émergents pour une sous-population d'utilisateurs de médias sociaux, y compris des particuliers, des fournisseurs d'informations et la police nationale.

L'apprentissage automatique quantique appliqué à la classification de texte par Statistique Canada, l'Institut quantique de l'Université de Sherbrooke et la Banque du Canada

Les technologies découlant de l'informatique quantique ont le potentiel de révolutionner plusieurs domaines de l'apprentissage automatique, incluant la classification de texte. Durant cet exposé, les présentateurs ont exploré trois approches distinctes d'apprentissage automatique quantique à l'époque des ordinateurs quantiques d'échelle intermédiaire bruitées, dans le but de présenter ces méthodes aux chercheurs et aux scientifiques de données existants dans le domaine.

De la guérison du cancer à la saisie des gazouillis : Le TLN appliqué pour les sciences de la santé à l'Agence de la santé publique du Canada (ASPC)

Le présentateur a partagé son bref voyage à travers l'application pratique du TLN aux problèmes de la recherche en sciences de la santé. Il s'agit notamment de l'utilisation du TLN basé sur des règles pour extraire les interactions médicament-maladie des résumés de recherche médicale, jusqu'à l'utilisation de l'apprentissage automatique visant les gazouillis sur la vaccination afin de prédire les épidémies. Les leçons apprises et les erreurs qui ont été faites ont été discutées.

Vers l'automatisation des examens systématiques sur la vaccination à ASPC

L'ASPC (avec Xtract AI, Vancouver, BC) envisage l'automatisation de différentes étapes de synthèse des données visant à accroître les gains d'efficacité. Le présentateur a partagé le résumé d'une version préliminaire d'un nouveau système d'apprentissage automatique fondé sur des avancements récents quant au TLN, comme BioBERT, où d'autres optimisations seront réalisées par l'entremise d'une nouvelle base de données de documents portant sur la vaccination. Le modèle de TLN optimisé obtenu et qui est au cœur de ce système a pu déceler et extraire les champs relatifs aux principes de la Population, l'Intervention, les Comparateurs, les Résultats (PICR) des publications sur la vaccination avec une exactitude moyenne s'élevant à 88% dans cinq classes de texte.

Création de Tableaux de Bord de Visualisation de Données à l'aide de Cadres Python de source ouverte à Statistique Canada

django Dash

La construction de tableaux de bord s'est avérée utile dans le domaine de la science des données. Avec les progrès actuels dans ce domaine, on assiste à l'émergence d'outils de source libre puissants, hautement personnalisables et gratuits. Le présentateur a parlé de certains des meilleurs outils python adaptés à la construction de tableaux de bord, a montré des exemples de travaux pertinents réalisés par la Division de la sciences des données et a présenté un bref aperçu de la façon de s’initier à deux outils des plus populaires, Dash et Django.

Automatisation de l'extraction d'informations à partir d'états financiers dans le système SEDAR à l'aide de techniques basées sur la disposition spatiale à Statistique Canada

SLICEmyPDF

Le format PDF (Portable Document Format) est le plus couramment utilisé par les entreprises à des fins d'information financière. L'absence de moyens efficaces pour extraire les données de ces fichiers PDF hautement non structurés d'une manière tenant compte de la mise en page représente un défi majeur pour les analystes financiers pour analyser et traiter efficacement les informations en temps opportun. «Spatial Layout based Information and Content Extraction» (SLICE) - un algorithme de vision par ordinateur unique utilise simultanément des informations textuelles, visuelles et de mise en page pour segmenter plusieurs points de données en une structure tabulaire. Cette solution proposée, réduit considérablement les heures de travaux manuelles consacrées à l'identification et à la capture des informations requises en automatisant le processus d'extraction des variables financières pour près de 70 000 PDF par an en temps quasi réel. Il comprend également le développement d'un système de gestion des métadonnées robuste qui indexe près de 150 variables pour chaque document financier ainsi qu'une application web qui permet aux utilisateurs d'interagir avec les données extraites. Consultez le récent article du Réseau de la science des données sur Intelligence documentaire : l'art de l'extraction d'information à partir des PDF.

Assistant d'affaires, agent conversationnel d'Innovation, Sciences et Développement économique Canada (ISDE)

L'assistant d'affaires d'Innovation, sciences et développement économique Canada
Description - L'assistant d'affaires d'ISDE

L'assistant d'affaires d'Innovation, sciences et développement économique Canada. Le texte dans l'image : Bonjour ! Je suis l'assistant d'affaires, votre nouveau robot conversationnel d'Innovation, sciences et développement économique Canada (ISDE). Je suis programmé pour répondre à vos questions sur la propriété intellectuelle et d'autres services offerts par ISDE. Comment puis-je vous aider ?

ISDE a commencé à mettre en œuvre la technologie de l'assistant virtuel en 2019 avec un produit appelé agent Conversationnel. L'assistant virtuel est un canal de communication que les Canadiens peuvent actuellement exploiter lorsqu'ils atterrissent sur les pages web et l'application mobile de l'ISDE. L'Office de la propriété intellectuelle du Canada (OPIC), Corporations Canada (CC) et le Secteur des Communications Stratégiques et du Marketing (SCSM) et l'appli Entreprises Canada utilisent un agent conversationnel sur le web et sur les plate-formes mobiles pour aider à réduire les appels vers les centres d'appels et offrir un service amélioré lorsqu'ils fournissent des informations aux Canadiens qui visitent leurs sites web ou leurs applications. L'agent actuel est construit sur une architecture Microsoft tirant parti de Microsoft Azure et de l'IA de compréhension du langage de Microsoft, LUIS. Une présentation similaire a été faite lors de l'atelier sur les agents conversationnels organisé par le Réseau de la science des données. Les présentateurs y expliquaient le contexte et l'objet de leur technologie d'assistant virtuel. Voir Conversation sur les agents conversationnels – Compte rendu de l'atelier sur les agents conversationnels.

Conclusion

Tout au long de l'année 2021, des personnes de différents ministères et organismes du gouvernement du Canada ont présenté diverses applications de techniques d'apprentissage automatique (AA) aux données textuelles. Nous avons couvert différentes étapes du pipeline des données, allant du prétraitement à la visualisation. Nos membres tirent profit de chacune des expériences et des leçons apprises par les autres et peuvent ensuite créer plus efficacement des produits d'AA.

En 2022, la Communauté de pratique (CdP) continuera d'être un centre qui permet aux fonctionnaires de faire connaître leur passion pour l'application des techniques d'AA dans le but de répondre à des problèmes opérationnels concrets. La CdP est menée par Statistique Canada et bénéficie de la participation active de tous les ministères de la fonction publique fédérale. Nous encourageons les présentations de tous les ministères et nous espérons continuer à couvrir le nombre croissant d'applications du TLN dans les ministères.

Pour obtenir plus de renseignements sur la CdP ou pour en devenir membre, veuillez communiquer avec la Communauté de pratique de l'apprentissage automatique appliqué à l'analyse de textes : statcan.appliedmltextcop-cdpaaappliquetexte.statcan@statcan.gc.ca. Les employés du gouvernement du Canada peuvent également faire partie de notre groupe GCExchange sur la Communauté de pratique (CdP) sur l'apprentissage automatique appliqué : Analyse de texte.

Date de modification :

Conversation sur les agents conversationnels – Compte rendu de l'atelier sur les agents conversationnels

Par Claudia Mokbel et Kathleen Carson, Statistique Canada

Le Réseau de la science des données (RSD) a été créé il y a plus d'un an dans le but d'instaurer un espace dynamique de collaboration pour les spécialistes de la science des données et les passionnés du domaine. Pour reprendre le pédagogue Steven Anderson : « Seuls, nous sommes intelligents. Ensemble, nous sommes géniaux. » Cet énoncé décrit parfaitement le principe sur lequel repose le RSD, car cela témoigne de la nécessité de collaborer au sein de la communauté de la science des données afin de repousser constamment les limites.

C'est dans cette optique que le RSD a organisé l'atelier sur les agents conversationnels et a invité les participants à discuter de tous les aspects liés à la mise en œuvre d'agents conversationnels, y compris des participants qui songeaient à se doter d'un tel agent, mais qui ne savaient pas trop par où commencer. L'atelier a entre autres servi à exposer les différentes étapes du processus de mise en œuvre des agents conversationnels et a permis aux participants d'établir des contacts en prévision du moment où ils seront prêts à amorcer le processus de mise en œuvre d'agents conversationnels.

« La science des données est en quelque sorte un sport d'équipe, et je me plais à penser que le Réseau de la science des données constitue le stade où les gens peuvent mettre en commun l'expérience acquise dans le cadre de l'élaboration d'outils opérationnels qui permettent de résoudre des problèmes organisationnels concrets », a mentionné Eric Rancourt, directeur général de la Direction des méthodes statistiques modernes et de la science des données à Statistique Canada. « À titre de chef de file de confiance en matière de science des données, Statistique Canada est fier d'animer de tels événements afin qu'il soit possible de mettre à profit les connaissances collectives portant sur les initiatives nouvelles et novatrices en matière de science des données. »

« C'est l'un des principaux objectifs du Réseau de la science des données : créer un espace dynamique qui nous permet d'établir des liens et de collaborer avec des pairs », ajoute Sevgui Erman, directrice de la Division de la science des données à Statistique Canada. « De cette manière, nous pouvons apprendre et acquérir ensemble des connaissances et des compétences qui aident notre communauté à s'épanouir. L'atelier sur les agents conversationnels a constitué un excellent outil pour continuer de progresser en vue de l'atteinte de cet objectif. »

Au cas où vous l'auriez manqué…

L'atelier sur les agents conversationnels, qui s'est tenu le 6 décembre 2021, a porté notamment sur différents projets axés sur des avancées technologiques en matière d'intelligence artificielle (IA) pour aider les utilisateurs à interagir avec des services ou des applications Web. En tout, 255 personnes ont participé à l'événement, dont des représentants du secteur privé, du secteur public et du milieu universitaire; il y avait même des participants qui venaient d'Europe.

L'atelier a débuté par un mot de bienvenue de Sevgui Erman et d'Eric Rancourt. Le maître de cérémonie était Jeremy Solomon, chef du Réseau et de la stratégie de la science des données à Statistique Canada, qui est également responsable du bulletin mensuel du Réseau de la science des données Méli-mélo de la science des données.

Vous trouverez les présentations sur les agents conversationnels faites par les six ministères et organismes fédéraux participants, dans les deux langues officielles, en visitant la page des présentations de l'atelier les agents conversationnels de GCWiki.

Dans la première présentation, John Nephin, de Services partagés Canada (SPC), propose une démonstration des services d'agent conversationnel Azure de son organisme et de l'architecture sous-jacente. Également, il décrit le cadre et les services entourant la logique des agents numériques, l'expérience utilisateur, l'aspect de la cognition, l'ingestion de données, et plus encore.

La deuxième présentation a été faite par Charith Gunasekara, ingénieur agréé travaillant au ministère de la Défense nationale. Cette présentation était axée sur la création, à partir de technologies de sources ouvertes, d'un agent conversationnel apte à répondre aux questions.

Mary Griffin et Fraydon Karimi d'Innovation, Sciences et Développement économique Canada ont présenté l'assise technologique de l'assistant virtuel de leur ministère. Ils ont exposé le contexte et l'objectif entourant la mise en œuvre de leur agent conversationnel et ont donné un aperçu de l'architecture sur laquelle il repose.

Après une courte pause, la quatrième présentation, faite par Alexandre Istrate, de la Division de la science des données à Statistique Canada, a porté sur les progrès réalisés par sa division en vue d'élaborer une solution robuste d'agent conversationnel à temps pour l'essai comportemental du recensement prévu en 2024, ce qui aidera aussi Statistique Canada à se préparer pour le Recensement de 2026.

Alexei Lapouchnian, gestionnaire de l'Accélérateur numérique de Ressources naturelles Canada, a traité de l'incorporation des systèmes d'IA aux concepts organisationnels axés sur les assistants intelligents. Ce projet était fondé sur les résultats de recherches menées à l'Université de Toronto en partenariat avec une grande entreprise technologique. Le but du projet consistait à découvrir comment intégrer l'IA aux processus opérationnels (PO) d'entreprise et à augmenter le nombre de décisions prises dans le cadre de ces PO assistés par l'IA. La présentation décrit les problèmes actuels liés à l'adoption de l'IA dans les entreprises et propose des solutions envisageables.

Gias Uddin, du Bureau du surintendant des institutions financières, a fait la dernière présentation. Celle-ci portait sur la conception de trousses d'outils de traitement du langage naturel au sein de l'industrie et dans le domaine de la recherche, incluant les leçons apprises et les messages à retenir.

Prochaines étapes

Le RSD a pris de l'expansion au cours de la dernière année; il constitue désormais un carrefour central où convergent les praticiens de la science des données, les gestionnaires et toutes les personnes qui ont un intérêt pour le domaine, qu'ils viennent du secteur privé, du secteur public, du milieu universitaire ou d'ailleurs. Le plan est de continuer à bâtir le Réseau en fonction des besoins de ses membres. Consultez l'article Le bulletin d'information du Réseau de la science des données a un an pour en savoir plus.

Considérant les bons commentaires reçus au sujet de l'atelier sur les agents conversationnels, le RSD a déjà entamé des travaux pour organiser d'autres événements du même genre. L'équipe se consacre actuellement à la mise sur pied d'un atelier sur les carrefours de données, qui devrait avoir lieu au début de mars. Si vous souhaitez faire une présentation dans le cadre de cet atelier, communiquez avec nous : statcan.dsnfps-rsdfpf.statcan@statcan.gc.ca.

À titre de chef de file de confiance en matière de science des données, Statistique Canada continuera d'appuyer l'essor d'un robuste écosystème de la science des données grâce à des événements et à des ateliers ayant pour but d'établir des liens avec d'autres praticiens et gestionnaires de la science des données. Le RSD vous tiendra au courant des initiatives de collaboration, des projets et des ateliers futurs.

Date de modification :

Intelligence documentaire : l'art de l'extraction d'information à partir des PDF

Auteur : Anurag Bejju, Statistique Canada

Les documents PDF (Portable Document Format) sont l'un des formats de fichier les plus populaires et les plus utilisés. Tandis que le monde évolue rapidement vers une économie numérique, les PDF sont devenus une solution écologique au papier, permettant aux créateurs de diffuser, d'imprimer et de visualiser facilement un fichier dans sa mise en page prévue sur de multiples plateformes. Ils contiennent une foule de renseignements importants pour les organisations, les entreprises et les institutions, dans un format qui reflète le papier qu'ils ont remplacé.

Bien que les PDF constituent un moyen fiable de formater et de stocker des données, il n'est pas toujours facile d'en extraire les données. Statistique Canada a tiré parti de la puissance des technologies d'intelligence artificielle responsables et de l'application de solutions de science des données pour rechercher et élaborer des solutions permettant d'extraire de précieux renseignements de sources non structurées comme les PDF et les images numérisées. L'application de ces solutions permet de réduire les coûts et garantit que les renseignements sont fournis aux Canadiens de manière plus opportune, plus précise et plus sécurisée. En obtenant, puis en extrayant des données à partir de documents PDF, nous pouvons concevoir des moyens de générer des statistiques significatives de haute qualité en temps opportun. Cela permet de gagner un temps considérable dans la saisie des données et permet aux chercheurs de consacrer leur temps à des analyses plus importantes.

Qu'est-ce que l'intelligence documentaire?

Travailler avec des documents non structurés est complexe et peut entraîner un gaspillage de ressources précieuses. De nombreux services financiers, organismes gouvernementaux et autres grandes entreprises travaillent avec des documents imprimés et électroniques qui doivent être transformés et stockés dans un format de données consultable et interrogeable (p. ex. JSON ou CSV). Le processus d'extraction et de transformation des données à partir des PDF est souvent effectué manuellement et peut demander beaucoup de ressources, car les membres doivent copier des parties de renseignements pertinents et les formater dans une structure tabulaire. Ce processus peut être lourd, entraîner des erreurs et provoquer des retards. Même avec de multiples ressources pour la récupération des données, il faut parfois des jours ou des semaines pour obtenir des renseignements concrets.

En réponse à ces défis, les entreprises technologiques créent des outils d'automatisation qui permettent de saisir, d'extraire et de traiter les données à partir de divers formats de documents. Les technologies d'intelligence artificielle, telles que le traitement automatique du langage naturel, la vision par ordinateur, l'apprentissage profond et l'apprentissage automatique, créent des solutions en libre accès qui transforment les renseignements non structurés et semi-structurés en données exploitables. Ces technologies d'intelligence documentaire sont appelées traitement intelligent des documents.

Quels sont les avantages du traitement intelligent des documents?

Le traitement intelligent des documents présente six avantages essentiels :

  1. Temps : Il faut moins de temps pour traiter et créer des sources de données structurées.
  2. Argent : Il permet de réaliser des économies en réduisant le travail d'extraction manuelle.
  3. Efficacité : Il supprime les tâches répétitives en milieu de travail et accroît la productivité.
  4. Fiabilité : Il augmente la précision des renseignements extraits et réduit les erreurs humaines.
  5. Évolutivité : Il offre la possibilité de faire évoluer un grand volume de documents à un coût relativement faible.
  6. Polyvalence : Il traite les documents structurés, semi-structurés et non structurés dans la plupart des formats.

Types de documents PDF

Les trois types de documents PDF les plus courants sont les suivants :

  1. PDF structurés : La mise en page et la structure sous-jacentes de ces documents restent fixes dans l'ensemble des données. En créant des segments, puis en leur apposant des étiquettes appropriées, on construit des pipelines d'automatisation pour extraire et structurer les valeurs dans un format tabulaire. Ces modèles peuvent être reproduits pour des formulaires présentant des dispositions similaires.
  2. PDF textuels non structurés : Si vous pouvez cliquer et glisser pour sélectionner du texte dans une visionneuse PDF, votre document PDF est un document textuel. Extraire du texte libre de ces documents peut être assez simple, mais le faire en tenant compte de la mise en page ou du contexte peut être extrêmement difficile. La base de données Système électronique de données, d'analyse et de recherche (SEDAR) utilisée par Statistique Canada (qui sera expliquée plus en détail plus bas dans l'article) contient des millions de PDF textuels non structurés qui nécessitent des techniques avancées de traitement intelligent des documents afin de créer des ensembles de données structurés.
  3. PDF non structurés numérisés : Les documents PDF numérisés contiennent des renseignements de formes et de tailles multiples. Des étapes supplémentaires permettent de localiser les composants du texte et d'effectuer une reconnaissance optique des caractères pour extraire le texte. Une fois que le PDF est converti en texte et que l'emplacement du texte est spécifié, vous pouvez déployer des méthodes semblables à celles utilisées pour les PDF textuels pour extraire des renseignements. Les dernières recherches dans ce domaine seront abordées dans les prochains articles de cette série.

Bibliothèques de source libre disponibles pour l'extraction de PDF

Progiciel 1 : PyPDF2

PyPDF2 (le contenu de cette page est en anglais) est une boîte à outils PDF entièrement en langage Python provenant du projet PyPDF. Elle peut extraire des données de fichiers PDF ou manipuler des fichiers PDF existants pour produire un nouveau fichier. Cela permet au développeur de recueillir, diviser, transformer et fusionner des PDF ainsi que d'extraire les métadonnées associées au PDF. Comme le montre l'image, la précision de l'extraction du texte est inférieure à celle des autres logiciels, et vous ne pouvez pas extraire d'images, de cadres de délimitation, de graphiques ou d'autres supports de ces documents. Il s'agit d'un bon outil si le seul objectif est d'extraire du texte libre indépendamment de sa mise en page.

Extrait de code


import PyPDF2

with open(pdf_path, "rb") as f:
    reader = PyPDF2.PdfFileReader(f)
    page = reader.getPage(1)
    output = page.extractText()
	

Exemple de PDF

Progiciel 1 : PyPDF2 - Exemple de PDF

Sorties

Progiciel 1 : PyPDF2 - Sorties
Description - PyPDF2 Exemple de PDF et Sorties

Une image d'un exemple de PDF avec une structure tabulaire composée d'une en-tête, d'un sous-titre, de rubriques et d'une colonne de notes à droite. La boîte de sortie affichant l'extraction du texte a le bon texte, mais elle est indépendante de la mise en page originale ou des détails délimitant les sous-titres et le texte normal.

Progiciel 2 : PyMuPDF

PyMuPDF (le contenu de cette page est en anglais) est une liaison Python pour MuPDF, soit une visionneuse, un moteur de rendu et une boîte à outils légers pour les documents PDF, les fichiers XPS et les livres numériques, qui est développée et mise à jour par Artifex Software inc. Il permet au développeur d'obtenir des fonctionnalités beaucoup plus avancées basées sur la mise en page, avec une capacité de rendu et une vitesse de traitement élevée. Les programmeurs ont accès à de nombreuses fonctions importantes de MuPDF à partir d'un environnement Python. Comme PDFMiner (décrit sous Progiciel 3), ce progiciel ne fournit que des renseignements sur la mise en page, et le développeur doit construire des processus pour les structurer et les formater.

Extrait de code


import fitz
import pandas as pd

doc = fitz.open(good_pdf_path)
page = doc[4]
_, _, p_width, p_height = page.MediaBox
text = page.getText("blocks")
output = pd.DataFrame(text, columns=["block_xMin", "block_yMin", "block_xMax", "block_yMax", "block_text", "block_id", "page" ])

Exemple de PDF

Progiciel 2 : PyMuPDF - Exemple de PDF

Sorties

Progiciel 2 : PyMuPDF - Sorties
Description - PyMuPDF Exemple de PDF et Sorties

Une image d'un exemple de PDF avec une structure tabulaire composée d'une en-tête, d'un sous-titre, de rubriques et d'une colonne de date à droite. La boîte de sortie montrant l'extraction des données a la bonne mise en page, mais le texte est constitué de formules prêtes à être formatées par l'utilisateur.

Progiciel 3 : PDFMiner

Le progiciel PDFMiner (le contenu de cette page est en anglais) vous permet d'analyser tous les objets d'un document PDF en objets Python et d'analyser, de regrouper et d'extraire du texte ou des images de manière lisible par un humain. Il prend également en charge des langues comme le chinois, le japonais et le coréen ainsi que l'écriture verticale. Comme le montre l'image, vous pouvez obtenir des renseignements tels que le cadre de délimitation exact de chaque élément de texte sous forme de chaîne, ainsi que d'autres renseignements sur la mise en page (polices, etc.). Bien que ce progiciel puisse être excellent pour localiser des éléments dans le document, le développeur doit construire des processus pour le structurer et le formater.

Extrait de code


from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBox, LTTextLine, LTFigure
import pandas as pd
output = []
def parse_layout(layout):
    """Function to recursively parse the layout tree."""

    for lt_obj in layout:

        if isinstance(lt_obj, LTTextBox) or isinstance(lt_obj, LTTextLine):
            output.append([lt_obj.__class__.__name__, lt_obj.bbox, lt_obj.get_text()])
        elif isinstance(lt_obj, LTFigure):
            parse_layout(lt_obj)  # Recursive

with open(pdf_path, "rb") as f:
    parser = PDFParser(f)
    doc = PDFDocument(parser)
    page = list(PDFPage.create_pages(doc))[1]  # Page Number
    rsrcmgr = PDFResourceManager()
    device = PDFPageAggregator(rsrcmgr, laparams=LAParams())
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    interpreter.process_page(page)
    layout = device.get_result()
    _, _, width, height = page.mediabox
    parse_layout(layout)

output = pd.DataFrame(output, columns=["bbox_type", "coords", "token"])
output[["word_xMin", "word_yMin", "word_xMax", "word_yMax"]] =  output["coords"].to_list()

Exemple de PDF

Progiciel 3 : PDFMiner - Exemple de PDF

Sorties

Progiciel 3 : PDFMiner - Sorties
Description - PDFMiner Exemple de PDF et Sorties

Une image d'un exemple de PDF avec une structure tabulaire composée d'une en-tête, d'un sous-titre, de rubriques et de colonnes de date à droite. La boîte de sortie montrant l'extraction des données a un texte et une mise en page similaires, avec le cadre de délimitation exact pour chaque élément de texte sous forme de chaîne, ainsi que la police et d'autres renseignements de mise en page. L'utilisateur doit tout de même créer des processus déterminant la structure pour remplir le tableau.

Progiciel 4 : Tabula-py

Tabula-py (le contenu de cette page est en anglais) est une simple enveloppe Python de tabula-java, qui peut lire un tableau à partir de PDF et le convertir en format DataFrame de pandas. Il vous permet également de le convertir en fichier CSV, TSV et JSON et d'utiliser des fonctionnalités avancées comme la grille, qui fonctionne bien pour les lignes séparant les cellules du tableau. Il peut être difficile d'extraire et de détecter correctement le contenu des tableaux pour les PDF plus complexes.

Extrait de code


import tabula
import pandas as pd

output = tabula.read_pdf(pdf_path, lattice=False, pages=4)[0]

Exemple de PDF

Progiciel 4 : Tabula-py - Exemple de PDF

Sorties

Progiciel 4 : Tabula-py - Sorties
Description - Tabula-py Exemple de PDF et Sorties

Une image d'un exemple de PDF avec une structure tabulaire composée d'une en-tête, d'un sous-titre, de rubriques et de colonnes de date à droite. La boîte de sortie montrant l'extraction des données a une mise en page similaire, avec le cadre de délimitation exact pour chaque élément de texte sous forme de chaîne, ainsi que la police et d'autres renseignements de mise en page.

Progiciel 5 : Camelot

Tout comme Tabula-py, Camelot (le contenu de cette page est en anglais) est également une bibliothèque Python qui peut vous aider à extraire les tableaux des documents PDF. Il s'agit du progiciel le plus efficace et le plus avancé, qui vous permet de contrôler le processus d'extraction des tableaux. Il fournit également des mesures de précision et d'espacement des blancs pour le contrôle de la qualité, ainsi que des méthodes de segmentation des pages pour améliorer l'extraction.

Extrait de code


import camelot
tables = camelot.read_pdf(good_pdf_path)
output = tables[0].df

Exemple de PDF

Progiciel 5 : Camelot - Exemple de PDF

Sorties

Progiciel 5 : Camelot - Sorties
Description - Camelot Exemple de PDF et Sorties

Une image d'un exemple de PDF avec une structure tabulaire composée d'une en-tête, d'un sous-titre, de rubriques et de colonnes de date à droite. La boîte de sortie montrant l'extraction des données a une mise en page similaire du texte, avec le cadre de délimitation exact pour chaque élément de texte sous forme de chaîne.

Utilisation du traitement intelligent des documents dans le projet SEDAR

Statistique Canada a acquis l'ensemble de données historiques du système de classement SEDAR. Les spécialistes des données disposent ainsi d'une source de données de rechange qui leur permet d'obtenir des renseignements précieux et de fournir des renseignements en temps opportun. SEDAR est un système utilisé par les sociétés canadiennes cotées en bourse pour déposer des documents relatifs aux valeurs mobilières (tels que des états financiers, des rapports annuels et des notices annuelles) auprès de diverses commissions canadiennes des valeurs mobilières. Les employés de Statistique Canada utilisent la base de données SEDAR pour la recherche, la confrontation des données, la validation, le processus de mise à jour de la base de sondage, et plus encore. Toutefois, l'extraction de données à partir des documents relatifs aux titres publics se fait manuellement et prend beaucoup de temps.

Pour gagner en efficacité, l'équipe des sciences des données a mis au point un pipeline d'intelligence documentaire basé sur l'intelligence artificielle qui détermine et extrait correctement les variables financières clés des bons tableaux d'un document PDF. Cela a permis de transformer une grande quantité de documents publics non structurés provenant de SEDAR en ensembles de données structurées. Cette transformation permet l'automatisation et l'extraction de renseignements économiques relatifs aux entreprises canadiennes.

La première partie du processus d'automatisation consiste à déterminer les pages requises dans le document PDF, ce qui est fait à l'aide d'une méthodologie élaborée à Statistique Canada. Une sous-section du document comprenant une forte densité de tableaux est d'abord établie. Cette sous-section de pages est ensuite traitée afin d'extraire les caractéristiques principales, qui sont utilisées par un modèle de classification par apprentissage automatique formé pour déterminer les bonnes pages. La deuxième partie du processus d'automatisation porte sur l'extraction des tableaux. Les pages déterminées à la première étape servent d'entrée pour un algorithme d'extraction de tableaux élaboré à l'interne appelé algorithme Spatial Layout based Information and Content Extraction (SLICE)(le contenu de cette page est en anglais), qui extrait tous les renseignements dans un tableau en format numérique. Les données sont présentées dans une application Web interactive et peuvent être téléchargées en format CSV.

Ce processus robuste automatise le processus d'extraction des variables financières pour un maximum de 70 000 PDF par an en quasi temps réel. Cela permet de réduire considérablement le nombre d'heures passées à déceler et à saisir manuellement les renseignements requis et de réduire la redondance des données.

Souhaitez-vous en savoir plus sur l'intelligence documentaire?

Les outils à code source ouvert fonctionnent pour les processus simples d'extraction de PDF, mais ne sont pas adaptés aux sources complexes, non structurées et variables de documents PDF. Dans les prochains articles, nous aborderons les dernières recherches en matière d'apprentissage automatique et d'intelligence artificielle dans le domaine de l'intelligence documentaire. Nous parlerons encore également de SLICE, le nouvel algorithme de vision par ordinateur conçu et développé par Statistique Canada que nous avons mentionné auparavant. Cet algorithme a la capacité d'utiliser simultanément des renseignements textuels, visuels et de mise en page pour segmenter plusieurs points de données dans une structure tabulaire. Cette solution modulaire fonctionne avec des tableaux non structurés et effectue l'extraction de variables financières à partir d'une variété de documents PDF.

Date de modification :

Créer des visualisations de données convaincantes

Par : Alden Chen, Statistique Canada

Introduction

La visualisation des données est un élément clé de nombreux projets de science des données. Pour certains intervenants, notamment les spécialistes du domaine et les cadres qui ne sont pas nécessairement des experts techniques, il s'agit de la principale voie par laquelle ils voient, comprennent et interagissent avec les projets de données. Par conséquent, il est important que les visualisations communiquent des renseignements aussi clairement que possible. Trop souvent, les visualisations sont entravées par certains défauts courants qui les rendent difficiles à interpréter ou, pire encore, sont trompeuses. Cet article passe en revue trois pièges courants de la visualisation que les communicateurs de données et les consommateurs de données devraient comprendre, ainsi que quelques suggestions pratiques pour les contourner.

Distorsion et perception

La qualité la plus importante d'une visualisation efficace est qu'elle représente fidèlement les données sous-jacentes. Il y a distorsion lorsque les données présentées ne peuvent être perçues avec précision. Le degré de distorsion de la visualisation est directement lié à la facilité de perception de l'information présentée. Lors de la conception de visualisations, il est important de se souvenir que des encodages visuels différents sont perçus différemment, ce qui peut mener à des résultats déformés et mal interprétés.

En 1957, le psychologue Stanley Smith Stevens, dans son ouvrage intitulé On the psychophysical law (le contenu de cette page est en anglais) a démontré l'existence d'une relation empirique, généralement non linéaire, entre l'ampleur physique et l'ampleur perçue d'un certain stimulus. Il a dégagé une relation de la formule ψ(I)=kIa, où I représente l'intensité physique du stimulus et ψ(I) représente la sensation perçue (Stevens, 1957). La variable la plus importante ici est a, l'exposant qui relie la perception du stimulus à la magnitude physique réelle du stimulus (k est une constante de proportionnalité pour adapter les unités). Notre perception varie en fonction de la manière dont les données sont encodées. Lors de l'expérience d'un codage avec a inférieur à un, l'ampleur du stimulus a tendance à être sous-estimée. Lors de l'expérience d'un codage avec a supérieur à un, l'ampleur du stimulus a tendance à être surestimée.

Figure 1 : La loi de puissance de Stevens

Figure 1 : La loi de puissance de Stevens
Description - Figure 1

Un graphique illustrant la loi de puissance de Stevens (1957). Le graphique montre comment six codages différents sont perçus avec l'intensité physique sur l'axe du x et la sensation perçue sur l'axe du y. Les formes variées des courbes illustrent la façon dont les différents codages sont perçus. La longueur est l'encodage le plus précis et est tracée le long de la ligne à 45 degrés. Les courbes représentant l'activité électrique et la saturation des couleurs, des codages qui tendent à exagérer les effets dans les données, se situent principalement au-dessus de la ligne de 45 degrés. Les trois autres codages indiqués – zone, profondeur et luminosité – ont tendance à sous-estimer l'effet réel et ils sont affichés sous la ligne de 45 degrés.

Aujourd'hui, cette relation connue sous le nom de la loi de puissance de Stevens est l'un des résultats les plus connus de la psychophysique et il est important de la comprendre pour la visualisation des données. La figure 1 illustre certains des encodages visuels testés par Stevens, ainsi que l'activité électrique à titre de référence. Certains codages, comme la saturation des couleurs, mènent à une surestimation de l'effet, tandis que d'autres codages, comme la zone, mènent à une sous-estimation de l'effet réel. Lorsque l'on utilise ces codages pour représenter des données, l'incapacité à percevoir les véritables données ou effets mènent à une distorsion. Il faut noter que si la capacité à percevoir la plupart des codages est non linéaire, la capacité à percevoir la longueur est linéaire.

Prenons l'exemple suivant, qui code les mêmes données en utilisant la zone et la longueur. Il est beaucoup plus difficile de discerner à quel point 96 est supérieur à 32 en regardant les cercles de la figure 2 qu'en regardant le diagramme à barres de la figure 3. De plus, il est presque indiscernable que l'aire du cercle 100 est plus grande que l'aire du cercle 96, alors qu'il est clair que 100 est plus grand que 96 quand on regarde la longueur des barres. La différence entre 100 et 96 est déformée lors de l'encodage de l'information en utilisant la zone.

Figure 2 : Graphique à cercles

Figure 2 : Graphique à cercles
Description - Figure 2

Un exemple d'un graphique montrant trois cercles. Un petit cercle avec le chiffre 32, un cercle plus grand avec le chiffre 96 et un cercle légèrement plus grand avec le chiffre 100.

Figure 3 : Graphique à barres

Figure 3 : Graphique à barres
Description - Figure 3

Un exemple d'un graphique montrant trois barres qui diminuent en longueur : 100, 96, et 32.

Les deux graphiques codent les mêmes données. Le premier graphique utilise la surface de chaque cercle pour coder les données, tandis que le second graphique utilise la longueur de chaque barre. Deux des cercles ont une surface presque indiscernable, alors qu'il est clair que les deux barres correspondantes sont de longueur différente.

Les visualisations de données utilisent souvent des encodages qui déforment les données, comme les cartes thermiques (saturation des couleurs, a = 1.7) et les diagrammes circulaires (surface, a = 0.7). Il est important de reconnaître les distorsions et d'examiner les chiffres réels qui sous-tendent la visualisation avant de porter des jugements hâtifs. Lorsque vous réalisez des visualisations et choisissez des encodages visuels, il est utile de comprendre la théorie de la perception visuelle. Ce sont souvent les visuels les plus simples qui sont les plus efficaces. Prenons le classement des encodages visuels du tableau 1 comme point de départ (Mackinlay, 1986). Mackinlay a formulé des recommandations sur l'encodage des différents types de données : données quantitatives, ordinales et nominales. L'efficacité des codages dépend du type de données. Par exemple, la couleur n'est pas un codage efficace pour les données quantitatives; en revanche, elle est très efficace pour les données nominales. Il est bon de coder les renseignements les plus importants en utilisant le codage le plus efficace et le moins déformé.

Tableau 1 : Le classement d'encodages visuels de Mackinlay pour différents types de données, classés du plus efficace au moins efficace.

Tableau 1 : Le classement d'encodages visuels de Mackinlay pour différents types de données, classés du plus efficace au moins efficace.
Données quantitatives Données ordinales Données nominales
Position Position Position
Longueur Densité Nuance des couleurs
Angle Saturation des couleurs Texture
Pente Nuance des couleurs Connexion
Zone Texture Contour
Volume Connexion Densité
Densité Contour Saturation des couleurs
Saturation des couleurs Longueur Forme
Nuance des couleurs Angle Longueur
Texture Pente Angle
Connexion Zone Pente
Contour Volume Zone
Forme Forme Volume

Occlusion et surreprésentation

L'occlusion dans la visualisation des données se produit lorsque deux points de données se chevauchent, partiellement ou entièrement. Par exemple, deux points peuvent être directement superposés, ce qui ne permet pas au lecteur de savoir qu'il y a en fait plusieurs points de données. Par conséquent, il devient difficile de voir toute l'étendue des données présentées, et l'effet des points occultés ne peut être vu.

La surreprésentation, c'est-à-dire l'affichage de trop de données, est une cause fréquente d'occlusion. Cela peut se produire dans le but d'afficher le plus de données possible afin de donner au public une image entière. Prenons les figures 4 à 7, qui illustrent l'occlusion causée par la surreprésentation et présentent quelques solutions potentielles. Chacun de ces graphiques affiche le même ensemble de 10 000 points. Dans la figure 4, la répartition des points ne peut pas vraiment être vue à cause de l'occlusion. Il y a tellement de points qui se chevauchent que tout ce que l'on peut voir est une grande masse de points couvrant presque tout le quadrant inférieur gauche du graphique. Les graphiques suivants montrent quelques options possibles pour aider à réduire l'occlusion.

Les points de la figure 5 sont légèrement plus petits et plus transparents. En modifiant la transparence (souvent représentée par α) le public peut mieux voir la répartition et les points occultés, bien que de nombreux points soient encore occultés près de l'origine.

Dans la figure 6, aucun point n'est représenté. Il y a plutôt un tracé de contours montrant la distribution des points, où les points sont fortement concentrés autour d'une petite région près de l'origine. Souvent, lorsqu'on traite de grands ensembles de données, tels que ceux générés par les simulations, les points spécifiques ne sont pas particulièrement intéressants; c'est plutôt le modèle général qui est important, et qui est saisi clairement par le tracé de contours.

Figure 4 : Nuage de points 1

Figure 4 : Nuage de points 1
Description - Figure 4

Un exemple d'un nuage de 10 000 points avec une grande masse de points dans le quadrant inférieur gauche du graphique. De nombreux points se chevauchent, ce qui rend difficile la visualisation de la distribution.

Figure 5 : Nuage de points 2

Figure 5 : Nuage de points 2
Description - Figure 5

Un exemple d'un nuage de 10 000 points avec des points plus petits et plus transparents pour réduire l'occlusion. Il y a toujours une masse de points dans le quadrant inférieur gauche, mais il est plus évident que les points sont plus concentrés autour de l'origine.

Figure 6 : Tracé de contours

Figure 6 : Tracé de contours
Description - Figure 6

Un exemple d'un tracé de contours montrant que de nombreux points de données sont concentrés près de l'origine, dans le quadrant inférieur gauche.

Figure 7 : Histogramme en 3D

Figure 7 : Histogramme en 3D
Description - Figure 7

Un exemple d'un histogramme en 3D du même ensemble de points. Les barres plus hautes près de l'origine montrent la distribution un peu plus clairement; cependant, les barres plus hautes occultent les barres plus courtes.

La figure 7 montre un histogramme tridimensionnel. Les créateurs de visualisations qui souhaitent afficher un grand nombre de données peuvent être tentés d'ajouter un axe supplémentaire à une visualisation 3D, mais les graphiques en 3D rendent rarement la visualisation plus claire, car ils provoquent eux-mêmes une occlusion. Dans la figure 7, la nature tridimensionnelle du tracé signifie que les barres les plus hautes occultent les barres les plus courtes et que les barres à l'avant occultent les barres à l'arrière. Ainsi, si l'utilisation de la 3D peut réduire la surreprésentation, elle ne résout pas le problème de l'occlusion, et le public ne peut toujours pas voir l'ensemble des données. Les graphiques en 3D donnent presque toujours lieu à des occlusions, et la gestion des occlusions dans la visualisation 3D est un domaine de recherche assez actif en infographie. (Voir Trapp et coll., 2019; Wang et coll., 2019.)

En résumé, s'il est généralement judicieux de montrer aux lecteurs les données réelles, la représentation graphique excessive est contre-productive. L'occlusion causée par la surreprésentation peut parfois cacher la tendance principale des données. L'adaptation de certains éléments visuels, tels que la taille et la transparence des points, peut aider, mais il est également important de se demander si le tracé de tous les points de données individuels est nécessaire pour l'analyse présentée.

Redondance et encombrement

Pour mieux délimiter les différences dans les données, vous pouvez choisir de coder certaines valeurs de manière redondante en utilisant plusieurs caractéristiques; cette pratique est appelée codage redondant. Par exemple, vous pouvez choisir de distinguer deux classes en utilisant à la fois la couleur et la forme, par exemple des triangles orange et des carrés bleus, dans un nuage de points. Les codages redondants sont largement utilisés et sont censés améliorer la clarté des visualisations. En fait, plusieurs logiciels utilisent des encodages redondants par défaut pour certains visuels; le soutien empirique de cette pratique est cependant mitigé (Nothelfer et coll., 2017; Chun, 2017).

Il est important de se souvenir que les codages redondants ont un défaut, c'est-à-dire qu'ils sont encombrants et ne sont pas toujours utiles. Prenons les figures 8 et 9. La figure 8 présente un diagramme à barres avec la même information (32, 96, 100) codée de quatre manières différentes. Les termes le long de l'axe du x (faible, moyen, élevé) codent déjà les données, bien que de manière grossière. Il y a ensuite la longueur des barres elles-mêmes, qui sont également accompagnées de chiffres indiquant explicitement la valeur. Enfin, il existe une échelle de couleurs discrète où la couleur des barres représente également la valeur. Il existe quatre indices visuels distincts qui codent tous la même information. Ce graphique à barres représente un environnement sans pollution visuelle; c'est un graphique simple avec seulement trois barres. Dans les environnements à faible niveau de distraction visuelle, la redondance se résume généralement à un encombrement. Comparons la figure 9, qui est sans codage de couleurs. On pourrait dire que la visualisation est rendue plus efficace par la suppression d'un codage inutile qui aurait pu distraire les lecteurs des données réelles.

Figure 8

Figure 8
Description - Figure 8

Un exemple d'un graphique en barres avec une échelle de couleurs discrète. Trois barres sous lesquelles nous voyons « faible, moyen, élevé ». La hauteur des barres représente les données, les barres sont quantifiées par la valeur des données, et les barres sont colorées selon la valeur en utilisant une échelle de couleurs discrète.

Figure 9

Figure 9
Description - Figure 9

Un exemple d'un graphique montrant les trois mêmes barres que la figure 8, mais sans le codage de couleurs et les mentions « faible, moyen, élevé ».

Comparons maintenant les figures 8 et 9 avec des environnements plus distrayants, comme le montrent les figures 10 à 12, qui présentent des données avec trois catégories qui ne sont pas clairement séparées. Dans des cas comme celui-ci, il existe des preuves empiriques que les encodages redondants aident à mieux segmenter les données, c'est-à-dire à distinguer les classes (Nothelfer et coll., 2017). Dans la figure 10, la catégorie est codée uniquement par la forme, dans la figure 11, la catégorie est codée uniquement par la couleur et dans la figure 12, la catégorie est codée de manière redondante en utilisant à la fois la forme et la couleur. Si l'on prend en considération uniquement la forme (figure 10), il est plus difficile de segmenter les catégories. Dans les figures 11 et 12, il est plus facile de dire qu'une catégorie a une variance plus faible que les autres catégories, qu'elle est étroitement groupée près de l'origine, et que la troisième catégorie est plus étalée. Dans un affichage distrayant comme celui-ci, le fait d'utiliser la redondance plutôt que l'encombrement, comme dans l'exemple précédent, peut en fait aider à réduire les distractions pour mieux délimiter les catégories. Cependant, les différentes catégories sont déjà assez clairement segmentées par la couleur. Cela tient probablement au fait que la couleur est un encodage plus efficace que la forme pour distinguer les groupes. L'encodage redondant peut ne pas apporter grand-chose dans ce cas, ce qui en fait un choix plus esthétique.

Figure 10

Figure 10
Description - Figure 10

Un exemple d'un nuage de points avec trois catégories dans un affichage distrayant codé par la forme uniquement (cercle, triangle, carré).

Figure 11

Figure 11
Description - Figure 11

Un exemple d'un nuage de points avec trois catégories dans un affichage distrayant codé par la couleur uniquement (vert, orange, bleu).

Figure 12

Figure 12
Description - Figure 12

Un exemple d'un nuage de points avec trois catégories dans un affichage distrayant codé de manière redondante par la couleur et la forme (cercle vert, triangle orange, carré bleu).

Il est important de tenir compte de la différence entre redondance et encombrement lors de la conception de visualisations. Dans le cas de visuels simples, il est peu probable que des codages redondants rendent le visuel plus clair, ils ne font que l'encombrer. Dans un affichage plus distrayant, certaines preuves empiriques laissent entendre que des encodages redondants peuvent aider; cependant, le choix d'un seul encodage très efficace peut également donner de bons résultats. La redondance dans un affichage distrayant ne fait probablement pas de mal et devient davantage un choix de style.

Conclusion

De bons visuels sont essentiels pour raconter l'histoire des données aussi efficacement que possible, et une visualisation efficace peut rendre les données plus faciles à comprendre pour un public plus large. Pour qu'une visualisation soit efficace, elle doit représenter fidèlement les données sous-jacentes. La visualisation des données pose fréquemment certains problèmes qui peuvent mener à des erreurs d'interprétation. Une certaine compréhension de la théorie de la perception visuelle peut aider les scientifiques des données à mieux concevoir et interpréter les visualisations de données afin de réduire la distorsion. L'affichage d'un trop grand nombre de données peut également être trompeur, car il peut entraîner une occlusion. Il faut envisager des modifications simples, comme la taille et la transparence, pour aider à réduire l'occlusion et se demander si le tracé de toutes les données est nécessaire aux fins de la visualisation. Enfin, il faut choisir la netteté plutôt que la redondance lorsque c'est possible. Les codages redondants n'apportent souvent pas beaucoup de valeur ajoutée et l'encombrement qu'ils créent peut nuire à l'histoire.

References

Chun, R. (2017). Redundant Encoding in Data Visualizations: Assessing Perceptual Accuracy and Speed. Visual Communication Quarterly (le contenu de cette page est en anglais), 24(3), 135-148.

Mackinlay, J. (1986). Automating the design of graphical presentation of relational information. ACM Transactionson Graphics (le contenu de cette page est en anglais), 5(2), 110-141.

Nothelfer, C., Gleicher, M.,& Franconeri, S. (2017). Redundant encoding strengthens segmentation and grouping in visual displays of data (le contenu de cette page est en anglais). Journal of Experimental Psychology: Human Perception and Performance, 43(9), 1667–1676.

Stevens, S. S. (1957). On the psychophysical law (le contenu de cette page est en anglais). Psychological Review, 64(3), 153–181.

Trapp, M., Dumke,F., & Döllner, J. (2019). Occlusion Management Techniques for the Visualization of Transportation Networks in Virtual 3D City Models (le contenu de cette page est en anglais). Proceedings of the 12th International Symposium on Visual Information Communication and Interaction

Wang, L., Zhao, H., Wang, Z., Wu, J.,Li, B., He, Z., & Popescu, V. (2019). Occlusion Management in VR: A Comparative Study (le contenu de cette page est en anglais). 2019 IEEE Conference on Virtual Reality and 3D User Interfaces (VR), 708-706.

Date de modification :

Mise en œuvre des pratiques MLOps avec Azure

Par : Jules Kuehn, Services partagés Canada

Les pratiques MLOps sont une variante des pratiques DevOps qui répondent à des préoccupations relatives à l'apprentissage automatique (AA). Tout comme le processus DevOps, le processus MLOps permet l'intégration et le déploiement continus (IC/DC) (le contenu de cette page est en anglais) de modèles d'apprentissage automatique (AA), mais automatise en outre le réentraînement sur de nouvelles données et effectue le suivi des résultats des différentes sessions d'entraînement (ou expériences).

Un problème courant avec les modèles d'AA est la baisse du rendement au fil du temps. C'est ce que l'on appelle une « dérive » (consultez le guide ultime du réentraînement de modèle (le contenu de cette page est en anglais) pour obtenir de plus amples renseignements sur la dérive). Imaginez un modèle d'AA prédisant si une maison à Ottawa se vendra au-dessus du prix demandé, selon les renseignements sur la maison et le prix d'inscription. Lorsque le modèle a été déployé il y a cinq ans, il a été en mesure de fournir cette prédiction avec 95 % d'exactitude. Toutefois, si le modèle n'était pas réentraîné avec des données mises à jour, ses prédictions ne refléteraient pas le marché du logement actuel d'Ottawa et seraient donc moins exactes. Pour résoudre ce problème, un système MLOps peut automatiquement réentraîner et redéployer des modèles, afin d'intégrer des données plus récentes et suivre le rendement du modèle au fil du temps.

L'équipe de la Science des données et de l'Intelligence artificielle de Services partagés Canada (SPC) a élaboré plusieurs modèles d'AA comme solutions de validation de principe aux problèmes opérationnels de SPC. Le point de départ du parcours du processus MLOps a été la collaboration de l'équipe avec Microsoft afin de développer une solution MLOps fonctionnelle entièrement au sein de l'écosystème Azure.

Le système MLOps comprend plusieurs composantes, comme le contrôle des sources, le suivi des expériences, les registres de modèles, les pipelines IC/DC, les API Azure ML, Docker et Kubernetes. L'utilisation de ce système permet à l'équipe de continuellement livrer des API REST pour les modèles d'AA les plus performants et de les mettre à disposition dans le nouveau magasin des API du gouvernement du Canada.

Élaboration d'un modèle

Pour accélérer la mise en œuvre, l'équipe a utilisé les fonctions SaaS (logiciel en tant que service) d'Azure pour exécuter la majorité des tâches. Cela comprenait le chargement des données avec Azure Data Factory, le développement de modèle dans les carnets Azure Databricks, le suivi expérimental et le déploiement de modèle avec Azure ML, ainsi que le contrôle des sources et l'IC/DC avec Azure DevOps.

Suivi des expériences et des modèles

Les carnets Databricks journalisent les mesures des sessions et enregistrent les modèles dans un espace de travail Azure ML à la fin d'une session entraînement (consultez les pages Journaliser et afficher les métriques et les fichiers journaux et Classe de modèle pour de plus amples détails). Cela est utile lorsque les sessions sont lancées manuellement pendant l'élaboration du modèle et lorsqu'elles sont exécutées comme une tâche au sein de pipelines IC/DC. Au cours de l'élaboration d'un modèle, il est possible de suivre les améliorations apportées aux mesures, comme l'exactitude, tout en ajustant les hyperparamètres. Dans le cas d'une session en tant que tâche de pipeline, il est alors possible de surveiller les changements apportés aux mesures lorsque de nouvelles données sont utilisées dans le cadre d'un réentraînement.

Contrôle des sources et intégration continue

Le répertoire de contrôle des sources pour ce modèle est composé de trois dossiers :

  1. Carnets : le code des carnets Databricks
  2. Pipelines : deux pipelines pour entraîner et déployer les modèles
  3. API : le code servant à envelopper le modèle entraîné dans une API REST.
Figure 1 – Structure générale du répertoire de contrôle des sources

Figure 1 – Structure générale du répertoire de contrôle des sources

Description - Figure 1

Arborescence du dépôt DevOps avec 3 dossiers de haut niveau. Le premier dossier est le Carnet de notes, qui est connecté via Databricks Git Sync à model_train.py. Le deuxième dossier est Pipelines, qui contient deux sous-dossiers, chacun contenant Pipeline YAML et des scripts Python. Ces sous-dossiers sont nommés "ci / train" et "deploy". Le troisième dossier de premier niveau est "API", qui contient score.py et un sous-dossier tests, qui contient des scripts PyTest.

Pipeline de demandes d'extraction de carnets

Même si la programmation littéraire à l'aide de carnets (p. ex. Jupyter) est une pratique courante en science des données, les environnements de carnets infonuagiques ne s'intègrent pas toujours efficacement au contrôle des sources. Le travail de plusieurs membres de l'équipe sur un projet peut entraîner une désorganisation des carnets. L'équipe a élaboré un déroulement des opérations qui intègre des pratiques exemplaires de gestion du contrôle des sources, comme les branches par fonctionnalité et les essais d'intégration dans des demandes d'extraction.

Figure 2 – Carnets de science des données

Figure 2 – Carnets de science des données

Description - Figure 2

Bureau désordonné recouvert de documents éparpillés sur sa surface, au sol et dans la corbeille à proximité. Les documents sont intitulés "Carnets de science des données".

Dans Databricks, tous les carnets se trouvant dans un dossier principal à emplacement fixe sont synchronisés pour suivre la branche principale dans un répertoire Git Azure DevOps. Avant de modifier le code de modèle, un membre de l'équipe crée une copie de ce dossier dans Databricks et une nouvelle branche correspondante dans DevOps, puis configure la synchronisation Git entre eux. Lorsque les modifications sont satisfaisantes, le membre de l'équipe consigne les carnets dans Databricks, puis crée une demande d'extraction dans DevOps.

Toute demande d'extraction comprenant des changements au code du carnet déclenche un pipeline d'intégration continue garantissant que les modifications aux carnets ne seront pas annulées. Cela commence par la copie des carnets de la branche par fonctionnalité dans un dossier d'essai d'intégration à emplacement fixe référencé par une tâche Databricks; cette tâche étant ensuite déclenchée par le pipeline au moyen de l'API Databricks.

Pour accélérer l'exécution de cet essai, un paramètre est transféré au carnet pour indiquer qu'il s'agit d'un essai et non d'une tâche d'entraînement complète. Le modèle est entraîné sur un échantillon de 5 % pour une époque, et le modèle résultant n'est pas enregistré.

Figure 3 – IC et pipelines d'entraînement avec Databricks

Figure 3 – IC et pipelines d'entraînement avec Databricks

Description - Figure 3

Diagramme des pipelines de IC et pipelines d'entraînement. Étape 1 : Copie de la source du carnet vers Databricks. Étape 2 : Début de l'entraînement du modèle dans Databricks.  Étape 3 : Attente de la « réussite » de Databricks.

Le pipeline continue de sonder Databricks jusqu'à ce que le travail soit terminé. Si l'exécution du carnet est réussie, la fusion vers la branche principale peut se poursuivre.

Déploiement de modèle

Puisque l'équipe de SPC prévoit livrer la plupart de ses modèles dans le magasin des API du gouvernement du Canada, elle souhaite passer des carnets aux applications API REST le plus rapidement et le plus efficacement possible.

Conteneurisation du modèle

Pour des applications simples, l'API d'Azure ML peut déployer un modèle enregistré en tant qu'application conteneurisée en utilisant quelques lignes de code à la fin d'un carnet. Toutefois, cette option ne répond pas à plusieurs exigences opérationnelles telles que l'échelonnage. Plus important encore, elle n'offre pas beaucoup de souplesse pour les intrants et les extrants des modèles avant et après le processus. Nous utilisons plutôt la fonction Model.package() à partir de la trousse de développement logiciel à partir de la trousse de développement logiciel (SDK) d'Azure ML pour créer une image Docker. L'image est ensuite déployée dans un espace Kubernetes antérieurement configuré, et le point de terminaison est enregistré dans le magasin des API du gouvernement du Canada.

Par défaut, la fonction extrait la dernière version enregistrée du modèle, mais peut également utiliser les journaux d'expériences afin de sélectionner dynamiquement un modèle en fonction de n'importe quelle mesure enregistrée dans le carnet (p. ex. pour minimiser les pertes).

Pipeline de déploiement

Figure 4 – Pipeline de déploiement

Figure 4 – Pipeline de déploiement

Description - Figure 4

Diagramme du pipeline de déploiement avec 3 étapes principales : Essai, Création et Déploiement. L'étape Essai exécute les tests de l'API PyTest et local_deploy_test.py, ce qui implique que Docker récupère un modèle dans le registre Azure ML. L'étape Création exécute build_push_image.py, qui implique également que Docker récupère un modèle dans le registre Azure ML, mais pousse également le conteneur Docker vers le registre Azure Container. L'étape Déploiement exécute l'application en ligne de commande kubectl, qui se connecte à Azure Kubernetes et récupère le conteneur dans Azure Container Registry.

Comme son nom l'indique, Azure DevOps ne se limite pas au contrôle des sources, mais peut également définir des pipelines permettant d'automatiser les tâches d'intégration et de développement continus. Les pipelines sont définis par les fichiers YAML et ont recours à des scripts Bash et Python.

Contrairement au pipeline de demande d'extraction de carnet, le pipeline de déploiement est déclenché par tout engagement envers la branche principale. Il comprend trois étapes :

  • Mise à l'essai du code : À l'aide de PyTest, effectuer l'essai unitaire de l'API à l'aide d'intrants corrects et incorrects. À titre d'essai d'intégration, déployer avec Model.deploy() le service Web localement sur la machine virtuelle du bassin d'agents et exécuter des essais semblables, mais dans un contexte HTTP.
  • Construction et enregistrement du conteneur Docker : Avec Model.package(), créer une image Docker en entrant un code API personnalisé. Enregistrer le conteneur dans un registre de conteneurs Azure.
  • Déploiement vers Kubernetes : Avec kubectl apply, se connecter au service Azure Kubernetes, se connecter au service Azure Kubernetes configuré précédemment. Transférer un fichier manifeste pointant vers la nouvelle image dans le registre des conteneurs.

Ce processus conserve les mêmes points de terminaison d'API au moyen de redéploiements et ne perturbe pas la livraison de l'application par l'entremise du magasin des API du gouvernement du Canada.

Pipeline de réentraînement de modèle

Le pipeline de réentraînement de modèle est semblable à celui de demande d'extraction, mais exécute une tâche Databricks différente qui pointe vers le carnet de la branche principale. Le carnet journalise les mesures de session et enregistre le nouveau modèle dans Azure ML, puis déclenche le pipeline de déploiement.

L'entraînement du modèle peut nécessiter beaucoup de ressources. L'exécution du carnet en tant que tâche Databricks offre la possibilité de sélectionner un espace de calcul de haute performance (y compris les processeurs graphiques (GPU)). Les espaces sont automatiquement désassociés à la fin de la session d'entraînement.

Plutôt que d'être déclenchées par un événement particulier, les sessions du pipeline peuvent également être planifiées (consultez la page relative à la configuration de calendriers de pipelines pour obtenir de plus amples détails). Bon nombre des modèles reposent sur les données du dépôt de données d'entreprise de SPC, de sorte que l'équipe peut planifier le pipeline de réentraînement de modèle pour suivre le cycle de mise à jour du dépôt. Le modèle déployé peut ainsi toujours reposer sur les données les plus récentes.

Conclusion

Pour fournir un déroulement des opérations reproductible pour le déploiement de modèles d'AA dans le magasin des API du gouvernement du Canada, SPC a intégré plusieurs offres de SaaS Azure afin de créer une solution MLOps fonctionnelle.

  • Azure DevOps : Répertoire de code source; pipelines d'IC/DC et de réentraînement;
  • Azure Databricks : Développement de modèles d'AA dans des carnets; synchronisé avec le répertoire Git DevOps;
  • Azure ML : Expériences de suivi et d'enregistrement de modèles; création d'images Docker;
  • Service Azure Kubernetes : Service pour conteneur; vers lequel pointe le magasin des API du gouvernement du Canada.

Enfin, il convient de souligner que cette approche ne constitue qu'une des nombreuses solutions possibles. Les API Azure ML sur lesquelles la trousse de développement logiciel est basée sont en cours de développement actif et font l'objet de changements fréquents. L'équipe continue d'explorer des options en source ouverte et autohébergées. Le parcours de MLOps est loin d'être terminé, mais il est déjà bien engagé!

Si vous avez des questions au sujet de cette mise en œuvre ou si vous souhaitez simplement discuter de l'apprentissage automatique, veuillez envoyer un courriel à l'équipe de la Science des données et de l'Intelligence artificielle de SPC : ssc.dsai-sdia.spc@canada.ca.

Date de modification :

Technologies liées à la protection de la vie privée partie deux : introduction au chiffrement homomorphe

par Zachary Zanussi, Statistique Canada

Avez-vous déjà souhaité qu'il soit possible d'accéder à des données pour effectuer une analyse tout en préservant leur confidentialité? Le chiffrement homomorphe est une technique émergente de protection de la vie privée présentant d'éventuelles applications qui permettent un plus grand accès, tout en maintenant les données chiffrées et sécurisées.

Le premier article de la série, Une brève enquête sur les technologies liées à la protection de la vie privée, a présenté les technologies liées à la protection de la vie privée (TPVP) et la façon dont elles peuvent permettre une analyse tout en protégeant la confidentialité des données. Le présent article élabore sur le sujet en examinant plus en détail l'une de ces techniques, le chiffrement homomorphique, notamment pour discuter de quoi il s'agit, son fonctionnement et ce qu'il peut faire pour vous.

Le présent article commence par un aperçu du chiffrement homomorphe et de certains cas d'utilisation courants. Il fournit une évaluation équilibrée des avantages et des inconvénients du chiffrement homomorphe. Il couvre ensuite certains détails plus techniques pour vous préparer à explorer ces techniques vous-mêmes. À l'issue de cet article, nous espérons que vous souhaiterez poursuivre cet apprentissage en choisissant une bibliothèque de chiffrements homomorphes et en créant vos propres circuits chiffrés.

Des groupes internationaux envisagent actuellement la normalisation du chiffrement homomorphe. Le gouvernement du Canada ne recommande pas d'utiliser le chiffrement homomorphe en pratique, ni toute technique cryptographique, avant sa normalisation par des experts. Même si le chiffrement homomorphe n'est pas encore prêt à être utilisé sur des données de nature délicate, c'est le moment idéal pour explorer ses fonctionnalités ainsi que d'éventuels cas d'utilisation. Un article ultérieur portera sur les activités de normalisation relatives au chiffrement homomorphe, notamment les délais et les procédés attendus.

Qu'est-ce que le chiffrement homomorphe?

Un procédé traditionnel de chiffrement associe du texte en clair lisible par une personne à des cryptogrammes masqués, afin de protéger les données de regards indiscrets. Une fois masqués, ces cryptogrammes sont inaltérables; la modification même d'un seul bit de texte chiffré peut créer un message en texte en clair méconnaissable après déchiffrage. Cela rend le chiffrement traditionnel relativement statique. En revanche, un procédé de chiffrement homomorphe est dynamique; dans le cas de deux textes chiffrés, vous pouvez effectuer des opérations sur les textes en clair sous-jacents. Une opération d'« ajout » homomorphe fournit, par exemple, un texte chiffré qui fournit la somme des deux messages d'origine en texte en clair après déchiffrage. Cela permet de déléguer le traitement informatique à une autre partie, de sorte qu'elle puisse manipuler les données sans y accéder directement.

Un protocole typique d'infonuagique comprend un client qui envoie ses données dans le nuage. Puisque les connexions Internet sont intrinsèquement peu sûres, ce transfert est facilité par une forme de protocole de sécurité des transferts faisant intervenir le chiffrement, comme HTTPS. À la réception, le nuage procède au déchiffrage et au traitement informatique. Pourtant, que faire si vous souhaitez que vos données demeurent secrètes dans le nuage? Grâce à un chiffrement par procédé homomorphe, non seulement les données sont protégées au cours du transfert, mais elles le sont également tout au long du processus de traitement informatique. À l'issue de ce dernier, le nuage retransmet les résultats chiffrés au client, qui peut les déchiffrer et consulter les résultats à sa guise.

Le terme « homomorphe » vient du grec et se traduit approximativement par de « forme similaire ». En mathématiques, un homomorphisme est une application entre une structure mathématique et une autre qui préserve les opérations de la première structure. Pour créer un procédé de chiffrement homomorphe, une carte de chiffrement brouillant suffisamment les données est nécessaire, de sorte que personne ne puisse savoir ce qu'elles sont, tout en protégeant simultanément la structure des données, afin que des opérations sur les textes chiffrés entraînent des résultats prévisibles sur les textes en clair. Ces objectifs paradoxaux soulignent la difficulté de créer de tels procédés.

Figure 1 : Illustration des avantages du chiffrement homomorphe

Figure 1 : Illustration des avantages du chiffrement homomorphe. La série de figures de gauche représente un chiffrement ordinaire; pour appliquer l'analyse souhaitée, les données doivent d'abord être déchiffrées à l'aide de la clé privée. Pour que le transfert des résultats soit sécurisé, les données doivent être chiffrées à nouveau. Les données sont en outre vulnérables pendant toute la durée du traitement informatique. La série de figures de droite représente le chiffrement homomorphe; la partie effectuant le traitement informatique n'a besoin d'aucun renseignement de nature délicate pour procéder aux calculs, et les données ainsi que les résultats sont protégés par chiffrement.

Description - Figure 1

Illustration de la différence entre des traitements informatiques avec chiffrements ordinaire et homomorphe. Dans le cas du chiffrement ordinaire, les données (une boîte de lignes dotée d'un cadenas) doivent d'abord être déchiffrées à l'aide d'une clé; ce qui donne la même boîte marquée d'un cadenas ouvert. Si les résultats doivent être communiqués à une autre partie, ils doivent alors être à nouveau chiffrés à l'aide d'une autre clé. Dans le cas d'un chiffrement homomorphe, le traitement informatique peut être effectué directement, sans l'intervention de renseignements secrets tels que des clés.

Que pouvez-vous faire avec le chiffrement homomorphe?

Plusieurs paradigmes informatiques distincts peuvent être améliorés grâce au chiffrement homomorphe, notamment l'informatique déléguée, le partage de données et la diffusion de données. Ces différents paradigmes s'articulent tous autour du fait que le détenteur des données, l'analyste et les plateformes informatiques sont souvent des parties totalement distinctes; le but étant de réduire ou d'éliminer les préoccupations en matière de protection de la vie privée soulevées lorsque l'une de ces parties ne devrait pas accéder aux données. Il est important de noter que le chiffrement homomorphe utilise un modèle de sécurité plus faible qu'une cryptographie traditionnelle et que des précautions doivent être prises pour veiller à ce qu'il soit utilisé en pratique en toute sécurité.Note de bas de page 1

L'application probablement la plus simple fait intervenir un détenteur de données délégant le traitement informatique à une autre partie, comme le nuage. Dans ce scénario, un client chiffre ses données et les envoie dans le nuage avec des instructions. Le nuage peut suivre ces instructions de manière homomorphe et retourner le résultat chiffré, en n'apprenant rien sur les valeurs d'entrée, de sortie ni intermédiaires. Ces instructions suivent le modèle de circuits, qui sont des séquences d'opérations arithmétiques appliquées à des extrants. Il convient de souligner que créer des circuits corrects et efficaces avec chiffrement homomorphe n'est pas toujours évident, mais il n'y a théoriquement pas de limite aux calculs pouvant être exécutés. Statistique Canada a, par exemple, terminé des validations de principeNote de bas de page 2 en appliquant une analyse statistique et un entraînement de réseau neuronal sur des données chiffrées.

Pour reprendre le scénario d'informatique déléguée, envisagez un cas faisant intervenir de multiples détenteurs de données. Ces sources de données souhaitent partager leurs données, mais des enjeux de confidentialité les en empêchent. Le procédé exact dépend du modèle de confiance; toutefois, le chiffrement homomorphe peut permettre à ces différentes parties de chiffrer leurs données et de les partager avec une autorité centrale ayant le pouvoir de procéder à un traitement informatique de manière homomorphe. Ces applications de partage de données peuvent permettre de meilleures analyses dans des scénarios où les données sont limitées et protégées. Un exemple est un oncologue qui souhaite tester ses hypothèses; les données sur les patients sont généralement limitées aux hôpitaux traitants et combiner ces ensembles non seulement accroît la force du modèle, mais élimine les biais géographiques en matière de données. Par conséquent, permettre à plusieurs hôpitaux de partager leurs données chiffrées et aux oncologues de procéder à des traitements informatiques sur cet ensemble de données conjoint chiffré permet de meilleurs recherches et résultats en matière de soins de santé.

Envisagez également des scénarios faisant intervenir un détenteur de données central et plusieurs parties souhaitant analyser ces données. Les centres de données de recherche de Statistique Canada sont un tel exemple, puisqu'ils sont hébergés dans des installations sécurisées que gère l'organisme dans l'ensemble du Canada. Des chercheurs agréés peuvent obtenir une autorisation spéciale d'accéder à des microdonnées au sein de ces sites sécurisés. Même s'il est sécurisé, ce processus d'autorisation prend du temps et les chercheurs doivent pouvoir se rendre physiquement sur ces sites. Avec le chiffrement homomorphe, les centres de données pourraient peut-être héberger les données chiffrées et en fournir l'accès à toute partie le demandant. Cela réduirait les coûts administratifs d'ajouter de nouveaux chercheurs et étendrait l'accès aux données conformément à l'initiative de données ouvertes du Canada.

Figure 2 : Illustrations de ces trois paradigmes

Figure 2 : Illustrations de ces trois paradigmes. Tout d'abord, le traitement informatique délégué; le détenteur de données chiffre et envoie les données au nuage, qui retourne les résultats chiffrés après avoir procédé à des calculs homomorphes. Ensuite, plusieurs parties chiffrent et envoient leur part d'un ensemble de données distribué que le nuage peut utiliser pour procéder à une analyse, sans compromettre les principes de confidentialité de chaque détenteur de données. Enfin, un détenteur de données central peut donner accès à un ensemble de données chiffré à des analystes. Ces derniers peuvent ainsi faire l'objet d'une surveillance et de restrictions moindres, car ils n'ont jamais un accès direct aux données.

Description - Figure 2

Illustrations des trois paradigmes. Dans le cadre du paradigme de traitement informatique délégué, le détenteur de données envoie ses données chiffrées au nuage, qui lui retourne les résultats chiffrés. Dans le paradigme de multiples détenteurs de données, ces derniers peuvent individuellement envoyer leurs données chiffrées, permettant au serveur infonuagique d'effectuer un traitement informatique conjoint sur l'union de leurs ensembles de données, fournissant ainsi un résultat analytique plus robuste. Dans le paradigme de « banque de données », le nuage héberge les données et peut envoyer des données chiffrées à tout analyste choisi, sans crainte d'une mauvaise utilisation des données.

Le chiffrement homomorphe peut être utile au-delà de calculs numériques. Par exemple, pour un client en possession d'un ensemble de données de nature délicate, l'intersection d'ensembles privés (PSI) permet l'apprentissage de l'intersection de cet ensemble avec un ensemble de données sur un serveur, sans que ce serveur n'apprenne l'ensemble de données du client et sans que le client n'apprenne quoi que ce soit sur les données du serveur au-delà de l'intersection. La mise en correspondance de chaînes privées (PSM) est un protocole similaire permettant au client d'interroger une base de données textuelle pour une sous-chaîne correspondante. À l'aide de ces primitives cryptographiques et d'autres, vous pouvez imaginer une vaste suite protégeant la vie privée et couplant des données entre divers ministères et établissements publics. Même si un tel système est ambitieux et que les modes de mise en œuvre exacts ne sont pas encore clairs, cela permet d'envisager les types de systèmes auxquels nous pouvons aspirer à mesure que des tâches plus complexes sont effectuées à l'aide du chiffrement homomorphe et d'autres technologies liées à la protection de la vie privée.

Inconvénients du chiffrement homomorphe

Malgré les nombreux avantages de l'utilisation du chiffrement homomorphe, comme pour toute technologie, il présente de potentiels inconvénients. Le prix de la sécurité cryptographique est le coût computationnel; selon l'analyse, le calcul chiffré peut être plus dispendieux de plusieurs ordres de grandeur que le calcul non chiffré. Il existe également un coût de décompression des données qui peut être assez important. Ce coût de décompression des données est aggravé par le fait que la plupart des protocoles de chiffrement homomorphe font intervenir un transfert de données chiffrées. Alors que le stockage infonuagique est relativement peu coûteux, le transfert de données peut être coûteux et complexe.

Le chiffrement homomorphe autorise en outre un ensemble limité de calculs en mode natif. Seules l'addition, la soustraction et la multiplication sont natives à la plupart des procédés arithmétiques et tous les autres calculs (exponentiels, fonctions d'activation, etc.) doivent être exprimés approximativement par un polynôme. Il convient de souligner que cela est généralement le cas avec tous les ordinateurs, mais lorsqu'un ordinateur moderne cache ce fait à l'utilisateur, les bibliothèques de chiffrements homomorphes exigent actuellement de l'utilisateur qu'il précise comment calculer ces fonctions non insignifiantes.Note de bas de page 3 Dans certains procédés, il convient également de se préoccuper de la profondeur des calculs tentés. En effet, ces procédés introduisent du bruit dans les données chiffrées pour les protéger.

Ce bruit est aggravé par des calculs successifs et, à moins d'être réduit,Note de bas de page 4 dépasserait éventuellement le signal; le déchiffrage ne fournirait alors plus les résultats attendus. Le choix des paramètres de chiffrement est important dans ce cas. Pour un circuit donné, il existe un ensemble de paramètres suffisamment grand pour être adapté; toutefois, gérer des paramètres plus importants accroît le coût de calcul du protocole.

Les coûts supplémentaires en termes de calcul et de création de circuits peuvent-ils être justifiés? Le chiffrement homomorphe permet des calculs potentiellement impossibles autrement. Cela concerne des ensembles de données de nature délicate en particulier, comme les données sur la santé. Le coût auquel fait face un analyste pour obtenir les autorisations de travailler sur de telles données est énorme, tout comme d'autres complications, comme des environnements informatiques contrôlés. Une fois les données partagées, comment vérifier que les analystes respectent les règles? Certains détenteurs de données peuvent rechigner à permettre à quiconque d'accéder à leurs données; sans des mesures supplémentaires, comme le chiffrement homomorphe, cette analyse est peut-être impossible. La décision entre un « calcul coûteux » et « aucun calcul » est bien plus facile à prendre.

De plus, divers procédés et leur mise en œuvre sont un domaine actif de recherche et les mises en œuvre de bibliothèques permettent régulièrement des améliorations de leurs algorithmes de calcul homomorphe et de compression de données. D'importants investissements en accélération matérielle pour le chiffrement homomorphe ont récemment été faits. Cela est similaire au matériel installé sur la plupart des ordinateurs, qui comprend des circuits électroniques particuliers conçus pour effectuer des opérations de chiffrement et de déchiffrage aussi rapidement que possible. Cela pourrait permettre aux ordinateurs infonuagiques qui utilisent cette accélération du chiffrement homomorphe d'effectuer des analyses sur des données chiffrées à des vitesses plus proches de celles s'appliquant à des données non chiffrées.

Malgré ces inconvénients, il y a lieu de penser que le chiffrement homomorphe deviendra un important outil de protection de la vie privée. C'est par conséquent le moment idéal de commencer à examiner ce que ces techniques peuvent permettre de faire.

Mathématiques du chiffrement homomorphe

Nous allons maintenant plonger dans les rouages mathématiques internes du chiffrement homomorphe, notamment des détails cryptographiques. Nous espérons que même les lecteurs non férus de mathématiques pourront saisir les bases du fonctionnement de ces procédés. Il convient de souligner que le reste de cette section fournit des détails découlant du procédé de Cheon, Kim, Kim et Song, intitulé chiffrement homomorphe pour l'arithmétique de nombres approximatifs (le contenu de cette page est en anglais), mais la communauté cryptographique l'appelle généralement CKKS. Cela dit, la majeure partie de ce qui est mentionné ici s'applique également à d'autres procédés avec seulement de légères modifications.

Au cœur de tout cryptosystème à clé publique se trouve un problème mathématique jugé difficile à résoudre, sauf en ayant accès à un renseignement particulier appelé une clé secrète (ou privée). Une clé publique associée peut être utilisée pour chiffrer des données en texte clair pour produire un texte chiffré, mais seule la connaissance de cette clé secrète permet de rétablir le texte en clair initial à partir de ce texte chiffré. Puisque la clé publique ne peut pas servir au déchiffrage, elle peut être partagée avec toute personne souhaitant chiffrer des données avec la confiance que seul le détenteur de la clé secrète peut déchiffrer le texte chiffré pour accéder au texte en clair.

La plupart des procédés de chiffrement homomorphe ont recours à des variantes de l'hypothèse de difficulté d'apprentissage avec erreurs (LWE). Cela décrit la variante annulaire appelée apprentissage annulaire avec erreurs (RLWE). Au lieu de traiter de nombres entiers, ce procédé traite de polynômes dotés de coefficients entiers. Vous pouvez, par exemple, utiliser l'espace de polynômes avec coefficients entiers modulo q ordres de grandeur inférieur à N; exprimé sous la forme Rq=Zq[X]/XN-1. Vous pouvez considérer cet espace simplement comme des listes de nombres entiers N, chacun inférieur à q. Généralement, ces valeurs devraient être relativement grandes; par exemple N=215=16,384 et q ~ 2800. Cela rend Rq suffisamment grand pour y cacher des secrets! La figure 3 fournit un petit exemple du type d'espace avec lequel nous travaillerions.

Figure 3 : Petit exemple d'anneau d'un type pouvant être utilisé pour le chiffrement homomorphe, ainsi que quelques-uns de ses éléments

Figure 3 : Petit exemple d'anneau d'un type pouvant être utilisé pour le chiffrement homomorphe, ainsi que quelques-uns de ses éléments. Remarquez que la somme ou le produit de ces éléments est un autre élément de l'anneau.

Description - Figure 3

Exemple d'anneau pouvant être intéressant pour un travail avec le chiffrement homomorphe.

R17=Z17[X]/X16-1
X15+11X14+X12+5X7+2X6+4X2+X+16
X4+13X3+5X2+X+8
X10+16X8+X6+16X4+X2+16

Ici, la valeur de q est 17 et la valeur de N est 16. Des exemples de polynômes de l'anneau sont également indiqués; un exemple est le polynôme x4+13x3+5x2+x+8.

Dans le cas de deux polynômes, par exemple, vous pouvez les ajouter ou les multiplier. Le résultat de ces opérations est toujours un autre polynôme.Note de bas de page 5 Rq devient ainsi un type de bac à sable au sein duquel vous pouvez évoluer librement. Les mathématiciens appellent un ensemble présentant cette propriété un anneau; la façon dont ces opérations influent sur les éléments de l'anneau est ce que l'on appelle la structure. La propriété spéciale du chiffrement homomorphe est qu'il existe des opérations dans l'espace du texte chiffré qui correspondent de façon homomorphe aux opérations de l'espace de texte en clair sous-jacent. On préfère l'utilisation d'anneaux polynomiaux, car les opérations sont efficaces et on juge le problème RLWE difficile.

Comment cache-t-on un secret dans un espace mathématique? Supposez que vous disposez de quatre polynômes aléatoiresNote de bas de page 6 dans Rq, appelés a, s, e, et b. L'hypothèse de difficulté RLWE énonce qu'il est très difficile de distinguer une série de paires de la forme (a,as+e) ou de la forme (a,b). Ici, « très difficile de distinguer » signifie que « les paramètres peuvent être définis de telle sorte que tous les ordinateurs les plus puissants du monde fonctionnant ensemble avec les meilleurs algorithmes connus ne pourraient pas résoudre le problème ». Les polynômes a et b peuvent être échantillonnés de façon aléatoire uniformément au sein de tous les Rq, mais les autres ont une forme spéciale. Dans le cadre du procédé CKKS, s a les coefficients ±1  ou 0 et nous échantillonnons les coefficients de e dans une répartition gaussienne discrète sur Zq centrée autour de 0. Dans le reste de cet article, nous allons simplement qualifier ces polynômes de « petits », car, dans les deux cas, leurs coefficients sont proches de 0.

La difficulté du problème RLWE permet de garder un secret comme suit : remarquez que la première paire est corrélée; il existe un facteur de a dans les deux polynômes, alors que dans la deuxième, il n'existe aucune corrélation entre les a et b sélectionnés aléatoirement. Imaginez maintenant qu'une personne vous remette de nombreuses paires toutes de la forme (a,as+e) pour de nombreuses valeurs différentes de e et une constante s, ou toutes des paires complètement aléatoires. Selon la difficulté de RLWE, non seulement vous ne pourriez pas trouver s de façon fiable en fonction des paires (a,as+e), mais vous ne pourriez pas non plus déterminer de façon fiable la paire vous ayant été donnée! La figure 4 fournit un petit exemple de ce problème pour que vous vous y exerciez chez vous.

Figure 4 : Quatre paires de polynômes

Figure 4 : Quatre paires de polynômes dans R17=Z17[X]/X16-1 • réparties en deux groupes. Un groupe est distribué comme (a,as+e) pour certains « petits » s fixes et deux « petits » e aléatoires différents et l'autre groupe est de la forme (a,b). Savez-vous lequel est lequel? Qu'en est-il si 17 devient 2800 et 16 devient 16,384? Imaginez maintenant d'essayer de trouver s. Veuillez noter que dans l'hypothèse de RLWE, un seul de ces groupes vous serait fourni et non les deux.

Description - Figure 4

Quatre paires de polynômes. Cela est supposé être un petit exemple du problème RLWE pour que vous vous y exerciez chez vous. Les paires polynomiales sont réparties en deux groupes. Un groupe est réparti sous forme (a,as+e)  pour un « petit » polynôme s et l'autre est de la forme (a,b) pour a et b aléatoires. Savez-vous lequel est lequel? Les polynômes de la figure sont reproduits ci-dessous :

(x4+4x3+10x+1,x8+6x7+x6+8x5+12x4+4x3+10x2+8x+14)
(x4+12x3+2x2+5x+11, x8+14x7+14x6+12x5+9x4+13x3+8x2+6x+7)
(x4+5x3+3x2+8, x8+4x7+12x6+16x5+15x4+3x3+6x2+9x+8)
(x4+9x3+7x2+14x+1, x8+413x7+9x6+14x5+2x4+8x3+x2+13x+12)

La sécurité des procédés fondés sur RLWE découle du fait que si a, s et e sont donnés, il est facile de calculer a*s + e, mais il est pratiquement impossible de trouver s à partir de a et a*s + e. Vous pouvez créer un système de chiffrement de clé publique comme suit :

  • Fixez votre espace Rq en choisissant un coefficient modulus q et un polynôme modulus de degré N.
  • Choisissez une « petite » clé secrète s aléatoire, un a uniformément aléatoire, et un « petit » e aléatoire pour créer votre clé publique (a, -as+e,a). Remarquez la valeur négative dans cette paire; cela rend le processus de chiffrement plus simple, mais n'influe pas sur la sécurité de RLWE.
  • Partagez votre clé publique avec le monde entier et personne ne pourra trouver votre clé secrète! Ainsi, toutes les personnes possédant cette clé publique peuvent chiffrer les données et les envoyer à une partie pour y appliquer des calculs, de façon homomorphe. À la fin, les résultats peuvent également uniquement être déchiffrés et affichés à l'aide de la clé secrète.

Pour chiffrer les données, celles-ci doivent d'abord être codées comme vecteur de v nombres réels. Cela est simple lorsque vous travaillez avec des données numériques et la pratique courante lors d'un travail avec des données textuelles et autres. Pour ce chiffrement, le vecteur de v données est d'abord codé comme polynômeNote de bas de page 7 m dans Rq et combiné avec la clé publique, afin d'obtenir un texte chiffré, désigné par [v]. Maintenant, envoyez cela à la partie informatique effectuant les additions et multiplications homomorphes pour mettre en œuvre le calcul souhaité. La figure 5 représente un circuit simple calculant une fonction polynomiale. Une fois les calculs effectués et les textes chiffrés résultants obtenus, vous pouvez utiliser votre clé secrète pour déchiffrer et afficher les résultats.

Figure 5 : Visualisation d'un circuit homomorphe

Figure 5 : Visualisation d'un circuit homomorphe. Un vecteur de valeurs peut être chiffré en un simple texte chiffré et faire simultanément l'objet de calculs. La figure représente seulement une réalisation d'un circuit pour calculer le polynôme f(x). Les valeurs avec cadenas sont chiffrées et donc illisibles pour la partie effectuant les calculs.

Description - Figure 5

Circuit homomorphe évaluant la fonction nf(x)=x3+4x2+2x+1 sur un vecteur de valeurs. Les cadenas représentent les valeurs chiffrées et donc illisibles pour la partie effectuant les calculs. Les flèches et les opérations indiquent la façon dont il est possible de coder en fait le circuit dans une bibliothèque de chiffrements homomorphes.

Même si le présent article n'a pas exploré tous les détails de la mise en œuvre mathématique de ces opérations, la description du chiffrement homomorphe jusqu'à présent fournit le contexte nécessaire pour en apprendre plus en la matière.

Comment commencer à utiliser le chiffrement homomorphe

Pour vous lancer en chiffrement homomorphe, explorez certaines des bibliothèques de chiffrements homomorphes en source ouverte disponibles; vous pouvez essayer Microsoft SEAL, PALISADE Homomorphic Encryption Software Library, TFHE: Fast Fully Homomorphic Encryption over the Torus, voire Concrete: Open-source Homomorphic Encryption Library si vous êtes utilisateur de Rustacean also know as someone who uses Rust (le contenu de ces pages est en anglais). Ces diverses bibliothèques mettent en œuvre de multiples procédés de chiffrement homomorphe; vous pouvez choisir celui qui convient le mieux à votre cas d'utilisation. Nous soulignons que, jusqu'à la fin du processus de normalisation, le gouvernement du Canada ne recommande pas d'utiliser le chiffrement homomorphe avec tout type de données de nature délicate.

Même si tous ces procédés de chiffrement homomorphe différents permettent de mettre en œuvre la plupart des cas d'utilisation, certains seront plus performants que d'autres sur certains problèmes. Le procédé CKKS est conçu pour fonctionner sur des nombres réels; si les statistiques ou l'apprentissage automatique vous intéressent, c'est là que vous devriez probablement commencer! Brakerski/Fan-Vercauteren et Brakerski-Gentry-Vaikuntanathan sont parfaits pour l'arithmétique de nombres entiers et mettre en œuvre les primitives informatiques comme l'intersection d'ensemble privé ou la correspondance de chaînes. TFHE met en œuvre des fonctions logiques en mode natif et actualise le bruit de texte chiffré à chaque opération, ce qui permet d'améliorer l'efficacité lorsque les profondeurs de circuit sont plus longues. Nous encourageons les lecteurs intéressés à essayer des circuits simples en utilisant chaque procédé et à en comparer les résultats et les performances!

Si vous souhaitez de plus amples renseignements sur les aspects de cybersécurité du chiffrement homomorphe, notamment les activités de normalisation, communiquez avec le Centre canadien pour la cybersécurité par courriel à l'adresse contact@cyber.gc.ca et par téléphone au 613-949-7048 ou 1-833-CYBER-88.

Conclusion

Le présent article a exploré en détail le chiffrement homomorphe, de ses applications jusqu'au problème RLWE. Cette série sur les technologies liées à la protection de la vie privée se penchera ensuite sur des validations de principe effectuées en appliquant le chiffrement homomorphe à Statistique Canada! Elle couvrira également certains des aspects plus avancés de l'interface CKKS, notamment les rotations, le choix des paramètres, la mise en paquet, le bootstrap, la mise à l'échelle et les niveaux.

Souhaitez-vous être tenu au courant de ces nouvelles technologies? Voulez-vous faire état de vos travaux dans le domaine de la protection de la vie privée? Consultez la page GCConnex de notre communauté de pratique sur les technologies de protection de la vie privée (réservée aux employés du gouvernement du Canada), afin de discuter de cette série d'articles sur la protection de la vie privée, d'interagir avec des pairs qui s'intéressent à la protection de la vie privée, et de partager des ressources et des idées avec la communauté. Vous pouvez également commenter ce sujet ou fournir des suggestions d'articles futurs pour cette série.

Note : Nous souhaitons remercier le Centre canadien pour la cybersécurité et l'Institut Tutte pour les mathématiques et le calcul, faisant tous deux partie du Centre de la sécurité des télécommunications, pour leur participation au présent article.

Date de modification :