Plateforme
Templates
Tarifs
Ressources
DocumentationAPI
Contact
Se connecter
Commencer
FR
EN

partager

Comment écrire des tests automatiques pour un chatbot ?

Apprenez comment mettre en place des tests automatiques pour améliorer les performances de votre chatbot.

Parution le 

8/10/2021

, par 

Martin Caussanel

Introduction

Tout au long de l'évolution d'un chatbot , des intentions apparaissent, disparaissent, modifient leur champs lexical, gagnent en phrases d'entraînements ...

Chacune de ces modifications peut améliorer la détection de certaines intentions tout comme elle peut en affaiblir d'autres, c'est pourquoi le meilleur moyen de détecter ces baisses de performances est de mettre en place des tests automatiques.

‍

Cet article vous apprendra :

  • Ce qu'est un test automatique
  • Comment et à quelle fréquence mettre à jour et lancer ses tests automatiques

‍

Qu'est ce qu'un test automatique ?

Dans votre console Prisme.ai, les tests automatiques ou tests non régression se trouvent dans l'onglet "Tests de non régression" de l'écran "Apprentissage Machine".

‍

Ces tests permettent d'enregistrer différents exemples de phrases utilisateurs avec l'intention attendue.

Une fois quelques tests enregistrés, vous pouvez les lancer en cliquant sur le bouton en haut à droite.

‍

Méthodologie

‍

Régularité

Afin de ne pas accumuler trop de retard sur les tests et donc manquer d'information sur l'état actuel du chatbot, la première règle à respecter est de mettre à jour les tests automatiques pour chaque nouvelle intention.

Une fois cette habitude prise, elle aura bien plus de bénéfices qu'elle ne coûte d'efforts, étant donné qu'il ne faut pas plus que quelques minutes pour ajouter une dizaine de tests de non régression.

‍

De la même manière, pensez à lancer vos tests de non régression à chaque mise à jour de votre chatbot.

Diversité

Afin d'éprouver la souplesse de votre moteur NLU devant des exemples réels de messages utilisateur ayant des formulations très différentes, il est important d'enregistrer plusieurs variantes de phrases pour chaque intention.

Par exemple, dans la capture d'écran ci-dessus, on voit différents verbes utilisés dans chaque phrase. Mais cette diversité reste simpliste, et serait même insuffisante s'il s'agissait d'une intention possédant une grosse base de connaissances avec plusieurs dizaines voir une centaine de phrases d'entraînement.

Par exemple, on pourrait aussi ajouter :

  • où est ce qu'il y a des producteurs de fraise
  • Points de vente oeufs frais à toulouse

Étant donné que ces 2 variantes ne commençent pas par "je" suivi d'un verbe comme dans la capture d'écran, elles participent à évaluer la souplesse de votre moteur NLU pour cette intention.

‍

Par ailleurs, une question qui peut souvent revenir sur ces tests automatiques est la suivante : Est-ce que mes phrases de tests doivent apparaître dans les phrases d'entraînement, ou non ?

Il faut de tout. Un copier coller d'une phrase d'entraînement devrait toujours fonctionner, à moins d'un gros défaut dans le dataset d'entraînement. Il est donc bon de copier/coller quelques exemples pour s'assurer que ces immanquables fonctionnent toujours, mais les tests les plus intéressants sont ceux qui varient des phrases d'entraînement.

Plus un test est différent de la plupart des phrases d'entraînement, plus il évalue la souplesse du moteur NLU face à l'inconnu, comme il est susceptible de le rencontrer une fois en production.

Toutes les intentions devraient avoir des tests de non régression un peu différents des phrases d'entraînement (i.e un verbe différent), mais il n'est pas toujours nécessaire d'aller chercher de la complexité dans ces variantes.

Une intention aura un modèle souple si elle possède une grande variété de phrases d'entraînements, mais en fonction de l'importance de cette intention, elle n'aura pas forcément fait l'objet d'assez de travail pour constituer cette base conséquente de phrases d'entraînements. Inutile donc de gaspiller du temps à tester profondément une intention qui apparaît comme secondaire dans vos parcours.

A l'inverse, concentrez vos efforts sur l'enrichissement des phrases d'entraînement et tests de non régression des intentions les plus utilisées par vos usagers !

‍

Quantité

Tout comme pour la diversité, la quantité de tests de non régression par intention doit être estimée en fonction de l'importance de l'intention, et souvent par extension de la quantité de phrases d'entraînement.

Fixez vous des règles simples :

  1. Je crée une intention dont je ne suis pas encore certains de l'importance
  2. Je l'entraîne avec 5 phrases d'entraînement minimum
  3. J'ajoute 2 ou 3 tests de non régressions tirés entièrement ou non des phrases d'entraînement

Si l'intention reçoit beaucoup d'activité, vous irez naturellement enrichir ses phrases d'entraînement en fonction des messages utilisateurs non traités (onglet Entraînement de l'écran Apprentissage machine). Après chaque nouvelle itération sur ces phrases d'entraînement, sélectionnez les phrases clés qui reviennent souvent, et ajoutez des variantes à vos tests de non régression.

‍

Résolution des régressions

Une fois votre chatbot en production, avec des intentions et tests de non régression en constante évolution, des régressions peuvent apparaître suite à l'une de ces mises à jour. Vous le constaterez très simplement par une chute du pourcentage de réussite de vos tests.

Avant tout, estimez l'importance de cette chute. S'il s'agit d'un chatbot avec 200 tests de non régression sur une vingtaine d'intentions, une régression sur un test ou deux n'est peut-être pas si dramatique. En revanche, elle le serait beaucoup plus si 10 tests venaient à échouer sur un total de 30.

‍

Lorsqu'un test sur une intention échoue, il y a 2 grandes catégories de problème qui peuvent en être à la source :

  • D'autres intentions ont été créées ou enrichies en utilisant une partie importante du champs lexical de l'intention subissant la régression, déplaçant ainsi l'identité de ce champs lexical en dehors de son intention d'origine
  • La même intention a été enrichie, mais avec des phrases d'entraînement trop différentes de ce pour quoi l'intention était initialement conçue

‍

Dans l'un ou l'autre cas, il y a un souci de cohérence entre différentes phrases d'entraînement.

S'il s'agit de phrases d'entraînement très proches bien qu'elles soient d'intentions différentes, c'est peut-être le signe que ces intentions devraient être regroupées en une.

Et si un test (qui était jusque là fonctionnel) échoue après avoir enrichi la même intention que celle visée par le test, c'est peut être un signe que les nouvelles phrases devraient faire l'objet d'une intention séparée, et qu'elles risquent de brouiller l'indentité de l'intention au sein du moteur NLU.

‍

PlateformeCas d'usageTarifs
BlogDocumentationRecrutement
Se connecterBlagnac, France
CGUMentions LégalesPolitique de confidentialité

Tous droits réservés Prisme.ai - 2016-2022 - Gogowego SAS - Made In Francecréation de site internet polish_ studio