Qu’on le veuille ou non, l’intelligence artificielle infuse toutes les strates économiques et bientôt sociales. Ci-dessous quelques éléments de base sur le sujet, premier article d’une série qui, espérons-le, nous permettra de distinguer le bon grain de l’ivraie en la matière.
Lorsqu’elle n’est pas le support non consentant d’un marketing mensonger, l’intelligence artificielle (IA) désigne généralement des algorithmes de machine learning dont les réseaux de neurones artificiels sont les figures de proue. Au cœur de l’IA, ils constituent un domaine d’étude appelé le deep learning.
Un réseau de neurones repose sur une myriade de paramètres qui lui permettent à partir d’une <red-highlight>Entrée<red-highlight>, de restituer une <red-highlight>Sortie<red-highlight>.
<quote-alt>M𝜽(Entrée) = Sortie<quote-alt>
Le réseau est notre modèle <red-highlight>M<red-highlight>. Pour identifier les paramètres <red-highlight>θ<red-highlight>, on a besoin de données. Puis, on entraîne le modèle <red-highlight>M<red-highlight> avec les paramètres <red-highlight>θ<red-highlight> fixés. Enfin on peut l’utiliser sur n’importe quelle entrée. Pour ces deux dernières tâches, on a besoin de puissance de calcul.
Qui dit puissance de calcul dit consommation énergétique. Pour le dernier né de chez Meta :
This means that developing these models would have cost around 2,638 MWh under our assumptions, and a total emission of 1,015 tCO2eq.
Donc réutiliser des modèles existants plutôt que de développer et pré-entraîner ses propres modèles - lorsque c’est faisable - est un enjeu de sobriété numérique.
La forme que prend une <red-highlight>Entrée<red-highlight> est aussi variée que celle d’une <red-highlight>Sortie<red-highlight> mais quelques usages sont particulièrement parlants.
Image & probabilité - Classification
À partir d’une image, donner le pourcentage de certitude qu’elle contient un type d’objet.
Les sempiternels CAPTCHA matérialisent une résurgence de la tâche d’entraînement du modèle, tâche essentielle qui consiste à donner au modèle un exercice et son corrigé. Les feux rouges et les passages piétons sur lesquels cliquent chaque jour des millions d’internautes servent à savoir si oui ou non vous êtes un robot, mais aussi à alimenter des modèles de vision informatique, ceux qui embarquent dans les véhicules autonomes par exemple.
Une vidéo n’est après tout qu’une succession d’images, il n’y a donc qu’un pas vers les usages liés à la surveillance vidéo ou biométrique.
Du texte, toujours plus de texte - Text-generation
Cette vidéo de Monsieur Phi est d’utilité publique pour appréhender ce qui se trame derrière les algorithmes de génération de texte. Eux ne sont ni plus ni moins que de pharaoniques machines à prédire le mot qui suit le plus probable.
Dessine-moi un algo - Text-to-image
Déférence renforcée envers Paul Valéry, la façon dont sont construits ces algorithmes fait que la même entrée ne produira pas la même sortie. Ce qui ne fait que confirmer les propos du poète.
Les outils en la matière sont nombreux. Stable Diffusion, DALL E et Midjourney ont beaucoup fait parler d’eux dernièrement, ils sont tous parents comme en témoigne cet état de l'art du text-to-image.
Midjourney a le vent en poupe et a la particularité de pouvoir consommer des images dans le prompt.
Quand on dit que les mêmes causes produisent les mêmes effets, on ne dit rien. Car les mêmes choses ne se reproduisent jamais - et d'ailleurs on ne peut jamais connaître toutes les causes. Paul Valéry
Père Castor, raconte-nous une histoire - Text-to-speech
Avant de rendre obsolètes les efforts de Louis Braille, l’humanité va probablement explorer bien d’autres voies et d’autres voix avec les réseaux de neurones entraînés à lire du texte. Les acteurs du domaine développent activement les voix de synthèse de demain, par exemple PaddleSpeech de PaddlePaddle ou TensorFlowTTS basé sur TensorFlow 2. Certaines plateformes comme Uberduck rendent facile et possible l’utilisation de ces modèles.
Paradis artificiels - Text-to-video
Le text-to-video sera-t-il l’aboutissement ultime des algorithmes de génération d’image ? Meta et d’autres ont investi ce sujet aussi complexe que séduisant que glissant. Les résultats actuels sortent parfois tout droit des profondeurs de l’internet cringe, mais on ne doute pas que l’évolution fulgurante de ces réseaux dépassera les prédictions.
Natural Language Processing (NLP)
Innové en 2017 par Google, Transformer devient rapidement l’état de l’art du NLP. Il est à l’origine de plusieurs modèles/applications dans ce domaine. Depuis quelques mois, des BigTech présentent leurs Large Language Models (LLM). Ces modèles sont formés sur de grands ensembles de données, qui contiennent des centaines de millions à des milliards de mots. Les LLM, comme on les appelle, reposent sur des algorithmes complexes, notamment des architectures de transformateurs qui se déplacent à travers de grands ensembles de données et reconnaissent des modèles au niveau du mot. Ces données aident le modèle à mieux comprendre le langage naturel et son utilisation dans le contexte, puis à faire des prédictions liées à la génération de texte, à la classification de texte, etc.
Microsoft et OpenAI: GPT, GPT-2, GPT-3, GPT-4, ChatGPT, Codex
Google : LaMBDA, BERT, Bard, Vision Transformer (ViT)
Meta : LLaMA
Deepmind : Gopher, Chinchilla
HuggingFace's BigScience team + Microsoft + Nvidia: BLOOM
Quand on parle de Transformer-based architecture, on désigne des algorithmes qui reposent entre autres sur un mécanisme d’attention. C’est un mécanisme analogue à l’attention “humaine” qui consiste à renforcer l’importance de certaines données entrantes et la diminuer pour d’autres.
Computer Vision
Vision Language Models: OpenAI-CLIP, Google ALIGN, OpenAI-DALL-E, Stable Diffusion, Vokenization
Object Detection: YOLO, SSD, R-CNN, FAST R-CNN
Passé les calembours édifiants sur ChatGPT, la hype d’une chaise en forme d’avocat - ou l’inverse - et l’excitation des premiers prompts, que nous reste-t-il ? Et que vient faire l’IA chez Docloop ?
L’OCR (Optical character recognition) consiste à passer d’une image constituée de pixels à un texte interprétable par un programme informatique. C’est une technologie mature qui repose sur deux modèles d’IA maîtrisés depuis longtemps : le détection de texte (Text detection e.g. avec DBNet, LinkNet pour docTR) et la reconnaissance de texte (Text recognition e.g. avec ViTSTR, MASTER, CRNN pour docTR)
Nanonets, GCP OCR, ABBYY, Tesseract, PaddleOCR, Azure, doctr ou easyOCR sont autant de moteurs OCR permettant de récupérer toutes les chaînes de caractères d’un document avec leur position dans ce document.
Si le point de départ est un fichier PDF, deux cas se présentent :
- Le PDF contient des images, une version scannée d’un document papier par exemple. On parle de scanned PDF file: Pour des traitements simples, des outils comme OCRmyPDF utilisent le moteur OCR Tesseract et superpose l’image du scanned PDF file et le texte “sélectionnable” généré par l’OCR
- Le PDF contient du texte, une version verrouillée d’un document word par exemple. On parle text-based PDF file: Dans ce cas, les chaînes de caractères sont déjà explicitement disponibles dans le fichier et des outils comme camelot-py permettent de récupérer les valeurs.
Une fois l’OCR réalisé, on se retrouve avec des milliers de mots en vrac. Ce sera le rôle de l’étape d’Extraction de structurer ces informations et leur donner du sens.
Schématiquement, c’est ce qu’un humain fait naturellement lorsqu’il voit l’en-tête d’un document qui contient FACTURE : on range ce document dans la catégorie “FACTURE” de notre esprit, avec toutes les implications que ça comporte : le document contient des montants détaillés et un montant total, il y a probablement un numéro de TVA et un SIRET quelque part, la date d’échéance est fonction de la date d’émission de la facture…
La classification peut être une fin en soi dans le cadre de la Gestion électronique de documents (GED) d’une entreprise afin d’archiver la documentation reçue au quotidien. Lorsque l’on reçoit une liasse documentaire de 50 pages, il peut être utile de séparer immédiatement les listes de colisage, les bons de commande, les factures et les déclarations douanières.
La classification peut également être le point de départ d’un process de traitement intelligent des documents. À partir des pages identifiées, on applique une étape d’OCR et on extrait des informations précises du document afin de les utiliser ultérieurement, au hasard et par exemple pour faire du rapprochement de facture…
L’étape d’OCR nous permet d’obtenir une liste de mots et leur position dans le document. Tout l’art des algorithmes d’extraction d’informations (ou Document understanding) est de pouvoir catégoriser certaines chaînes de caractères.
La complexité est variable, du plus simple au plus complexe :
- Champ simple avec un libellé : On peut s’appuyer sur les mots qui entourent la valeur pour déterminer ce qu’elle signifie.
- Champ simple sans libellé : On ne peut s’appuyer que sur des règles externes au document pour déterminer ce que les valeurs signifient. On a besoin d’assimiler des règles opérationnelles pour aboutir e.g. “Une classe dangereuse pour un colis dangereux est un entier entre 1 et 9” ou “Un code UNO est composé de 4 chiffres”.
- Tableau structuré : Ça n’existe pas dans la nature.
- Tableau peu structuré : C’est un l’objet de la course à l’armement actuel dans le champ de l’extraction d’informations. La section de document ci-dessous pourrait être représentée par une ligne dans un tableau où chaque champ est une colonne, mais la disposition n’est pas explicite sur ce point, et on constate même que les informations d’une case débordent sur une autre case.
Dépassés la pagaille d’acronymes et d’un salmigondis de termes pseudo-techniques, on en revient finalement à des considérations éminemment classiques et des conclusions triviales pour ne pas dire rabelaisiennes : “Science sans conscience n’est que ruine de l’âme”.
On souhaite chez Docloop utiliser à bon escient ces technologies en plein développement pour mettre à disposition le bon modèle au bon endroit.
Ce que l’on souhaite, c’est extraire des informations inaccessibles jusqu’à maintenant et appliquer toutes les règles qui permettent de l’utiliser auprès du bon logiciel ou du bon interlocuteur.