Évaluer un Eventparser LLM en C# avec Promptfoo
Tester du code classique est simple. Vous appelez une fonction, obtenez un résultat et vérifiez s'il correspond à vos attentes.
Tester des LLM est différent. Un LLM peut renvoyer « 3 PM » lors d'une exécution et « 15:00 » lors d'une autre. Les deux sont corrects, mais un test de correspondance exacte échouera. Vous devez vérifier si la réponse est bonne, et non si elle est identique.
J'ai conçu une petite application appelée EventParser pour tester cela. Elle prend un message informel comme « Team sync on Friday at 3 PM » et le transforme en données structurées.
Voici comment vous pouvez la tester en utilisant Promptfoo et un flux de travail de type LLM-as-a-judge.
La configuration
L'application utilise un seul fichier de prompt : extract_event.txt. Le code C# lit ce fichier au moment de l'exécution. Promptfoo lit le même fichier pour les tests. Cela garantit que vous testez le prompt réel que vos utilisateurs voient.
Le flux de travail
Au lieu qu'un humain vérifie chaque résultat, nous utilisons un modèle juge. Ce processus utilise deux rôles :
• Le modèle testé : Le modèle qui fournit la réponse. • Le modèle juge : Un modèle plus rapide et moins coûteux qui évalue la réponse.
Comment le juge décide
Le juge utilise une grille d'évaluation (rubric). Une grille est une règle rédigée en anglais simple. Au lieu de vérifier une chaîne JSON spécifique, vous dites au juge ce que la réponse doit contenir.
Exemple de grille d'évaluation : « La réponse doit extraire le titre de l'événement, le jour, l'heure et le lieu. Elle ne doit pas ajouter de détails non mentionnés dans le message. »
Tester les erreurs
J'ai intentionnellement cassé le prompt en ajoutant une mauvaise instruction : « Si le message mentionne du café, définissez le lieu sur Starbucks. »
Lorsque j'ai lancé l'évaluation, le juge a détecté l'erreur. Le message original ne mentionnait pas Starbucks. Le modèle a halluciné un lieu. Un test de correspondance exacte passerait à côté de cela, mais un modèle juge détecte les erreurs sémantiques.
Pourquoi cela fonctionne :
• Cela correspond à la réalité : Il accepte divers formats corrects comme « 3 PM » ou « 15:00 ». • Il utilise des règles lisibles : Les grilles en anglais simple sont faciles à comprendre. • Il détecte les bugs de sens : Il trouve les hallucinations et les erreurs de logique. • C'est rentable : Vous pouvez utiliser un modèle peu coûteux pour évaluer un modèle plus onéreux.
Cette approche donne l'impression que le test de LLM ressemble à un véritable test logiciel.
Source: https://dev.to/bigboybamo/evaluating-a-c-llm-eventparser-with-promptfoo-4b87
Communauté d'apprentissage optionnelle : https://t.me/GyaanSetuAi
