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

Введение

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

Ограничения существующих подходов

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

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

CURE: самоконтролируемый коэволюционный подход

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

CURE работает с использованием механизма самоигры, в котором:
* LLM генерирует как правильный, так и неправильный код;
* генератор модульных тестов учится различать режимы отказа и соответствующим образом совершенствует себя.

Эта двунаправленная коэволюция улучшает генерацию кода и верификацию без внешнего контроля.

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

Базовые модели и стратегия выборки

CURE построен на моделях Qwen2.5-7B и 14B Instruct, а Qwen3-4B используется для вариантов с длинной цепочкой мыслей (CoT). На каждом этапе обучения выбирается:
* 16 вариантов завершения кода.
* 16 модульных тестов, полученных из задач.

Выборка выполняется с помощью vLLM с температурой 1.0 и top-p 1.0. Для моделей с длинными CoT-вариантами преобразование, учитывающее длину ответа, снижает время задержки, улучшая эффективность вывода.

Функция вознаграждения и оптимизация

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 (Multi-Perspective Self-Consistency);
* AlphaCodium;
S.

Эти системы выигрывают от способности CURE итеративно совершенствовать как код, так и тесты. CURE также повышает точность агентской генерации модульных тестов более чем на 25,1%, что усиливает его универсальность.

Заключение

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

Источник

Оставьте комментарий