Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.
Для квантизации трансформера оказалось полезнее учитывать роль матрицы, чем вычислять чувствительность каждого слоя. В препринте, который не прошёл рецензирование и где все числа получили сами авторы, простое правило по ролям дало на полном Mistral-7B меньшую перплексию — среднюю неопределённость модели при выборе следующего токена, — чем метод JAB с оценкой чувствительности. Командам, которые сжимают LLM после обучения, стоит сначала распределять бюджет по типам модулей и проверять всю модель, а не полагаться на локальную ошибку отдельных весов.
Почему близость весов не гарантирует прежнее поведение
Квантизация после обучения заменяет исходные веса числами с меньшей разрядностью. GPTQ и похожие методы обычно обрабатывают каждую матрицу отдельно: подбирают округлённые веса так, чтобы выход линейного слоя оставался близок к исходному.
Для внимания такой подход пропускает связь между матрицами Q, K и V, которые строят запросы, ключи и значения. Ошибки в Q и K встречаются внутри нормализации вероятностей, поэтому две допустимые ошибки отдельных матриц могут вместе заметно изменить карту внимания.
JAB вместо расстояния между весами сравнивает реальный выход всего блока внимания. Метод одновременно меняет Q, K и V, учитывает причинную маску и использует одну ошибку в двух местах: сначала уточняет квантизованные веса, затем решает, сколько бит отдать каждому блоку.
Для распределения разрядности JAB оценивает, насколько быстро растёт ошибка при изменении весов. После этого алгоритм выбирает вариант для каждого блока так, чтобы уложиться в общий объём памяти. Такой расчёт должен связать локальное качество блока с качеством всей модели, но эксперимент показал, что связь ненадёжна.
В одном запуске локальная ошибка блока уменьшилась в 4,6 раза, а перплексия всей модели выросла в 32 раза. Причина не сводится к неточному вычислению: локальная цель не видит, как искажение проходит через следующие блоки и взаимодействует с другими типами матриц.
Уточнение весов тоже дало неожиданный результат. После настройки квантизованные веса отходили дальше от исходных, но выход внимания становился ближе к нему. Значит, при проверке важнее воспроизвести функцию блока, а не минимизировать расстояние до исходных коэффициентов.
Чувствительность помогла вниманию, но не всей модели
На Mistral-7B с квантизацией только Q, K и V метод работал. При средней разрядности в три бита адаптивное распределение закрыло 77–90% разрыва между равномерным GPTQ и полной точностью на сочетаниях WikiText-2 и C4. Здесь блоки выполняли одну и ту же роль, поэтому оценка чувствительности могла различать в основном глубину и степень повреждения внимания.
Картина изменилась, когда в общий бюджет включили полносвязные части трансформера. Эти матрицы занимают большую долю весов и выполняют другую функцию, а цель JAB по-прежнему построена вокруг выхода внимания. В результате метод отдавал слишком много разрядности некоторым проекциям внимания и недофинансировал другие части модели.
Простое правило назначало поправку по роли матрицы и не вычисляло чувствительность. На полном Mistral-7B оно достигло перплексии 6,933 против 7,158 у JAB при том же бюджете. Более подробная оценка каждой матрицы не изменила порядок результатов: проблема оказалась в самой цели расчёта, а не в грубом объединении весов внутри блока.
На GPT-2 проявилась та же структура. Лучшее эталонное распределение для полносвязных слоёв различало входную и выходную матрицы, но почти не зависело от глубины. Оценка чувствительности искала перепады между блоками и не находила более простой закономерности по назначению матрицы.
Что менять в плане квантизации продукта
Для квантизации только внимания JAB можно рассматривать как способ согласовать настройку весов и распределение памяти. Особенно полезна сама постановка цели: сравнивать выход внимания целиком, а не восстанавливать Q, K и V независимо. Однако преимущество относится к узкому сценарию и не переносится автоматически на все линейные модули.
Для полной модели практичнее начать с правил по ролям: отдельно задать бюджеты для проекций внимания, выходной проекции и полносвязных матриц. Работа также поддерживает нижнюю границу в три бита, чтобы распределитель не экономил на одной матрице ценой резкого падения качества. В показанном режиме это дало сжатие квантизованных весов в 3,56 раза при перплексии на 4,4% выше полной точности.
Каждый вариант нужно прогонять через всю модель на целевой выборке. Локальная ошибка блока подходит для отбора кандидатов, но не заменяет итоговую перплексию или прикладную метрику продукта. Если модель решает не задачу продолжения текста, проверять следует качество именно этой задачи.
Границы эксперимента узкие: проверяли GPT-2 small и Mistral-7B на WikiText-2 и C4, все результаты получены в одном запуске, а Mistral-7B оценивали на ограниченном наборе фрагментов. Работа показывает направление для распределения бит, но не устанавливает универсальные поправки для других архитектур и прикладных данных.
Источники
Похоже на вашу задачу?
Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.



