Баг Nemotron 3 Super: бесконечный цикл reasoning и фикс на 18.03.2026 | AiManual
AiManual Logo Ai / Manual.
18 Мар 2026 Новости

Баг Nemotron 3 Super: почему модель зацикливается на своём reasoning и как это исправить

Технический разбор бага Nemotron 3 Super: модель создает бесконечный цикл, интерпретируя свои reasoning-шаги как пользовательский ввод. Причины, фикс через llam

Выглядит как тонкая настройка, а на деле – петля самоуничтожения

Запускаете 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-ом. Получается рекурсия без базового случая. Бесконечная петля.

💡
Это не ошибка в самой модели, а артефакт взаимодействия специфичного клиента (Aider с флагом --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. Это просто напоминание, что самые продвинутые инструменты требуют самого аккуратного обращения. Как сказал мне один инженер: «Мы даем вам реактор холодного синтеза. Не тыкайте в него палкой через неподдерживаемые флаги». Думаю, это лучшая мораль для этой истории.

Подписаться на канал