
«Тайный редактор» будет на регулярной основе коротко разжевывать суть научных публикаций по технологиям искусственного интеллекта, отвечать на неудобные вопросы по ИИ, объяснять события, развеивать мифы и разоблачать пустой хайп вокруг технологий.
Сегодня разбираем статью от исследователей MTS AI – Iterative Self-Training for Code Generation via Reinforced Re-Ranking. Она была представлена на прошлой неделе на Европейской конференции по информационному поиску – ECIR 2025. Статья о том, как можно обучить реранжирующую модель выбирать качественные варианты кода, сгенерированные другой моделью.
Поехали!
Для того, чтобы понять, какую задачу мы решаем, сначала нужно рассказать о постановке задачи. Постановка стандартная для оценки генерации кода, общий ее вид дан на картинке ниже – см. раздел (а).

Конкретно: у нас есть описание (a) на естественном (английском) языке, по которому должен быть сгенерирован код (b); помимо этого для каждого описания дан набор тестов, позволяющих оценить, выполняет ли сгенерированный код требуемые действия (c).
Теперь о самом подходе исследователей MTS AI подробнее. Как видим, он состоит из двух моделей – одна модель собственно генерирует код по текстовому описанию, а вторая данный код ранжирует, то есть дает ему некоторую оценку. Далее куски кода упорядочиваются по их оценке и отбираются только 10 лучших, среди которых находится хотя бы один, который проходит все тесты для данной задачи. На картинке в разделе (b) показан как раз этот подход, но по ней довольно сложно с ходу понять, что именно происходит, так что давайте попробуем описать его по шагам:
1) Дообучаем с учителем (SFT) модель-генератор на наборе данных, который похож на тот, на котором мы проверяем качество нашего подхода.
2) На этом же наборе данных дообучаем с учителем модель-оценщик.
3) Дообучаем с подкреплением (PPO) модель-генератор при помощи модели-оценщика.
4) С помощью дообученной с подкреплением модели генерируем дополнительные решения для обучающего набора данных. Таким образов в нашем наборе данных появляются сложноотличимые от правильных неправильные решения – на этих данных дообучаем с учителем модель-оценщик.
5) Еще раз дообучаем с подкреплением модель-генератор, только теперь в качестве модели награды используем обновленную модель-оценщик с прошлого шага.
Как вы видите, процедура в целом непростая, но для получения качественного решения часто приходится идти на не самые очевидные ходы.
Почему мы везде говорим «дообучение»? На тот случай, если кто-то задался этим вопросом, отвечаем: мы, конечно же, основываемся на предобученных моделях. В качестве таковых взяты модели из семейства DeepSeek (не V3 и тем более не только что появившуюся свежую версию V3, конечно), пробовали разного размера – 1.3B и 6.7B. Результаты (на картинке 3) показывают, что чем больше модели в основе, тем лучше итоговое качество, что конечно неудивительно. Однако более нетривиально то, что с этим подходом модели на 13.4B параметров удалось превзойти качество модели на 33B, а на С++ даже качество GPT4.
Полная версия статьи опубликована здесь – в ней все подробности. Цитируйте на здоровье: Sorokin, N., Sedykh, I., & Malykh, V. (2025, April). Iterative Self-training for Code Generation via Reinforced Re-ranking. In European Conference on Information Retrieval (pp. 229-236). Cham: Springer Nature Switzerland.
Автор: SecretEditor