TGViewer
КПД КПД @quant_prune_distill · 3.49K subscribers
Post #507 1.95K
Метод

Идейно предложенный метод наиболее близок к разобранной ранее статье 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 замеров скорости инференса полностью сложно оценить практическую пользу.
  • 👍 10
  • ❤ 1
More from @quant_prune_distill
  1. Oct 7, 2026А еще есть красивая демка
  2. Oct 7, 2026⚙️ Метод MMD есть мера различия между двумя распределениями P, Q. Задается некоторый полож…
  3. Oct 7, 2026🧠 Representation-Space MMD for Diffusion Language Models 📄 Статья Первое, что приходит в…
  4. Oct 7, 2026А вообще, можно энкодить все на языке brainfuck и иметь Тьюринг-полную систему.
  5. Oct 7, 2026Jev не генеративен, потому что он не выбирает следующий токен, а выбирает один из варианто…
  6. Oct 6, 2026Совпадение? Не думаю!
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →