Журнал · Rit.work

MetaCurate выращивает фильтры для траекторий кодовых агентов без обучения в цикле

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

Rit.work
Студия разработки
19 октября 2026 г.3 мин чтения

Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.

Фильтр для отбора траекторий кодового агента научились строить с нуля, не обучая целевую модель после каждой правки. MetaCurate выбрал данные, которые дали лучший средний результат среди проверенных способов отбора, хотя работа не прошла рецензирование, а все числа получили сами авторы. Для команд с собственным контуром дообучения это переносит часть дорогих экспериментов с моделью на более дешёвую настройку фильтра.

Успешный патч ещё не делает траекторию полезной

Траектория кодового агента — это журнал решения задачи: поиск по репозиторию, вызовы инструментов, изменения файлов, запуск тестов и рассуждения между действиями. Обычно для контролируемого дообучения, SFT, оставляют попытки, чей итоговый патч прошёл тесты.

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

В собранном для работы наборе все попытки получили одинаковый итоговый статус для 90,1% задач. Значит, метка успеха почти не помогала выбрать лучшую попытку внутри одной задачи. Среди проверенных пар с разным исходом модель-оценщик предпочла неуспешную траекторию в 28,3% случаев.

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

Как попарные оценки превращаются в исполняемый фильтр

MetaCurate разделяет поиск фильтра и его применение. Во время поиска LLM сравнивает две траектории и выбирает более полезную для дообучения. Сравнивать примеры проще, чем независимо выставлять им абсолютные баллы: одна траектория сразу задаёт ориентир для другой.

Сам фильтр состоит из исполняемых правил, текстовой шкалы оценки и кода, который объединяет сигналы в итоговый балл. Поиск можно начать с одного общего критерия без правил, написанных специально для кодовых задач.

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

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

После поиска попарные сравнения больше не нужны. Готовый фильтр независимо оценивает каждую траекторию, поэтому объём вычислений растёт линейно вместе с пулом данных. Обучение целевой модели остаётся только для конечной проверки выбранного набора, а не входит в каждую итерацию поиска. В приведённом сравнении цикл с повторным обучением стоил в 3,5 раза дороже, хотя бюджеты двух подходов не выравнивали.

Когда MetaCurate меняет план разработки

Метод проверили на двух пулах: 4 286 собственных траекторий DSv4Pro и 17 220 траекторий Nemotron v3 SWE-SFT. На выбранных подмножествах дообучали Qwen 3.5 двух размеров, а затем измеряли долю решённых задач SWE-bench Verified. В сравнение вошли случайный отбор, отбор по успешному исходу, ручные правила, фиксированный LLM-фильтр и поиск через цикл обучения.

Фильтр, выросший из пустой заготовки, показал самый высокий наблюдавшийся средний результат на обоих пулах: 64,0% на DSv4Pro и 56,5% на Nemotron v3. Он также обошёл версию, которая начинала поиск с вручную подготовленных критериев. Эффект сохранился при переносе того же набора данных на более крупную целевую модель.

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

Команде с регулярным дообучением кодового агента имеет смысл поставить MetaCurate между сбором траекторий и запуском SFT. Такой порядок позволяет сначала улучшать проверяемый исполняемый фильтр, а дорогие запуски модели оставить для подтверждения нескольких финальных вариантов.

Если продукт использует готовую модель через API и не собирает собственные траектории, работа планов почти не меняет. Основная экономия появляется там, где уже есть большой пул попыток, ручные правила отбора и повторяющиеся циклы дообучения. При этом модель-оценщик остаётся источником предпочтений, поэтому фильтр стоит хранить и проверять как часть версии набора данных, а не как нейтральную предварительную обработку.

Источники

Пауза в чтении

Похоже на вашу задачу?

Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.

Rit.work

Студия разработки

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

← Ко всем материалам
Понравилось? Обсудим вашу задачу