Ce qui reste, ce qui disparaît : adapter vos connaissances en matière de tests Web au nouveau monde des LLM.
Exemple d'application
ThemeBuilder est l'application exemple tout au long de cette série. ThemeBuilder génère un objet JSON contenant une devise et une palette de couleurs générées par un LLM.
- La devise et la palette doivent correspondre au nom, à la description, à l'audience et au ton de la marque saisis.
- La devise ne doit pas être toxique et doit être courte (moins de six mots).
- Le contraste de la palette de couleurs doit être accessible, comme défini par les consignes minimales WCAG, avec un rapport de contraste de 4,5:1.
Évaluations objectives et subjectives
Comment tester que ThemeBuilder fonctionne comme prévu ?
Les évaluations basées sur des règles (parfois appelées évaluations exactes) sont des tests objectifs avec une réponse binaire (correcte ou incorrecte). Elles sont idéales pour les questions sur le format des données, le rapport de contraste ou d'autres questions ayant une réponse définitive. Vous pouvez implémenter ces tests avec du code régulier et programmatique.
Certains contrôles sont objectifs et donnent une réponse binaire (correct ou incorrect). Elles sont idéales pour les questions sur le format des données, le rapport de contraste ou d'autres questions ayant une réponse définitive. Vous pouvez implémenter ces tests avec du code programmatique standard. Elles sont appelées évaluations basées sur des règles ou évaluations exactes.
Exemple :
// Example rule-based eval: data format
function evaluateFormat(appOutput) {
// Check if JSON is valid, colors are hex, no empty strings, motto is 6 words or fewer
// Use deterministic tools like zod for schema validation
return "PASS"; // or "FAIL"
}
D'autres vérifications sont subjectives, comme l'alignement de la devise et de la palette de couleurs avec la marque et l'audience. Bien que la détection de la toxicité soit une tâche de classification, elle est également subjective, car elle implique un jugement.
Bien que les tests subjectifs impliquent également une classification, la gamme de ce qui est correct et incorrect peut varier considérablement. Par exemple, évaluez l'alignement de la devise et de la palette de couleurs avec la marque et l'audience. La détection de la toxicité est également subjective.
Bien que l'évaluation des qualités subjectives puisse sembler être une tâche réservée aux experts humains, vous pouvez automatiser ces tests à grande échelle grâce à la technique LLM-as-a-judge.
Les juges LLM sont rapides, faciles à utiliser et relativement bon marché. Ils sont devenus l'une des méthodes les plus courantes, voire la plus courante, pour évaluer les modèles d'IA en production.
— Ingénierie de l'IA, Chip Huyen
Exemple :
// Example LLM-as-a-judge eval for a subjective quality like brand fit
async function evalBrandFit(userInput, appOutput) {
const brandPrompt = `You are an expert brand strategist. Evaluate the
following generated motto for the company whose target audience is
${userInput.audience}, and who describes itself as
${userInput.companyDescription}: ${appOutput.motto}`
// Call the LLM judge
const evalResult = evalWithLLM(brandPrompt);
// Return the consolidated results
return {
mottoBrandFit: evalResult,
};
}
// Helper that communicates with the LLM API
async function evalWithLLM(prompt) {
// ... Call LLM with the prompt ...
// ... Parse the resulting judgement ("PASS" or "FAIL") + rationale
return {
status: "PASS",
rationale: "This motto perfectly captures the brand and tone, because..."
};
}
Le modèle imite le jugement humain. Vous devez donc indiquer au juge exactement ce que vous recherchez. Pour ce faire, vous pouvez fournir une grille d'évaluation au juge.
Une grille d'évaluation est un ensemble structuré de critères ou de consignes de notation qu'un juge (humain ou IA) utilise pour évaluer un résultat. Il fournit un cadre cohérent pour évaluer les qualités subjectives lors de chaque évaluation.
Autres types d'évaluations
Vous pouvez utiliser des évaluations basées sur des références ou par paires.
Basé sur une référence
Elles mesurent la similarité avec une réponse de vérité terrain. Utilisez-les pour des tâches telles que la traduction ou les faits techniques pour lesquels une bonne réponse est connue.
Par paire
Un juge peut attribuer un score PASS à deux versions différentes, même si l'une est meilleure que l'autre. L'évaluation par paire résout ce problème en fournissant au juge deux résultats (A et B) pour la même entrée et en lui demandant de choisir un gagnant.
Par exemple, imaginez que vous évaluez une devise pour un café convivial :
Input: "Friendly cafe"
Pointwise evaluation:
Output A: "Come get coffee." // PASS
Output B: "Your morning smile in a cup." // PASS
2 PASS. Unconclusive!
Pairwise evaluation:
Output B wins. It captures the "friendly" tone more effectively than the generic Output A.
Utilisez l'évaluation par paire pour sélectionner la version de votre modèle que vous allez déployer ou pour comparer deux requêtes différentes.
Tests Web standards et évaluations de l'IA
Nous partons du principe que vous, lecteur de ce cours, savez déjà comment tester un site Web et une application Web. Lorsque vous ajoutez l'IA, vous devez modifier votre modèle mental existant. Utilisez l'évaluation de l'IA pour effectuer les actions suivantes :
- Effectuez des tests de régression : lorsque vous modifiez votre requête ou votre modèle, l'application a-t-elle cessé de fonctionner ? Obtenez-vous des palettes de couleurs cassées ou des devises toxiques ? Contrairement à une application Web où une pause est une fonctionnalité logicielle, vous vérifiez ici si la sortie du LLM est de haute qualité et sûre. Cela implique une certaine subjectivité.
- Optimisez votre application : votre application s'améliore-t-elle ? Améliorez-vous les métriques souhaitées ? Par exemple, obtenez-vous plus de devises conformes à votre marque sans augmenter la toxicité ?
- Choisir le bon modèle : existe-t-il un modèle plus adapté à votre cas d'utilisation ? Avant l'IA, vous choisissiez votre pile Web une seule fois. Avec l'IA, vous devez régulièrement comparer les modèles pour identifier les opportunités de passer à un modèle plus performant (et potentiellement moins cher).
Superposer vos tests
Une base de code saine doit comporter plusieurs niveaux de tests : tests unitaires, tests de régression et d'intégration, et tests de bout en bout. Vos évaluations doivent également être stratifiées.
- Utilisez des évaluations basées sur des règles combinées à des évaluations LLM-as-a-judge pour automatiser entièrement les tests de votre application d'IA. Vous pouvez ainsi détecter les problèmes lors du développement quotidien et du CI/CD, et vérifier que vos versions candidates répondent à votre niveau de qualité.
- Exécutez des tests d'intégration et de régression pour vérifier la qualité à grande échelle.
- Exécutez des évaluations humaines manuelles en tant que test d'acceptation.
En plus de ces évaluations que vous exécutez au moment de la compilation, surveillez le trafic de production avec des évaluations d'exécution. Ils peuvent vous aider à identifier les problèmes de qualité ou de sécurité dans les entrées du monde réel.
Continuez à faire évoluer vos évaluations
Les évaluations doivent évoluer en même temps que votre application. À mesure que vos modèles deviennent plus intelligents, mettez à jour vos anciennes évaluations.
Ajoutez régulièrement des exemples complexes à vos ensembles de données de test, tels que de nouveaux cas extrêmes ou des saisies utilisateur surprenantes que vous trouvez en production.
Que mesurent vos évaluations ?
Avant de concevoir des évaluations, vous devez comprendre comment évaluer une sortie. Vous devez connaître certains termes.
Les critères sont les règles et les dimensions à tester. Par exemple, l'alignement de la marque, la toxicité et l'accessibilité.
Chaque critère d'évaluation est mesuré par une métrique. Une métrique est un score unique et concret qui mesure la sortie du modèle par rapport au critère. Ce score peut être une valeur binaire ou une valeur comprise dans une plage qui mesure la distance entre la sortie et les attentes de l'évaluateur.
Il est possible de mesurer le même critère avec différents types de métriques. Par exemple, pour l'alignement de la marque :
- "Cette devise est-elle conforme à la marque ?" La métrique est
PASSouFAIL. - "Sur une échelle de 1 à 5, dans quelle mesure la devise correspond-elle à la marque ?" Cette métrique est un nombre entier compris entre 1 et 5.
Un évaluateur est le code ou le modèle qui évalue le critère. Les évaluateurs déterminent les métriques.