Claude.dev · разбор статьи

Сначала проверь оценку.
Потом улучшай модельную систему.

Как команды build-eval и hillclimb помогают создавать проверки, менять промпты и снижать стоимость, отслеживая переобучение.

Lance Martin28 сентября 2026Оригинал: 12 минут
Главный тезис

Рост балла имеет смысл, если оценка отражает рабочие задачи, проверяющий заслуживает доверия, а улучшение сохраняется на скрытых примерах и превышает шум.

Читать оригинал ↗

TL;DR

Суть за минуту

В статье ↗

Проверь измерение

Репрезентативные задачи, согласованный критерий успеха и повторные прогоны нужны ещё до оптимизации.

Ограничь изменение

Выбери цель и то, что разрешено менять: промпт, skill, описание инструмента, модель, effort или код обвязки.

Смотри на скрытую выборку

Анализатор читает только ошибки train. Рост train при неизменном test — повод откатить правку.

01

Что делает оценку пригодной для улучшений

В статье ↗

Eval — набор задач с проверкой результата. Автор выделяет четыре свойства, без которых рост балла легко принять за прогресс.

Задачи похожи на рабочие

Выбирайте то, что приложение должно делать в эксплуатации. Простота генерации или проверки примера сама по себе не делает его полезным.

Сильнее модель → выше результат

Более способная модель и больший effort обычно должны помогать. Если зависимости нет, проверьте неоднозначные задания и критерии оценки.

Остаётся достижимый запас

Даже сильнейшая модель не должна решать всё. Но вечный провал во всех повторах может указывать на невыполнимое задание или скрытое требование.

Повторы дают близкие результаты

Проверьте стабильность проверяющего, применение effort и чистоту окружения. Файлы или история Git от прошлого запуска могут раскрыть ответ.

Сложность нужно объяснить. Два эксперта должны сходиться в оценке, а все проверяемые требования должны присутствовать в задании.

Не собирайте только ошибки сегодняшней модели

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

В статье ↗
02

Build-eval: примеры → проверяющий → baseline

В статье ↗
Команда Claude Code
/claude-api build-eval

1. Собрать и согласовать входные данные

Приоритет: рабочие трассы после обсуждения хранения и чувствительных данных → баг-репорты и обращения → 5–10 ручных примеров → синтетика по кодовой базе. Claude показывает каждый вход на странице и ждёт подтверждения.

2. Выбрать самый дешёвый подходящий способ проверки

Фиксированные ответы: exact match, допустимая метка, JSON Schema или тесты. Свободные ответы: LLM-as-judge, то есть отдельная модель с набором проверяемых критериев, а не расплывчатой шкалой 1–5.

3. Сверить оценки с человеком

Прочитайте несколько ответов вместе с выставленными баллами. Модель-судья должна отличаться от проверяемой. Для сравнения с baseline ответы подаются в случайном порядке, без указания, какой из них базовый.

4. Запустить исходную конфигурацию

До запуска Claude сообщает объём: примеры × повторы × модели, а также примерное время. Результат включает балл с доверительным интервалом, случаи, проверяющий, runner, JSONL, полные трассы и страницу результатов.

Проверка проверяющего

Один и тот же ответ оценивается дважды. Изменившийся вердикт показывает нестабильность grader — механизма выставления оценки.

Проверка инфраструктуры

Тайм-ауты, ошибки API и обрезанные ответы нужно отделить от поведения модели. При baseline около 95% и выше разумнее исследовать стоимость или задержку.

В статье ↗
03

Hillclimb: одна причина, одна правка, новый прогон

В статье ↗
Команда Claude Code
/claude-api hillclimb

Перед началом задайте цель: улучшить качество или снизить стоимость при сохранении качества. Выберите разрешённые изменения. Текстовые промпты и skills удобно менять и откатывать; свободная переделка всей обвязки усложняет поиск причины улучшения.

Claude случайно делит примеры на train и test и проверяет, что шум меньше минимального полезного выигрыша. Если нет, предлагает больше примеров или повторов.

01 / АНАЛИЗ

Ошибки train

Прочитать трассы и найти причину

02 / ПРАВКА

Один patch

Изменить выбранный компонент

03 / ПРОВЕРКА

Train + test

Оценить выигрыш и регрессии

Схема конспекта: анализатор получает ошибки train; скрытые примеры test ему недоступны.

Сохранить

В описанном цикле улучшения качества баллы train и test выросли. Правка устраняет причину сбоя; её эффект заметен на фоне шума.

Откатить

Train вырос, test не изменился — подозрение на переобучение. Регрессия тоже ведёт к откату. Для цели по стоимости результат сравнивают с заданным порогом качества.

Остановка — повод разобрать ошибки

После 2–3 раундов без прогресса Claude группирует оставшиеся ошибки train по причинам. Анализ начинается раньше, если ни одна правка не даст измеримого выигрыша. Неоднозначные задания, сбои обвязки и шум требуют исправления оценки; дальнейшая оптимизация работает с подтверждёнными ошибками приложения.

В конце остаётся версия с лучшим результатом test для выбранной цели. Отчёт сравнивает её с baseline и показывает доверительные интервалы. Выигрыш в пределах шума не служит основанием для слияния изменений.

04

Переобучение бывает без прямой утечки ответов

В статье ↗

Harness — код вокруг модели: промпты, инструменты и цикл вызовов. Его можно подогнать под особенности бенчмарка так, что балл вырастет без пользы для рабочих задач.

Подгонка под распределение

Например, добавление OCR помогает набору с распознаванием текста, но почти бесполезно, если таких задач в эксплуатации мало. Аналогично работают правила для особых путей, формулировок и отдельных сбоев.

Прямая утечка

Ответы в публичном репозитории, доступные файлы или содержимое провальных примеров внутри промпта дают системе способ обойти саму задачу.

Защита из статьи: отделить train от скрытого test; не копировать содержание провалов в промпт; структурно закрыть доступ к эталонным ответам. Проверка на test помогает обнаружить переобучение, но не устраняет разницу между бенчмарком и рабочим трафиком.

05

Два примера и границы их результатов

В статье ↗

Поддержка: дешевле при более высокой точности

Внутренний бенчмарк содержит 44 обращения: 30 для поиска и 14 скрытых. Сначала убрали обязательные ритуалы вызова инструментов, scratchpad и противоречивые правила, затем меняли модель и effort.

Результаты на 30 обращениях для поиска, по статье
КонфигурацияТочностьСтоимость токенов / обращение
Opus 4.8 · high · baseline74,4%4,6 цента
Opus 5.5 · low · после аудита87,8%1,9 цента
Sonnet 5 · low88,9%≈1 цент
Sonnet 5 · правила маршрутизации и возвратов98,9%≈1 цент
14 СКРЫТЫХ ОБРАЩЕНИЙ78,6% → 90,5%

Финальная конфигурация: примерно пятая часть исходной стоимости.

Часть экономии связана с ценами моделей: автор указывает для Opus 5.5 снижение стоимости входных и выходных токенов на 20%, чтения кеша — на 60% относительно Opus 4.8. Это условия примера из статьи.

В статье ↗

Skill для API: найти пропуски и устаревшие шаблоны

66% → 74% → 77%

Добавили описание восьми недостающих возможностей, затем исправили таблицы типов C# и Java.

80% → около 88%

Таблица перехода от старых форм API к новым помогла модели использовать инструкции. Затем исправили противоречивые задания и grader вместе с другими частями skill.

После остановки роста анализ обнаружил, что нужные сведения уже были в skill, но модель продолжала писать старые формы API. Подсказки подняли ближе к началу: например, переход от фиксированного бюджета thinking к adaptive thinking. На графике автора — 66,1% в начале и 87,9% к раунду 24.

В статье ↗
Как читать эти числа. 98,9% относится к выборке для поиска, а 90,5% — к 14 скрытым обращениям. Во втором примере менялся сам измеритель: задания и grader. Поэтому весь рост до ≈88% нельзя приписать только улучшению skill. Эти примеры не гарантируют такой же выигрыш на другом приложении.
06

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

В статье ↗

Практический порядок действий по статье. Отмечайте выполненные шаги.

↗

Команды и источник

В статье ↗

claude-api skill ↗ — источник команд build-eval и hillclimb, указанный автором.

Train — случаи, по которым ищут улучшения. Test / held-out — скрытые примеры для проверки переноса. Effort — настройка глубины рассуждения. Baseline — исходная конфигурация для сравнения.

В конспекте нет растровых иллюстраций статьи: Firecrawl вернул их адреса, но не файлы или скриншот; браузерный сервис недоступен. Схема процесса составлена для этого конспекта, таблица передаёт числа автора.

Открыть в статье