Квантизация LLM: иллюзия эквивалентности — почему точность обманывает

Квантизация LLM: иллюзия эквивалентности — почему точность обманывает

Вы квантуете свою LLM с 16 бит до 4, тестируете на HellaSwag — модель показывает те же 72%. Казалось бы, всё отлично: сжали в четыре раза, производительность не упала. Но что если на уровне отдельных примеров модель отвечает по-другому? Что если 20% «правильных» ответов — это совсем другие правильные ответы, не те, что давала оригинальная модель?

Именно это и выяснила группа исследователей из работы «The Illusion of Equivalency» (июль 2026). Они показали, что стандартные метрики — accuracy и perplexity — создают иллюзию эквивалентности между оригинальной и квантованной моделью, скрывая реальные поведенческие изменения.

Что такое correctness agreement и почему это важно

До этой работы квантизацию оценивали одним способом: брали датасет, прогоняли через модель, считали процент правильных ответов или перплексию на тестовом корпусе. Если цифры примерно те же — модель «эквивалентна» оригиналу. Проблема в том, что две модели с одинаковой точностью 72% могут правильно решать совершенно разные задачи. Одна угадывает там, где другая рассуждает; обе дают 72%, но ведут себя по-разному.

Авторы вводят метрику correctness agreement — процент примеров, на которых обе модели (оригинал и квантованная) одновременно дают правильный или неправильный ответ. Это не про абсолютную точность, а про согласованность решений. Если модель-оригинал правильно отвечает на вопросы 1, 3, 5, 7, 9, а квантованная — на 1, 2, 5, 8, 9, то accuracy у обеих может быть 50%, но agreement составляет лишь 40% (совпали только на 1, 5, 9 из 10).

Эта метрика позволяет отделить реальные поведенческие изменения от обычного шума. И результаты оказались показательными.

Четыре модели, восемь уровней квантизации, один тревожный вывод

Исследователи протестировали Llama-3.2-3B, Vicuna-7B, Mistral-7B и Llama-3.1-8B через llama.cpp — самый популярный open-source фреймворк для квантизации. Модели сжимали от Q8_0 (8 бит, почти без потерь) до Q2_K (2 бита, экстремальное сжатие) по двум семействам: legacy-квантизация (Q8_0, Q5_0, Q4_0) и K-quantization (Q6_K, Q5_K, Q4_K, Q3_K, Q2_K). Тестировали на HellaSwag, Winogrande и ARC.

Картина получилась нелинейной. При 8 и 6 битах correctness agreement остаётся высоким — модели ведут себя практически идентично оригиналу. На 5 битах начинаются первые отклонения, но они ещё умеренные. А вот на 4 битах — особенно Q3_K и Q2_K — начинается качественный скачок. Статистические характеристики весов (асимметрия, эксцесс, среднее) резко меняются, косинусное сходство весовых векторов падает, KL-дивергенция растёт.

Проще говоря, Q4_K — это верхняя граница безопасной квантизации, Q3_K — начало деградации, Q2_K — режим разрушения модели. При этом на HellaSwag модель может всё ещё показывать приемлемый score, но correctness agreement уже говорит о том, что модель «думает» иначе.

Какие слои страдают больше всего

Одно из самых практичных открытий работы — неравномерная чувствительность разных проекций attention-механизма. Исследователи анализировали четыре матрицы в каждом трансформер-блоке: Q (query), K (key), V (value) и O (output).

Результат оказался устойчивым для всех четырёх моделей: Q и K слои значительно более чувствительны к квантизации, чем V и O. При Q3_K и Q2_K именно Q и K демонстрируют наибольшие скачки асимметрии, наибольшие сдвиги среднего и самое резкое падение эксцесса. Косинусное сходство и KL-дивергенция тоже сильнее отклоняются именно для Q и K.

V-слой сохраняет профиль низкого эксцесса даже при умеренном сжатии, а O-слой, хотя и имеет высокий эксцесс, остаётся относительно стабильным до самых низких уровней квантизации. Это означает, что будущие методы квантизации могут применять адаптивную стратегию: выделять больше битов Q и K проекциям, а V и O сжимать агрессивнее. Такой подход позволил бы сохранить поведение модели при меньшем среднем размере файла.

Почему именно Q и K? Чтобы понять это, нужно вспомнить, как работает attention-механизм. Query-матрица превращает входной токен в «вопрос» — что этот токен ищет в контексте. Key-матрица превращает каждый токен контекста в «ключ» — что этот токен может предложить. Когда вы квантуете Q и K, вы искажаете сам механизм сопоставления «вопрос-ответ» между токенами. Модель начинает неправильно понимать, какие части контекста релевантны для текущего токена. Value-матрица (V) и output-матрица (O) работают с уже найденными связями — они менее критичны для структуры внимания. Именно поэтому их можно сжимать агрессивнее без катастрофических последствий для поведения модели.

Почему перплексия не видит проблему

Перплексия — это усреднённая метрика. Она измеряет, насколько хорошо модель предсказывает следующий токен на целом корпусе. Но квантизация не равномерно «портит» предсказания — она меняет распределение вероятностей нелинейно. На одних примерах модель становится чуть точнее, на других — заметно хуже. В среднем по корпусу эти сдвиги компенсируются, и перплексия остаётся почти неизменной.

Аналогично с accuracy: если модель ошибается на других примерах, чем раньше, но общее количество ошибок не меняется — accuracy не зафиксирует проблему. Correctness agreement же специально сконструирована так, чтобы видеть именно эти сдвиги. Она отвечает на вопрос «не изменилось ли то, на чём модель ошибается?» — а не «сколько в среднем ошибок».

Это сравнимо с тем, как если бы вы оценивали врача только по проценту выздоровевших пациентов, не обращая внимания на то, каких именно пациентов он лечит правильно. Два врача с одинаковым процентом успеха могут лечить совершенно разных людей.

Что это значит на практике

Для разработчиков, которые развёртывают локальные LLM через llama.cpp, ollama или подобные инструменты, результаты работы дают конкретные ориентиры.

Безопасная зона — Q5_K и выше. Здесь correctness agreement остаётся высоким, статистические характеристики весов практически не искажаются, а разница в поведении с оригиналом минимальна. Если ваш hardware позволяет Q5_K или Q6_K — это выбор без компромиссов.

Пограничная зона — Q4_K. Ещё допустимо, но уже на границе. Статистические метрики начинают показывать отклонения. Для задач, где важна воспроизводимость ответов (медицина, юридические консультации, финансовый анализ), стоит тестировать конкретную модель на ваших данных, а не полагаться на benchmarks.

Опасная зона — Q3_K и ниже. Здесь происходит не постепенная деградация, а качественный слом. Модель может сохранять приемлемую accuracy на HellaSwag, но её внутреннее представление задач уже фундаментально отличается от оригинала. Для production-систем это неприемлемо.

Асимметричное квантование — перспективное направление. Разная чувствительность Q/K и V/O проекций открывает путь к методам, которые распределяют биты неравномерно. Если будущие реализации llama.cpp будут квантовать Q и K с большим числом битов — можно ожидать улучшения behavioural fidelity при том же среднем размере.

Сценарии, где иллюзия эквивалентности особенно опасна

Представьте, что вы развернули медицинскую LLM для помощи врачам в постановке диагноза. Вы квантовали модель до Q4_K, проверили на стандартных тестах — accuracy в норме. Модель начинает работать. Но correctness agreement показывает, что на 15% случаев она даёт другие рекомендации, чем оригинал. Некоторые из этих «других» рекомендаций могут быть не просто менее точными — они могут быть опасно ошибочными. И вы этого не узнаете, пока не столкнётесь с реальным клиническим случаем.

Аналогично в юридической сфере. Модель, которая консультирует по договорам, может сохранять общую точность, но менять интерпретацию конкретных формулировок. Два юриста с одинаковой статистикой успешных дел могут проигрывать совершенно разные типы споров. Клиент, чьё дело попало в «зону расхождения», получит совет, основанный на поведении квантованной модели, а не оригинала.

В финансовой аналитике ситуация ещё тоньше. Модель, которая анализирует рыночные тренды, может на 85% согласоваться с оригиналом. Но эти 15% расхождений могут прийтись на критические моменты — сигналы разворота рынка, редкие паттерны, нестандартные ситуации. Именно там, где точность важнее всего, квантованная модель может вести себя непредсказуемо.

Как проверить свою модель после квантизации

Если вы уже развернули квантованную модель, не обязательно ждать исследований, чтобы проверить её поведение. Возьмите набор из 50–100 реальных промптов, типичных для вашего сценария использования. Прогоните их через оригинальную модель (full-precision) и через квантованную. Сравните не только итоговые ответы, но и конкретные решения — какие факты упомянуты, какие шаги рассуждения выполнены, какие выводы сделаны.

Если расхождения систематические (модель регулярно пропускает определённые типы информации или меняет стиль ответов) — это сигнал, что correctness agreement снижен. В таких случаях стоит либо перейти на более высокий уровень квантизации, либо добавить внешний валидационный слой.

Часто задаваемые вопросы

Разве perplexity не достаточна для оценки квантизации?

Perplexity измеряет среднюю уверенность модели на корпусе, но не фиксирует, на каких именно примерах модель даёт другие ответы. Работа показывает, что perplexity остаётся стабильной даже при значительных поведенческих изменениях. Для полной оценки нужна комбинация perplexity и correctness agreement.

Какой формат квантизации выбрать для 8GB VRAM?

Для 7B-моделей при 8GB VRAM оптимальный выбор — Q5_K_M (примерно 5.5 GB). Это безопасная зона с высоким correctness agreement. Q4_K_M (около 4.4 GB) влезет с запасом, но уже находится на границе. Q3_K лучше избегать для задач, где важна точность.

Влияет ли квантизация на безопасность модели?

Это открытый вопрос, но исследование даёт основания для беспокойства. Если квантизация меняет внутренние представления модели (особенно при Q3_K и ниже), то safety-поведение, заложенное при выравнивании (alignment), тоже может деградировать. Стандартные safety-бенчмарки могут этого не зафиксировать, если измеряют только aggregate accuracy.

Чем correctness agreement отличается от других метрик?

Большинство метрик (accuracy, perplexity, BLEU) сравнивают модель с «золотым стандартом» — правильными ответами. Correctness agreement сравнивает две модели друг с другом: на каких примерах они обе правы, а на каких обе ошибаются. Это не заменяет традиционные метрики, а дополняет их — показывая, сохраняется ли паттерн ошибок при сжатии модели.

Итог

Квантизация — необходимый инструмент для развёртывания LLM на ограниченном hardware. Но работа «The Illusion of Equivalency» показывает, что слепое доверие к accuracy и perplexity создаёт ложное ощущение безопасности. Модель, которая «по цифрам» такая же, может вести себя совершенно иначе на уровне отдельных решений.

Метрика correctness agreement предлагает способ увидеть эту скрытую деградацию. А практический вывод для инженеров прост: Q5_K и выше — безопасно, Q4_K — с осторожностью, Q3_K и ниже — не для production. И если в будущем квантизация станет асимметричной (больше битов для Q/K, меньше для V/O) — это будет правильный путь.

← Все записи