Всем привет! Это вторая часть статьи про форк llama.cpp. В ней я покажу реальные цифры и посмотрим, насколько лучше модель решает сложные задачи по сравнению с обычным движком, а также насколько вырастет потребление VRAM и загруженность видеокарты. Обозначения: D=0 — llama.cpp без патча, D=12 — улучшенный форк.
Железо
Все модели запускались на RTX 3050 6 ГБ, поэтому результаты на других видеокартах могут отличаться. Все модели запускались в формате Q4.
Начнём с запуска простых ИИ-моделей, после чего перейдём к более сложным. Каждую модель проверяем в тестах производительности и сравниваем оба движка. Сегодня тестируем: Qwen 32B-A3B и Qwen 2.5 Coder 7B, дообученную на трассировках лучших моделей. Проведём тесты, а затем сравним два варианта кода от Qwen 32B.
Qwen3.5 35B-A3B: самая большая модель
Сразу предупреждаю: у меня слабая видеокарта — RTX 3050 Mobile 6 ГБ. Поэтому скорость генерации составляет примерно 3 токена в секунду. Я активно работаю над решением этой проблемы и в будущем смогу показывать более репрезентативные тесты.
Для этой модели я выбрал простой, компактный, но показательный бенчмарк — Zux1U/microbench_16. Конечно, я взял простые уровни — 4 теста лёгкой сложности. Вот результаты запуска по Easy-треку:

Результаты вполне ожидаемые: обе модели показали абсолютно одинаковый результат, но рекурсивная версия оказалась чуть медленнее. Я замечал такое только на больших моделях, на маленьких подобного не наблюдалось. Следующий тест — это уже Hard-сегмент. Здесь мы наконец-то увидим, какой из движков даёт лучший результат в реальных задачах. В задаче на код-ревью мы попросили обе модели проанализировать код и получили следующие результаты:

Как мы видим, количество правильных исправлений увеличилось почти в 3,1 раза. Хотя оба варианта выполнили свою задачу, рекурсивный всё-таки сделал намного больше и точнее. Разница во времени составила 17%. В будущем в проект будут внесены оптимизации для ускорения работы и KV-кэша. Вот основные моменты:
Ключевые выводы на основе сравнения D = 0 и D = 12:
Решение проблемы «ленивого кода» (ленивой генерации):
• В D = 0 (базовый запуск) модель выдала фрагментированные куски (snippets), оставив заглушки и опустив критически важные части кода (импорты, инициализацию, запуск).
• В D = 12 движок заставил модель собрать код в единый, монолитный и готовый к продакшену скрипт с полной обвязкой (логированием, типизацией typing и корректным асинхронным сценарием запуска через asyncio.gather).Существенный рост глубины проработки (observability и инварианты):
• Базовый проход (D = 0) ограничился стандартным исправлением состояния гонки (добавлением блокировки lock).
• Рекурсивный проход (D = 12) поднял уровень инжиниринга: добавил структурированный сбор метрик прямо в класс (metrics для подсчёта успешных/неуспешных транзакций и объёмов переданных средств), ввёл валидацию типов на входе и корректно поместил логирование транзакций внутрь контекста блокировки (защитив логи от race condition, что в D = 0 было сделано лишь частично).Логическая связность и отсутствие «галлюцинаций контекста»:
• При глубокой рекурсии контекст итеративно уточняется, что позволило выдать полностью валидный Python-код без потери структуры, который можно запускать сразу из коробки.
Qwen 2.5 7B Coder Instruct
Многие читатели просили протестировать именно эту модель, поэтому я проверю её на 3 задачах, по которым можно определить качество кода и то, насколько в разных сценариях помогает рекуррентность. Все подробные результаты этой модели вы сможете найти на моём Google Диске, ссылку на который я оставлю в конце статьи.
Основных задач всего три, остальные я посчитал нецелесообразными:
1. Код-ревью: найти баги, исправить их и развернуть (деплой) Flask-сервер.
2. Фулстек-разработка: создание полноценного сервиса по продаже Orange Pi (с каталогом, дизайном, оформлением заказа и имитацией оплаты).
3. 2D-игра «Динозаврик»: популярный тест среди авторов контента.
Конечно, это не HumanEval и не SWE-Bench, но эти тесты показывают реальные возможности модели без затяжных прогонов (ограничения по железу всё ещё сказываются). Учитывайте также, что перед нами 7B-модель, поэтому её решения могут выглядеть достаточно скромными.

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

В этом тесте обе версии справились хуже, чем их старшие модели, однако ТЗ полностью выполнил только рекурсивный вариант.

Ни один из вариантов не смог полноценно создать игру — это видно на предпросмотрах. Однако, в отличие от стандартной модели, рекурсивная не генерировала несуществующие теги и смогла реализовать базовую игровую логику (пусть и без SVG). В целом можно засчитать ничью.
Итоги по Qwen 2.5 Coder Instruct

Как видите, рекурсивная версия стабильно опережает стандартную, однако почти на каждой задаче приходится жертвовать 11–13% скорости генерации. По-моему, это вполне приемлемый компромисс, но для некоторых сценариев это может оборачиваться заметными потерями времени. Именно поэтому форк продолжает развиваться — вы можете поддержать его, создав PR или Issue на GitHub.
Mistral 7B Instruct v0.2
По вашим просьбам я также протестировал известную модель Mistral 7B Instruct v0.2 на тех же трёх практических задачах. Сравнение показало очень интересную разницу между базовым движком (D = 0) и рекурсивным (D = 12).

1. Исправление уязвимостей Flask (Код-ревью): В базовом режиме (D = 0) модель пыталась защитить опасные эндпоинты через локальные фильтры, оставив частичные уязвимости. Рекурсивный вариант (D = 12) радикально переработал архитектуру и полностью заблокировал опасные руты (/ping, /math), доведя уровень защищённости кода до 98%.

2. Фулстек-платформа OrangeSell: В этой задаче прирост оказался максимальным (2.2x). Обычная модель опустила блоки FAQ, отзывов и формы входа, ограничившись простейшим списком товаров. Рекурсивный движок выполнил 100% бизнес-логики, добавив всю необходимую верстку и интерактивную корзину. И это пока что лучший из всех вариантов

3. 2D-игра «Динозаврик»: Обе версии реализовали рабочий игровой цикл и физику прыжка, однако рекурсивная модель показала более аккуратную адаптивную верстку без наложения блоков.
Итоги
В этой статье я наглядно показал, почему мой движок превосходит стандартный. Но вместе с тем мы увидели и его главный недостаток — скорость: она снижается примерно на 13%, заметно растягивая время генерации.
Почему так мало тестов Qwen 3.5 35B?
Моё оборудование не позволяет запускать большие модели полностью в VRAM. Пришлось использовать дополнительные решения, чтобы выполнить просьбы из анонимной формы обратной связи.
Почему на диаграммах рекурсивная модель выглядит значительно лучше стандартной?
Для генерации визуализации данных я использовал ИИ, который постарался максимально выгодно представить результаты моей модели в процентах. Таблицы при этом корректные — так что ничего критичного.
Ссылки
https://github.com/cubetitled-ui/llama.cpp/tree/patch-speedup
https://drive.google.com/drive/folders/15QYzCQkJvjaPsv1U-K3PBpp3Rai9q_SY?usp=sharing
P.S. Я очень извиняюсь если результаты Mistral оказались неверными ведь я доверил слишком много ии агенту но вроде все нормально
Для запуска моделей используйте именно https://github.com/cubetitled-ui/llama.cpp/tree/patch-speedup
Комментарии (27)

TomskDiver
31.07.2026 02:11Спасибо что прислушались к моему комментарию в прошлой статье (про запятые и т.д.) Данная статья выглядит куда более серьезной и взрослой. Желаю вам успехов!

Politura
31.07.2026 02:11Про открытые модели лучше всего ничего не спрашивать ни у каких LLM, ни у GPT, ни у Claude, ни у Gemini - в мире открытых моделей все меняется очень быстро, а у LLM во-первых минимум на пол года устаревшие данные, а во-вторых это похоже на какой-то сговор, все эти платные модели советуют устаревшее барахло. Лучше самому искать инфу, здесь основное обсуждение открытых моделей: https://www.reddit.com/r/LocalLLaMA/, ну и конечно https://huggingface.co/models, но там их море и легко потеряться. Самые скачиваемые часто бывают кривым барахлом, качают их из-за того, что в названии есть какой-нибудь Opus/Fable.
Qwen 32B-A3B: самая большая модель
Qwen 32B-A3B не существует. Обычно после названия пишут номер версии, а потом могут быть параметры, ну и 32B-A3B означает, что это MoE модель у которой 32B параметров всего и 3B параметров активных. У Qwen таких моделей не было вообще. Была dense модель Qwen3 32B и были MoE модели Qwen3 30B-A3B, Qwen 3.5 35B-A3B и Qwen 3.6 35B-A3B. Судя по рисунку после заголовка, у вас была Qwen 3.5 35B-A3B, но не оригинальная, а abliterated. Qwen3 вышли год-полтора назад и уже устарели, Qwen 3.6 самая современная, различные abliterated версии обычно хуже оригинальных.
Qwen 2.5 7B Coder Instruct
Многие читатели просили протестировать именно эту модель
Интересно, 2 года назад просили? :) Модель вышла в 2024 году, сейчас ее использовать смысла нет вообще.
Mistral 7B тоже древняя.
Под 6Гб видеопамяти, для кодинга вам можно попробовать либо Qwen 3.5 9B - 4-х битная по-идее должна влезть целиком, либо ее файнтюн Ornith-1.0, сам не пробовал, но судя по бенчмаркам, она хорошо от оригинала ушла: https://huggingface.co/deepreinforce-ai/Ornith-1.0-9B-GGUF

SimpleTitled Автор
31.07.2026 02:11Насчет Qwen2.5, я проводил опрос на гугл форме и тогда многие люди голосовали менно за Mistral+Qwen2.5+ Qwen3.5 35b-A3B
Насчет Qwen 3.5 9b я ее пробовал изза ее особеностей архитектуры запуск был медленее чем сейчас 35b запуск

Granulex
31.07.2026 02:11Это не сговор, а статистика: модель тянет то, что чаще мелькало в обучении, а не то, что вышло вчера. Свежак живёт на r/LocalLLaMA и в лидербордах – тут вы правы на сто процентов. Правда, та же модель с включённым веб-поиском выдаёт вполне актуальную картину.

Uglevod
31.07.2026 02:11Проект интернесный. В плане приближения разработки на локальных LLM.
Но, есть пара вопросов будет ли работать в MTP режиме с Qwen моделями ?
И понимаю, есть репа - изуйчайте, но в описании не увидел собсвенно какой механизм под капотом ?
Типа, да - что это дает, но не как это реализовано, или это коммерческая тайна ) ?
На первый взгляд, как будто бы если это сделать на уровне лангчейна - типа сделать описание главных "составляющих" кода и по шагово их доработать.
Понятно, что если с разу на уровне движка сделано - это меньше заморочек потом.
С малыми моделями - до 24b была проблема написания башскрипта, в целом не сложного ( 70 строк ), пришлось применять облачную.
А как у вас с написанием bash скриптов ?
( Я про то, что вот как будто, у малых моделей натыкаюсь на концептуальные ограничения в стилистике кода, хотя это можно решать через MCP )
SimpleTitled Автор
31.07.2026 02:11Здравствуйте вы можете посомотреть первую статью .
Там я уже полностью разобрал каждую часть реализации и то как это работает.

Vic07Region
31.07.2026 02:11Гоняю в свободное время qwen3.6-35b-a3b
На машине
i7 14700k
32 ram
RTX 5060ti infinity oc 16g
Через llama.cpp cuda добивался при контексте до 100к 50+ т/с
Контекстное окно на 1 поток 200к, при увеличении контекста ближе к 200к до 30т/с
Если интересно os Manjaro kde.

malyazin_2010
31.07.2026 02:11Я думаю если в этот пк добавить майнинговую карту типа p104-100 за 1000 руб все будет работать в разы быстрее.

SimpleTitled Автор
31.07.2026 02:11Это ноутбук. И я уже добился скорости с 2 ток в сек до 11 ток в сек с увелечением качесвта относительно базовой модели.

SimpleTitled Автор
31.07.2026 02:11Лучше использовать MI50 16gb они намного лучше для ИИ инференса и стоят по 9900 за шт.

akardapolov
31.07.2026 02:11Сами пробовали? Как с совместимостью с ПО от NVIDIA? Последние модели (этого года) смогли запустить на этом железе?

SimpleTitled Автор
31.07.2026 02:11Совместимости с ПО от Nvidia на картах AMD нету для MI50 требуеться специальная ROCm сборка или установка Vulkan

artden111
31.07.2026 02:11Не совсем понятно. Можно запускать любую модель на этом форке или для запуска её надо как-то дорабатывать?

SimpleTitled Автор
31.07.2026 02:11нет не любую только
Qwen2.5
Qwen3.5/3.6Mistral v0.1 v0.2
Llama 3.1Остальные архитектуры еще не поддерживаються но да форк запускает ЛЮБУЮ модель из этих архитектур
UPD: За это время были добавлены еще Gemma 2, Mistral 7B v0.3 и Mixtral 8x22B. Полный список можно посомтреть на репозитории проекта в ветке patch-speedup.

artden111
31.07.2026 02:11Попробовал несколько моделей. Ни одна не запустилась. Падают на assert при запуске. На гитхабе не включены issues, поэтому не могу туда отписаться

SimpleTitled Автор
31.07.2026 02:11Я включил Issues вы можете отправить Issue и я смогу попробовать помочь вам!

SimpleTitled Автор
31.07.2026 02:11Возможно вы используете не ту ветку порбуйте ту которую я указал в конце статьи это ускоренная ветка

DanielBobrov
31.07.2026 02:11А ты на ноутбучной 3050 запустил 30B модель? И получил 11т/с? Если да, то звучит вообще интересно

SimpleTitled Автор
31.07.2026 02:11Нет я получил 10 ток в секунду и запускал 35b модель но весь секрет в том что это MoE и реальных параметров в рантайме - 3b
melodicmsk
Всегда возникает вопрос. Почему у некоторых ии разработчиков такие плохие видюхи. Если студент - вопросов нет.
SimpleTitled Автор
Школьник, а так наверно идеи рождаються из проблем.
Zirext
Попробуй может что полегче в сегменте Moe когда будет время. Может ZAYA1-8B. И модели заточенные на рекурсию возможно Nanbeige4.2-3B.