Зачем это нужно? Локальный инференс на пределе
Все хотят запускать большие языковые модели дома. Но видеокарты не резиновые. Особенно когда речь о чем-то крупнее 7 миллиардов параметров. В теории, квантование решает проблему. На практике, выбор метода определяет, будет ли модель работать или ползать как улитка.
Carnice-9b - не самая популярная модель, но именно она стала тестовым полигоном для AWQ (Activation-aware Weight Quantization). Разработчики выбрали ее за сбалансированность между размером, качеством ответов и отзывчивостью к квантованию. Результат? Модель, которая на RTX 3070 Ti работает быстрее, чем многие 7-миллиардники в полной точности.
Что такое AWQ и почему он вдруг лучше GPTQ?
AWQ квантование появилось не вчера, но только сейчас, с интеграцией в vLLM и появлением ядра Marlin, раскрыло весь потенциал. Суть в том, что AWQ не просто сжимает веса, а анализирует, какие из них важнее для активаций. Это как упаковывать хрупкий груз: обычное квантование бросает все в общую коробку, AWQ аккуратно оборачивает каждый слой.
В нашем полном гайде по квантованию мы детально разбирали отличия методов. Коротко: AWQ сохраняет точность лучше GPTQ при одинаковой степени сжатия, особенно на моделях со сложной архитектурой. Но есть нюанс - до недавнего времени у него не было аппаратно-ускоренного ядра для инференса.
Не путайте AWQ с популярным GGUF форматом для llama.cpp. GGUF отлично работает на CPU, но на GPU его производительность часто уступает специализированным решениям. Если у вас мощная видеокарта, но слабый процессор - выбор очевиден.
Marlin: Секретное оружие для Ampere
Marlin - это низкоуровневое ядро, написанное на CUDA, которое выполняет матричные умножения для квантованных W8A16 (8-битные веса, 16-битные активации) моделей. Ключевой момент: оно оптимизировано именно под архитектуру Ampere (RTX 3000 серии). Не под Turing, не под Ada Lovelace, а конкретно под Ampere.
Почему это важно? Потому что на тех же RTX 3060 Ti или 3080 Marlin дает прирост в 1.5-2 раза по сравнению с универсальными ядрами. Разработчики vLLM интегрировали Marlin как бэкенд по умолчанию для AWQ моделей, и с версии 0.4.0 он включается автоматически при обнаружении совместимого GPU.
Как это работает в железе
Представьте, что вы пытаетесь запустить Carnice-9b на RTX 3070 с 8 ГБ памяти. Без квантования модель даже не загрузится. С обычным GPTQ - загрузится, но будет обрабатывать 5-7 токенов в секунду. С AWQ и Marlin - стабильные 15-20 токенов. Разница ощущается сразу.
| Метод | Память (Carnice-9b) | Скорость (токен/с) | Точность (MMLU) |
|---|---|---|---|
| FP16 (базовая) | ~18 ГБ | - (не помещается) | 68.5 |
| GPTQ 4-bit | ~5.5 ГБ | 8-10 | 66.2 |
| AWQ 4-bit + Marlin | ~5.2 ГБ | 18-22 | 67.8 |
Цифры на 12.04.2026 для RTX 3070 Ti, тестовая конфигурация: vLLM 0.5.2, длина контекста 2048 токенов. Разница в скорости не просто цифры - это грань между "можно пользоваться" и "мучительно медленно".
Настройка: две минуты вместо двух часов
Раньше для настройки такого стека нужно было собирать vLLM из исходников, патчить ядра, танцевать с бубном. Сейчас все проще:
pip install vllm>=0.5.2
Да, все. vLLM автоматически определит Ampere GPU и использует Marlin для AWQ моделей. Загрузка модели выглядит так:
from vllm import LLM
llm = LLM(model="TheBloke/Carnice-9b-AWQ", quantization="awq")
Если что-то идет не так (например, Marlin не активировался), проверьте флаг --quantization awq в командной строке или установите переменную окружения VLLM_USE_MARLIN=1. Но с версии 0.5.2 это редко требуется.
Сравнение с альтернативами: когда что выбирать
AWQ с Marlin - не серебряная пуля. Для некоторых задач лучше подходят другие подходы:
- llama.cpp с GGUF: Берите, если у вас слабая видеокарта, но мощный CPU. Или если нужна максимальная совместимость. Наш тест 3060 Ti против llama.cpp показал, что на CPU-only GGUF может быть быстрее, чем квантованные модели на слабом GPU.
- GPTQ: Все еще актуален для карт Turing (RTX 2000 серии) или если вы используете старые версии фреймворков. Но на Ampere проигрывает по скорости.
- BitsandBytes: Хорош для экспериментов с разными степенями квантования, но требует много памяти и медленнее в инференсе.
- Для многоголовых MoE моделей: Здесь своя история. Как мы писали в статье про NVFP4 MoE модели, для них нужен специальный бэкенд.
Кому подойдет этот стек?
Трем категориям пользователей:
- Владельцы RTX 3060 Ti, 3070, 3080, 3090 с 8-12 ГБ памяти. Для вас это оптимальный способ запускать модели размером 9-13 миллиардов параметров с человеческой скоростью ответа.
- Разработчики, которые тестируют прототипы. Быстрый инференс означает больше итераций в день. AWQ сохраняет точность лучше других методов, что важно для оценки качества.
- Энтузиасты, которым надоело ждать. Серьезно, если вы устали от 5 токенов в секунду - это ваш выбор.
Не подойдет тем, у кого карты старше Ampere (например, GTX 1000 серии) или новее (Blackwell). Для Blackwell есть свои оптимизации, о которых мы писали в материале про Qwen3.5-397B.
Что дальше? Погода на 2027 год
Тренд очевиден: аппаратно-специфичные оптимизации становятся стандартом. Вместо универсальных решений вроде TensorRT, сообщество создает легковесные ядра под конкретные архитектуры. Marlin для Ampere - только первый ласточка.
Уже тестируются аналогичные ядра для Ada Lovelace (RTX 4000) и Blackwell (RTX 5000). Принцип тот же: анализируем аппаратные особенности архитектуры и пишем код, который их использует на 100%.
Мой прогноз: через год запускать 20-миллиардные модели на потребительских картах будет так же просто, как сегодня 7-миллиардные. Благодаря таким связкам, как Carnice-9b AWQ + vLLM + Marlin.
Проверьте обновления. На момент публикации (12.04.2026) вышла новая версия Carnice-9b-v2 с улучшенной поддержкой AWQ. Если читаете позже - ищите еще более свежие варианты.