От зацикленного xhigh до живой SVG
Qwen3.8-27B вышла девять дней назад. За это время мы успели скачать неудачную ревизию кванта, выяснить, что высокий reasoning в нашем интерфейсе на самом деле не включался, получить настоящий бесконечный цикл, найти рабочий anti-loop и столкнуть локальную модель с GPT-5.6 Sol на одной наглядной задаче.
Девять дней вместо красивой легенды
14 августа 2026 года Qwen выпустила Qwen3.8-27B. Сегодня 23 августа. Поэтому никакой «многомесячной работы вокруг этой модели» здесь быть не могло: вся история уместилась чуть больше чем в неделю. Она от этого не становится менее интересной - скорее наоборот.
Наш harness существовал до Qwen3.8-27B. Он построен на базе Pi: основную логику backend мы почти не меняли, но сделали свой интерфейс, управление локальными моделями, режимы задач, наблюдаемость, работу с контекстом, инструментами и историей. Когда вышла новая 27B-модель, я начал встраивать её в уже рабочий контур.
18 августа я скачал UD-Q4_K_XL от Unsloth. Позже выяснилось, что локальный файл совпадает с ранней ревизией: 19 августа в репозитории сначала появился GGUF размером 17 923 394 624 байта, а через восемь минут его заменили файлом под тем же именем - уже 17 559 178 144 байта и с другим SHA-256. Никакого предупреждения в названии не было. То, что сначала выглядело как странности самой модели, частично могло быть свойством неудачного раннего кванта.
21 августа я поставил исправленный Dynamic V3. Он действительно оказался другим: лучше писал обычный текст и заметно увереннее работал в длинных задачах. При этом рабочий VRAM-футпринт вырос. Старый профиль на 163 840 токенов уже не помещал MTP - второй карте не хватало 228 МиБ. Контекст пришлось снизить до 143 360. Это важная деталь: новая ревизия была меньше на диске, но тяжелее в реальном запуске.
Сначала мы обнаружили, что xhigh вообще не включался
В интерфейсе был переключатель высокого reasoning, и внешне казалось, что он работает. Но разбор запросов показал обратное: Pi передавал включение thinking, а выбранное значение xhigh до шаблона Qwen не доходило. llama-server всё время оставался на нейтральном medium.
Именно поэтому ранние тесты выглядели нормально. Модель рассуждала, вызывала инструменты и заканчивала работу. Мы считали это управляемым высоким мышлением, хотя на самом деле наблюдали обычный medium. Ошибка harness маскировала проблему модели.
Когда я вручную добавил настоящий триггер Reasoning effort is set to xhigh, поведение изменилось сразу. Один прогон исчерпал прежний лимит в 32 768 токенов. В следующем, уже с увеличенным потолком, модель создала 119 277 символов внутреннего thinking, не вызвала ни одного инструмента и не дала финального ответа. Блок из 208 непустых строк - 13 598 символов - повторился дословно, затем начался в третий раз.
Это был не «очень глубокий анализ». Модель переписывала один и тот же архитектурный план и не могла перейти к действию. Мы наконец включили xhigh правильно - и именно поэтому увидели, почему пользоваться им напрямую нельзя.
Самодельный high тоже не сработал
Следующая попытка казалась логичной: не использовать официальный xhigh, а дать промежуточную инструкцию Reasoning effort is set to high. У Qwen3.8-27B нет штатного режима high, это был наш эксперимент.
Буквального повтора большого блока уже не было, но проблема осталась в другой форме. За 28 минут модель сгенерировала 55 407 токенов и 21 раз писала себе что-то вроде Let me write, после чего снова возвращалась к архитектуре, механикам и графике. Настоящий вызов записи файла сформировался только в самом конце; я остановил прогон между формированием tool call и его выполнением. Почти весь бюджет ушёл до первого полезного действия.
Мы попробовали и более обычную инструкцию «думай глубже». Она закончила задачу и сократила первый ход до 17 105 токенов против 62 447 в экстремальном варианте, но результат оказался заметно проще: 755 строк и 32 функции против 1 067 строк и 63 функций в более амбициозной версии. Дополнительное тестовое вычисление действительно давало модели время выбрать более сложную архитектуру. Простая просьба быть внимательнее этого не воспроизводила.
Жёсткий reasoning budget на 24K или 32K я тоже отложил. Такой лимит не знает, закончен ли план: он способен оборвать генерацию посреди архитектурного решения или незакрытого tool call. Нужен был не механический обрыв, а мягкий переход от размышления к работе.
Фраза, на которой глубокий режим наконец заработал
`Reasoning effort is set to xhigh. Keep your reasoning concise and non-repetitive; once a coherent approach is established, proceed to the answer or tool call.` Мы сохранили сильный обученный триггер, но вместо приказа бесконечно перепроверять всё добавили явный выход к ответу или инструменту.
Что именно работает сейчас
llama-server остаётся на medium. Когда включён наш режим «Глубоко», перед базовым системным промптом Pi добавляется короткая фраза выше. Прошлое thinking сохраняется (preserve_thinking: true), а общий выход одного хода ограничен 65 536 токенами. Это аварийный потолок, а не цель.
Sampling оставлен официальным для Qwen3.8: temperature 1.0, top_p 0.95, top_k 20, min_p 0, presence_penalty 0, repeat_penalty 1. Мы специально не меняли одновременно пять переменных, чтобы было понятно, что именно повлияло на поведение.
После этого модель начала делать то, ради чего вообще нужен агентный harness: проектировать, вызывать инструменты, проверять файл, воспроизводить ошибки и возвращаться к исправлению. В одном из следующих тестов она собрала в единственном HTML небольшую игру примерно на 750 строк: пять районов, разные типы противников, комбо, ярость, частицы, Web Audio и голосовые реплики. Затем продолжила самостоятельно тестировать механику и баланс.
Именно поэтому SVG с лошадью - не первое впечатление и не случайный удачный кадр. К этому моменту модель уже проходила длинные инструментальные задачи. SVG стал удобным маленьким объектом, в котором легко увидеть разницу между красивым превью и связной реализацией.
Конфигурация этого прогона, а не системные требования
Одна задача: лошадь действительно едет на велосипеде
Я сравнил два SVG по одной сюжетной идее. Первый сделала GPT-5.6 Sol в Codex с высоким reasoning. Второй - локальная Qwen3.8-27B в нашем глубоком режиме поверх Pi.
Если посмотреть издалека, работа Sol нравится больше. У неё сильнее цвет: глубокий фиолетовый фон, большое солнце, бирюзовая рама, крупная лошадь и хороший контраст. Она быстрее работает как постер. Но цвет - это не вся сцена.
Когда начинаешь смотреть на механику, преимущество исчезает. У Sol задние ноги остаются фиксированными контурами рядом с кареткой, пока колёса вращаются отдельно. Основная поза лошади почти заморожена. У Qwen обе задние ноги стоят на педалях и проходят согласованный цикл, вращается кривошип, работает цепь, покачивается корпус, а пустыня движется несколькими планами.
Это и стало критерием: не «какая картинка приятнее в превью», а «какая система честнее выполняет задачу анимированной сцены».
Что находится внутри двух SVG
Размер сам по себе ничего не доказывает. Здесь он полезен вместе со структурой и тем, что реально происходит в анимации.
| Метрика | GPT-5.6 Sol | Qwen3.8-27B |
|---|---|---|
| Размер файла | 12 831 байт | 29 230 байт |
| Строки | 168 | 523 |
| SVG-элементы | 150 | 263 |
| Группы g | 16 | 69 |
| Контуры path | 49 | 53 |
| Градиенты | 7 | 5 |
| Фильтры | 3 | 0 |
| Анимация | 9 SMIL-узлов | 31 CSS keyframe и 35 animation-связей |
Почему второй SVG сильнее именно как анимация
Каждая задняя нога в локальном SVG разделена на бедро и голень. Для ближней и дальней ноги заданы отдельные циклы из 12 фаз. Кривошип делает оборот за 1,5 секунды, ноги работают в том же периоде, а педали контрвращаются, сохраняя ориентацию. Модель не просто подвигала конечности возле велосипеда - она связала два копыта с двумя противоположными педалями.
Одновременно движутся колёса, кривошип, педали, цепь, корпус, голова, ухо, хвост, грива, блик на очках, ветер, пыль и песчинки. Дальний, средний и передний планы имеют разную скорость. Облака, птица, перекати-поле, солнце и слои земли работают как одна среда.
Кактусы перед колёсами сначала тоже можно принять за ошибку. Но это объекты ближнего плана: они намеренно перекрывают велосипед и движутся быстрее фона, создавая параллакс. Можно спорить с размером конкретного кактуса, но сам принцип перекрытия композиционно правильный.
При этом контуров почти поровну - 49 против 53. Разрыв создают не лишние украшения, а временные состояния и связи. Sol нарисовала более эффектный кадр. Qwen построила более сложную сцену.
Независимый индекс объясняет, почему результат уже не выглядит чудом
После практических тестов я посмотрел Artificial Analysis. На 23 августа Qwen3.8-27B в режиме xhigh получает 52 балла по Intelligence Index v4.1.1. GPT-5.6 Sol набирает 51 на low и 56 на medium. То есть по этому агрегированному индексу небольшая Qwen находится примерно между низким и средним reasoning Sol.
Claude Opus 4.6 Max показывает 45 баллов, хотя Artificial Analysis уже помечает эту модель как устаревшую и не полностью обновляет исторические результаты. Для меня здесь важен не лозунг «27B победила все флагманы». Важен другой факт: уровень, который ещё недавно ассоциировался только с дорогими закрытыми моделями, теперь появляется у локального checkpoint такого размера.
Эти 52 балла нельзя напрямую присвоить нашему стенду. Artificial Analysis тестирует своё API-представление модели, а у нас GGUF-квант, llama.cpp, конкретный sampling и собственный harness. Рейтинг объясняет направление, но не заменяет локальный eval. Именно поэтому я смотрю не только на число в таблице, а на ноги на педалях, tool calls, завершение задачи и итоговый файл.
Зачем всё это, если один SVG считается полчаса
Полчаса - долго, и локальный inference не бесплатен: железо нужно купить, запитать и охлаждать, а стек - поддерживать. Но две RTX 5060 Ti в этой статье не являются требованием модели. Я, как руководитель отдела разработки AI Platforms, проводил этот прогон на том стенде, который был у меня под рукой. Кто-то запустит тот же класс модели на одной RTX 3090 с 24 GB VRAM, кто-то распределит её между другими GPU или частью вынесет в RAM. Конкретный квант, контекст и скорость будут другими. Мы фиксируем конфигурацию ради воспроизводимости, а не выдаём её за единственно правильную.
Для меня разница между локальной и облачной моделью не сводится к цене одного ответа. Я нахожусь в России и пользуюсь Codex через VPN. Два Pro-аккаунта обходятся примерно в 16 тысяч рублей в месяц, а максимальный режим reasoning мне всё равно недоступен. При прежнем характере работы недельного лимита раньше хватало, а сейчас он может закончиться за два-три дня.
Локальная модель медленнее, зато веса находятся у нас. Интернет может исчезнуть, сервис может поменять тариф или перестать открываться - доступная локальная машина продолжит работать. Запросы и файлы не уходят за пределы контура. Для компании с чувствительными данными это не романтика «домашнего ИИ», а контроль над вычислением.
У нас есть и сервер с V100, на котором запланирована отдельная серия экспериментов. Но в эту статью его результаты я не подмешиваю: конкретно лошадь, игра и настройка глубокого режима проверялись на двух RTX 5060 Ti.
Это не глобальный рейтинг моделей
Один SVG не доказывает, что Qwen3.8-27B вообще сильнее GPT-5.6 Sol. Время, число токенов и внутренняя оркестрация систем не нормализованы. Вывод уже и полезнее: в этой задаче наш локальный стек построил более правильную анимированную сцену, хотя облачная модель сделала более эффектное превью.
Что я вынес из этой недели
Главный результат для меня - не победа одной лошади над другой. За девять дней стало видно, сколько качества находится между файлом модели и конечной работой. Ранняя ревизия кванта хуже писала текст. Настоящий xhigh зацикливался. Самодельный high тратил десятки тысяч токенов до первого инструмента. Один короткий anti-loop превратил бесполезное переобдумывание в долгую, но продуктивную агентную работу.
Поэтому сравнивать только названия checkpoint недостаточно. Реальная единица - это модель + квант + inference + chat template + harness + инструменты + проверка. В нашем случае Pi дал зрелую основу, а собственная обвязка позволила увидеть и исправить то, что обычный чат скрывал.
Если выбирать между двумя SVG, мой ответ простой. Для обложки я бы взял Sol и её цвета. Для задачи «лошадь действительно едет по пустыне на велосипеде» - Qwen3.8-27B в нашем harness. А для локальных моделей в целом этот тест означает ещё одну вещь: 27B уже перестала быть игрушечным классом. Теперь её слабое место - не отсутствие способности решить сложную задачу, а время, железо и качество инженерной обвязки вокруг неё.
Как проверялись файлы
Я разобрал desert_horse_cyclist.svg размером 12 831 байт и horse-bike-desert.svg размером 29 230 байт. XML-подсчётом получил число элементов, групп, контуров, градиентов и фильтров; отдельно посчитал SMIL-узлы, CSS keyframes и назначения animation. Затем сопоставил код с положением объектов и фазами движения на рендере.
Источники по модели и внешним оценкам: официальный репозиторий Qwen3.8, карточка Qwen3.8-27B, Artificial Analysis. Даты, размеры и SHA-256 ранней и исправленной ревизий Unsloth были сверены по истории репозитория и локальному GGUF.
Проверим локальную модель не на демо, а на вашей задаче
В AI Platforms мы собираем локальные стенды и agentic-harness под реальную работу. Если у вас есть задача, на которой небольшие модели обычно ломаются, мы построим воспроизводимый eval, сравним кванты и покажем вместе с результатом все ограничения - время, VRAM, контекст и незавершённые прогоны.