QUANT_PRUNE_DISTILL Telegram 507
Метод

Идейно предложенный метод наиболее близок к разобранной ранее статье QTIP. Дабы не хранить большой кодбук используют так называемый сверточный код (L, N, S). Квантизованные элементы принимают значения из некоторого ограниченного множества (размера 2^L), но при этом разрешена только часть переходов (2^S вариантов) из текущего значения в следующее (из 00, скажем, можно попасть в 00 и 01, но в 10 и 11 нельзя). Таким образом, можно закодировать последовательность длины N, где каждый элемент может потенциально принимать любое из 2^L, но при этом не все комбинации чисел допустимы.

Суммарная битность такой последовательности: L + (N - 1) S, что может быть значительно меньше чем L (при S < N).

Кодирование осуществляется следующим образом - авторы сначала явно создают кодбук (все 2^(L + (N - 1) S) последовательностей), и кодируют данную последовательность весов ближайшей их кодбука - запоминая индексы. На инференсе при этом кодбук хранить не надо. Метод - data-free - приближает сами веса, без знания про активации и градиенты. В отличие от QTIP, где треллис довольно большой, здесь рассматривают варианты с N=3,4.

Далее авторы замечают, что полученные коды (индексы последовательностей) ложатся на некоторую смесь гауссиан, находят кластеры и квантизуют к ним. В экспериментах берут 2^8 кластеров, то есть последовательность длины кодируется 8 битами.

Затем, дабы точнее представить исходный вес - каждой группе сопоставляют некий скаляр масштаба и выводят аналитическое выражение для MSE-отпимального скейла. Чтобы уменьшить расход памяти на скейлы их дополнительно еще раз квантизуют (double квантизация в bnb, супергруппы в некоторых GGUF).

Деквантизация в итоге получается сравнительно простой - деквантизация скейлов сначала и целочисленной последовательности через битовые сдвиги с перемножением их друг на друга.

Эксперименты

Дабы продемонстрировать масштабируемость метода, проверяют его сразу на мастодонтах DeepSeek-V3-0324, ERNIE-4.5-300B-A47B для 2, 2.5, 2.75 битной квантизации.

Оценивают, правда, только по GSM8k, CEVal, MMLU без задач на ризонинг. Предложенный CCQ дает просадку в среднем 1.5% при 2.75-битной квантизации и 2.5% при 2--битной. Утверждается, что RTN разваливается в данной точности, но не приводят никаких сопоставимых по размеру безлайнов (даже тот же GPTQ). Замечу, что GPTQ дает умеренную просадку даже в 1.58 бит на дипсике на GSM8k, на самом деле. На ERNIE похожие цифры.

Под это хозяйство заводят специальные кернелы и vLLM интеграцию. CCQ ожидаемо все еще медленнее INT2 квантизации, но заметно быстрее VPTQ. Замеряют, правда, только скорость матричных операций без end-2-end inference latency.

Вывод

Вроде бы и интересно, и здорово что масштабируется, но много чего не досказано: есть ли заметный прирост качества по сравнению с хорошей скалярной квантизацией, с теми же AQLM, QuIP#, QTIP можно было сравниться на Llama-x. Да и без end-2-end замеров скорости инференса полностью сложно оценить практическую пользу.
👍101



tgoop.com/quant_prune_distill/507
Create:
Last Update:

Метод

Идейно предложенный метод наиболее близок к разобранной ранее статье QTIP. Дабы не хранить большой кодбук используют так называемый сверточный код (L, N, S). Квантизованные элементы принимают значения из некоторого ограниченного множества (размера 2^L), но при этом разрешена только часть переходов (2^S вариантов) из текущего значения в следующее (из 00, скажем, можно попасть в 00 и 01, но в 10 и 11 нельзя). Таким образом, можно закодировать последовательность длины N, где каждый элемент может потенциально принимать любое из 2^L, но при этом не все комбинации чисел допустимы.

Суммарная битность такой последовательности: L + (N - 1) S, что может быть значительно меньше чем L (при S < N).

Кодирование осуществляется следующим образом - авторы сначала явно создают кодбук (все 2^(L + (N - 1) S) последовательностей), и кодируют данную последовательность весов ближайшей их кодбука - запоминая индексы. На инференсе при этом кодбук хранить не надо. Метод - data-free - приближает сами веса, без знания про активации и градиенты. В отличие от QTIP, где треллис довольно большой, здесь рассматривают варианты с N=3,4.

Далее авторы замечают, что полученные коды (индексы последовательностей) ложатся на некоторую смесь гауссиан, находят кластеры и квантизуют к ним. В экспериментах берут 2^8 кластеров, то есть последовательность длины кодируется 8 битами.

Затем, дабы точнее представить исходный вес - каждой группе сопоставляют некий скаляр масштаба и выводят аналитическое выражение для MSE-отпимального скейла. Чтобы уменьшить расход памяти на скейлы их дополнительно еще раз квантизуют (double квантизация в bnb, супергруппы в некоторых GGUF).

Деквантизация в итоге получается сравнительно простой - деквантизация скейлов сначала и целочисленной последовательности через битовые сдвиги с перемножением их друг на друга.

Эксперименты

Дабы продемонстрировать масштабируемость метода, проверяют его сразу на мастодонтах DeepSeek-V3-0324, ERNIE-4.5-300B-A47B для 2, 2.5, 2.75 битной квантизации.

Оценивают, правда, только по GSM8k, CEVal, MMLU без задач на ризонинг. Предложенный CCQ дает просадку в среднем 1.5% при 2.75-битной квантизации и 2.5% при 2--битной. Утверждается, что RTN разваливается в данной точности, но не приводят никаких сопоставимых по размеру безлайнов (даже тот же GPTQ). Замечу, что GPTQ дает умеренную просадку даже в 1.58 бит на дипсике на GSM8k, на самом деле. На ERNIE похожие цифры.

Под это хозяйство заводят специальные кернелы и vLLM интеграцию. CCQ ожидаемо все еще медленнее INT2 квантизации, но заметно быстрее VPTQ. Замеряют, правда, только скорость матричных операций без end-2-end inference latency.

Вывод

Вроде бы и интересно, и здорово что масштабируется, но много чего не досказано: есть ли заметный прирост качества по сравнению с хорошей скалярной квантизацией, с теми же AQLM, QuIP#, QTIP можно было сравниться на Llama-x. Да и без end-2-end замеров скорости инференса полностью сложно оценить практическую пользу.

BY КПД


Share with your friend now:
tgoop.com/quant_prune_distill/507

View MORE
Open in Telegram


Telegram News

Date: |

3How to create a Telegram channel? "Doxxing content is forbidden on Telegram and our moderators routinely remove such content from around the world," said a spokesman for the messaging app, Remi Vaughn. Choose quality over quantity. Remember that one high-quality post is better than five short publications of questionable value. Content is editable within two days of publishing Avoid compound hashtags that consist of several words. If you have a hashtag like #marketingnewsinusa, split it into smaller hashtags: “#marketing, #news, #usa.
from us


Telegram КПД
FROM American