На Habr опубликована подробная инструкция по запуску языковой модели Qwen3.8-27B на персональном компьютере с видеокартой RTX 3090 под управлением Windows 10. Автор, вдохновившись постом коллеги о преимуществах модели, решил раскрыть технические детали, которые обычно опускаются в кратких обзорах. В результате получилось руководство, охватывающее все этапы: от установки необходимого программного обеспечения до запуска модели с веб-интерфейсом.
Qwen3.8-27B — это модель с 27 миллиардами параметров, разработанная компанией Alibaba. В отличие от многих современных моделей, она не использует архитектуру Mixture-of-Experts (MoE), что упрощает её локальный запуск. Для работы модели требуется значительный объём видеопамяти: в инструкции используется RTX 3090 с 24 ГБ VRAM, что позволяет разместить модель целиком после квантования. Квантование — это процесс снижения точности весов модели для уменьшения её размера, что критично для запуска на потребительском оборудовании.
| Параметр | Расшифровка |
|---|---|
| llama-server | Сам исполняемый файл сервера (собран на шаге 2): загружает GGUF-файл, поднимает HTTP-сервер с OpenAI-совместимым API и встроенным веб-интерфейсом. |
| -m ./my_conversions/Qwen3.8-27B-Q4_K_M.gguf | -m (короткая форма --model) — путь к файлу модели. Здесь — квантизированный на шаге 3.3 файл Q4_K_M. |
| -ngl 99 | Количество слоёв модели, которые нужно передать на GPU. 99 — означает разместить 99 слоёв в видеопамяти. Т.к. модель состоит из 64 слоев, этого значения более чем достаточно. Для других моделей значение количества слоёв нужно уточнять перед запуском. |
| --port 8882 | TCP-порт HTTP-сервера (по умолчанию 8080). После запуска веб-интерфейс будет доступен по адресу http://localhost:8882. |
| --temp 0.6 | Температура выборки: масштабирует вероятности токенов перед выбором. Меньше значение — более предсказуемые и «сфокусированные» ответы, больше — более случайные. 0.6 — умеренное значение, рекомендуемое для моделей Qwen. |
| --top-p 0.95 | Ядерное (nucleus) сэмплирование: в выборку допускаются только токены, чья накопленная вероятность укладывается в 95%. Обрезает «хвост» маловероятных токенов. |
| --top-k 20 | Оставляет для выбора только 20 самых вероятных токенов. Работает в связке с top-p — фактически действует более строгое из двух ограничений. |
| --min-p 0.00 | Минимальная вероятность относительно лучшего токена: токены с вероятностью ниже min-p × P(лучший) отбрасываются. 0.00 — этот фильтр выключен. |
| -t 6 | Число CPU-потоков для вычислений, идущих на процессоре (слои, не попавшие на GPU, вспомогательные операции). 6 — число физических ядер нашего i7-8700K (см. начало статьи). |
| -c 64000 | Размер контекстного окна в токенах: сколько текста (промпт + сгенерированное) модель «видит» за один раз. 64000 токенов — большой контекст; именно он требует много памяти под KV-кэш (см. cache-type-* и cache-ram ниже). |
| --cache-type-k q8_0 | Тип хранения K-части KV-кэша (ключи внимания): Q8_0 вместо F16 — вдвое меньше потребление памяти при почти незаметной потере качества. |
| --cache-type-v q8_0 | То же самое, но для V-части KV-кэша (значения внимания). |
| --parallel 1 | Число параллельных слотов (одновременных последовательностей): 1 — сервер обрабатывает по одному запросу за раз. Экономит память и подходит для одного пользователя. |
| --flash-attn on | Включает Flash Attention — оптимизированный алгоритм внимания: меньше потребление памяти и быстрее вычисления на этапе attention. |
| --presence-penalty 0.52 | Штраф за присутствие: чем чаще токен уже встречался в сгенерированном тексте, тем ниже его вероятность — подавляет повторы. 0 — выключено, значения до 1 — сильнее подавление. 0.52 — умеренное значение. |
| --repeat-penalty 1.0 | Штраф за повторение: множитель, применяемый к вероятностям уже встречавшихся токенов. 1.0 — выключено (не влияет на выбор). |
| --repeat-last-n 206 | Окно (в токенах), в котором проверяются повторы для repeat-penalty: учитываются только повторы в пределах последних 206 токенов. Пока repeat-penalty = 1.0, параметр не активен. |
| --reasoning-budget 8192 | Ограничение на число токенов в «размышляющей» (reasoning) части ответа: модель может потратить на «размышления» не более 8192 токенов. Не даёт модели думать бесконечно. |
| --reasoning-budget-message "Let's move on to the final answer." | Подсказка, которая подставляется в контекст, когда бюджет размышлений исчерпан. |
| --chat-template-kwargs "{\"reasoning_effort\": \"xhigh\"}" | Дополнительные параметры, передаваемые шаблону диалога (chat template): задаёт уровень интенсивности рассуждений xhigh (максимальный). Модели Qwen3 выбирают глубину «размышлений» как раз по этому параметру. |
| --reasoning-preserve | Сохранять блоки рассуждений модели в контексте между ходами диалога, а не выбрасывать их, то есть модель «помнит» собственные цепочки рассуждений в рамках разговора. |
| --spec-type draft-mtp | Включает спекулятивное декодирование с использованием встроенного в модель модуля MTP (Multi-Token Prediction) в роли «черновика»: черновик предлагает несколько токенов вперёд, а основная модель за один шаг проверяет их — генерация ускоряется. |
| --spec-draft-n-max 3 | Максимальное число «черновых» токенов за один шаг спекуляции: предлагается и проверяется сразу до 3 токенов. |
| --cache-ram 16384 | Ограничивает объём системной RAM (в мегабайтах), который допускается использовать под KV-кэш, если он целиком не помещается в видеопамять. 16384 МБ = 16 ГБ. |
Инструкция начинается с установки Python 3.12, который необходим для работы утилиты Hugging Face CLI и скрипта конвертации весов. Затем устанавливаются Git for Windows, CUDA Toolkit 12.8, CMake, MSVC, Ninja и OpenSSL. Каждый шаг сопровождается объяснением, зачем нужен тот или иной компонент. Например, CUDA Toolkit требуется для сборки llama.cpp с поддержкой GPU, а CMake и Ninja — для компиляции проекта.
Модель Qwen3.8-27B конвертируется в формат GGUF и квантуется до Q4_K_M, что позволяет ей полностью поместиться в 24 ГБ видеопамяти RTX 3090.
После подготовки окружения автор переходит к сборке llama.cpp из исходников. Для этого создаётся виртуальное окружение Python в папке llama.cpp, затем выполняется сборка с флагом, включающим поддержку архитектуры Ampere (RTX 3090). Далее скачиваются веса модели с Hugging Face, конвертируются в формат GGUF с точностью F16 и квантуются до Q4_K_M. Этот формат позволяет уменьшить размер модели примерно в четыре раза, что даёт возможность запустить её на видеокарте с 24 ГБ памяти.
Запуск модели осуществляется через llama-server, который входит в состав llama.cpp. Он предоставляет OpenAI-совместимый API и веб-интерфейс, позволяющий общаться с моделью через браузер. Автор приводит параметры запуска, учитывающие конфигурацию его ПК: процессор Intel Core i7-8700K, 32 ГБ оперативной памяти и SSD. Он также предупреждает о типичных проблемах, таких как ошибки доступа при выполнении команд, и рекомендует анализировать логи для поиска решений.
Статья будет полезна как новичкам, впервые пытающимся запустить локальную модель, так и опытным пользователям, которые хотят оптимизировать процесс. Она заполняет пробел в документации, делая процесс более прозрачным и воспроизводимым. Для тех, кто интересуется локальным запуском ИИ, это практическое руководство, которое можно использовать как отправную точку для экспериментов с другими моделями.

