3,583 papers
arXiv:2609.09242 76 8 сент. 2026 г. FREE

Комментарии в коде помогают модели не потому что это комментарии, а потому что несут правильное решение

КЛЮЧЕВАЯ СУТЬ
Обнаружено: комментарии в коде помогают модели не потому что это комментарии — а потому что несут правильное решение. Метод позволяет заставить слабую или дешёвую модель писать рабочий код почти на уровне сильной — без дообучения и без трюков с промптом типа «думай тщательнее». Фишка: подставляешь план от сильной модели в начало ответа слабой — та просто дописывает код по готовой идее, а не изобретает решение с нуля.
Адаптировать под запрос

TL;DR

Когда LLM пишет код, она часто сначала оставляет комментарии — и эти комментарии становятся частью контекста для кода, который пишется дальше. Исследователи проверили, что именно в этих комментариях работает: объём текста, стиль, порядок строк или их смысл. Оказалось, что единственное свойство, которое реально двигает качество кода — это содержит ли комментарий правильное решение задачи.

Если просто попросить модель "пиши больше комментариев" или "объясняй свои решения подробнее", это не поднимет качество кода надёжно. Модель послушается на уровне формы — станет писать больше текста, сменит стиль — но код не станет лучше, потому что дело не в форме комментария, а в том, добралась ли модель своим ходом до верной идеи. Хуже того: если комментарий написан не по теме задачи (пусть даже красиво и грамотно), он вредит сильнее, чем если бы комментария не было вообще — модель слепо доверяет тексту перед собой.

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

🔬

Схема метода

ШАГ 1: Сильная модель решает задачу → получаешь план/комментарии с описанием решения
ШАГ 2: План вставляется в начало запроса к слабой/быстрой/дешёвой модели → просишь дописать код по этому плану

Оба шага — отдельные запросы, можно в двух разных чатах или моделях.


🚀

Пример применения

Задача: Нужно быстро написать Python-скрипт для парсинга цен конкурентов на Wildberries, но под рукой только бесплатная/быстрая модель (например, дешёвая версия в API или локальная), а платная топовая модель — на счету, и тратить на неё каждый запрос дорого.

Промпт для сильной модели (например, Claude Opus или GPT-5):

Опиши план решения задачи в виде коротких комментариев к коду, 
без самого кода. Задача: написать Python-скрипт, который парсит 
цены товаров с страницы категории Wildberries и сохраняет в CSV.
Пиши как комментарии, которые обычно ставят перед кодом: 
5-10 строк, каждая — конкретный шаг или ключевое решение.

Промпт для слабой/быстрой модели (вставляешь план в начало):

# Использовать requests + BeautifulSoup, так как страница отдаётся 
статическим HTML без JS-рендеринга
# Найти карточки товаров по классу product-card
# Извлечь цену из тега с data-атрибутом price
# Обработать случаи скидки — брать финальную цену, не старую
# Сохранить в CSV через pandas, колонки: название, цена, ссылка

Напиши код на Python для этой задачи.

Результат: Слабая модель, получив готовый верный план как "подсказку от старшего", напишет код, который с большей вероятностью реально работает — потому что ей не нужно самой додумывать архитектуру решения, только реализовать уже правильные шаги. Без этого плана та же слабая модель на сложных задачах чаще ошибается в логике.


🧠

Почему это работает

Слабая модель часто не может сама дойти до правильной идеи решения — не потому что не умеет писать код, а потому что застревает на этапе "что вообще делать". Если просто просить её "думай тщательнее" или "объясняй свои шаги" — она станет писать больше текста, но не станет умнее: инструкция меняет форму, а не содержание мыслей.

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

Отсюда рычаг: если задача сложная и слабая/быстрая модель регулярно ошибается — не трать токены на инструкции про стиль рассуждений ("объясняй подробнее", "пиши обоснование"). Вместо этого дай ей реальный план, добытый у более сильной модели. Это работает надёжнее любых промпт-инструкций.

⚠️ Осторожно: если план, который ты вставляешь, сам неверный или не по теме — это хуже, чем не давать плана вообще. Модель слепо доверяет тексту перед собой и идёт по ложному следу активнее, чем если бы решала с нуля.


📋

Шаблон промпта

Шаг 1 — получи план у сильной модели:
Опиши план решения задачи в виде 5-10 коротких комментариев 
(каждая строка — ключевой шаг или решение), без кода.
Задача: {описание задачи}

Шаг 2 — вставь план в начало запроса к другой модели:
{план из шага 1, вставленный как текст комментариев}

Напиши код/решение для этой задачи, используя план выше как основу.

🚀 Быстрый старт — вставь в чат:

Хочу использовать план от одной модели в качестве подсказки для другой. 
Помоги составить промпт для получения плана и промпт для его использования.
Моя задача: {твоя задача}

LLM спросит, какая модель у тебя "сильная" (для плана) и какая "слабая" (для исполнения) — потому что метод работает именно на переносе верного решения между двумя моделями, а не внутри одной.


⚠️

Ограничения

⚠️ Не работает как инструкция для одной и той же модели: если попросить модель саму писать больше или другие по стилю комментарии, лучший результат восстанавливает лишь малую часть эффекта от внешнего плана. Модель не может "выдумать" себе правильную идею через инструкцию о стиле.

⚠️ Неверный или нерелевантный план вредит сильнее отсутствия плана: если контент комментария не по теме задачи, качество результата падает заметно ниже базового уровня — модель слепо следует за текстом перед собой.

⚠️ Эффект меньше на простых задачах: если модель и так способна решить задачу без подсказки, внешний план даёт мало прироста — выигрыш концентрируется там, где у модели изначально были трудности.


🔍

Как исследовали

Команда сначала посмотрела на 88 моделей и проверила: связано ли количество и стиль комментариев (что пишет модель сама по себе) с качеством кода. Оказалось — никак: у одних топовых моделей комментарии — 0,1% от текста, у других — 71%, а результат одинаковый. Это натолкнуло на мысль, что дело не в форме.

Тогда сделали контролируемый эксперимент: взяли план от сильной модели (Grok, Gemini, Claude Opus) и вставили в начало ответа слабой модели (Gemma, Qwen3-8B, Seed-Coder, CodeGeeX4). Если план описывал верное решение — успех слабой модели рос в среднем на 17%. Если решение было неверным — прироста не было. Если план был "не по теме" — результат падал на 21%, даже хуже случайного текста без смысла.

Отдельно проверили: можно ли добиться того же эффекта простыми инструкциями в промпте (14 моделей, 10 вариантов инструкций про стиль, объём, тип комментариев). Лучший вариант восстановил лишь около 24% от эффекта внешнего верного плана — остальное не компенсируется никакой формулировкой промпта. Вывод логичен: инструкция меняет поведение модели на поверхности, но не даёт ей доступа к идее, которой у неё не было.


📋 Дайджест исследования

Ключевая суть

Обнаружено: комментарии в коде помогают модели не потому что это комментарии — а потому что несут правильное решение. Метод позволяет заставить слабую или дешёвую модель писать рабочий код почти на уровне сильной — без дообучения и без трюков с промптом типа «думай тщательнее». Фишка: подставляешь план от сильной модели в начало ответа слабой — та просто дописывает код по готовой идее, а не изобретает решение с нуля.

Принцип работы

Правило простое: комментарий работает только если несёт правильную идею решения, а не потому что он длинный, вежливый или красиво оформлен. Порядок строк почти не важен — план работает как набор независимых подсказок, а не строгая цепочка рассуждений. Попросишь модель «объясняй подробнее» — она напишет больше текста, но не поумнеет: меняется форма, а не содержание мыслей.

Почему работает

Слабая модель обычно спотыкается не на написании кода, а на этапе «что вообще делать» — с готовой идеей она справляется гораздо чаще. Даже разрозненные подсказки без строгого порядка работают — модель берёт из контекста то, что нужно, и достраивает вокруг этого код. Но если план ошибочный или не по теме, результат падает ниже базового уровня без всякого плана — модель слепо доверяет тексту перед собой и идёт по ложному следу увереннее, чем решала бы сама.

Когда применять

Программирование с LLM → конкретно когда нужна дешёвая или быстрая модель для рутинного кода, а сложную логику продумывает сильная модель отдельным запросом. Особенно полезно на сложных задачах, где слабая модель регулярно ошибается в архитектуре решения, а не в синтаксисе. Не подходит для простых задач — там слабая модель справляется и без плана, а лишняя подсказка не даёт прироста.

Мини-рецепт

1. Спроси у сильной модели план: 5-10 коротких комментариев, каждый — конкретный шаг или ключевое решение, без самого кода.
2. Вставь план как есть: в начало запроса к слабой или дешёвой модели, в виде текста комментариев перед задачей.
3. Попроси дописать код: явно укажи «используй план выше как основу», а не «учти» или «подумай над этим».
4. Проверь план перед вставкой: если сильная модель ошиблась в идее — не подставляй его, будет хуже, чем без плана вообще.

Примеры

[ПЛОХО] : Объясняй подробнее каждый шаг перед тем как писать код
[ХОРОШО] : # Использовать requests + BeautifulSoup, страница отдаётся статическим HTML без JS # Найти карточки товаров по классу product-card # Извлечь финальную цену со скидкой, а не старую # Сохранить в CSV через pandas: название, цена, ссылка Напиши код на Python для парсинга цен категории на Wildberries по этому плану
Источник: Talking to Itself While Coding: What Makes Comments Help Code Generation?
ArXiv ID: 2609.09242 | Сгенерировано: 2026-09-10 04:27

Проблемы LLM

ПроблемаСутьКак обойти
Просьба "объясняй подробнее" не делает код лучшеПросишь модель писать больше комментариев или тщательнее рассуждать. Она пишет больше текста, меняет стиль. Но качество кода не растёт. Модель не может выдумать правильную идею просто по инструкции про стиль — она застревает не на форме, а на самой идее решенияНе проси стиль. Дай готовый верный план от другой (сильной) модели. Вставь его в начало ответа как комментарии
Нерелевантная подсказка в контексте вредит сильнее её отсутствияЕсли текст перед кодом (план, комментарий, подсказка) не по теме задачи, модель всё равно ему доверяет. Идёт по ложному следу активнее, чем решала бы с нуля. Актуально для любого текста-подсказки в контексте, не только для комментариев в кодеПроверяй релевантность плана или подсказки перед тем как её подсовывать. Не уверен в правильности — лучше не давай её совсем

Методы

МетодСуть
Перенос плана от сильной модели к слабойСильная модель решает задачу и описывает решение короткими комментариями без кода. Эти комментарии вставляешь в начало запроса к слабой или дешёвой модели, которая дописывает код по ним. Работает потому что слабая модель чаще застревает не на написании кода, а на самой идее решения — готовый верный план снимает эту преграду. Когда да: сложная задача, слабая модель регулярно ошибается в логике, платная модель дорога для каждого запроса. Когда нет: задача простая и слабая модель решает её сама — план почти не добавляет пользы
📖 Простыми словами

Talking to Itself While Coding: What Makes Comments Help Code Generation?

arXiv: 2609.09242

Нейросети пишут код лучше, когда сначала комментируют свои действия в тексте. Но тут есть главный подвох: красивые рассуждения и тонны текста сами по себе не работают. Модель кодит без ошибок только тогда, когда в комментарии уже заложена суть правильного алгоритма. Если базовая идея кривая — код выйдет таким же мусором, сколько бы предварительных мыслей модель ни настрочила в контекст.

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

Что реально влияет на результат: смысловая точность идеи, а не стиль, порядок строк или длина рассуждений. Исследователи проверили всё: форматирование, псевдокод, объём и формулировки. Оказалось, что единственный рабочий фактор — содержит ли комментарий готовое решение задачи. Всё остальное — просто бесполезный шум в контексте, который впустую жжёт твои токены.

Тестировали на кодинге, но принцип универсален для любых сложных задач и работы с дешёвыми сетками. Слабые модели отлично знают синтаксис Python или SQL, но наглухо виснут на вопросе «а что вообще делать». Если скормить легковесной модели готовую логику шагов — например, правильную структуру парсера — она напишет код на уровне топовых LLM, сэкономив бюджет на API.

Короче: хватит просить модель «объяснять свои мысли подробнее» в надежде на чудо. Форма не заменяет суть. Хочешь рабочий результат от быстрой сетки — дай ей чёткий алгоритм решения, а рутинный синтаксис она набросает сама. Иначе будешь разгребать баги и читать километры умных комментариев к сломанному скрипту.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с