Chaque fois qu'une nouvelle technologie fait son apparition, elle se noie dans l'hyperbole. Mon Twitter est rempli d'« influenceurs » qui prétendent avoir créé un site Web complet avec une seule invite, mais quiconque essaie de créer des sites Web sait qu'ils sont actuellement suffisamment bons pour implémenter de petites fonctions et se lancer dans n'importe quelle tâche à long terme avec un référentiel de code complet comme contexte.
Vous vous souvenez quand on nous promettait des voitures autonomes pour demain, il y a une dizaine d'années ? La conduite autonome est un problème résolu, déclarait Elon Musk, le maître du battage médiatique, il y a huit ans .
Pendant que nous attendions que les Tesla commencent à faire des donuts par elles-mêmes, des efforts moins glamour étaient en cours. Mobileye a construit un capteur qui émet un bip lorsque vous êtes sur le point de heurter quelque chose. Ils ont sauvé d'innombrables vies et réduit les demandes d'indemnisation d'environ 90 %. Ils ont créé une entreprise de 17 milliards de dollars.
Je pense que la compréhension des documents est la technologie Mobileye pour les LLM. Comprendre les tableaux financiers, classer les demandes d'indemnisation et déduire les codes médicaux des notes d'un médecin semble modeste par rapport aux rêves les plus ambitieux. Mais si vous double-cliquez sur ce problème, vous découvrirez qu'il n'était pas résolu auparavant et qu'il offre beaucoup de valeur.
Il y a dix ans, je travaillais pour l'équipe de normalisation des données de LinkedIn. Nous essayions de résoudre un problème simple et trompeur : comment interpréter un CV, quelle que soit sa provenance, et faire correspondre ses titres à un petit ensemble de titres reconnus ?
On pourrait penser que ce serait facile. Je veux dire, « ingénieur logiciel » est un titre assez simple, n'est-ce pas ? Mais que se passe-t-il si quelqu'un écrit « associé » ? Il peut s'agir d'un employé de magasin ou d'un salarié à six chiffres dans un cabinet d'avocats. Qu'est-ce qu'un commis de poste (un cow-boy australien), qu'est-ce qu'un consultant (cela peut vouloir dire conseiller/indépendant, mais cela peut aussi vouloir dire docteur si vous êtes britannique et avez le bon profil) ? Si vous essayez d'intégrer des titres de poste dans une liste d'éléments reconnus afin de pouvoir indexer pour la recherche, les ventes, etc., comment créeriez-vous un modèle qui connaisse les nuances de toutes les langues et cultures, et ne confondriez pas « assistant exécutif » avec un cadre, alors que l'assistant du directeur régional est en fait un adjoint du directeur régional ?
OK, c'est bien, mais si je travaille pour LinkedIn , j'aurai besoin de types de données concrets. Je veux un JSON .
Il reste encore du travail à faire pour intégrer les intitulés de poste dans une taxonomie standard, c'est-à-dire une liste finie d'intitulés de poste prédéfinis acceptables. Mais on peut voir comment quelque chose qui était très difficile dans le passé devient trivial.
La lecture de CV est une bonne solution, mais je pense que ce n'est pas révolutionnaire. LinkedIn est une entreprise technologique et a toujours appliqué les techniques les plus pointues à ce problème. Cela peut s'améliorer un peu, mais nous ne faisons que remplacer un processus d'automatisation de code par un autre.
Les choses deviennent beaucoup plus intéressantes lorsque l’on remplace le travail manuel fastidieux. Une grande partie de l’économie repose sur des personnes effectuant des tâches spécialisées qui se résument à « lire un document, comprendre ce qu’il dit et répéter ce processus ad nauseam ».
Laissez-moi vous donner quelques exemples :
Gestion des dépenses : vous avez une facture et quelqu'un doit la transformer en une liste de chiffres : ce qui a été payé, à qui et dans quelle devise. Cela semble facile ? Pas quand la facture est enfouie dans un fouillis d'informations supplémentaires, de tableaux incomplets ou de PDF qui semblent avoir été passés au mixeur.
Traitement des demandes de remboursement de soins de santé : c'est un véritable cauchemar, qui est résolu par une armée d'arbitres de demandes de remboursement de soins de santé. Ils passent au crible des montagnes de factures, de notes de médecins et de factures qui doivent toutes se rassembler dans un fouillis de doublons, et doivent les comparer à une police d'assurance maladie existante et déterminer si les frais sont couverts, dans quelle catégorie et à quel montant. Mais en fin de compte, il s'agit principalement de lire, de trier et d'étiqueter. Les décisions ne sont pas difficiles ; c'est l'extraction des données qui constitue le défi.
Souscription de prêt : examen des relevés bancaires d'une personne et catégorisation de ses flux de trésorerie. Encore une fois, il s'agit plus de structurer des informations non structurées que de science-fusée.
Glamour ? Non. Utile ? Je pense que oui.
Les LLM sont désormais connus pour leurs hallucinations, autrement dit pour leur capacité à inventer des conneries. Mais la réalité est plus nuancée : les hallucinations sont attendues lorsque vous demandez des connaissances sur le monde, mais elles sont fondamentalement éliminées dans une tâche concrète .
Les LLM ne sont pas particulièrement doués pour évaluer ce qu'ils « savent » – c'est plutôt une chance qu'ils puissent le faire du tout, car ils n'ont pas été explicitement formés pour cela. Leur formation principale consiste à prédire et à compléter des séquences de texte. Cependant, lorsqu'un LLM se voit confier une tâche concrète - une tâche où seule l'entrée qui lui est explicitement donnée est nécessaire pour faire une prédiction -, les taux d'hallucinations peuvent être ramenés à pratiquement zéro. Par exemple, si vous collez ce billet de blog dans ChatGPT et demandez s'il explique comment prendre soin de votre furet de compagnie, le modèle donnera la bonne réponse dans 100 % des cas. La tâche devient prévisible. Les LLM sont capables de traiter un morceau de texte et de prédire comment un analyste compétent remplirait les blancs, dont l'un pourrait être {« furet care discussed » : false}.
En tant qu’ancien consultant en IA, nous avons travaillé sur des projets axés sur l’extraction d’informations à partir de documents, en particulier dans des secteurs comme l’assurance et la finance. La crainte commune était que « les LLM hallucinent », mais dans la pratique, les plus grands défis étaient souvent dus à des erreurs dans l’extraction des tableaux ou à d’autres incohérences de saisie. Les LLM échouent uniquement lorsque nous ne parvenons pas à leur présenter des données claires et sans ambiguïté. Il existe deux éléments clés pour réussir à automatiser le traitement des documents :
Extraction de texte parfait – Cela implique la conversion du document en texte propre et lisible par machine, y compris la gestion de tableaux, de notes manuscrites ou de mises en page variées. Le LLM a besoin d'un texte clair et compréhensible pour travailler.
Schémas robustes – Ces schémas doivent définir les sorties que vous recherchez, comment gérer les cas extrêmes et le format des données, garantissant que le système sait exactement ce qu'il doit extraire de chaque type de document.
L’écart entre les risques potentiels d’hallucination et les obstacles techniques réels peut être énorme, mais avec ces fondamentaux en place, vous pouvez exploiter efficacement les LLM dans les flux de travail de traitement de documents.
Voici ce qui fait que les LLM échouent et produisent des résultats ridiculement mauvais :
Il est toujours utile de se rappeler le fouillis qui règne dans les documents du monde réel. Voici un formulaire fiscal pris au hasard :
Bien sûr, les vrais formulaires fiscaux contiennent tous ces champs remplis, souvent à la main.
Ou voici mon CV
Ou un exemple de rapport de laboratoire accessible au public (il s'agit d'un résultat de première page de Google)
La pire chose que vous puissiez faire, soit dit en passant, est de demander aux capacités multimodales de GPT de transcrire un tableau. Essayez-le si vous l'osez : il semble correct au premier coup d'œil, invente des choses complètement aléatoires pour certaines cellules du tableau, sort complètement les choses de leur contexte, etc.
Lorsqu'on nous a demandé de comprendre ce genre de documents, mon cofondateur Nitai Dean et moi-même étions déconcertés par l'absence de solutions prêtes à l'emploi permettant de donner un sens à ces textes.
Certaines personnes prétendent résoudre ce problème, comme AWS Textract. Mais ils font de nombreuses erreurs sur tous les documents complexes que nous avons testés. Ensuite, vous avez la longue liste de petites choses nécessaires, comme la reconnaissance des coches, des boutons radio, du texte barré, des gribouillis manuscrits sur un formulaire, etc.
Nous avons donc créé Docupanda.io , qui génère d'abord une représentation textuelle propre de n'importe quelle page que vous lui envoyez. Sur la gauche, vous verrez le document original et sur la droite, vous pourrez voir le résultat textuel.
Les tableaux sont traités de la même manière. En coulisses, nous convertissons simplement les tableaux en format Markdown lisible par l'homme et par LLM :
La dernière étape pour donner du sens aux données avec les LLM consiste à générer et à respecter des formats de sortie rigides. C'est formidable de pouvoir faire en sorte que l'IA transforme sa sortie en JSON, mais pour appliquer des règles, des raisonnements, des requêtes, etc. aux données, nous devons les faire se comporter de manière régulière. Les données doivent se conformer à un ensemble prédéfini d'emplacements que nous remplirons avec du contenu. Dans le monde des données, nous appelons cela un schéma .
La raison pour laquelle nous avons besoin d'un schéma est que les données sont inutiles sans régularité. Si nous traitons des dossiers de patients et qu'ils correspondent à « homme », « homme », « m » et « M », nous faisons un travail médiocre.
Comment construire un schéma ? Dans un manuel, vous pouvez le faire en restant assis longtemps et en fixant le mur, et en définissant ce que vous voulez extraire. Vous vous asseyez, réfléchissez à votre opération de données de santé et vous vous dites : « Je veux extraire le nom du patient, la date, le sexe et le nom de son médecin. Oh, et le sexe doit être M/F/Autre. »
Dans la vraie vie, pour définir ce qu'il faut extraire des documents, vous regardez vos documents… beaucoup. Vous commencez avec quelque chose comme ci-dessus, mais ensuite vous regardez les documents et vous voyez que l'un d'eux contient une LISTE de médecins au lieu d'un seul. Et certains d'entre eux mentionnent également une adresse pour les médecins. Certaines adresses ont un numéro d'unité et un numéro de bâtiment, alors peut-être avez-vous besoin d'un emplacement pour cela. Et ainsi de suite.
Nous avons réalisé qu'être capable de définir exactement ce que l'on veut extraire est à la fois non trivial, difficile et très résoluble avec l'IA.
C'est un élément clé de DocuPanda. Plutôt que de simplement demander à un LLM d'improviser une sortie pour chaque document, nous avons construit le mécanisme qui vous permet de :
Vous obtenez ainsi un puissant schéma JSON : un modèle qui indique exactement ce que vous souhaitez extraire de chaque document et qui en cartographie des centaines de milliers, en extrayant des réponses à chacun d'entre eux, tout en obéissant à des règles telles que toujours extraire les dates dans le même format, en respectant un ensemble de catégories prédéfinies, etc.
Comme dans tout terrier de lapin, il y a toujours plus de choses qu'il n'y paraît à première vue. Au fil du temps, nous avons découvert que davantage de choses étaient nécessaires :
Les organisations doivent souvent gérer un flux entrant de documents anonymes. Nous les classons donc automatiquement et décidons du schéma à leur appliquer.
Les documents sont parfois une concaténation de plusieurs documents, et vous avez besoin d'une solution intelligente pour décomposer un très long document en ses composants atomiques et distincts
La recherche des bons documents à l'aide des résultats générés est extrêmement utile
Si vous devez retenir une chose de cet article, c'est que vous devriez envisager d'exploiter les LLM pour donner un sens aux documents de manière régulière. S'il y a deux points à retenir, c'est que vous devriez également essayer Docupanda.io . La raison pour laquelle je le développe, c'est que j'y crois. C'est peut-être une raison suffisante pour l'essayer ?