Bartowski представил точную карту квантования GGUF — меньше потерь качества при локальном запуске ИИ
Bartowski представил новый метод квантования ИИ-моделей, который анализирует каждый слой сети индивидуально, а не по шаблону. Это позволяет точнее распределить память, сохранив качество ответов даже при сильном сжатии файла.
Разработчик Bartowski представил новый метод создания квантованных моделей формата GGUF для локального запуска ИИ. Вместо использования единого алгоритма для всех слоев сети, новая система анализирует каждый тензор (матрицу весов) отдельно и распределяет биты так, чтобы минимизировать потерю качества при сжатии. Подход основан на данных, полученных в ходе 96-часового стресс-теста более 1000 конфигураций, что позволяет точнее «пробить» бюджет памяти под нужды конкретной архитектуры модели.
Как работает новая система распределения бит
Стандартные инструменты квантования (например, из библиотеки llama.cpp) используют эвристические правила: они автоматически выделяют больше места для первых и последних слоев сети или слоев внимания, полагаясь на данные прошлых лет. Новый подход заменяет эти догадки на измеренные факты.
- Метод «Degrade-one»: Для определения важности каждого тензора автор проводил эксперименты, где все веса модели сжимались до минимального уровня (q2_k), кроме одного, который оставался в высоком качестве (q8_0). Разница в качестве вывода показывала, насколько критичен этот конкретный элемент.
- Выявление «узких мест»: Оказалось, что эмбеддинги (слои, превращающие текст в числа) требуют значительно больше ресурсов: они чувствительнее к сжатию в 8–16 раз сильнее обычных весовых матриц.
- У-образная форма: Чувствительность слоев по глубине сети имеет форму буквы U. Первые и последние слои наиболее уязвимы к потере точности, средние — менее критичны. Это подтвердило старые эвристики, но позволило задать точные коэффициенты для каждого типа слоя (attn_v, ffn_up и др.).
Квантование моделей с большим количеством экспертов (MoE) требует особого подхода: стандартные алгоритмы часто «ломались» на архитектурах с более чем 8 экспертами. Новая система учитывает специфику таких сетей, распределяя биты так, чтобы сохранить корректность маршрутизации запросов между экспертами.
Изменения в именовании и размерах файлов
Новый метод привел к пересмотру логики именования вариантов квантования (Q4_K_M, Q3_K_S и т.д.). Раньше суффиксы часто не соответствовали реальному составу файла: например, файл с маркировкой Q3_K мог содержать значительную долю тензоров другого типа из-за выделенных ресурсов под эмбеддинги.
- Честные метки: Теперь суффикс указывает на долю «основного» типа квантования в теле модели:
_S— 90% тензоров основного типа;_M— 70%;_L— до 50%.
- Смена стратегии для
_L: Варианты вроде Q2_K_L или Q3_K_XL, которые ранее означали «стандартное квантование + эмбеддинги в высоком качестве», упразднены. Вместо этого рекомендуется брать следующий по размеру вариант (например, вместо Q3_K_L использовать Q4_K_S), так как это дает лучшее соотношение качества и размера файла. - Экономия места: За счет более рационального распределения битов размеры файлов могут измениться. Например, Q3_K_M для модели Qwen3.5-4B стал на 15% меньше при сохранении или улучшении качества.
Практическое применение и ограничения
Система проверяет себя через «канареечный тест»: перед выпуском новой модели генерируются пробные версии в трех разных степенях сжатия. Если качество (измеряемое дивергенцией Кульбака-Лейблера, KLD) не соответствует ожидаемому уровню для данного объема битов, система откатывается к старой эвристике.
- Скорость и стабильность: Метод работает на базе архитектуры модели (списка тензоров), а не их конкретных значений весов. Это означает, что тюнинги или адаптации одной и той же базы получат одинаковую карту квантования.
- Ограничения: Данные собраны преимущественно на моделях семейства Qwen и проверены на Gemma, Granite, Ling и других. Для очень крупных моделей или тех, что используют нестандартные механизмы внимания (например, MLA в DeepSeek), могут потребоваться доработки скриптов.
- Рекомендация для пользователей: При обновлении локальных библиотек моделей стоит проверить размер нужного файла. Возможно, теперь вместо «среднего» варианта с маркировкой _L лучше выбрать следующий по уровню квантования (например, Q4_K вместо Q3_K_L), чтобы получить более равномерное распределение точности по всей сети.
Переход от эвристик к data-driven подходу в квантовании снижает риск «слепых зон», где важные для логики модели слои случайно оказываются пережатыми. Это особенно критично для MoE-архитектур, где ошибка в одном маленьком тензоре может привести к выбору неправильного эксперта и деградации всего ответа.
Подтверждение: huggingface.co