Choisir les vérifications
Les types d'évaluateur, à quoi sert chacun, et comment un cas finit par réussir ou échouer.
Un évaluateur est une vérification appliquée à chaque cas. Vous les choisissez sur le dataset, et vous pouvez les surcharger cas par cas.
Ils se répartissent en cinq groupes, et la distinction utile est économique et certain contre coûteux et subjectif.
Comportemental : économique, déterministe
Des vérifications mécaniques, sans aucun modèle. Elles ne coûtent rien et donnent toujours la même réponse.
- Type de sortie correct : est-ce revenu dans la forme attendue ?
- Latence sous le seuil : était-ce assez rapide ?
- Outils utilisés : a-t-il appelé les outils qu'il devait appeler ?
Outils utilisés est plus utile qu'il n'en a l'air. Réglez-le pour vérifier que l'agent a bien cherché dans votre collection au lieu de répondre de mémoire, et vous attrapez la panne silencieuse la plus fréquente de toutes. Il s'inverse aussi : réussir quand les outils ne sont pas appelés, ce qui est la façon de vérifier un garde-fou (« cet agent ne doit jamais envoyer d'e-mail »).
Commencez ici. Ces vérifications sont gratuites et attrapent de vrais problèmes.
Structuré : est-ce fidèle aux documents ?
Pour les agents qui répondent à partir d'une collection. Ils décomposent la réponse et la confrontent au matériel retrouvé.
- Fidélité : chaque affirmation est-elle étayée par les documents, ou a-t-il brodé ?
- Pertinence de la réponse : répond-il vraiment à la question posée ?
- Précision du contexte et Rappel du contexte : la recherche a-t-elle trouvé le bon matériel, et en quantité suffisante ?
Fidélité est celle qu'il faut lancer sur tout agent dont le métier est de répondre à partir de vos documents. C'est la vérification de l'invention assurée, la panne que les gens redoutent le plus et testent le moins.
Les deux vérifications de contexte sont des outils de diagnostic : quand la fidélité est bonne mais que les réponses restent maigres, elles vous disent si le problème vient de l'agent ou de la collection sous-jacente.
Heuristique : un juge avec une grille
Un modèle note chaque réponse selon une grille générale.
- Complétude : a-t-il couvert ce qu'il devait couvrir ?
- Sûreté : y a-t-il quoi que ce soit de problématique ?
Rapide et qualitatif. Traitez ces scores comme un signal plutôt que comme une mesure : ce sont des opinions, et elles oscillent un peu d'une exécution à l'autre.
Tâche données : l'artefact est-il sorti correct ?
Pour les agents qui produisent des tableaux et des graphiques, ces vérifications comparent ce qui est sorti à une forme attendue : forme du tableau, colonnes, schéma, valeurs, type de graphique, plus un juge global de qualité de l'analyse de données.
Pertinent uniquement si votre agent produit des artefacts de données. Ignorez-les sinon.
Personnalisé : votre propre critère
Ajouter un évaluateur personnalisé vous laisse écrire la vérification vous-même. Un Libellé (qui devient l'en-tête de colonne dans les résultats) et un Critère en langage courant.
C'est dans le critère que se trouve le travail. Un critère vague produit des scores sans signification :
Faible : La réponse est de bonne qualité.
Solide : Emploie notre terminologie maison : « adhérent » et non « utilisateur », « formule » et non « pack ». Ne promet jamais de délai précis. Se termine par une prochaine étape que le lecteur peut suivre.
La boîte de dialogue suggère d'ancrer l'échelle, et ça vaut la peine de le faire. Reprenons le même critère en disant à quoi ressemblent les deux extrémités :
Ancré : 0 = emploie « utilisateur » ou « pack », ou promet un délai. 1 = emploie « adhérent » et « formule » partout, ne promet aucun délai, et se termine par une prochaine étape.
Un juge à qui on a dit à quoi ressemblent 0 et 1 est bien plus constant qu'un juge laissé libre d'interpréter « bon ».
Ajoutez-en autant que nécessaire, chacun avec un libellé distinct.
Comment un cas réussit ou échoue
Ça vaut la peine de le comprendre, parce que le chiffre affiché en dépend.
Chaque vérification produit un score de 0 à 1, et certaines ont un seuil : score égal ou supérieur, la vérification est réussie. Une vérification sans seuil est notée et affichée mais n'a pas de barre de réussite, et les résultats l'indiquent comme telle plutôt que de faire semblant.
Un cas réussit quand toutes ses vérifications bloquantes réussissent. Les vérifications ignorées ou en erreur ne comptent pas contre lui.
Bloquante est le mot important. Une vérification peut être marquée comme informative : elle est notée, affichée et suivie dans le temps, mais elle ne fait jamais échouer un cas. Servez-vous-en pour ce que vous voulez surveiller sans en dépendre, comme un juge stylistique dont vous ne voulez pas que l'opinion décide si une exécution est au vert.
Les répétitions, si vous lancez un cas plusieurs fois, prennent le score moyen, et le cas ne réussit que si toutes les répétitions réussissent. C'est délibéré : une réponse qui passe deux fois sur trois n'est pas une réponse qui passe, c'est une réponse intermittente, et l'intermittence est un signal, pas du bruit.
Choisir un ensemble raisonnable
Pour la plupart des agents, commencez par :
- Outils utilisés, pour confirmer qu'il cherche au lieu de deviner
- Fidélité, s'il répond à partir de documents
- Un juge personnalisé pour ce que « juste » veut dire dans votre métier
Trois vérifications que vous comprenez valent mieux que neuf que vous ne comprenez pas. Vous pouvez dire ce que signifie un échec, et c'est tout l'objectif.
Ajoutez-en d'autres quand un vrai échec passe à travers celles que vous avez, et préférez informatif à bloquant pour tout ce dont vous n'êtes pas encore sûr.
Chaque vérification à base de modèle (structuré, heuristique, personnalisé, et le juge d'analyse de données) coûte un appel de modèle par cas, en plus de l'exécution de l'agent lui-même. Vingt cas avec quatre juges, cela fait quatre-vingts appels de juge par exécution.
La vue Coût détaille la dépense d'évaluation par agent, par type (l'agent testé, la notation, les synthèses) et par jour. Ça vaut un coup d'œil avant de mettre un gros dataset sur une planification fréquente.