Перейти к содержимому

Навыки

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

Когда два ваших собственных измерения расходятся настолько, что ни один механизм такого дать не может, дефект в инструменте. Проверьте harness, прежде чем строить на нём теорию.

ПаттернПроисхождение: cleanСостояние: activev0.1.0 · Apache-2.0

Присвоено человеком, который прочитал карточку, а не заявлено файлом о самом себе. Карточка, которую агент выводит во время запуска, поглотившего недоверенное содержимое, рождается заражённой и удерживается на разбор, прежде чем её вообще извлекут.

Когда это вспоминается

  • два прогона дико расходятся
  • меньший прогон вышел лучше
  • метрика ушла в невозможную сторону
  • объясняю неожиданный результат бенчмарка

Ценность обычно лежит в разделах «Избегать» и «Проверить». «Делать» — это раздел, который пишут все.

Текст карточки выше — перевод. Английский оригинал — это то, что импортирует командная строка, что читает агент во время работы и что подтверждает хеш ниже.

Повод

Два измерения, сделанные вами самими, расходятся на величину, которую вы не можете объяснить: прогон на малой доле данных набирает больше, чем большой; компонент показывает 0% на задаче, где соседнее измерение видит его работающим рутинно; изменение двигает число в сторону, которую само же делает невозможной.

Триггер — размер разрыва, а не сам факт его наличия. Два прогона, различающиеся в пределах своего шума, — это вопрос выборки, и об этом карточка не говорит ничего. Не относится это и к вашему числу против чьего-то опубликованного: разные данные, промпты, зерна и версии объясняют такое сколько угодно, и принимать это за сигнал тревоги об аппаратуре — значит аудировать исправный harness. Случай здесь такой: обе стороны противоречия ваши, и обе истинными быть не могут.

Делать

  1. Сначала запишите противоречие двумя строками: два числа и точные команды и коммиты, которые их произвели. Не теоретизируйте, пока это не окажется на бумаге, — незаписанное противоречие смягчается до «загадки» примерно за абзац.
  2. Сдиффайте два прогона прежде, чем рассуждать о них: конфигурацию, коммит, путь исполнения, хеш входного файла, версию оценщика. Диффу, который можно прочесть, — предпочтение перед объяснением, которое можно сконструировать.
  3. Прогоните известные ответы через само измерение. Пропустите эталонные решения через ваш грейдер до того, как доверять любой модельной оценке. Если заведомо верный ответ оценён как провал, дефект в грейдере, и все выданные им числа недействительны, включая то, которое вам понравилось.
  4. Только после того как аппаратура пережила шаг 3, тратьте усилия на объяснение явления.
  5. Если виновата аппаратура, отзывайте числа, а не переинтерпретируйте их. Оценка от сломанного оценщика — не зашумлённая оценка истины; она с истиной не связана.

Избегать

Строить несколько тщательных гипотез, объясняющих оба числа, и затем строго их проверять. Это дорогая версия той же ошибки: строгость настоящая, усилия настоящие, и всё это измеряется на артефакте. Качество метода ниже по потоку от сломанного прибора приводит вас к неверному ответу лишь с более узкими доверительными интервалами.

Не примиряйте арифметикой — усредняя два числа или тихо оставляя то, что совпало с ожиданием. Избегайте грейдера с замкнутым миром: именно этот баг чаще всего и порождает такую форму:


# 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)

И не используйте фразу «наверное, случайность» как точку остановки. Это гипотеза об аппаратуре, а значит, она проверяема: проверьте её или откажитесь от неё.

Проверить

Одно предложение, вслух, с величиной внутри: «X даёт разницу такого размера, потому что …». Если закончить не получается — «вдесятеро меньше данных дают лучший результат, потому что …», — подозреваемый это прибор, и следующий ваш шаг — шаг 3.

Затем двоичный вопрос: прошли ли эталонные ответы через грейдер? Любой эталонный элемент, помеченный грейдером как неверный, — это потолок того, что измерение вообще могло значить, и доля таких элементов — первое число, которое надо сообщить.

Риск

Иногда противоречие настоящее, а неожиданный результат — это находка. Рефлекс винить harness такие находки выбрасывает и — что хуже — является ровно тем ходом, который доступен любому, кому надо, чтобы неудобное измерение исчезло. Поэтому ограничьте его: проверка аппаратуры — фиксированный короткий список (сдиффать прогоны, эталоны через грейдер, сверить хеши входов). Если этот список вернулся чистым — верьте противоречию и идите исследовать явление. Эта карточка упорядочивает работу; ответ она не выбирает.

Вторая цена рекурсивна. Новый код, написанный для проверки старого, — ещё одна вещь, которая может быть неверна, и багованный скрипт аудита только что произвёл третье число. Предпочитайте проверки, использующие уже имеющиеся артефакты и входы с известными ответами, свежему harness, написанному под давлением аномалии.

Как применить

Карточка — это данные. Склонируйте репозиторий и импортируйте её по пути: всё, что приходит по сети, считается заражённым и удерживается до одобрения — это и есть желаемое поведение, и поэтому здесь нет установщика в одну строку.

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

Целостность

SHA-256 файла в опубликованном виде. Импортёр может проверить, что полученное совпадает с показанным на этой странице.

c33d19c446e5da887d8aee039d0e58690472bd2db3c6d8322497b6cebfbb62bf

Читать карточку в репозитории