chimera-give-the-denominator
Eine Rate ohne ihren Nenner und ihre Zusammensetzung führt in die Irre, während jede Ziffer stimmt — nenne n, und nenne, wie viel des Zählers bereits bekanntes Rauschen ist.
Verliehen von der Person, die die Karte gelesen hat — nicht von der Datei über sich selbst behauptet. Eine Karte, die der Agent während eines Laufs mit nicht vertrauenswürdigen Inhalten destilliert, kommt kontaminiert zur Welt und wird bis zur Prüfung zurückgehalten, bevor sie jemals abgerufen wird.
Wann sie in den Sinn kommt
- eine Fehlerrate melden
- eine Prozentzahl in einer Zusammenfassung
- die Zahl wirkt alarmierend
- vorher und nachher vergleichen
- ein Benchmark-Ergebnis aufschreiben
In Vermeiden und Prüfen steckt meist der Wert. Tun ist der Abschnitt, den alle schreiben.
Der Kartentext oben ist eine Übersetzung. Das englische Original ist das, was die CLI importiert, was der Agent zur Laufzeit liest und was der Hash unten bezeugt.
Auslöser
Sie sind dabei, eine Rate, einen Prozentsatz oder eine Anzahl in einen Bericht, eine Commit-Nachricht, eine Benchmark-Tabelle oder eine Nachricht an jemanden zu setzen, der danach handeln wird. „34 % der Läufe sind gescheitert." „Fehler um das Dreifache gestiegen." „Coverage gesunken."
Das gilt nicht für eine Zahl, die der Leser bereits zerlegen kann: eine einzelne gemessene Latenz, eine Versionsnummer, eine Anzahl Dateien in einem Diff, den er sehen kann. Das Risiko betrifft speziell einen Aggregatwert — eine Größe, berechnet, indem eine von Ihnen gewählte Menge durch eine andere von Ihnen gewählte Menge geteilt wird, wobei beide Entscheidungen im Satz unsichtbar sind.
Tun
- Schreiben Sie die Rohzahlen immer neben die Rate:
34% (17/50 runs). Wenn Sie den Nenner nicht nennen können, wissen Sie noch nicht, was Sie gemessen haben. - Sagen Sie, welcher Nenner. Begonnene Läufe und abgeschlossene Läufe sind verschiedene Mengen, und durch die abgeschlossenen zu teilen löscht still die Abstürze — genau die Population, wegen der Sie hingeschaut haben.
- Zerlegen Sie den Zähler nach Ursache, bevor Sie ihn veröffentlichen. Wie viele dieser 17
Fehlschläge sind ein bereits offenes Issue, ein bekanntes flakiges Provider-Timeout, eine
Fixture, die auf dieser Maschine scheitert? Berichten Sie die Aufteilung:
17 failed — 14 are the known connect timeout, 3 unexplained. - Führen Sie dieselbe Messung gegen eine unveränderte Baseline aus und subtrahieren Sie. Die Zahl,
auf die es ankommt, ist der Teil, der auf
mainnicht überlebt. - Wenn n klein genug ist, dass eine weitere Stichprobe die Schlagzeilenzahl um mehrere Punkte verschieben würde, setzen Sie diesen Satz in den Bericht statt des Prozentsatzes.
Vermeiden
"failure rate 34%" — wahr, und es lädt den Leser ein, einen Tag mit einem Timeout zu
verbringen, das er letzte Woche schon gemeldet hat. Schreiben Sie
"17/50 failed; 14 are the ollama connect timeout (issue open), 3 are new", und der Tag wird auf
die 3 verwendet.
Vermeiden Sie den Survivorship-Nenner. rate = failures / completed ist der Klassiker: Die Läufe,
die starben, bevor sie eine Zeile produzierten, fehlen auf beiden Seiten, also verbessert sich die
Kennzahl, während das System schlechter wird.
Vermeiden Sie Prozentsätze über einem Nenner unter etwa zwanzig ohne angehängtes n. 50% → 67% ist
eine echte Verbesserung, oder es ist ein Lauf von dreien, der umkippt, und die beiden sind auf der
Seite nicht zu unterscheiden.
Chimera hat einen Widerruf genau dieser Form veröffentlicht, und er ist der Grund, warum es diese
Karte gibt. bench/learning_lift/RESULTS.md meldete eine signifikante Transferlücke innerhalb der
Familie von +6,7 %, und Lauf 7 — dieselbe Messung bei ausreichender Power — hielt sie nicht. Die
Zahl war echt, die Arithmetik war richtig, und sie war trotzdem am besten als
Kleinstichproben-Schwankung erklärt. Möglich wurde der Widerruf dadurch, dass die Anzahl der Läufe
von Anfang an neben dem Prozentsatz veröffentlicht worden war. Hätte die Seite nur „+6,7 %"
getragen, hätte es nichts erneut zu prüfen gegeben, und der Befund wäre still zu einer Tatsache
geworden.
Prüfen
Geben Sie den Satz jemandem, der Ihre Daten nicht sehen kann, und bitten Sie ihn, die Rohzahlen zu rekonstruieren. Wenn er das nicht kann, ist der Satz unvollständig — das ist ein binärer Test und er dauert zehn Sekunden.
Zweite Prüfung, wenn die Zahl eine Entscheidung treibt: Führen Sie die Messung auf einer unveränderten Baseline erneut aus. Welcher Anteil des Zählers sich dort reproduziert, handelt nicht von Ihrer Änderung, und jede darauf gebaute Behauptung handelt vom Harness.
Risiko
Auf alles angewandt macht das lesbare Prosa zu einem Klammern-Sumpf, und Leser fangen an, die Klammern zu überspringen — was schlimmer ist als das ursprüngliche Problem, weil die Nenner jetzt auf der Seite stehen und ungelesen bleiben. Reservieren Sie die vollständige Zerlegung für Zahlen, nach denen jemand handeln wird.
Das schärfere Risiko läuft in die andere Richtung: Die Aufteilung nach Ursache ist auch das Werkzeug, um ein echtes Problem klein aussehen zu lassen. Vierzehn Fehlschläge als „bekanntes Rauschen" zu etikettieren ist nur dann ehrlich, wenn das Etikett vergeben wurde, bevor Sie sahen, in welche Richtung es hilft. Wenn Sie sich dabei ertappen, den „bekannt"-Eimer beim Schreiben der Zusammenfassung zu verbreitern, war die Zahl die Schlussfolgerung, nicht der Beleg.
Ein genannter Nenner rettet auch keinen schlechten. 2/3 (n=3) sind immer noch drei Läufe; der
Nenner macht die Schwäche sichtbar, statt sie zu beheben.
Verwenden
Die Karte ist Daten. Klonen Sie das Repository und importieren Sie sie über den Pfad — was über das Netz kommt, gilt als kontaminiert und wird bis zur Freigabe zurückgehalten. Das ist das gewünschte Verhalten und der Grund, warum es hier keinen Einzeiler-Installer gibt.
git clone https://github.com/brcampidelli/chimera-agent.gitchimera skills-import chimera-agent/skills/chimera-give-the-denominator/SKILL.mdIntegrität
SHA-256 der Datei in der veröffentlichten Fassung. Wer sie importiert, kann prüfen, dass das Empfangene dem entspricht, was diese Seite gezeigt hat.
a95d8e10515e848efd16e1566d93454164e85d57a7dcb8aa35e7a2e593790766