bartowski опубликовал новый эксперимент с калибровочными данными, используемыми для вычисления imatrix в моделях GGUF, пояснив, что новый dataset не является «магическим решением» для повышения производительности, однако в некоторых случаях обеспечил ограниченный, но значимый прирост и позволил глубже понять, как тип текстов, используемых при квантовании, влияет на итоговую модель. Автор эксперимента отмечает, что это не окончательный результат и что он планирует и дальше обновлять и тестировать данные.
Эксперименты проводились совместно с Fable с использованием GPU-ресурсов, предоставленных LTT Labs. bartowski публично опубликовал использованные файлы, включая два отдельных файла с прозаическими текстами и диалогами, а также тексты после их обработки через chat template модели. Он также предоставил скрипт, объясняющий способ создания форматированной версии, и отметил, что файлы Qwen доступны с намеренно добавленными строками <|endoftext|> в конце, чтобы модель не игнорировала последнюю часть данных.
Какова функция imatrix в процессе квантования?
bartowski объяснил, что алгоритм квантования в llama.cpp пытается уменьшить ошибку, возникающую при преобразовании групп весов в представления с меньшей точностью. Для оценки относительной важности этих весов большие объёмы текста пропускаются через модель, после чего собираются показатели активации входных каналов, точнее — суммы квадратов активаций, поступающих в каждый тензор.
Канал, который сильно и регулярно активируется на большом количестве текстов, считается связанным с весами, более важными для конечного результата. Канал, который активируется редко, может показаться менее важным, хотя сохраняется вероятность, что данные не содержали подходящего типа текста, который мог бы его задействовать. Поэтому результат зависит не только от размера corpus, но и от его разнообразия и способности активировать различные части модели.
Тесты охватывали плотные модели и модели со смешанными экспертами
Команда протестировала семь моделей: gemma-4-E2B-it, Qwen3.5-4B, Qwen3.6-27B, Qwen3.6-35B-A3B, Mistral-Small-4-119B, Qwen3-Next-80B-A3B и Qwen3.5-397B-A17B. Оценка была сосредоточена на сравнении KLD с bf16, тесте BFCL, а также на наборе коротких специально разработанных тестов и проверке покрытия экспертов в моделях MoE. Кроме того, для более глубокої проверки использовались выборки из MMLU-Pro и GSM8K из-за высокой стоимости полного запуска тестов.
Общий результат заключался в том, что данные не дают явно заметной ожидаемой разницы при показателях выше примерно 4 бит на вес. Ранние тесты включали полностью случайные данные для исключения некоторых гипотез, однако различия в Q4_0, IQ4_XS и более высоких уровнях в большинстве случаев оставались ограниченными, поскольку ошибки квантования на этих уровнях относительно малы.
Наибольшая разница проявилась на низких уровнях, особенно в Q2_K для моделей MoE. При квантовании Qwen3.6-35B без imatrix результат BFCL снизился примерно на 28 пунктов — примерно с 82% до 54%. Разница между лучшим и худшим corpus в этом тесте также составила около 10%. В то же время большинство чистых данных, использованных с IQ2_M, были близки друг к другу: различия обычно не превышали нескольких процентных пунктов.
Почему важны форматирование диалогов и использование инструментов?
Эксперимент показывает, что проблема в моделях MoE связана не только с языковым разнообразием или качеством текстов, но и со способностью данных активировать различных экспертов. В модели Qwen3-Next-80B-A3B специализированный англоязычный corpus с использованием инструментов не активировал 18 экспертов из 512 даже после обработки 3126 фрагментов — примерно в четыре раза больше, чем объём calibration_datav5.txt.
При объединении calibration_datav5.txt с данными вызова инструментов было достигнуто полное покрытие экспертов. Эксперименты показали, что многоязычный и программный контент был одним из ключевых факторов, необходимых для активации некоторых из этих экспертов. Также оказалось, что включение диалогов, оформленных в соответствии с chat template, особенно важно для моделей MoE, поскольку некоторые эксперты могут активироваться только при наличии символов и структуры диалога.
На практике это означает, что подготовка imatrix для модели, поддерживающей диалоги или вызов инструментов, не должна ограничиваться случайными прозаическими текстами. Отсутствие chat template или примеров использования инструментов может привести к недостаточному представлению некоторых экспертов во время калибровки, что впоследствии способно проявиться в производительности при низких уровнях квантования.
Как была создана новая версия?
bartowski использовал анализ на уровне фрагментов, чтобы выяснить, какие части данных лучше активируют экспертов. Результаты показали, что некоторые эксперты проявляются только при определённых типах контента, например коде, французских текстах, художественной литературе или научных материалах. Поэтому были собраны разнообразные прозаические тексты с целью максимизировать покрытие экспертов в моделях MoE, использованных в тестировании.
К ним были добавлены структурированные диалоги для вызова инструментов, взятые из interstellarninja/hermes_reasoning_tool_use, и соотношение 2:3 между прозой и диалогами оказалось лучшей комбинацией в рамках тестов. После испытания версий размером от 400 до 800 фрагментов финальная версия показала лучшие результаты, чем значительно более крупные версии, даже несмотря на то, что они были созданы на основе тех же критериев качества. Автор предлагает предварительное объяснение: в огромном corpus наиболее распространённый контент может подавлять важные, но менее часто встречающиеся сигналы.
Он также отметил, что новые данные не сузили многоязычное покрытие: доля текстов, написанных латинским алфавитом, в прозаической части снизилась, а значит, нелатинские языки стали занимать большую долю corpus по сравнению с версией v5, хотя подчёркивается, что необходимы дополнительные тесты.
Сравнение v5 и v6 не означает абсолютного превосходства
bartowski сравнил версии v5 и v6 при создании Qwen3.8-27B, используя perplexity и KLD на wikitext, HuggingFaceH4/no_robots и Salesforce/xlam-function-calling-60k. Он описывает эти показатели как приблизительные, а не как окончательное доказательство, особенно учитывая, что эталонное значение perplexity для bf16 на no_robots составило 19.05. На wikitext средний KLD с v6 улучшился на некоторых уровнях, например на 2.6% для Q2_K_L и на 1.8% для IQ2_M, но ухудшился на других, например на 3.6% для Q4_K_S и на 3.1% для IQ2_S.
Это сравнение показывает, что преимущества нового dataset избирательны и не являются общим улучшением для всех форматов квантования или всех тестовых наборов. Это подтверждает вывод автора о том, что влияние imatrix заметнее при низкой битовой разрядности и в моделях, которые распределяют работу между большим количеством экспертов.
Автор также проверил использование контекста длиной 2048 вместо 512 при вычислении imatrix, но не обнаружил улучшения результатов; напротив, во многих случаях покрытие экспертов снизилось. Сравнение косинусного сходства между результатами imatrix, рассчитанными из bf16 и Q8_0, также показало сходство более 99.99%, при наличии некоторых выбросов.
Практический вывод заключается не в том, что один dataset всегда гарантирует более высокую производительность, а в том, что выбор corpus стал параметром, заслуживающим настройки, особенно при квантовании моделей MoE до низких уровней. Новая версия доступна вместе с файлами и способом её создания, а bartowski продолжает тестировать её на других моделях, включая Mistral и Qwen3-Next-80B-A3B.