Подписывайтесь:

Блог AST-SoftPro

GGUF-кванты bartowski для Qwen3.8-27B и Flash-Next: чем отличаются от Unsloth Dynamic

19.09.2026 15 мин чтения
GGUF-кванты bartowski для Qwen3.8-27B и Flash-Next: чем отличаются от Unsloth Dynamic

Введение

В августе 2026 Qwen выпустил две модели, которые стали рабочими лошадками локального LLM: Qwen3.8-27B — dense VLM на 27B параметров (BF16 ≈ 54 GB), и Qwen3.8-Flash-Next — MoE на 125B суммарных параметров с ~6B активными, Gated DeltaNet и Qwen Sparse Attention, нативный контекст 262K токенов (BF16 ≈ 354 GB). Ни одна из них в полной точности не помещается в потребительское железо, поэтому выбор GGUF-кванта — первое реальное решение при развёртывании.

На Hugging Face кванты для этих моделей выпускают несколько лагерей: стандартные llama.cpp, Unsloth Dynamic 3.0 (UD-кванты) и bartowski. Мы уже разбирали обзор квантов ByteShape и ISTA-DASLab GSQ-RCO, а в этой статье — bartowski: что за метод, чем он характерен, где выигрывает у Unsloth, а где проигрывает, и что выбрать под 16–32 GB видеопамяти.

Что такое per-tensor layout maps

Главная особенность репозиториев bartowski — per-tensor layout maps: для каждого нового семейства моделей автор вычисляет собственную карту распределения битности по тензорам вместо «одного размера на всех» правил llama.cpp. Метод описан в блог-посте bartowski и состоит из четырёх шагов:

  1. Degrade-one sweep. Для каждого тензора модели строится квант, где все остальные тензоры выдержаны в высоком качестве (q8_0), а один — «смят» до q2_k. Модель прогоняется через llama-perplexity --kl-divergence на wikitext-raw (контекст 512 токенов) и фиксируется KLD относительно BF16-референса. Чем выше прирост KLD, тем чувствительнее этот тип тензора к потере битности.

  2. Агрегация. По каждому типу тензора (token_embd, attn_q/k/v, ffn_up/gate/down и другие) берётся медианный KLD — получается таблица «стоимости» деградации каждого типа, публикуемая в репо как prior.json.

  3. Solver. На вход идут форма модели (размеры всех тензоров), таблица чувствительности, ограничения GGML по блокам и целевое имя кванта (например Q4_K_M). Оптимизатор подбирает тип кванта для каждого конкретного тензора — разрешая как «бамп» вверх, так и «краш» вниз — при жёстком соблюдении бит-бюджета.

  4. Генерация layout-файла. Результат — JSON-карта tensor → quant_type, которую передают в llama-quantize. Файлы карт лежат в папке layouts/ каждого репо, так что процесс воспроизводим.

Масштаб экспериментов: более 1000 конфигураций, ~96 часов GPU/CPU времени на двух базовых моделях (Qwen3.5-0.8B и Qwen3.5-4B), каждая проверка — полный perplexity-прогон. Для каждого нового семейства моделей карта пересчитывается заново, а «canary»-тест сравнивает KLD-per-bit с эвристическим методом: если карта хуже на уровне шума — она не публикуется.

💡 Практический смысл: при том же целевом размере файла биты уходят туда, где модель их «чувствует». В результате Q4_K_M из репо bartowski может быть заметно меньше по размеру, чем номинальный Q4_K_M из стандартного llama.cpp, — и при этом не хуже по KLD.

Qwen3.8-27B: что в репозитории bartowski

bartowski/Qwen3.8-27B-GGUF содержит 25 файлов — от Q8_0 (29.1 GB) до IQ2_XXS (8.9 GB). Ключевые варианты:

Квант Размер bpw PPL(Q)/PPL(base) KLD Same-top-p
Q8_0 29.12 GB 8.38 1.0015 0.00092 98.7%
Q6_K_L 24.96 GB 7.19 0.9998 0.00240 97.7%
Q5_K_M 20.92 GB 6.03 1.0019 0.00529 96.9%
Q4_K_L 18.82 GB 5.42 1.0030 0.01058 95.5%
Q4_K_M 17.44 GB 5.02 1.0034 0.01388 95.0%
IQ4_XS 15.48 GB 4.46 ~1.004 ~0.016 ~94%
IQ3_XXS 12.32 GB 3.55 — — —
Q2_K 10.82 GB 3.12 — — —
IQ2_XXS 8.88 GB 2.56 — — —

Таблица KLD и perplexity на wiki.test.raw (100 чанков) опубликована прямо в README репо, включая поперцентильные лестницы KLD — это редкая степень прозрачности для квантовщика. Отметки «recommended» стоят у Q6_K_L/Q6_K/Q6_K_S, Q5_K_M/Q5_K_S, Q4_K_L/Q4_K_M/Q4_K_S и IQ4_XS.

Важные детали:

  • Imatrix. Все кванты построены с иматрицей на собственном калибровочном наборе; файл Qwen3.8-27B-imatrix.gguf лежит в репо.

  • MTP-слои хранятся при Q4_0 и активируются флагом --spec-type draft-mtp в llama.cpp — для ускорения генерации спекулятивным декодированием.

  • KV-кэш. Для 27B с 16 full-attention слоями, 4 KV-головками и head-dim 256 K/V-кэш в BF16 ≈ 32K параметров на токен (≈ 64 KB/токен): при контексте 32K это ~2 GB, при 128K — ~8 GB. Бюджетировать память нужно с учётом этого, а не только размера файла модели.

Qwen3.8-Flash-Next: да, он есть у bartowski

bartowski/Qwen3.8-Flash-Next-GGUF — полный набор от BF16 (354 GB) до IQ1_S (~70 GB). Для железа с ≤ 84 GB суммарно доступны:

Квант Размер Примечание
IQ2_XXS 75.2 GB самый лёгкий «съедобный» у bartowski
IQ2_XS / IQ2_S ~77.7–77.8 GB SOTA-техники imatrix
Q2_K 80.9 GB «очень низкое качество, но неожиданно usable» по оценке автора
IQ3_XXS 88.0 GB уже за 84 GB, но ближе всего к рабочей зоне MoE

Для Flash-Next иматрица построена на калибровочном корпусе из 583 чанков (214 проза + 369 tool-calling) от 137 диалогов, с рендерингом через собственный chat-шаблон модели и --parse-special — то есть квантизация учитывает спец-токены и паттерны агентного использования. Корпус (calibration-v6.txt) и иматрица опубликованы в репо.

Два нюанса, отличающие Flash-Next от 27B:

  1. Q*_K_L / Q3_K_XL держат embedding и output (logits) при Q8_0 — критичные матрицы не сжимаются ниже 8 бит, остальное тело модели квантуется по целевой битности. Это стандартный приём bartowski для «больших» семейств.

  2. mmproj-файлы: mmproj-Qwen3.8-Flash-Next-f16.gguf и -bf16.gguf лежат в репо; при запуске через llama-server -hf bartowski/Qwen3.8-Flash-Next-GGUF:Q4_K_M проектор скачивается автоматически, вручную — --mmproj <путь>.

Сравнение с Unsloth Dynamic 3.0

unsloth/Qwen3.8-27B-GGUF и unsloth/Qwen3.8-Flash-Next-GGUF используют Unsloth Dynamic 3.0 — блок-поковую оптимизацию с минимизацией KLD и динамическим пересчётом масштабных коэффициентов; Unsloth заявляет «более чем на 10% лучше top-1 accuracy при равном размере» против других провайдеров.

Критерий bartowski Unsloth Dynamic 3.0
Метод per-tensor layout maps: degrade-one sweep → solver по KLD, карта на каждую модель динамическая блок-поковая оптимизация с минимизацией KLD (UD-серия)
Граница качества Q4_K_M 17.4 GB (95.0% same-top-p), IQ4_XS 15.5 GB UD-Q4_K_M 16.5 GB, UD-IQ4_XS 14.3 GB — компактнее при той же битности
Нижняя граница IQ2_XXS 8.9 GB (27B) UD-IQ1_S 6.2 GB (27B) — глубже в 1-битную зону
MTP слои внутри модели, --spec-type draft-mtp отдельный файл MTP Q4_0 (~1.4–2.8 GB)
Vision (Flash-Next) mmproj f16/bf16 в репо, автозагрузка через -hf vision встроен в основной GGUF, отдельного mmproj нет
Прозрачность layout-файлы, prior.json, imatrix, корпус калибровки, PPL/KLD-таблицы по каждому кванту README + метрики полной модели; таблиц KLD по квантам нет
Рекомендации в репо 9 «recommended»-квантов с пояснением один основной (UD-Q4_K_XL для Flash-Next)

Размерная картина для Qwen3.8-27B при сопоставимой битности: Unsloth компактнее на нижнем конце (UD-IQ1_S 6.19 GB против IQ2_XXS 8.88 GB — разница в два раза), а в 4–5-битной зоне разрыв небольшой (UD-Q4_K_M 16.5 GB против Q4_K_M 17.4 GB). Для Flash-Next: UD-IQ3_XXS 82 GB против IQ3_XXS 88 GB — Unsloth влезает в 84 GB, bartowski — уже нет.

⚠️ Типичная ошибка: выбирать квант только по bpw или размеру. При одинаковых ~15–17 GB методология решает: KLD-метрики bartowski показывают 95% same-top-p для Q4_K_M, но это близость распределений токенов, а не качество на ваших задачах. Для продакшн-решений прогоните оба кванта на своём домене — особенно если критичны безопасность или точность (OWASP Top 10, инъекции в prompt).

Скорость и практические сценарии

Для Qwen3.8-27B на локальном железе (2× RTX 5060 Ti, суммарно ~32 GB VRAM) рабочая зона — IQ4_XS/Q4_K_M: модель целиком в памяти, контекст 16–32K без вырезания KV-кэша. MTP (--spec-type draft-mtp) даёт прибавку к скорости генерации при почти нулевой деградации качества — это аргумент в пользу bartowski для тех, кто запускает через llama.cpp напрямую.

Для Flash-Next картина другая: 125B MoE не «влезает» в потребительскую VRAM целиком даже в 2-битной квантизации (75 GB). Варианты — offload на RAM с частичным GPU-размещением (на сервере с 64–96 GB RAM и 16–24 GB VRAM это даёт ~10–15 t/s генерации в 2-bit) или удалённый инференс. Если задача — агентный ассистент с длинным контекстом на домашнем сервере, bartowski IQ2_XXS/IQ3_XXS — разумная точка входа; если нужен запас по качеству и есть 96 GB RAM+VRAM — смотреть UD-IQ3_XXS (82 GB) или GSQ-RCO (75.8 GB).

💡 Выбор кванта под конкретный сценарий: - 16 GB VRAM, чат/код: Qwen3.8-27B IQ4_XS (bartowski, 15.5 GB) или UD-IQ4_XS (unsloth, 14.3 GB). - 24 GB VRAM, агентные задачи: Qwen3.8-27B Q4_K_L/Q5_K_S + MTP — запас на KV-кэш длинного контекста. - Сервер 64–96 GB RAM: Flash-Next IQ2_XXS/IQ3_XXS с offload; для максимальной плотности квантования — GSQ-RCO. - Файл «без сюрпризов» (тонкая настройка, дистилляция): Q8_0 или UD-Q6_K_XL — минимальный KLD у обоих провайдеров.

Рекомендации

Ситуация Что брать Почему
Нужна прозрачность и воспроизводимость кванта bartowski layout-файлы, prior.json, imatrix и корпус калибровки опубликованы; KLD-таблица по каждому файлу
Минимальный размер при приемлемом качестве (27B) unsloth UD-IQ3_XXS / UD-IQ4_XS компактнее на 1–2 GB при той же битности
Ускорение генерации (MTP) в llama.cpp bartowski 27B слои MTP внутри файла, активация одним флагом --spec-type draft-mtp
Vision для Flash-Next в llama.cpp bartowski готовые mmproj f16/bf16; у unsloth vision встроен, но отдельного проектора нет
Критична работа на своих данных любой + свой прогон бенчмарка KLD/PPL — прокси; финальное решение — доменный тест

Обе методологии в 4–6-битной зоне дают практически одинаковый уровень качества (KLD < 0.015, same-top-p > 95% для 27B), поэтому выбор часто сводится к размеру файла и экосистеме запуска, а не к «чистоте» модели.

⚠️ Важно понимать: выбор кванта — лишь половина задачи. Вторая половина — корректная настройка инференса (контекст, KV-кэш, offload, спекулятивное декодирование) и проверка поведения на реальных задачах. Поверхностный подбор «по размеру файла» в продакшн приводит к ошибкам качества, которые обнаруживаются только под нагрузкой; для критичных систем стоит привлечь специалистов с опытом развёртывания LLM — это инвестиция, которая окупается снижением рисков.

Заключение

bartowski — это не просто ещё один квантовщик: пер-тензорные layout maps, вычисленные на тысячах degrade-one экспериментов, плюс иматрица с учётом спец-токенов и опубликованные KLD-метрики делают его репозитории наиболее прозрачными в экосистеме GGUF. Для Qwen3.8-27B это даёт полную серию от 8.9 до 29 GB с MTP-поддержкой; для Flash-Next — единственный «съедобный» набор в ≤ ~88 GB (IQ2_XXS–IQ3_XXS) с vision-проекторами.

Unsloth Dynamic 3.0 остаётся сильнее на нижнем конце размерного диапазона (1-битные кванты, компактность UD-IQ4_XS) и предлагает встроенный vision для Flash-Next без отдельного mmproj. В средней битности оба лагеря дают сопоставимое качество — финальный выбор стоит делать по своему железу, запусковому стеку и результатам прогона на доменных данных.

Источники