Команда исследователей из Калифорнийского университета в Сан-Диего (UCSD), Нью-Йоркского университета (NYU), Вашингтонского университета, Принстонского университета, Академии Каньон-Крист, OpenAI, Калифорнийского университета в Беркли, Массачусетского технологического института (MIT), Университета Ватерлоо и Sentient Labs представляет AutoCode — новую платформу на базе ИИ, которая позволяет языковым моделям создавать и проверять задачи для соревнований по программированию, имитируя рабочий процесс составителей задач.
AutoCode переосмысливает оценку моделей для рассуждений о коде, рассматривая постановку задач (а не только решение задач) как целевую задачу. Система обучает языковые модели создавать задачи для соревнований, данные для тестирования и логику проверки решений, которые соответствуют официальным онлайн-судьям с высокой точностью.
На наборе из 7538 задач, созданном на основе предыдущих наборов данных, AutoCode достигает 91,1% согласованности с официальными решениями (FPR 3,7%, FNR 14,1%). На отдельном, более сложном наборе из 720 задач Codeforces (включая интерактивные задачи) полная система сообщает о согласованности в 98,7%, 1,3% FPR, 1,2% FNR.
Почему постановка задач важна для оценки?
Общедоступные тесты кода часто основаны на недостаточно определённых тестах, которые позволяют проходить решениям с неправильной сложностью или нарушениями интерактивного протокола. Это завышает оценки и искажает сигналы подкрепления (вознаграждение за использование хрупких тактик).
Подход AutoCode, ориентированный на валидатор, и генерация состязательных тестов направлены на снижение количества ложных срабатываний (FPR) — некорректных программ, которые проходят, и ложных отрицаний (FNR) — корректных программ, отклонённых из-за некорректных входных данных.
Основной цикл: валидатор → генератор → чекер
AutoCode запускает замкнутый цикл, который имитирует рабочие процессы соревнований, но на каждом этапе выбираются кандидаты, сгенерированные LLM, с использованием целевых тестов в рамках системы.
1. Валидатор (минимизация FNR путём обеспечения законности ввода)
Система сначала просит LLM синтезировать 40 входных данных для оценки — 10 действительных и 30 почти действительных, но незаконных (например, нарушения границ на единицу). Затем LLM предлагает три программы-кандидата для валидатора, и выбирается та, которая лучше всего классифицирует эти случаи. Это предотвращает сбой «правильных» решений на некорректных данных.
2. Генератор (снижение FPR за счёт состязательного охвата)
Три взаимодополняющие стратегии создают тестовые примеры:
* исчерпание малого объёма данных для покрытия границ;
* случайные + экстремальные случаи (переполнение, точность, хеш-коллизии);
* структуры, вызывающие TLE, чтобы нарушить решения с неправильной сложностью.
Недействительные случаи фильтруются выбранным валидатором; затем случаи дедуплицируются и балансируются по сегментам перед выборкой.
3. Чекер (логика вынесения вердикта)
Чекер сравнивает выходные данные участников с эталонным решением по сложным правилам. AutoCode снова генерирует 40 сценариев проверки и три программы-кандидата, сохраняет только сценарии с утверждёнными валидатором входными данными и выбирает лучший чекер по точности в отношении 40 помеченных сценариев.
4. Интерктор (для интерактивных задач)
Для задач, требующих диалога с судьёй, AutoCode вводит интерактивный механизм на основе мутантов: он вносит небольшие логические изменения («мутанты») в эталонное решение, выбирает интеракторы, которые принимают истинное решение, но отклоняют мутантов, максимизируя дискриминацию. Это устраняет пробел в более ранних общедоступных наборах данных, в которых избегались интерактивные задачи.
Двойная проверка позволяет создавать новые задачи (а не только тесты для существующих)
AutoCode может генерировать новые варианты задач, начиная со случайной задачи Codeforces («семя» <2200 Elo). LLM составляет новое утверждение и два решения: эффективное эталонное и более простое базовое решение методом перебора. Задача принимается только в том случае, если выходной сигнал эталонного решения совпадает с базовым решением методом перебора во всём сгенерированном наборе тестов (метод перебора может привести к TLE в больших случаях, но служит основой для малых/исчерпывающих случаев). Этот протокол двойной проверки фильтрует ~27% подверженных ошибкам элементов, повышая правильность эталонного решения с 86% до 94% до проверки человеком. Эксперты-люди затем оценивают выжившие по решаемости, правильности решения, качеству, новизне, сложности. После фильтрации 61,6% используются для обучения модели, 76,3% — для обучения человека, а 3,2% — это задачи уровня ICPC/IOI. Сложность обычно увеличивается по сравнению с исходной, и прирост сложности коррелирует с воспринимаемым качеством.
Понимание результатов
Существующие задачи (всего 7538; 195 988 человеческих представлений). AutoCode: 91,1% согласованности, 3,7% FPR, 14,1% FNR, против 72,9–81,0% согласованности для предыдущих генераторов (CodeContests, CodeContests+, TACO, HardTests).
Недавние задачи Codeforces (720, неотфильтрованные; включая интерактивные). AutoCode: 98,7% согласованности, 1,3% FPR, 1,2% FNR.
Ключевые выводы
AutoCode объединяет цикл Validator–Generator–Checker (+Interactor) с двойной проверкой (эталонное решение против решения методом перебора) для создания наборов тестов для соревнований и новых задач.
На отложенных задачах наборы тестов AutoCode достигают согласованности примерно 99% с официальными судьями, превосходя предыдущие генераторы, такие как HardTests (<81%). Для недавних задач Codeforces (включая интерактивные) полная система сообщает о согласованности примерно 98,7% с примерно 1,3% FPR и примерно 1,2% FNR. Интерктор на основе мутантов надёжно принимает истинное решение, отклоняя мутантные варианты, что улучшает оценку интерактивных задач. Эксперты-люди оценивают значительную часть элементов, сгенерированных AutoCode, как пригодные для обучения, а нетривиальную долю — как соревновательного качества, что соответствует целям программы LiveCodeBench Pro. 1. Какие проблемы решает AutoCode в контексте соревнований по программированию?
AutoCode решает проблему недостаточно определённых тестов в общедоступных тестах кода, которые позволяют проходить решениям с неправильной сложностью или нарушениями интерактивного протокола. Это завышает оценки и искажает сигналы подкрепления. AutoCode снижает количество ложных срабатываний (FPR) — некорректных программ, которые проходят, и ложных отрицаний (FNR) — корректных программ, отклонённых из-за некорректных входных данных.
2. Какие этапы включает в себя основной цикл работы AutoCode?
Основной цикл работы AutoCode включает в себя следующие этапы:
* Валидатор (минимизация FNR путём обеспечения законности ввода): система сначала просит LLM синтезировать 40 входных данных для оценки — 10 действительных и 30 почти действительных, но незаконных. Затем LLM предлагает три программы-кандидата для валидатора, и выбирается та, которая лучше всего классифицирует эти случаи.
* Генератор (снижение FPR за счёт состязательного охвата): три взаимодополняющие стратегии создают тестовые примеры.
* Чекер (логика вынесения вердикта): чекер сравнивает выходные данные участников с эталонным решением по сложным правилам.
* Интерктор (для интерактивных задач): для задач, требующих диалога с судьёй, AutoCode вводит интерактивный механизм на основе мутантов.
3. Как AutoCode генерирует новые задачи для соревнований?
AutoCode может генерировать новые варианты задач, начиная со случайной задачи Codeforces («семя» <2200 Elo). LLM составляет новое утверждение и два решения: эффективное эталонное и более простое базовое решение методом перебора. Задача принимается только в том случае, если выходной сигнал эталонного решения совпадает с базовым решением методом перебора во всём сгенерированном наборе тестов. Этот протокол двойной проверки фильтрует ~27% подверженных ошибкам элементов, повышая правильность эталонного решения с 86% до 94% до проверки человеком. 4. Какие результаты демонстрирует AutoCode на наборе из 7538 задач и на отдельном наборе из 720 задач Codeforces?
На наборе из 7538 задач AutoCode достигает 91,1% согласованности с официальными решениями (FPR 3,7%, FNR 14,1%). На отдельном, более сложном наборе из 720 задач Codeforces (включая интерактивные задачи) полная система сообщает о согласованности в 98,7%, 1,3% FPR, 1,2% FNR.
5. Какие ключевые выводы можно сделать о работе AutoCode?
Ключевые выводы о работе AutoCode:
* AutoCode объединяет цикл Validator–Generator–Checker (+Interactor) с двойной проверкой (эталонное решение против решения методом перебора) для создания наборов тестов для соревнований и новых задач.
* На отложенных задачах наборы тестов AutoCode достигают согласованности примерно 99% с официальными судьями, превосходя предыдущие генераторы, такие как HardTests (<81%).
* Для недавних задач Codeforces (включая интерактивные) полная система сообщает о согласованности примерно 98,7% с примерно 1,3% FPR и примерно 1,2% FNR.
* Интерктор на основе мутантов надёжно принимает истинное решение, отклоняя мутантные варианты, что улучшает оценку интерактивных задач.
* Эксперты-люди оценивают значительную часть элементов, сгенерированных AutoCode, как пригодные для обучения, а нетривиальную долю — как соревновательного качества, что соответствует целям программы LiveCodeBench Pro.