Aujourd’hui le flux constant d’informations sur la COVID-19 peut s’avérer être vite indigeste et, parfois, il n’est pas facile de faire le tri entre le vrai et le faux. Heureusement, Santé Publique France publie chaque semaine un rapport complet sur la situation de la pandémie en France et à l’international. Ce document est une mine d’or, mais sa taille et sa densité d’information n’incite pas forcement à la lecture.
Pendant le confinement, l’IA Factory a travaillé sur des sujets en lien avec la COVID-19 pour démontrer en quoi l’intelligence artificielle peut nous aider à lutter contre le virus. C’est dans ce contexte que nous avons souhaité développer une IA capable de répondre à nos différentes questions en se basant sur les données de Santé Publique France.
Lien vers le rapport : https://www.santepubliquefrance.fr/content/download/278831/2722445
Présentation du NLP et du Question Answering :
Pour traiter ce genre de problème nous utilisons du Natural Language Processing (ou NLP), une branche de l’intelligence artificielle qui traite spécifiquement du langage humain. Vous pouvez trouver une définition plus détaillée dans notre précédent article !
Le NLP couvre une multitude de disciplines et notamment celle qui nous intéresse aujourd’hui : le « Question Answering ».
Le Question Answering (ou QA) consiste à construire des systèmes qui répondent automatiquement aux questions posées par des humains dans un langage naturel. On peut facilement comparer un système de QA a l’utilisation d’un moteur de recherche mais contrairement à ce dernier, l’objectif est de directement formuler une réponse ciblée à la question posée.
Aujourd’hui, de nombreux moteurs de recherche utilisent d’ailleurs du QA dans certains cas pour améliorer leur expérience utilisateur :
Ici, le moteur de recherche ne cherche plus simplement à trouver un site web pertinent mais à directement répondre à votre question !
Comment fonctionne un système de Question Answering :
Il y a quelques années, les systèmes de QA étaient principalement basés sur des règles et limités à des domaines spécifiques. Aujourd’hui, grâce aux innovations dans les architectures Deep Learning et à une plus grande puissance de calcul, nous pouvons créer des modèles qui sont capables de répondre à tous types de questions sur des sujets très variés.
Pour répondre à une question il faut un haut niveau de compréhension de notre langue, syntaxe, grammaire, vocabulaire, tout est important. Pour qu’un modèle puisse apprendre ces notions il faut l’entraîner sur une quantité phénoménale de données (138 GB de textes en français pour le modèle utilisé). Une fois qu’un tel modèle est constitué, il n’a pas vraiment de réelles applications, mais, on peut l’entraîner sur une tache plus spécifique, on appelle cette technique le Transfer Learning.
Le Transfer Learning consiste à réutiliser un modèle pré-entraîné sur une tâche d’apprentissage “A” comme brique de base pour construire un modèle qui se focalise sur une tâche “B”.
Cela permet donc à notre modèle de se concentrer sur la tâche du Question Answering sans avoir à comprendre comment fonctionne le français au préalable, ce qui nécessite beaucoup moins de données et de puissance de calcul.
Si vous voulez en savoir plus sur comment ces modèles en français ont pu voir le jour je vous recommande cet article qui traite de l’initiative d’Etalab pour la francophonie dans l’IA : https://piaf.etalab.studio/francophonie-ia/
Structure du projet :
Pour la réalisation de notre projet nous avons utilisé un modèle de QA francophone récent (CamemBERT-large + FQUAD), ce modèle obtient de très bons résultats mais malheureusement son architecture ne permet pas de travailler sur des textes de grande taille comme le rapport de Sante Publique France. Il fallait donc scinder notre projet en 2 parties :
- Une première partie qui consiste à découper notre document en plus petit paragraphes et de trouver celui qui contient probablement la réponse à la question.
- Une seconde partie qui se concentre sur le paragraphe choisi et qui utilise notre modèle de QA mentionné plus haut afin d’extraire la réponse.
Pour découper le document nous avons utilisé une solution de « Best Matching », le BM25.
BM25 est une fonction de ranking utilisée par les moteurs de recherche pour estimer la pertinence des documents par rapport à une requête de recherche donnée. Dans notre cas, elle fonctionne en classant un ensemble de paragraphe en fonction des termes présent dans la question apparaissant dans chaque paragraphe.
Résultats du projet :
Pour présenter les résultats du projet nous allons détailler le fonctionnement de l’outil avec 2 questions différentes.
Question 1 : Comment a évolué le nombre de cas confirmés.
Dans cet exemple on peut voir l’outil à gauche avec la question et le résultat et à droite l’extrait du rapport dont est issu le résultat. On voit dans cet exemple que le modèle a bien compris qu’on attendait de lui une tendance et non pas nombre exact le de nouveaux cas de COVID-19.
Il faut mettre en perspective que le modèle a été entrainé sur la langue française avant que la pandémie n’existe, le modèle n’a donc jamais entendu parler du COVID-19 et pourtant il arrive à assimiler le fait que c’est une maladie et arrive toujours à donner des réponses pertinentes sur un document totalement inconnu.
Question 2 : Quelle est la tranche d’âge qui respecte moins les mesures de prévention ?
Dans cet exemple l’outil arrive à correctement interpréter la notion de tranche d’âge en plus de comprendre le sujet de la question.
Conclusion :
Ce projet s’inscrit dans la démarche de l’IA Factory de se tenir informé des dernières innovations en matière d’intelligence artificielle afin de mieux accompagner les clients d’Aubay. Les potentielles applications d’un système QA sont nombreuses et nous continuerons à suivre les progrès de cette technologie.
Futurs domaines d’applications du QA :
Chatbots :
Aujourd’hui la plupart des chatbots sont basé sur un système de règles simple, mais, si un système de QA est utilisé pour effectuer des recherches dans des documents existants, il sera possible de répondre a beaucoup plus de questions. Cela permettra de rendre les chatbots plus performants et surtout plus naturels.
Support informatique :
Répondre aux questions des utilisateurs dans un domaine d’entreprise IT reste un défi. Les entreprises vont se tourner de plus en plus vers des assistants de discussion automatisés pour gérer les interactions avec le support technique et le service clientèle. Le QA (ou ici le TechQA) interviendra dans ces milieux ou souvent une simple FAQ ne suffit pas pour résoudre les problèmes spécifiques des utilisateurs.