Évaluer mon App LLM efficacement
L’évaluation des performance d’une LLM app peut être une processus long, et difficile à mener correctement sans outils adaptés. Cette page regroupe quelques conseils pour évaluer sa LLM app et contient de précieuses indications sur l’utilisation de l'outil d'évaluation de Wikit Semantics.
🧑🔬 Quelques conseils pour “bien” tester
Quand effectuer des tests ?
La phase de test sont une phase importante souvent menée en amont du déploiement du chatbot. Pourtant, même après le déploiement, un chatbot bénéficie toujours de tests régulier permettant d’améliorer ses performances, ou de vérifier qu’elles restent stables. Il peut par exemple être utile de mener quelques tests :
- Après l’ajout/la modification de nombreux documents et/ou sources de données
- Après une modification importante du prompt utilisé
- Après changement des modèles utilisés
Cette liste n’est pas exhaustive. L’important est de garder à l’esprit que tout changement important sur les nombreuses briques qui composent le chatbot peut avoir une influence sur son comportement. Quelques tests rapides sont donc souvent utiles pour vérifier que la qualité des réponses produites n’est pas altérée. Mieux vaut donc prévenir que guérir!
Comment tester ?
En posant des questions au bot et en vérifiant la qualité des réponses produites ! Bien que cela puisse sembler évident, on peut en retirer de mauvaises informations si ce n’est pas fait correctement. Voici quelques conseils :
- Poser des questions qui sont proches de la réalité terrain du bot : mettez vous à la place de vos usagers : que vont-ils/elles poser comme question ? Comment les questions seront-elles formulées ? Mots-clefs ou phrases complètes ?
- Poser des question portant sur l’entièreté du périmètre du chatbot : ne surtout pas s’arrêter sur une question que l’ont reformule de trop nombreuses fois, ne pas se bloquer à la première hallucination rencontrée, ne pas ignorer tout un domaine de compétence que le chatbot est sensé supporter.
🧪 Exploiter la fonctionnalité d’évaluation de Wikit Semantics
Afin d’accélérer ce processus, vous pouvez utiliser la fonctionnalité d’évaluation automatique disponible dans la console Wikit Semantics !
Accéder à l’évaluation
- Sélectionnez “Apps LLM” dans le bandeau latéral
- Cliquez sur les 3 points pour ouvrir le menu de l’app LLM que vous souhaitez évaluer, puis cliquez sur “Gérer l’app LLM”
- Sélectionnez l’onglet “Evaluation”
Processus à suivre pour accéder à l’évaluation d’une app LLM
Créer son jeu de données d’évaluation
Pour créer un jeu de données, commencez par cliquer sur “créer un dataset”.
L’écran suivant vous permet de composer vos propres questions, ainsi que les réponses attendues associées.
Écran permettant de créer son jeu de données d’évaluation
❓ Quelques préconisations concernant les questions :
- Posez des questions pertinentes quant à la réalité terrain du chabot : que vont demander vos usag·ers·ères ?
- Assurez vous que les réponses aux questions sont bien présentes dans les sources de données auxquelles l’app LLM a accès.
- Faites en sorte que les questions couvrent un périmètre de demandes assez large (éviter de poser plusieurs fois la même question).
💬 Quelques préconisations concernant les réponses :
- Idéalement et quand c’est possible, paraphrasez le document contenant la réponse.
- Créez des réponses complètes et informatives, et dans un format proche de ce que le LLM doit produire. Évitez les réponses trop courtes (exemple : “En 2015.” ou encore “Contactez Mr Dupont”).
Une fois votre jeu de données constitué, vous n’avez plus qu’à cliquer sur “Lancer l’évaluation” pour évaluer votre app LLM 🧪!
Interpréter ses résultats
Cette section vous aide à comprendre les résultats obtenus de l’évaluation.
Vue de l’écran des résultats.
Sur la partie haute de l’écran, vous pouvez voir le score global attribué à votre app LLM. Ce score, situé entre 0 et 100%, reflète la qualité globale des réponses générées par l’app. Ce score va plus loin que simplement évaluer si la réponse est juste ou fausse : il reflète la proximité de la réponse générée avec la réponse attendue sur le fond (véracité factuelle) ET sur la forme (longueur, structure) !
Sur la partie basse, vous pouvez consulter les réponses générées et les comparer avec vos réponses attendues. Vous pouvez ainsi vérifier directement que le modèle n’omet rien. Un petit indicateur vous indique également si la réponse peut être considérée comme juste ou fausse. Gardez à l’esprit que cette évaluation étant automatique, elle peut parfois faire des erreurs 😉.
Que faire si mes résultats ne sont pas à la hauteur de mes attentes ?
Gardez à l’esprit que la conception d’un chatbot performant et son évaluation sont généralement un processus itératif. Bien que la modification du prompt soit le levier le plus direct pour influer sur les réponses du chatbot, plusieurs choses sont à vérifier avant de l’actionner :
- Observer les réponses générées et comparez les avec les réponses attendues. Certaines réponses attendues ne devraient-elles pas être remplacées par les réponses générées, parfois plus complètes et informatives ?
- Vérifier que la réponse attendue est bien présente dans les documents auxquels l’app LLM à accès. Il s’agit parfois d’un simple oubli d’activation de source de donnée, ou d’upload de document dans la source de donnée.
- Vérifiez la qualité des documents sources et des fragments associés. Un chatbot, avant d’être une IA est avant tout une source de données bien structurée !
- Modifier le prompt afin que la structure de la réponse ressemble mieux à l’attendu (longueur, structure, …)
Pour aller plus loin
Cette section détaille comment est calculé le score d’une réponse.
Le score d’une réponse s’appuie sur la ressemblance de la réponse générée avec la réponse attendue sur le fond ET sur la forme. Pour obtenir un bon score, la réponse générée doit présenter les 2.
La figure suivante vous montre une exemple :
Exemple de résultats auxquels il est possible de s’attendre dans le cas de 3 réponses générées.
L’évaluation automatique de la qualité de réponse s’appuie principalement sur 2 outils :
- la reconnaissance des entités (nom, numéro de téléphone, mail, liens, …) entre la réponse attendue et générées.
- la proximité sémantique entre la réponse attendue et générée (la réponse générée parle-t-elle bien du même sujet que la réponse attendue ? la même terminologie ?
L’agrégation de ces scores fourni une idée globale de la qualité de la réponse vis a vis de ce qui est recherché.