Aller au contenu

Skills

chimera-when-two-results-contradict-suspect-the-apparatus

Quand deux de vos propres mesures divergent d'une marge qu'aucun mécanisme ne pourrait produire, le défaut est dans l'instrument. Auditez le harness avant de bâtir une théorie dessus.

PatronProvenance: cleanStatut: activev0.1.0 · Apache-2.0

Conférée par la personne qui a relu la fiche, et non revendiquée par le fichier lui-même. Une fiche que l'agent distille au cours d'une exécution ayant consommé du contenu non fiable naît contaminée et reste en attente de relecture avant d'être un jour récupérée.

Quand elle vient à l'esprit

  • deux runs se contredisent radicalement
  • le plus petit run a obtenu un meilleur score
  • une métrique évolue dans un sens impossible
  • expliquer un résultat de benchmark surprenant

C'est dans À éviter et Vérifier que se trouve d'ordinaire la valeur. À faire est la section que tout le monde écrit.

Le corps de la fiche ci-dessus est une traduction. L'original anglais est ce que la CLI importe, ce que l'agent lit à l'exécution et ce que l'empreinte ci-dessous atteste.

Déclencheur

Deux mesures que vous avez produites vous-même divergent d'un écart que vous ne pouvez pas expliquer : l'exécution avec une fraction des données obtient un meilleur score que la grande ; un composant affiche 0 % sur une tâche qu'une mesure voisine le montre accomplir couramment ; un changement déplace un chiffre dans la direction qu'il rend impossible.

Le déclencheur est la taille de l'écart, pas son existence. Deux exécutions qui diffèrent à l'intérieur de leur bande de bruit relèvent d'une question d'échantillonnage, et cette carte n'a rien à en dire. Elle ne s'applique pas non plus à votre chiffre face au chiffre publié par quelqu'un d'autre — données, prompts, graines et versions différentes expliquent cela à longueur de journée, et traiter ce cas comme une alarme sur l'appareil de mesure vous fera auditer un harness qui va très bien. Le cas visé ici est : les deux côtés de la contradiction sont les vôtres, et les deux ne peuvent pas être vrais.

À faire

  1. Écrivez d'abord la contradiction, en deux lignes : les deux chiffres, et les commandes et commits exacts qui les ont produits. Cessez de théoriser tant que ce n'est pas sur la page — une contradiction non écrite se ramollit en énigme en l'espace d'un paragraphe environ.
  2. Comparez les deux exécutions avant de raisonner dessus : configuration, commit, chemin de code, hash du fichier d'entrée, la version du scorer. Préférez un diff que vous pouvez lire à une explication que vous pouvez construire.
  3. Faites passer des réponses connues dans la mesure elle-même. Faites passer les solutions de référence dans votre correcteur avant de faire confiance au moindre score de modèle. Si une réponse connue comme correcte est notée en échec, le défaut est dans le correcteur et tous les chiffres qu'il a produits sont nuls, y compris celui qui vous plaisait.
  4. Ce n'est qu'une fois l'appareil de mesure sorti indemne de l'étape 3 que vous dépensez de l'effort à expliquer le phénomène.
  5. Si l'appareil était en cause, rétractez les chiffres au lieu de les réinterpréter. Un score issu d'un correcteur cassé n'est pas une estimation bruitée de la vérité ; il est sans rapport avec elle.

À éviter

Construire plusieurs hypothèses soigneuses pour expliquer les deux chiffres, puis les tester rigoureusement. C'est la version coûteuse de cette erreur : la rigueur est réelle, l'effort est réel, et tout cela est mesuré sur un artefact. La qualité de la méthode en aval d'un instrument cassé ne fait que vous mener à la mauvaise réponse avec de meilleures barres d'erreur.

Évitez de réconcilier par l'arithmétique — faire la moyenne des deux, ou garder discrètement celui qui correspond à ce que vous attendiez. Évitez un correcteur à monde fermé, qui est le bug précis produisant le plus souvent cette forme :


# and the score then reads as "the model cannot do this at all"
CITIES = {"lisbon", "porto"}
ok = answer.lower() in CITIES

# yes — grade against a rule that the real world can satisfy
ok = geocode(answer) == geocode(expected)

Et évitez la formule « ça doit être un hasard » comme point d'arrêt. C'est une hypothèse sur l'appareil de mesure, donc elle est testable — testez-la ou abandonnez-la.

Vérifier

Une phrase, à voix haute, avec une magnitude dedans : « X produit un écart de cette taille parce que… ». Si vous ne pouvez pas la terminer — « dix fois moins de données produisant un meilleur score parce que… » — l'instrument est le suspect et l'étape 3 est la suite.

Puis la question binaire : les réponses de référence ont-elles passé le correcteur ? Tout élément de référence que le correcteur marque comme faux est un plafond sur ce que la mesure pouvait signifier, et la fraction de ceux qui échouent est le premier chiffre à rapporter.

Risque

Il arrive que la contradiction soit réelle et que le résultat surprenant soit la découverte. Un réflexe de blâmer le harness les jette — et, pire, c'est exactement le geste disponible à quiconque veut faire disparaître une mesure gênante. Alors bornez-le : la vérification de l'appareil est une liste fixe et courte (comparer les exécutions, passer les réponses de référence dans le correcteur, confirmer les hashs d'entrée). Si cette liste revient propre, croyez la contradiction et allez enquêter sur le phénomène. Cette carte ordonne le travail ; elle ne choisit pas la réponse.

Le second coût est récursif. Du code neuf écrit pour vérifier l'ancien code est une chose de plus qui peut être fausse, et un script d'audit bogué vient de produire un troisième chiffre. Préférez des vérifications qui utilisent des artefacts que vous avez déjà et des entrées dont les réponses sont connues, plutôt qu'un harness tout neuf écrit sous la pression d'une anomalie.

L'utiliser

La fiche est une donnée. Clonez le dépôt et importez-la par son chemin — ce qui arrive par le réseau est traité comme contaminé et retenu pour approbation, ce qui est le comportement souhaitable et la raison pour laquelle il n'y a pas d'installateur en une ligne ici.

git clone https://github.com/brcampidelli/chimera-agent.git
chimera skills-import chimera-agent/skills/chimera-when-two-results-contradict-suspect-the-apparatus/SKILL.md

Intégrité

SHA-256 du fichier tel qu'il est publié. Qui l'importe peut vérifier que ce qu'il a reçu correspond à ce que cette page affichait.

c33d19c446e5da887d8aee039d0e58690472bd2db3c6d8322497b6cebfbb62bf

Lire la fiche dans le dépôt