🔬 Метод
Сначала выводят некоторые теоретические оценки на минимально достижимую ошибку квантизации линейного слоя для GPTQ с хаффмановым кодированием весов и WaterSIC, который будет предложен ниже. Полученные выражения - некоторые формулы, зависящие от элементов матрицы Холески для матрицы ковариации входных активаций.
Алгоритм WaterSIC состоит из следующих компонент:
🔅 Сначала находят ближайшее значение к вектору W L (вес на фактор Холески) на решетке, образованной столбцами матрицы L. По существу, переформулировка GPTQ. Для большей точности делают еще сжатие на некий фактор, оптимизирующий MSE.
🔅 Затем учитывают тот факт, что активации в прошлых слоях несколько разъехались по сравнению с исходной моделью и добавляют компенсацию ошибки.
🔅 Потом применяют диагональное перемасштабирование для минимизации MSE.
🔅 Энтропийное кодирование (Хаффман).
🔅 В матрицах слоев внимания перевзвешивают матрицы ковариации активаций на внимание токенов (приоритезируя оптимизацию ошибки на важных токенах).
🔅 Убирают размерности с околонулевым разбросом около среднего.
🧪 Эксперименты
Метод валидируют на weight-only сжатии Llama-3.2-1B и Qwen3-8B в битностях от 1 до 4 бит. При всех степенях сжатия на Llama-3.2-1B метод выдает качество лучше бейзлайнов, среди которых QTIP и предложенный Huffman-GPTQ (из статьи, правда, непонятно, какая базовая битность). На Qwen3-8B предложенный подход также выдает хорошую перплексию.
💡 Выводы
Ну что, мощные серверы больше не нужны?
А если серьезно, то результат интересный. Однако можно придраться к замерам одной лишь перплексии без каких-либо бенчей. Кроме того, хаффманово кодирование на GPU вроде бы эффективно не реализуешь, и достижимо ли хоть какое-то ускорение или хотя бы замедление в разумных пределах в такой постановке?
Post #686
3.46K
- ❤ 6