Botgen Chatbots Promesse

Chatbots : pourquoi la promesse n’est pas tenue, et comment résoudre le problème ?

Il y a dix-huit mois nous nous lancions dans l’aventure entrepreneuriale avec Gwenael, mon associé ingénieur. Notre objectif ? Développer un assistant intelligent dédié à l’organisation professionnelle, accessible sous forme de chatbot. Nous ne connaissions pas grand chose aux chatbots, n’avions jamais utilisé de plateforme de NLP, mais ça nous ne semblait pas si compliqué (« «après tout, c’est juste du texte »).

Dix-huit mois plus tard, notre projet de chatbot assistant intelligent est abandonné (problèmes de monétisation), mais nous sommes devenus experts du « après tout, c’est juste du texte », aka le développement d’interface conversationnelles. Après avoir développé une dizaine de chatbots sur-mesure pour des clients dans différents domaines, nous lançons aujourd’hui une plateforme révolutionnaire d’entrainement de chatbots.

Sommaire

  1. Le problème : un traitement du langage naturel défaillant
  2. La solution : industrialiser le développement des modèles de NLP
  3. Prochaine étape : lancement de la version bêta de notre plateforme de NLP dédiée aux chatbots

Le problème : un traitement du langage naturel défaillant 

Si l’on simplifie un peu le processus de création d’un chatbot, il se divise en deux grandes parties :

  1. L’entrainement du moteur de traitement du langage naturel ou NLP (Natural Langage Processing) du chatbot, qui permet de comprendre la demande d’un utilisateur et d’en extraire les informations pertinentes
  2. Le développement de la logique conversationnelle du chatbot, qui permet de savoir quoi dire à un utilisateur et à quel moment

Si la majorité des chatbots du marché gère plutôt bien la partie « logique conversationnelle », le NLP est très souvent délaissé, jugé trop complexe et trop couteux à mettre en place et à maintenir. Or, sans NLP, pas de conversation et sans conversation, peu d’intérêt à utiliser un chatbot. Résultat, la promesse du conversationnel n’est pas tenue, les utilisateurs sont déçus et le chatbot est abandonné.

Nous avons nous mêmes été confrontés à cette problématique : il nous était impossible avec les outils disponibles sur le marché d’entrainer un modèle de NLP de qualité « industrielle» pour notre chatbot. Par qualité industrielle, nous entendions capable de passer à l’échelle avec un volume grandissant de données (1) et capable de s’intégrer dans un processus d’itérations et d’améliorations continues (2) :

(1) En terme d’échelle nous souhaitions pouvoir gérer :

  • plusieurs dizaines d’intentions complexes,
  • des milliers de phrases d’entrainement sur les différentes intentions,
  • une centaine de types d’entités,
  • des dictionnaires de plusieurs centaines de valeurs et synonymes.

(2) En terme de process nous souhaitions pouvoir :

  • entrainer et de versionner plusieurs modèles de NLP avec des données d’entrainement ou des réglages différents afin de choisir le meilleur pour notre chatbot,
  • avoir la main sur les réglages d’entrainement des modèles de NLP afin d’optimiser leurs performances,
  • être capable d’évaluer les performances de chaque modèle de NL sur la base d’indicateurs standards de performance (Rappel, Précision, F1Score, Matrice de confusion, …).

Les plateformes de chatbot disponibles sur le marché (Google Dialogflow, Facebook wit.ai, SAP recast.ai, Amazon Lex, IBM Watson, Microsoft Luis, …) fournissent un accès très simple à des fonctionnalités de NLP avancées. Cette simplicité dans l’approche se fait néanmoins au dépend d’une vraie capacité à comprendre et à industrialiser les modèles entrainés sur ces plateformes. Elle servent principalement à faire « joujou » en entrainant un prototype à reconnaitre quelques demandes pas trop complexes (et donc pas très utiles non plus…). Les notions de passage à l’échelle, de mesure de performance, de versioning ou de configuration des réglages d’entrainement n’existent pas.

Solution : industrialiser le développement des modèles de NLP

Afin d’accélérer les temps de développement et de gestion de nos chatbots pour nos clients, nous avons été amenés à développer notre propre plateforme de NLP. Cette plateforme répond aux principaux besoins que nous avons identifié au fur et à mesure de nos projets et apporte trois gros changements aux outils historiques du marché.

1. Premier changement : une interface centrée sur la gestion de la donnée d’entrainement du modèle de NLP

La maitrise de la qualité des données d’entrainement pour un modèle de NLP est primordiale dans ses performance et sa maintenance à long terme. Là où les plateformes historiques ne permettent de gérer les phrases d’entrainement qu’à travers le prisme de l’intention à laquelle elles appartiennent, nous avons ressenti le besoin de pouvoir analyser et gérer nos données d’entrainement à travers plus de dimensions : intention, nombre d’entités dans une phrase, type et valeur d’entité, origine de la phrase, labels spécifiques, … L’interface que nous avons conçue pour notre plateforme de NLP permet à l’utilisateur d’utiliser un système de filtres et de labels avancés pour trier et gérer ses données au fur et à mesure de ses itérations. Il peut ainsi analyser finement les données d’entrainement de son modèle et effectuer des diagnostiques rapidement en cas de mauvaise performance de son chatbot, …

Notre plateforme permet par ailleurs à l’utilisateur d’ajouter ses phrases d’entrainement en batch. Au moment de cet ajout, il peut choisir d’utiliser un modèle existant pour effectuer un pré-traitement des phrases ou de la ajouter de manière brute pour les traiter manuellement ensuite. Pour simplifier la gestion des phrases d’entrainement, un système de labels est disponible, permettant à l’utilisateur de personnaliser son mode de classification. Il peut par exemple choisir d’appliquer un label « phrases_training » aux phrases qui serviront à l’entrainement de son modèle de NLP et « phrases_tests » à celles qui permettront d’en tester les performances. Une distinction claire sera ainsi effectuée au moment de créer les batchs d’entrainement et de test pour son modèle.

2. Deuxième changement : la capacité d’entrainer différentes versions de modèles de NLP pour un même projet de chatbot

De la même manière qu’il est important de pouvoir gérer proprement les données d’entrainement de son modèle de NLP, il est indispensable dans une logique d’itération et d’amélioration continue de son chatbot de pouvoir entrainer plusieurs versions d’un modèle en ayant la main sur les données et les réglages utilisés pour chaque entrainement. Là où les plateformes historiques du marché ne permettent d’entrainer qu’une seule version de modèle de NLP et ne laissent le choix ni dans les données, ni dans les réglages, nous permettons à l’utilisateur de choisir pour chaque entrainement les phrases, intentions, entités, sets de tests et configurations d’entrainement qu’il souhaite utiliser.

Notre plateforme de NLP est intégrée au moteur open source RASA NLU. L’utilisateur a ainsi la possibilité de construire un pipe d’entrainement pour son modèle complètement personnalisé. Il peut pour cela piocher parmi les composants disponibles nativement sur RASA  (liste des composants NLP RASA).

La création d’un modèle dans notre plateforme se fait ensuite en 4 étapes :

  1. L’utilisateur  choisi une configuration d’entrainement pour son modèle. Ces configurations sont stockées sous forme de fichier json et permettent de configurer un pipe d’entrainement de type RASA.
  2. L’utilisateur sélectionne les données qui serviront à entrainer le modèle de NLP de son chatbot. Pour cela il utilise un système de filtre multi-critères qui lui permet de trier les phrases d’entrainement et de choisir celles qui seront effectivement utilisées pour entrainer le modèle dans cette version du chatbot.
  3. L’utilisateur sélectionne les données qui serviront à tester les performances du modèle de NLP de son chatbot. Pour cela il utilise la même approche que pour sélectionner les données d’entrainement du modèle.
  4. L’utilisateur lance l’entrainement et les tests de son modèle de NLP

3. Troisième changement : la possibilité de mesurer les performances de chaque modèle de NLP

N’importe quel data scientist vous le confirmera, l’entrainement d’un modèle de NLP pour un chatbot est complexe et peut parfois sembler relever de la magie tant le processus d’apprentissage est opaque. Plus de données pour entrainer son chatbot, ne signifie pas forcement une meilleure performance de celui-ci. Il est donc nécessaire pour éviter une régression de son chatbot entre chaque version d’un modèle de NLP de pouvoir mesurer et comparer de manière systématique ses performance en fonction d’indicateurs et d’outils standards (dans le domaine du NLP). Ces outils et indicateurs sont les suivants : rappel, précision, F1Score, matrice de confusion. Les plateformes de chatbots et de NLP historiques du marché ne permettent de tester la performance d’un modèle de NLP que manuellement en tapant chaque phrase de test l’une après l’autre dans une interface qui simule le comportement final de son chatbot. Nous avons pris le parti pour notre plateforme d’intégrer une interface dédiée de mesure et d’analyse des performances des modèles de NLP. L’utilisateur peut ainsi choisir de tester les performances de son modèle contre un ou plusieurs sets de tests. Il a accès aux indicateurs standards de mesure de performance, peut visualiser les résultats sur une matrice de confusion et enfin identifier les entités, valeurs ou phrases posant le plus de problèmes au modèle NLP… et donc à son futur chatbot.

 

Prochaine étape : lancement de la version bêta de notre plateforme de NLP dédiée aux chatbots

À l’heure où tous les analystes tech s’accordent sur la révolution en cours des chatbots dans tous les aspects de l’interaction utilisateur, nous sommes convaincus que cette révolution passera par une industrialisation des méthodes d’entrainement des modèles de NLP associés à ces chatbots. Il s’agit en effet du seul moyen de respecter la promesse faite aux utilisateurs par les interface type chatbot et de leur apporter un niveau de qualité satisfaisant.

Notre plateforme de NLP dédiée aux chatbots s’inscrit dans cette vision et nous sommes heureux d’annoncer son ouverture en bêta privée dès aujourd’hui. Il ne s’agit bien sûr que d’une première étape vers notre objectif plus long terme de devenir la plateforme de NLP leader pour la création de modèles de traitement du langage naturel pour chatbots.

>>> Pour rejoindre notre programme de bêta privée sur notre plateforme de NLP c’est ici : botgen.fr

>>> Pour voir la démo vidéo de notre plateforme de NLP (en Français pour le moment) c’est ici : vidéo démo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *