CURE: Рамка Обучения С Подкреплением для Совместной Эволюции Генерации Кода и Юнит-Тестов в LLM
Введение
Современные большие языковые модели (LLM) продемонстрировали значительные успехи в области логического мышления и точности благодаря методам обучения с подкреплением и масштабированию на этапе тестирования. Несмотря на то, что они превосходят традиционные методы генерации юнит-тестов, большинство существующих подходов, таких как O1-Coder и UTGEN, требуют контроля с использованием истинного кода. Это увеличивает затраты на сбор данных и ограничивает масштаб используемых обучающих данных.
Ограничения Существующих Подходов
Традиционная генерация юнит-тестов полагается на:
- Методы анализа программного обеспечения, которые являются жесткими и основанными на правилах.
- Техники нейронного машинного перевода, которые часто не имеют семантической согласованности.
Хотя недавние методы на основе подсказок и агентного подхода улучшают результаты, они по-прежнему сильно зависят от размеченного кода для дообучения. Эта зависимость ограничивает адаптивность и масштабируемость, особенно в реальных сценариях развертывания.
CURE: Самообучающийся Подход Совместной Эволюции
Исследователи из Университета Чикаго, Принстонского университета, Пекинского университета и ByteDance Seed представляют CURE — самообучающуюся рамку обучения с подкреплением, которая совместно обучает генератор кода и генератор юнит-тестов без использования истинного кода.
CURE работает по механизму самоигры, в котором:
- LLM генерирует как корректный, так и некорректный код.
- Генератор юнит-тестов обучается различать режимы сбоев и улучшает себя соответственно.
Эта двусторонняя совместная эволюция усиливает как генерацию кода, так и его верификацию без внешнего контроля.
Архитектура и Методология
Базовые Модели и Стратегия Выборки
CURE построен на моделях Qwen2.5-7B и 14B Instruct, при этом Qwen3-4B используется для вариантов с длинными цепочками размышлений. На каждом этапе обучения выбирается:
- 16 кандидатных завершений кода.
- 16 юнит-тестов, созданных на основе задач.
Выборка осуществляется с использованием vLLM с температурой 1.0 и top-p 1.0. Для моделей с длинными цепочками размышлений применяется трансформация, учитывающая длину ответа, что снижает штраф за длинные выходные данные и улучшает эффективность на этапе вывода.
Функция Награды и Оптимизация
CURE вводит математически обоснованную формулировку награды, чтобы:
- Максимизировать точность награды, определяемую как вероятность того, что корректный код получает более высокую оценку, чем некорректный код по сгенерированным юнит-тестам.
- Применять корректировки награды на основе ответов для длинных ответов, чтобы снизить задержки.
Оптимизация осуществляется с помощью методов градиента политики, совместно обновляя генератор кода и генератор юнит-тестов для улучшения их взаимной производительности.
Бенчмарковые Датасеты и Метрики Оценки
CURE оценивается на пяти стандартных кодирующих датасетах:
- LiveBench
- MBPP
- LiveCodeBench
- CodeContests
- CodeForces
Производительность измеряется по:
- Точности юнит-тестов.
- Точности однократной генерации кода.
- Точности Best-of-N (BoN) с использованием 16 образцов кода и тестов.
Увеличение Производительности и Эффективности
Модели ReasonFlux-Coder, полученные с помощью CURE, достигают:
- +37.8% в точности юнит-тестов.
- +5.3% в точности однократной генерации кода.
- +9.0% в точности BoN.
Замечательно, что ReasonFlux-Coder-4B достигает 64.8% сокращения средней длины ответа юнит-теста, что существенно улучшает скорость вывода. На всех бенчмарках эти модели превосходят традиционные модели, дообученные с использованием кодирования под контролем (например, Qwen2.5-Coder-Instruct).
Применение в Коммерческих LLM
Когда ReasonFlux-Coder-4B сочетается с моделями серии GPT:
- GPT-4o-mini получает +5.5% точности BoN.
- GPT-4.1-mini улучшает свои показатели на +1.8%.
Затраты на API снижаются, в то время как производительность увеличивается, что указывает на экономически эффективное решение для производственных пайплайнов вывода.
Использование в Качестве Модели Награды для Обучения Без Меток
Генераторы юнит-тестов, обученные с помощью CURE, могут быть перепрофилированы в качестве моделей награды в обучении с подкреплением. Использование сгенерированных юнит-тестов ReasonFlux-Coder-4B дает сопоставимые улучшения по сравнению с тестами, размеченными человеком, что позволяет создавать полностью беспометочные пайплайны обучения с подкреплением.
Широкая Применимость и Будущие Направления
Помимо BoN, модели ReasonFlux-Coder бесшовно интегрируются с агентными кодировочными фреймворками, такими как:
- MPSC (Мультиперспективная Самосогласованность)
- AlphaCodium
- S*
Эти системы получают преимущества от способности CURE итеративно улучшать как код, так и тесты. CURE также увеличивает точность генерации юнит-тестов агентами более чем на 25.1%, что подчеркивает его универсальность.
Заключение
CURE представляет собой значительное достижение в области самообучения для генерации и валидации кода, позволяя большим языковым моделям совместно развивать свои способности в генерации кода и юнит-тестов без зависимости от истинного кода. Используя коэволюционную рамку обучения с подкреплением, CURE не только улучшает основные показатели производительности, такие как точность однократной генерации и выборка Best-of-N, но и повышает эффективность вывода за счет оптимизации, учитывающей длину ответа. Его совместимость с существующими агентными кодировочными пайплайнами и способность функционировать как модель награды без меток делают его масштабируемым и экономически эффективным решением как для обучения, так и для сценариев развертывания.