Метод CPPO повышает эффективность генерации кода, координируя множество стратегий
Исследователи представили новый метод Coordinated Pass@K Policy Optimization (CPPO), который значительно улучшает генерацию кода за счет координации нескольких стратегий рассуждений. Вместо стандартного подхода с многократной выборкой из одного распределения, CPPO использует планировщик, генерирующи

Исследователи представили новый метод Coordinated Pass@K Policy Optimization (CPPO), который значительно улучшает генерацию кода за счет координации нескольких стратегий рассуждений. Вместо стандартного подхода с многократной выборкой из одного распределения, CPPO использует планировщик, генерирующий набор различных высокоуровневых методов, и общий решатель, выполняющий по одной попытке для каждого. Такой подход позволяет более эффективно использовать вычислительные ресурсы и повышает вероятность успеха при том же количестве попыток.
Как работает CPPO
Традиционный метод генерации кода предполагает, что модель делает K независимых сэмплов из одного и того же распределения ответов. Это часто приводит к тому, что сэмплы оказываются почти дублирующимися путями рассуждений, что растрачивает вычислительный бюджет. CPPO решает эту проблему, вводя планировщик, который генерирует кортеж из K=4 альтернативных высокоуровневых методов, каждый из которых представляет собой принципиально иной подход к решению задачи. Затем общий решатель выполняет одну попытку для каждого метода, что обеспечивает разнообразие стратегий.
Обучение в CPPO ведется с использованием мультипликативного вознаграждения планировщика. Вознаграждение определяется как Rplan = Jpsi Rout, где Jpsi — индикатор валидности кортежа (проверяет, что методы действительно различны), а Rout — успех верификатора, проверяющего корректность сгенерированного кода. Такая схема стимулирует планировщик предлагать разнообразные и эффективные стратегии.
Почему это эффективнее стандартного подхода?
Стандартный подход с повторной выборкой из одного распределения часто страдает от коллапса на однотипные решения. Когда модель находит один перспективный путь, она склонна генерировать множество его вариаций, не исследуя альтернативы. Это особенно проблематично в конкурентном программировании, где многие задачи допускают несколько различных алгоритмических стратегий. CPPO позволяет исследовать разные подходы параллельно, увеличивая шансы найти правильное решение.
Эксперименты на бенчмарках APPS, CodeContests и LiveCodeBench-v6 показали, что CPPO улучшает pass@4 по сравнению с прямой выборкой, планированием, SFT только планировщика и RL, ориентированным на pass@K, при том же бюджете в 4 попытки. Наибольшее улучшение составило +0.16 на Qwen3.5-9B LiveCodeBench-v6 относительно сильнейшего бейзлайна PKPO (0.588 → 0.748; парный bootstrap, p 4. Возможно, с увеличением числа стратегий эффективность будет расти, но это требует дополнительных вычислительных ресурсов. Также неясно, насколько хорошо CPPO масштабируется на более крупные модели, такие как GPT-4 или Claude 3.5.
Кроме того, метод пока не тестировался на задачах рассуждений, не связанных с кодом, например, в математике или логике. Возможно, CPPO окажется полезен и в этих областях, но это требует дальнейших исследований.
Кому будет полезен CPPO?
Разработчики моделей генерации кода могут использовать CPPO для повышения качества своих систем. Исследователи в области обучения с подкреплением найдут в методе новый подход к координации стратегий. Участники конкурсов по программированию смогут применять CPPO для генерации более надежных решений. Наконец, инженеры, использующие LLM для автоматической генерации кода, получат инструмент, который снижает вероятность ошибок.
В целом, CPPO представляет собой значительный шаг вперед в области генерации кода. Координируя несколько стратегий, метод позволяет эффективнее использовать вычислительные ресурсы и повышать вероятность успеха. Остается надеяться, что в будущем исследователи расширят применение CPPO на другие области и более крупные модели.