<НА ГЛАВНУЮ

CURE: Революция в генерации кода и юнит-тестов с помощью самообучающегося обучения с подкреплением в LLM

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

Прогресс в больших языковых моделях для генерации кода

Большие языковые модели (LLM) достигли значительных успехов в области рассуждений и точности благодаря методам обучения с подкреплением и масштабированию во время тестирования. Традиционные методы генерации юнит-тестов, такие как O1-Coder и UTGEN, требуют наличия эталонного кода, что увеличивает затраты на сбор данных и ограничивает масштаб обучающей выборки.

Проблемы существующих подходов

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

Представляем CURE: самообучающаяся коэволюционная система

Исследователи из Университета Чикаго, Принстонского университета, Пекинского университета и ByteDance Seed разработали CURE — фреймворк обучения с подкреплением, который совместно обучает генератор кода и генератор юнит-тестов без использования эталонного кода.

CURE использует механизм самоигры, при котором LLM генерирует как корректный, так и некорректный код. Генератор юнит-тестов учится выявлять ошибки и совершенствуется. Эта коэволюция повышает качество генерации и верификации кода без внешнего надзора.

Архитектура и методология

Базовые модели и стратегия выборки: CURE построен на моделях Qwen2.5-7B и 14B Instruct, а для длинных цепочек рассуждений (CoT) используется Qwen3-4B. На каждом шаге обучения отбирается 16 вариантов кода и 16 юнит-тестов, созданных на основе заданий. Выборка осуществляется с помощью vLLM с температурой 1.0 и top-p 1.0. Для моделей long-CoT применяется трансформация, учитывающая длину ответа, чтобы штрафовать длинные выводы и повышать эффективность вывода.

Функция награды и оптимизация: В CURE введена функция награды, максимизирующая точность награды — вероятность, что правильный код получает более высокий балл, чем неправильный, по сгенерированным юнит-тестам. Также применяются корректировки награды для длинных ответов с целью уменьшения задержки. Оптимизация проводится с использованием методов градиента политики, совместно обновляя генератор кода и тестов.

Оценка и результаты

CURE протестирован на пяти стандартных датасетах: LiveBench, MBPP, LiveCodeBench, CodeContests и CodeForces. Использовались метрики точности юнит-тестов, однократной генерации кода и лучшего из N (BoN) с 16 образцами кода и тестов.

Модели ReasonFlux-Coder, обученные с помощью CURE, показали впечатляющие результаты:

  • +37.8% точности юнит-тестов
  • +5.3% точности однократной генерации кода
  • +9.0% точности BoN

Особенно ReasonFlux-Coder-4B сократил среднюю длину ответа юнит-теста на 64.8%, что значительно ускорило вывод. Во всех тестах эти модели превзошли традиционные модели с обучением на размеченном коде, например Qwen2.5-Coder-Instruct.

Коммерческое применение и экономия затрат

В сочетании с моделями серии GPT, ReasonFlux-Coder-4B улучшил показатели:

  • GPT-4o-mini получил +5.5% по BoN
  • GPT-4.1-mini улучшился на +1.8%

Это также снизило затраты на API, обеспечивая экономичное решение для промышленного использования.

Использование CURE как модели награды для обучения без меток

Генераторы юнит-тестов, обученные CURE, могут использоваться в качестве моделей награды в обучении с подкреплением. Применение сгенерированных тестов ReasonFlux-Coder-4B даёт улучшения, сопоставимые с обучением на размеченных данных, что позволяет строить полностью безметочные RL-пайплайны.

Широкое применение и перспективы

Модели ReasonFlux-Coder хорошо интегрируются с агентными фреймворками, такими как MPSC (Multi-Perspective Self-Consistency), AlphaCodium и S*. CURE повышает точность генерации агентных юнит-тестов более чем на 25.1%, демонстрируя универсальность и способность к итеративному улучшению.

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

🇬🇧

Switch Language

Read this article in English

Switch to English