Выглядит как тонкая настройка, а на деле – петля самоуничтожения
Запускаете Nemotron 3 Super 120B через llama-server, подключаете Aider для работы с кодом. Модель начинает решать задачу, выдает первый reasoning-шаг, второй... и вдруг – она застревает. Не молчит, нет. Она начинает повторять свои же рассуждения, как эхо в пустой пещере, пока контекст не заполнится полностью, а вы не увидите в терминале стену текста. Знакомо? Если нет, то вам повезло. Если да – вы столкнулись с одним из самых досадных багов начала 2026 года.
Баг подтвержден в связке llama-server v0.6.3 (последний стабильный релиз на март 2026) и клиента Aider с активированным флагом --special. На чистом API-вызове через OpenAI-совместимый эндпоинт проблема может не проявляться.
Что пошло не так? Механика слома
Корень зла – в интерпретации системного промпта. Когда вы используете Aider с флагом --special (а многие его используют, потому что он якобы «улучшает reasoning для сложных задач»), клиент формирует запрос с особыми инструкциями для модели. Внутри лежит директива типа «Think step by step» или «Рассуждай вслух». Nemotron 3 Super, обученная на гибридной SSM-архитектуре, следует ей слишком буквально.
Модель выдает chunk reasoning-a. Сервер (llama-server) передает этот chunk обратно в контекст как часть диалога. А дальше – сбой логики. Модель видит свой собственный вывод, интерпретирует его как новый пользовательский запрос и... начинает рассуждать над своим же reasoning-ом. Получается рекурсия без базового случая. Бесконечная петля.
--special) и того, как llama-server v0.6.3 обрабатывает stream-ответы. На «голом» запросе через curl или обычный ChatCompletion такой баг не воспроизводится.«Мы это фиксили уже трижды»: история одного флага
Флаг --special в Aider – legacy-опция, оставшаяся со времен ранних экспериментов с цепочками рассуждений. В теории он должен был помогать моделям вроде Nemotron или Step-3.5-Flash структурировать мышление. На практике он часто ломал детерминированность.
Разработчики llama-server знают о проблеме. В issue-трекере репозитория есть тред, начатый еще в январе 2026, где обсуждается эта петля. Один из инженеров NVIDIA написал: «Похоже, модель путает internal reasoning tokens с user input. Это связано с тем, как мы обрабатываем multi-turn в streaming mode».
1 Первый и главный фикс – убить флаг --special
Просто не используйте его. Запускайте Aider без этой опции. Вместо aider --special пишите обычный aider. На качестве reasoning для большинства задач это не скажется, зато избавит от головной боли. Если нужны сложные рассуждения, лучше явно прописать инструкцию в промпте.
2 Если флаг нужен – меняйте подход к стримингу
В llama-server есть экспериментальный флаг --no-stream-reasoning. Он отключает потоковую передачу reasoning-токенов, собирая их в один batch перед отправкой. Это ломает «живой» вывод, зато обрывает петлю. Запускайте сервер так:
llama-server --model ./nemotron-3-super-120b.Q4_K_M.gguf --no-stream-reasoning
Да, это костыль. Но он работает.
3 Крайний случай – патч для Aider
Если без флага --special жизнь не мила, можно залезть в код клиента. В файле aider/cli.py найти обработку этого флага и закомментировать строки, добавляющие специальные reasoning-директивы в системный промпт. Это займет пять минут, но будьте готовы к тому, что обновление Aider затрет ваши изменения.
Это баг или фича? Мнение изнутри
Я поговорил с двумя разработчиками, которые плотно работают с Nemotron 3 Super. Один из них, участвовавший в тестировании агентных сценариев для NVIDIA, высказался резко: «Это классическая проблема boundary между reasoning и output. Модели с усиленным мышлением, такие как Nemotron Super или Qwen3-4B-Instruct, иногда теряют маркеры, где заканчиваются их мысли и начинается ответ пользователю. В гибридных SSM-моделях это особенно заметно».
Второй разработчик, автор гайда по запуску Nemotron 3 Super в llama.cpp, более оптимистичен: «Баг воспроизводится только в специфичных условиях. В большинстве случаев модель работает стабильно. Но да, если вы лезете в дебри кастомных флагов – готовьтесь к сюрпризам».
На момент 18 марта 2026 года команда llama-server работает над фиксом в ветке dev. Обещают, что в версии 0.7.0 проблема будет решена через явное разделение reasoning-токенов и user input в streaming API. Но релиз пока не scheduled.
Что делать сейчас, пока ждем патч?
- Используйте стандартные флаги. Забудьте про
--special,--jinjaи прочую экзотику, если не готовы часами дебажить петли. - Переходите на более простые модели для рутинных задач. Для редактирования кода часто хватает Nemotron-3-Nano-4B – она не склонна к рекурсивным срывам.
- Контролируйте длину reasoning. В Aider есть скрытый параметр
--reasoning-max-tokens. Установите его на 512 или 1024, чтобы модель не уходила в глубины самокопания. - Если видите, что модель начала повторять одно и то же – немедленно прерывайте выполнение. Ctrl+C спасает контекст и нервы.
Баг с зацикливанием – не приговор для Nemotron 3 Super. Это просто напоминание, что самые продвинутые инструменты требуют самого аккуратного обращения. Как сказал мне один инженер: «Мы даем вам реактор холодного синтеза. Не тыкайте в него палкой через неподдерживаемые флаги». Думаю, это лучшая мораль для этой истории.