На 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 8882TCP-порт 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. Он также предупреждает о типичных проблемах, таких как ошибки доступа при выполнении команд, и рекомендует анализировать логи для поиска решений.

Статья будет полезна как новичкам, впервые пытающимся запустить локальную модель, так и опытным пользователям, которые хотят оптимизировать процесс. Она заполняет пробел в документации, делая процесс более прозрачным и воспроизводимым. Для тех, кто интересуется локальным запуском ИИ, это практическое руководство, которое можно использовать как отправную точку для экспериментов с другими моделями.