Unsloth Dynamic v3.0 — следующая итерация динамического квантования, значительно улучшенная по сравнению с версией 2.0.
Вместе с новым методом вышли кванты Qwen3.8-27B Dynamic v3.0, которые дают более чем на 10% лучшую top-1% точность при том же размере файла по сравнению с квантами любых других провайдеров. Это обновлённая версия ранее представленного раннего превью Dynamic v3.0. Новые GGUF 3.0 работают с большинством инференс-движков, включая llama.cpp и Unsloth Desktop.
Dynamic v3.0 в целом сохраняет больше качества модели при том же размере файла, показывая более сильные результаты по таким метрикам, как Divergence-300@32 и KL Divergence. Кванты Qwen3.8 в новом формате за 5 дней скачали более 5,1 млн раз.
Новая методология включает множество новых функций и улучшений. Теперь используется гораздо более качественный набор данных imatrix-калибровки, собранный из разнообразных источников. Датасет доработан для агентного кодинга, чата и многоязычной производительности. Также улучшен выбор слоёв и добавлено больше техник квантования для максимального сохранения качества модели.
Модель не обучается на калибровочном датасете imatrix, и не используются QAT или QAD — всё делается через post-training квантование. Файл imatrix доступен сообществу для тестирования, оценки и использования. Исследователей и разработчиков приглашают создавать варианты и файнтюны Qwen3.8 на основе этих квантов и imatrix. Подробности — в разделе анализа переобучения ниже.
- Из младших квантов ниже
UD-Q2_K_XL(8.37GB и меньше) удалён модуль MTP — это экономит около 500MB места на диске. При необходимости можно использовать отдельный модуль MTPQ4_0. - Появились более компактные 1-битные кванты UD:
UD-IQ1_Sвесит 6.2GB (без MTP) и сохраняет около 72% top-1% точности при уменьшении размера на 89%. UD-Q2_K_XLпримерно на 8% точнее по top-1% ближайшего конкурента, весит 9.83GB и смог собрать рабочую HTML-программу с одним небольшим багом в JS — раньше на этом моменте квант ломался.
🔀 Divergence-300 @32
Обычно результаты отчитываются в top-1% точности — например, для Kimi-K3 "Dynamic 1-bit достигает ~78.9% top-1 точности, будучи на 62% меньше". Однако top-1% — это argmax по одному предсказанию, и он не всегда эффективно отражает реальное качество инференса.
Был собран датасет из 300 отложенных примеров (не входящих в калибровочный набор) на основе Terminal-Bench 2.1, DeepSWE, Harbor, MathArena 2025-26 и промптов на нелатинице/длинных документах. Для BF16 и всех квантов разных провайдеров выполнено жадное argmax-декодирование на 32 токена. Подробнее об анализе переобучения — в соответствующем разделе.
Такой подход позволяет оценить переобучение и то, насколько выходы кванта совпадают с траекторией BF16 на протяжении нескольких токенов — это более показательная метрика, чем top-1% точность, поскольку по сути расширяет KLD top-1% до KLD top-1% на 32 токенах.
🔀 Бенчмарки KL Divergence
KLD-бенчмарки прогонялись для всех провайдеров с отчётом по top-1% и среднему KLD. На всех уровнях, особенно на компактных размерах квантов, кванты Unsloth UD-3 показывают до +10% дополнительной top-1% точности при том же объёме диска.
Во всех графиках при расчёте объёма диска голова MTP исключается из оси X — для честного сравнения со всеми провайдерами.
🕊️ Отсутствие переобучения
При сравнении со старой версией UD-2 на невиданных данных Wikitext и Code заметно значительное улучшение по KLD — правда, для более крупных моделей улучшение не так выражено, поэтому для больших квантов пока используется старый метод UD-2 с планами доработать и его.
Переобучение контролируется за счёт использования совершенно разных датасетов для калибровки и максимального устранения утечек данных. KLD тестируется на этих невиданных датасетах, а поскольку не применяются QAD/QAT (только чистое PTQ), риск переобучения ниже, чем у подходов на основе QAD/QAT.
Метрика Divergence-300@32 также использует невиданный датасет из 300 промптов от DeepSWE, Terminal Bench и других источников как ещё один способ оценить переобучение — и показывает, что новый метод UD-3 не переобучается.
Dynamic v2.0 (предыдущая версия)
Unsloth Dynamic v2.0 — крупное обновление метода квантования, предшествовавшее версии 3.0. Метод превзошёл ведущие подходы к квантованию и установил новые рекорды по Aider Polyglot, 5-shot MMLU и KL Divergence.
Это позволяет запускать и файнтюнить квантованные LLM, сохраняя максимум точности. GGUF 2.0 работают в большинстве инференс-движков вроде llama.cpp, Unsloth Studio и других.
Обновление от 20 апреля 2026: новые бенчмарки GGUF для Qwen3.6 и Gemma 4.
Обновление от 27 февраля 2026: вышла Qwen3.5, исправлены проблемы с чат-шаблонами для tool-calling, проведено бенчмаркирование каждого GGUF по перплексии и KL Divergence. Смотреть результаты!
Ключевое преимущество использования пакета Unsloth и его квантов — активное участие команды в исправлении багов в крупных моделях. Есть прямое сотрудничество с командами, стоящими за Qwen3, Meta (Llama 4), Mistral (Devstral), Google (Gemma 1–3) и Microsoft (Phi-3/4), с фиксами, повышающими точность.
Unsloth Dynamic GGUF теперь можно запускать в Unsloth Studio ✨
Обновление от 10 сентября 2025: по многочисленным просьбам о более жёстких бенчмарках — результаты Aider Polyglot. Динамический 3-битный GGUF DeepSeek V3.1 набирает 75.6%, превосходя многие полноточные SOTA-модели. Подробнее.
Также доступны бенчмарки реальных сценариев использования, проведённые Бенджамином Мари для LiveCodeBench v6, MMLU Pro и других тестов:
Видно, что GGUF от Unsloth показывают результаты лучше, чем кванты сторонних разработчиков, при этом занимая примерно на 8GB меньше места.
Подробный разбор бенчмарков и методологии оценки — далее.
💡 Что нового в Dynamic v2.0
- Переработанный выбор слоёв для GGUF и safetensors: Dynamic 2.0 теперь квантует слои гораздо более осмысленно и масштабно. Вместо изменения только отдельных слоёв, тип квантования динамически подбирается для каждого возможного слоя, и комбинации отличаются для каждой модели и слоя.
- Все текущие и будущие загрузки GGUF используют Dynamic 2.0 и новый калибровочный датасет. Он содержит более 1,5 млн токенов (в зависимости от модели) и состоит из качественных, вручную отобранных и очищенных данных — для значительного улучшения качества разговорного чата.
- Ранее динамическое квантование (DeepSeek-R1 1.58-bit GGUF) было эффективно только для MoE-архитектур. Dynamic 2.0 теперь работает со всеми моделями (включая MoE и не-MoE).
- Кванты под конкретную модель: каждая модель теперь использует индивидуально настроенную схему квантования. Например, квантуемые слои в Gemma 3 значительно отличаются от Llama 4.
- Для максимальной эффективности, особенно на Apple Silicon и ARM-устройствах, добавлены форматы Q4_NL, Q5.1, Q5.0, Q4.1 и Q4.0.
Для точного бенчмаркинга была построена собственная система оценки, воспроизводящая официальные показатели 5-shot MMLU для Llama 4 и Gemma 3. Это позволило напрямую сравнивать полноточные модели с Dynamic v2.0, QAT и стандартными imatrix GGUF-квантами.
Все будущие загрузки GGUF будут использовать Unsloth Dynamic 2.0, и в перспективе это же преимущество получат 4-битные safetensors-кванты.
📊 Почему KL Divergence
Статья "Accuracy is Not All You Need" показывает, что прунинг слоёв, даже при выборе как бы ненужных, всё равно даёт заметные различия в терминах "флипов". "Флип" — это изменение ответа с неправильного на правильный или наоборот. Работа демонстрирует, что MMLU может не снижаться при прунинге слоёв или квантовании просто потому, что часть неправильных ответов "перевернулась" в правильные. Поскольку цель — максимально соответствовать оригинальной модели, измерение "флипов" — хорошая метрика.
KL Divergence должна быть одним из золотых стандартов для оценки ошибок квантования, согласно исследованию "Accuracy is Not All You Need". Использование перплексии некорректно, поскольку значения выходных токенов могут взаимно компенсироваться, поэтому нужно использовать KLD или более жёсткие бенчмарки вроде Aider.
Та же работа показывает, что KL Divergence сильно коррелирует с "флипами", поэтому цель — снижать среднюю KL Divergence, минимально увеличивая объём диска квантованной модели.
⚖️ Переобучение на калибровочном датасете
Большинство фреймворков отчитываются по перплексии и KL Divergence, используя тестовый набор статей Википедии. Однако было замечено, что использование калибровочного датасета, тоже связанного с Википедией, приводит к переобучению квантов и искусственно заниженным показателям перплексии. Для честного тестирования используются датасеты Calibration_v3 и Calibration_v5, включающие часть данных wikitext наряду с другими данными. Инструктивные модели имеют собственные чат-шаблоны, и использование чисто текстовых калибровочных датасетов для них неэффективно (для базовых моделей — да). Фактически большинство imatrix GGUF обычно калибруются с этими проблемами, и поэтому естественным образом показывают лучшие результаты на бенчмарках KL Divergence, тоже использующих данные Википедии — модель попросту оптимизирована под этот домен.
Для честной и контролируемой оценки собственный калибровочный датасет (оптимизированный под качество чата) не используется при бенчмаркинге KL Divergence. Вместо этого тестирование проводилось на тех же стандартных датасетах Википедии, что позволило напрямую сравнить метод Dynamic 2.0 с базовым подходом imatrix.
🔢 Приключения с воспроизведением MMLU
- Воспроизведение MMLU 5-shot оказалось настоящим испытанием. Не удалось воспроизвести результаты MMLU для многих моделей, включая Llama 3.1 (8B) Instruct, Gemma 3 (12B) и другие — из-за неочевидных нюансов реализации. Например, Llama 3.1 (8B) должна показывать около 68.2%, тогда как при некорректной реализации результат может составить лишь 35% точности.
- Llama 3.1 (8B) Instruct показывает точность MMLU 5-shot 67.8% при наивной реализации. Однако выяснилось, что Llama токенизирует "A" и "_A" (A с пробелом впереди) как разные id токенов. Если учитывать оба варианта токенов — с пробелом и без — точность возрастает до 68.2% (+0.4%).
- Интересно, что Llama 3, согласно LLM Harness от Eleuther AI, также добавляет к вопросу фразу "The best answer is", следуя оригинальной методике бенчмарка MMLU для Llama 3.
- Есть и другие неочевидные нюансы, поэтому для контролируемого бенчмаркинга реализация MMLU была написана с нуля на основе прямого изучения github.com/hendrycks/test, с проверкой результатов на нескольких моделях и сравнением с опубликованными цифрами.
✨ Воспроизведение и бенчмарки Gemma 3 QAT
Команда Gemma выпустила две QAT-версии (quantization aware training) Gemma 3:
- Q4_0 GGUF — квантует все слои в Q4_0 по формуле
w = q * block_scale, где каждый блок содержит 32 веса. Подробнее — в wiki llama.cpp. - int4-версия — предположительно, в стиле TorchAO int4.
Все версии Q4_0 GGUF были протестированы, с более детальными экспериментами на модели 12B. Модель 12B Q4_0 QAT показывает 67.07% точности на 5-shot MMLU против 67.15% у полной bfloat16-версии 12B — очень впечатляющий результат! Модель 27B почти достигла того же уровня.
| Метрика | 1B | 4B | 12B | 27B |
|---|---|---|---|---|
| MMLU 5 shot | 26.12% | 55.13% | 67.07% (67.15% BF16) | 70.64% (71.5% BF16) |
| Объём диска | 0.93GB | 2.94GB | 7.52GB | 16.05GB |
| Эффективность* | 1.20 | 10.26 | 5.59 | 2.84 |
Была разработана новая метрика эффективности, учитывающая полезность модели с поправкой на размер файла и результат MMLU 5-shot:
Efficiency = (MMLU 5 shot score − 25) / Disk Space GB
Нужно вычитать 25, поскольку в MMLU четыре варианта ответа — A, B, C или D. Если представить модель, которая просто случайно выбирает ответ, она получит 25% точности при размере файла в несколько байт. Но очевидно, что такая модель бесполезна.
Ниже — таблица улучшений по KL Divergence относительно базовой модели. Напомним: чем ближе KL Divergence к нулю, тем лучше (0 означает полную идентичность полноточной модели).
| Квант | Базовый KLD | GB | Новый KLD | GB |
|---|---|---|---|---|
| IQ1_S | 1.035688 | 5.83 | 0.972932 | 6.06 |
| IQ1_M | 0.832252 | 6.33 | 0.800049 | 6.51 |
| IQ2_XXS | 0.535764 | 7.16 | 0.521039 | 7.31 |
| IQ2_M | 0.26554 | 8.84 | 0.258192 | 8.96 |
| Q2_K_XL | 0.229671 | 9.78 | 0.220937 | 9.95 |
| Q3_K_XL | 0.087845 | 12.51 | 0.080617 | 12.76 |
| Q4_K_XL | 0.024916 | 15.41 | 0.023701 | 15.64 |
Если построить график соотношения роста объёма диска к изменению KL Divergence, преимущество становится намного заметнее. Динамический 2-битный квант Q2_K_XL снижает KLD примерно на 7.5%.