Проект sch-qwen-master

Локальный LLM Inference Server. Экстремальная оптимизация вывода 35B моделей на CPU.

Добро пожаловать в репозиторий моего проекта! Здесь я делюсь результатами сборки и тонкой настройки кастомного движка llama.cpp, который способен запускать огромные Mixture-of-Experts (MoE) модели на потребительском Intel-процессоре со скоростями, сопоставимыми с бюджетными видеокартами.

⬇ Скачать исходный код проекта (.zip) 🔗 Скачать модель с Hugging Face

Аппаратная конфигурация

CPU Intel Core i5-12400F
(6 P-ядер / 12 потоков)
RAM 32 GB DDR4
(Апгрейд для 32k контекста)
Storage SSD Apacer AS350
(Критично для mmap I/O)

Стек и Оптимизации

Секрет высокой производительности

Казалось бы, как 35-миллиардная модель может работать на i5-12400F со скоростью 13 токенов в секунду? Вот детальный разбор оптимизаций:

1. Жесткая привязка инструкций (AVX2 + AVX-VNNI)

Процессоры Intel 12-го поколения (Alder Lake) поддерживают набор инструкций AVX-VNNI (Vector Neural Network Instructions). В моей кастомной сборке llama.cpp эта функция форсирована при компиляции. VNNI позволяет процессору выполнять операции умножения матриц (INT8) с огромной пропускной способностью, заменяя несколько стандартных AVX-инструкций одной аппаратной.

2. Технология turboqwant

Внедрение поддержки turboqwant радикально снижает оверхед CPU при деквантовании весов «на лету» (из Q4 в FP16) перед передачей их в регистры процессора.

3. Разреженная архитектура (MoE)

Модель Qwen3.6-35B-A3B использует архитектуру Mixture of Experts. Несмотря на то, что общий размер модели составляет 35 миллиардов параметров, для генерации каждого конкретного токена активируется только небольшая часть нейросети — около 3 миллиардов параметров. Мой i5-12400F с быстрой DDR4 памятью легко справляется с вычислением 3B параметров в реальном времени.

Бенчмаркинг и Реальный Опыт

Prompt Processing: ~30 t/s
Token Generation: ~13 t/s
Важное уточнение: Указанная скорость в ~13 t/s достигается на старте генерации при пустом или небольшом контексте. По мере заполнения KV Cache (сохранения предыдущих токенов) нагрузка на процессор и пропускную способность памяти возрастает. Несмотря на то, что сборка поддерживает окно до 32k, наиболее комфортным является контекст до 8000 токенов. За пределами этого объема скорость будет плавно снижаться из-за упирания в шину DDR4.

Скрипты запуска

# Запуск OpenAI-совместимого API сервера
run_server.bat

# Запуск спекулятивного декодирования
test_35B_speculative.bat

# Быстрый тест производительности на 8k контексте
benchmark_8k.bat