Один и тот же промпт на веб-разработку прогнали через 9 языковых моделей: три облачные и шесть локальных. Локальные работали через llama.cpp на RTX 3060 12GB, на машине стояло 16GB DDR4 single-channel и CachyOS на базе Arch Linux. Автор теста потратил на все прогоны около 8 часов.
Задача для всех моделей была одинаковой: собрать одностраничный сайт вымышленной студии NOVA//LABS на чистом HTML/CSS/JS, без бэкенда, аутентификации и базы данных. Приоритет отдавался визуальному качеству, а не количеству функций. По субъективной оценке автора лучший баланс качества дизайна, скорости и укладывания в 12GB VRAM дал Qwen 3.8 27B GSQ-RCO-IQ3-XXS. Самым быстрым среди локальных оказался Ornith 1 9B.
Это единичный пользовательский прогон с записанными генерациями, а не лабораторный бенчмарк. По одному запуску на модель и одной субъективной оценке дизайна универсальный рейтинг не построить. Результаты полезны как ориентир для похожей конфигурации: RTX 3060 12GB, 16GB DDR4 single-channel, llama.cpp.
Что это за тест и почему его результаты: ориентир, а не рейтинг
Условия теста: железо, ОС и среда запуска
Конфигурация скромная по меркам локального инференса: GPU RTX 3060 12GB, 16GB DDR4 single-channel, ОС CachyOS на базе Arch Linux, локальные модели запускались через llama.cpp. Всё остальное в результатах определяют два ограничения.
Первое: 12GB VRAM. В этот объём должна уложиться не только модель, но и KV-кэш, который растёт вместе с контекстом. Как только веса и кэш перестают помещаться, часть слоёв уходит на CPU, и скорость падает в разы.
Второе: одноканальная память. 16GB DDR4 single-channel дают меньшую пропускную способность, чем двухканальный режим, а prefill и выгрузка слоёв на CPU упираются именно в неё. На dual-channel те же модели могут показывать другие цифры, поэтому переносить результаты один в один не стоит.
Промпт: сайт NOVA//LABS на чистом HTML/CSS/JS
Промпт просил собрать одностраничный сайт вымышленной высокотехнологичной студии NOVA//LABS: чистый HTML, CSS и JavaScript, без бэкенда, аутентификации, базы данных и лишней сложности. Отдельно проговаривалось, что визуальное качество важнее количества функций.
Для сравнения моделей такая задача удобна по трём причинам. Она проверяет код и вёрстку одновременно. Она не требует внешних сервисов, поэтому результат виден сразу в браузере. Она достаточно длинная, чтобы модель уперлась в лимит контекста и показала, как держит исходные требования на дистанции. Критерий «дизайн важнее функций» дополнительно отделяет аккуратную типографику и композицию от набора однотипных секций.
Облачные модели: точка отсчёта по скорости и токенам
Три облачные модели дали разброс по времени почти в пять раз. Gemini 3.8 Flash справилась за ~3 минуты 12 секунд и потратила примерно 9K токенов, работа шла через Antigravity. GPT-5.6 Sol показала ~1 минуту 6 секунд, но данные о расходе токенов автору были недоступны. Claude Sonnet 5 заняла ~4 минуты 56 секунд, расход токенов тоже остался неизвестен.
Оговорка по последней модели: Claude Sonnet 5 использовался ограниченно, потому что подписка Claude-Code Max истекла. Это референс по времени, а не полноценное соревнование. Облачные модели не ограничены 12GB VRAM и не платят за выгрузку слоёв на CPU, поэтому их результаты стоит читать как ориентир «сколько это занимает без аппаратных рамок», а не как победу в равных условиях.
Про качество облачных генераций в этом тесте данных нет. Автор описывает время и токены, дизайн облачных версий отдельно не разбирается, так что сравнивать их сайты NOVA//LABS с локальными по этому прогону нельзя.
Локальные модели на RTX 3060 12GB: кто влез, кто просел
Локальных кандидатов в тесте шесть, конкретные цифры автор приводит по пяти, и именно их разбираю ниже.
Bonsai 2 27B Ternary: нативная ternary-модель, то есть веса пересобраны примерно в 2 бита. Размер ~7.66GB, средняя скорость генерации ~34-36 tok/s, контекст до ~102K. В этом прогоне модель использовала около 52K токенов из 122K контекста и потратила ~45 минут. Один из немногих кандидатов, который чувствовал себя в 12GB VRAM спокойно.
Отдельный материал описывает эту модель иначе: Bonsai 2 27B построена на Qwen3.8 27B, сжатой примерно в 9 раз, веса пересобраны со значениями -1, 0 и +1, объём 5,9 ГБ вместо 54 ГБ, сохранено 98,2% результата базовой модели, контекст доходит до 262 тысяч токенов. Цифры из того разбора расходятся с параметрами этого прогона (~7.66GB и контекст до ~102K), поэтому планировать конфигурацию по ним рискованно.
Qwen 3.8 27B GSQ-RCO-IQ3-XXS с MTP: ~10.4GB, включённый high thinking, около 57 минут. Скорость держалась на уровне ~29 tok/s у полного контекста и ~40 tok/s при почти пустом. Модель использовала примерно 75K контекста, при этом контекст компактился дважды, а доступный объём в этом прогоне составил около 49K. Квант агрессивный, но по времени это самый долгий локальный результат.
Qwen 3.8 27B Q4_K_M Unsloth Dynamic 3 не удержался на GPU. На полном контексте скорость проседала до ~4 tok/s, и часть слоёв приходилось выгружать на CPU. Разница между двумя вариантами одной модели наглядная: один квант дал рабочие ~29-40 tok/s, другой упал в шесть-семь раз.
Ornith 1 9B Q4_K_M стал самым быстрым среди локальных участников. Конкретных цифр по tok/s автор для него не приводит, но именно этот вариант он называет быстрейшим. Ornith 1.5 35 A3B Q6 тоже участвовал в прогоне, отдельных измерений по нему в тесте нет.
Промежуточный вывод: в 12GB VRAM уложились не все кандидаты. Квант влияет на результат сильнее, чем номинальный размер модели: 27B в агрессивном кванте работала, а тот же Qwen 3.8 27B в Q4_K_M требовал выгрузки на CPU.
Почему один и тот же Qwen 3.8 27B ведёт себя по-разному в GSQ-RCO-IQ3-XXS и Q4_K_M
Разница между этими названиями сводится к тому, сколько бит тратится на веса и как эти веса упакованы. GSQ-RCO-IQ3-XXS дал ~10.4GB и быструю генерацию, Q4_K_M Unsloth Dynamic 3 раскладывает биты иначе и на полном контексте в 12GB не поместился. Подробный разбор того, как квантование меняет скорость и качество на одной задаче, есть в тесте Qwen3.8 27B IQ3_XXS против Bonsai Ternary PQ2.
На практике разница видна в двух числах: tok/s и объём выгрузки слоёв на CPU. GSQ-RCO-IQ3-XXS удерживал ~29-40 tok/s, Q4_K_M на полном контексте давал ~4 tok/s. Размер тут решает не всё: у Q4_K_M часть слоёв уезжала на CPU, а это самый дорогой вид замедления. Дополнительный фактор, механизм MTP (предсказание нескольких токенов за шаг), который использовался у GSQ-RCO: как драфтеры влияют на скорость, разобрано в сравнении движков и MTP/DSpark на RTX 5090.
Роль thinking-режима: 57 минут против 12
Самый показательный замер теста касается не модели, а настройки. Qwen 3.8 27B GSQ-RCO с включённым high thinking работала ~57 минут. С выключенным thinking та же модель на той же задаче уложилась примерно в 12 минут. Разница почти в пять раз, и вся она уходит на токены рассуждений, которые модель генерирует перед ответом.
На 12GB VRAM это чувствуется сильнее, чем на большом GPU: каждый лишний токен reasoning занимает место в контексте и время на генерацию при скорости ~29-40 tok/s. Отключение thinking ускоряет прогон, но это компромисс по качеству. Автор теста влияние отключения на дизайн отдельно не измерял, поэтому утверждать, что без thinking сайт получился бы таким же, нельзя. Как режимы мышления сказываются на коде, разбирается в тесте Qwen 3.8 27B на воссоздании Galaga.
Сравнение локальных и облачных моделей на одной задаче
Сводка по одному прогону, без повторов:
| Модель | Запуск | Время | Скорость | Память и контекст |
|---|---|---|---|---|
| Gemini 3.8 Flash | облако | ~3 мин 12 сек | нет данных | ~9K токенов, Antigravity |
| GPT-5.6 Sol | облако | ~1 мин 6 сек | нет данных | расход токенов неизвестен |
| Claude Sonnet 5 | облако | ~4 мин 56 сек | нет данных | использован ограниченно |
| Bonsai 2 27B Ternary | llama.cpp | ~45 мин | ~34-36 tok/s | ~7.66GB, контекст до ~102K, занято ~52K |
| Qwen 3.8 27B GSQ-RCO-IQ3-XXS + MTP | llama.cpp | ~57 мин с thinking, ~12 мин без | ~29-40 tok/s | ~10.4GB, доступно ~49K контекста |
| Qwen 3.8 27B Q4_K_M Unsloth Dynamic 3 | llama.cpp | нет данных | ~4 tok/s на полном контексте | часть слоёв на CPU |
| Ornith 1 9B Q4_K_M | llama.cpp | нет данных | самый быстрый локальный | точных цифр в тесте нет |
| Ornith 1.5 35 A3B Q6 | llama.cpp | нет данных | нет данных | участник без отдельных цифр |
Разрыв по времени между облаком и локальными моделями в этом тесте кратный. Самый быстрый облачный вариант (GPT-5.6 Sol, ~1 мин 6 сек) быстрее лучшего локального результата (~12 минут у Qwen 3.8 27B GSQ-RCO без thinking) примерно в 10 раз. Локальные модели не обгоняют облако по скорости, зато не расходуют токены API и не отправляют промпт наружу. Что важнее, зависит от задачи: для разового макета облако удобнее, для потока итераций с данными, которые не должны покидать машину, локальный запуск даёт автономность.
Кто победил: лучший баланс и самый быстрый локальный вариант
По субъективной оценке автора лучший баланс качества дизайна, скорости и укладывания в 12GB VRAM дал Qwen 3.8 27B GSQ-RCO-IQ3-XXS. Самый быстрый локальный участник: Ornith 1 9B Q4_K_M. Формулировки важны: это оценка одного человека по одному промпту, а не место в независимом рейтинге.
Если важнее качество дизайна
Qwen 3.8 27B GSQ-RCO-IQ3-XXS: ~10.4GB, ~29 tok/s у полного контекста, ~40 tok/s при почти пустом. С включённым thinking прогон занимает ~57 минут, без него около 12. Выигрыш в скорости при отключённом thinking заметный, но чем он обходится по качеству, в тесте не измерялось. Модель также прошла через двухкратное компактирование контекста при доступных ~49K, так что на очень длинных задачах ей будет тесно.
Если важнее скорость
Ornith 1 9B Q4_K_M стал самым быстрым локальным вариантом в тесте. Bonsai 2 27B Ternary тоже выглядит интересно: ~7.66GB, ~34-36 tok/s, контекст до ~102K. Но в конкретном прогоне Bonsai заняла ~45 минут, поэтому по итоговому времени она проиграла. Разница между «быстро генерирует» и «быстро доводит задачу до конца» здесь видна хорошо.
Практические выводы для владельцев RTX 3060 12GB
Что даёт тест в практическом плане:
- 12GB VRAM это жёсткая граница. Квант значит больше, чем заявленный размер: Qwen 3.8 27B в агрессивном кванте работал, тот же Qwen в Q4_K_M требовал выгрузки слоёв на CPU.
- Thinking-режим может увеличить время генерации в разы. В этом прогоне его отключение сократило время с ~57 до ~12 минут.
- Выгрузка слоёв на CPU роняет скорость до ~4 tok/s, то есть делает длинную генерацию почти нерабочей.
- Компактирование контекста помогает дожить до конца задачи, но не бесплатно: у Qwen 3.8 27B GSQ-RCO контекст компактился дважды, доступный объём составил ~49K, и каждый пересказ истории рискует потерять детали исходного промпта.
- Одноканальная память усиливает все эти эффекты. Для локального запуска на 3060 dual-channel RAM даст заметно другой результат на prefill и при выгрузке слоёв.
Стоит ли вообще запускать локально. Локальный прогон оправдан, когда нужна автономность, когда промпты и данные не должны уходить с машины или когда счёт за токены API становится фактором. Если нужен быстрый разовый результат, облако в этом тесте было быстрее в разы. Повторить цифры на другой конфигурации с гарантией нельзя: слишком многое зависит от кванта, версии llama.cpp и объёма контекста.
Что проверить у себя перед повторением теста
Перед своим прогоном сверьте: версию llama.cpp, тип памяти (single-channel или dual-channel), реальный доступный контекст после компактирования, включён ли thinking, какой именно квант загружен. Отдельно посмотрите, сколько слоёв уходит на CPU: если хотя бы часть, скорость уже не будет похожа на опубликованные цифры. Пример другой конфигурации на 12 ГБ VRAM, где схема с IQ3_XXS и большим контекстом давала совсем другие числа, разобран в отчёте о запуске Qwen3.8-Flash на 12 ГБ VRAM.
Ограничения теста и почему это не бенчмарк
Ограничения стоит держать в голове до того, как делать выводы:
- Один промпт и один прогон на модель. Повторных запусков, которые сгладили бы случайный разброс, не было.
- Оценка дизайна субъективна и сделана одним человеком.
- Расход токенов по GPT-5.6 Sol и Claude Sonnet 5 неизвестен, а Claude Sonnet 5 работал ограниченно из-за истёкшей подписки Claude-Code Max.
- Условия прогонов не контролировались как в лаборатории: фоновые процессы и нагрев не учитывались, каждая модель получала своё время суток и своё состояние системы.
- Данные о Bonsai 2 27B из стороннего материала (5,9 ГБ, 98,2% качества, контекст до 262K) расходятся с параметрами этого прогона (~7.66GB, до ~102K).
Практический итог для владельца RTX 3060 12GB: если хочется проверить идею локально, начинайте с агрессивного кванта 27B вроде GSQ-RCO-IQ3-XXS и держите thinking выключенным для черновых итераций, включая его только на финальный прогон. Если нужно быстро и без возни с выгрузкой слоёв, смотрите на 9B-модели вроде Ornith 1 9B. Облако при этом остаётся самым быстрым вариантом из протестированных, и делать вид, что 3060 обгоняет его по времени, не стоит.