chimera-give-the-denominator
Доля без знаменателя и без его состава вводит в заблуждение, хотя каждая цифра остаётся верной: укажите n и укажите, какая часть числителя — уже известный шум.
Присвоено человеком, который прочитал карточку, а не заявлено файлом о самом себе. Карточка, которую агент выводит во время запуска, поглотившего недоверенное содержимое, рождается заражённой и удерживается на разбор, прежде чем её вообще извлекут.
Когда это вспоминается
- сообщаю долю падений
- процент в сводке
- цифра выглядит пугающе
- сравниваю до и после изменения
- пишу результат бенчмарка
Ценность обычно лежит в разделах «Избегать» и «Проверить». «Делать» — это раздел, который пишут все.
Текст карточки выше — перевод. Английский оригинал — это то, что импортирует командная строка, что читает агент во время работы и что подтверждает хеш ниже.
Повод
Вы собираетесь поместить долю, процент или количество в отчёт, сообщение коммита, таблицу бенчмарка или письмо человеку, который на этом основании начнёт действовать. «34% прогонов упали». «Ошибок втрое больше». «Покрытие снизилось».
Это не относится к числу, которое читатель и так может разложить: к одной измеренной задержке, к строке версии, к количеству файлов в диффе, который у него перед глазами. Риск специфичен для агрегата — величины, полученной делением одного выбранного вами множества на другое выбранное вами множество, где оба выбора в предложении невидимы.
Делать
- Всегда пишите сырые количества рядом с долей:
34% (17/50 прогонов). Если вы не можете назвать знаменатель, вы ещё не знаете, что измерили. - Уточняйте, какой это знаменатель. Запущенные прогоны и завершившиеся прогоны — разные множества, и деление на завершившиеся молча вычёркивает падения, то есть ровно ту совокупность, из-за которой вы и стали смотреть.
- Прежде чем публиковать числитель, разложите его по причинам. Из этих 17 падений сколько
относятся к уже открытому issue, сколько — к известному нестабильному таймауту провайдера,
сколько — к фикстуре, падающей на этой машине? Публикуйте разбиение:
17 упали — 14 это известный connect timeout, 3 необъяснённые. - Проведите то же измерение на неизменённом baseline и вычтите. Значение имеет та часть, которая
не воспроизводится на
main. - Когда n настолько мало, что ещё одно наблюдение сдвинуло бы заголовочную цифру на несколько пунктов, поместите в отчёт эту фразу вместо процента.
Избегать
«частота отказов 34%» — правда, и приглашение потратить день на таймаут, о котором заявку
подали ещё на прошлой неделе. Напишите «17/50 упали; 14 — это connect timeout ollama (issue открыт), 3 новые», и день уйдёт на эти 3.
Избегайте знаменателя выживших. rate = failures / completed — классика: прогоны, погибшие до
того, как выдать строку, отсутствуют по обе стороны дроби, поэтому метрика улучшается по мере того,
как система деградирует.
Избегайте процентов при знаменателе меньше примерно двадцати без указанного n. 50% → 67% — это
либо настоящее улучшение, либо один прогон из трёх, поменявший знак, и на странице эти два случая
неразличимы.
Chimera опубликовала опровержение ровно такой формы, и именно поэтому существует эта карточка.
bench/learning_lift/RESULTS.md сообщал о значимом внутрисемейном разрыве переноса в +6.7%, а
прогон 7 — то же измерение при достаточной мощности — его не подтвердил. Число было настоящим,
арифметика верной, и лучшим объяснением всё равно осталась флуктуация малой выборки. Опровержение
стало возможным потому, что количество прогонов с самого начала публиковалось рядом с процентом.
Если бы на странице стояло только «+6.7%», пересматривать было бы нечего, и находка тихо
превратилась бы в факт.
Проверить
Дайте эту фразу человеку, который не видит ваших данных, и попросите восстановить сырые количества. Если он не может — фраза неполна; это двоичный тест, и он занимает десять секунд.
Вторая проверка, когда на числе основано решение: проведите измерение заново на неизменённом baseline. Какая доля числителя воспроизводится там — это не про ваше изменение, и любое утверждение, построенное на ней, — про harness.
Риск
Применённое ко всему подряд, это превращает читаемую прозу в болото скобок, и читатели начинают скобки пропускать, — что хуже исходной проблемы, потому что теперь знаменатели на странице есть и они не прочитаны. Полное разложение приберегите для чисел, по которым кто-то будет действовать.
Более острый риск направлен в другую сторону: разложение по причинам — это ещё и инструмент, которым настоящую проблему делают маленькой. Пометка «известный шум» на четырнадцати падениях честна, только если она поставлена до того, как вы увидели, в чью пользу это работает. Если вы обнаруживаете, что расширяете корзину «известного» по ходу написания сводки, — число было выводом, а не свидетельством.
Указанный знаменатель также не спасает плохой знаменатель. 2/3 (n=3) — это по-прежнему три
прогона; знаменатель делает слабость видимой, а не устраняет её.
Как применить
Карточка — это данные. Склонируйте репозиторий и импортируйте её по пути: всё, что приходит по сети, считается заражённым и удерживается до одобрения — это и есть желаемое поведение, и поэтому здесь нет установщика в одну строку.
git clone https://github.com/brcampidelli/chimera-agent.gitchimera skills-import chimera-agent/skills/chimera-give-the-denominator/SKILL.mdЦелостность
SHA-256 файла в опубликованном виде. Импортёр может проверить, что полученное совпадает с показанным на этой странице.
a95d8e10515e848efd16e1566d93454164e85d57a7dcb8aa35e7a2e593790766