3.45K subscribers
272 photos
8 files
487 links
Квантование & Прунинг & Дистилляция

Блог про сжатие сетей и не только.
От древнейших времен по настоящее время.

Группа с комментариями:
@quant_prune_distill_comments
Download Telegram
Тупая, как пробка, но невероятно быстрая
😁9🗿4
Слабо даже для Llama 3.1-8B.

Может оно еще квантизовано в 1 бит?)

(UPD как внимательно заметили, там 4 бита)
👍1
Ну лан, 2-битный AQLM.rs тоже не очень справляется
😁8👍2
Из новостей 📰

Небезызвестный Георгий Герганов, автор llama.cpp, GGML и GGUF, переходит к лицехватам 🤗. Утверждается, что они совместно продолжат развитие проектов Г.Г.

https://x.com/ggerganov/status/2024839991482777976
🔥29😁2
MatGPTQ: Accurate and Efficient Post-Training Matryoshka Quantization
[Статья][Код]

Некоторое время назад были представлены работы MatQuant и AnyPrecisionLLM, которые подготавливают модели, что можно с одного чекпоинта гонять в разных точностях.

Первая из них, увы проприетарная - ни код не модели, ни кернелы инференса не выложили. Кроме того, она требует специального дообучения - либо end-2-end, либо поблочной оптимизации а-ля OmniQuant. Вторая же не допускает многие методы квантизации - GPTQ/AWQ - и подгружает в память конфигурацию с максимальной битностью и отрезает динамически.

Команда из IST Austria предложила модификацию GPTQ, подготавливающую модель, такую что ее можно на инференсе подстраивать под заданную точность без дообучения.
2
🔬 Метод

Концептуально нового вроде бы ничего не предлагается. Модифицированный алгоритм GPTQ одновременно обрабатывает разные битности квантизации и ошибка реконструкции получается как взвенная сумма по разным битностям. С теми же весами обновляются неквантизованные веса в GPTQ.

Кроме того, для поиска оптимальной конфигурации под заданную битность опционально применяют EvoPress.

Под это дело пишут быстрые кернелы по типу Marlin под Ampere архитектуру. У реализации две особенности - транспонированный порядок вычислений для использования mma.m16n8k16 операции тензорных ядер, и батчовый кернел деквантизации для хитро запакованных весов.

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

На больших битностях (4-8) работает хуже, чем GPTQ, но дает заметный профит в 3-х битах. EvoPress дает некоторый прирост в сравнении с базовым алгоритмом.

Авторы репродуцируют MatQuant (OmniQuant вариант) и MatGPTQ показывает себя немного лучше на разных битностях.

Написанный кернел дает ускорение порядка 3‑х раз против bf16 для 3 бит, и 3.25 для 2 бит.

💡 Выводы

Кернелы хорошие, но пока в плане качества моделей метод кажется не слишком вкусным. Но при удобном интерфейсе мог бы стать неплохой альтернативной GGUFам.
Is Retraining-Free Enough? The Necessity of Router Calibration for Efficient MoE Compression
[Статья]

Существуют разные методы сжатия MoE. Одни прунят наименее полезных экспертов, другие как-то сжимают самих экспертов, а третьи обьединяют нескольких экспертов в одного. Однако все они дают какую-то просадку при существенном сжатии. При этом обычно роутер, определяющий в каких экспертов залетит токен, обычно не трогают.

В данной работе пара корейцев предлагает дообучать роутеры через KL-дивергенцию на распределение исходной модели, для компенсации ошибок балансировки.
2
🔬 Метод

Техники прунинга экспертов обычно на основе величины активаций в роутере, прироста лосса или дифференцируемым образом определяют наименее важных экспертов.

Expert Editing чаще всего подразумевает какое-то сжатие размерностей через SVD-like подход и иные матричные/тензорные разложения (квантизация/неструктурированный прунинг тоже сюда вписывается).

Слияние экспертов опирается на некоторые метрики похожести экспертов.

Однако все три подхода приводят к тому, что не только сами эксперты меняются, но и вероятности роутера в слоях после первого, и текущие техники это никак не учитывают. И эмпирически замечают, что с ростом глубины доля расхождений предсказаний роутера только растет.

Отсюда делают вывод что надо доучивать роутеры и для этого просто дистиллируют выходы сжатой модели на несжатой на калибровочных данных, дообучая только роутеры.

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

Метод валидируют на Mixtral-8x7b-Instruct и Qwen3-30B-A3B-Instruct-2507.

Дообучение роутера дает стабильный прирост на Qwen3 MoE где много finegrained экспертов, но на Mixtral особой пользы нет, по всей видимости, из-за того, что мало экспертов.

💡 Выводы

Довольна простая и почти очевидная техника для дообучения сжатых МоЕ. Минус, правда, что для больших моделей все равно придется делать обратный проход. Но может неплохо завестись в связке с квантизацией МоЕ, скажем, в 4 бита.
5🔥1
Self-Supervised Flow Matching for Scalable Multi-Modal Synthesis
[Статья][Блог]

Ранее в работе REPA было показано, что выравнивание внутренних представлений сети с неким внешним энкодером, обученном на большом обьеме данных, ускоряет сходимость и улучшает качество.

Однако, возникает вопрос - а какой энкодер брать, и как именно выравнивать признаки? Да и как-то оно не из первых принципов.

Ребята из Black Forest Labs предложили Self-Supervision на основе признаков самой диффузионной модели с более низкого уровня шума.
👍5
🔬 Метод

Первое наблюдение, которое делают авторы, что сила энкодера не всегда соответствует качеству генерации. Например, переход от DINOv2 к DINOv3, DINOv2-B к DINOv2-L ухудшает качество, хотя, казалось бы, внешняя модель должна была выучить лучшие репрезентации.

Потому предлагают выравнивать представления от самой модели на разных уровнях шума. Но как это правильно сделать 🤔?

Пробовали некоторые токены полностью зашумлять или зашумлять все независимо. Но это приводит к несовпадению между обучением и инференсом и только просаживает качество.

Вместо этого решили сэмплировать два времени - t и s - независимо, и часть токенов зашумлять на меньший шум, а часть - на больший.

Уже это как-то работает. Но еще лучше, если добавить лосс выравнивания (косинусную близость) между признаками ученика с входом зашумленным с разным силой и учителем (ЕМА ученика), зашумленным на меньший из шумов. Причем выравнивают более ранние (ближе к входу) признаки ученика с признаками учителя.

Итоговый лосс есть сумма flow-matching лосса и лосса выравнивания.

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

Подход валидируют для 3 модальностей - text-2-image, text-2-video, text-2-audio и для мультимодальной генерации.

Для экспериментов на ImageNet берут SiT с SD автоэнкодером в базовой постановке. Self-Flow работает немного лучше, чем REPA и заметно лучше, чем бейзлайн SRA. Self-Flow помогает даже поверх RAE.

На text-2-image генерации Self-Flow тоже лучше SRA. REPA и SigLIP2 не помогают text-2-image генерации.

На видео 📹 генерации Self-Flow снова заметно улучшает метрики. Внешние автоэнкодеры (V-JEPA, DepthAnything) только просаживают качество.

И аналогичная картина наблюдается для аудио 🔉.

Кроме того, учат модель которая одновременно умеет в 3 модальности и video-action модель.

С увеличением размера моделей разница с REPA только растет (судя по CLIP Score).

В ablation показывают, что self-supervised лосс важен для качества. Также важно маскирование, и сэмплирование шагов на широком интервале значений, чтобы модель с высоких шумов могла видеть признаки с низких. Равномерное зашумление лучше логит-нормального.

💡 Выводы

Выглядит как универсальный и при этом достаточно простой рецепт ускорения претрейна для диффузионных моделей. Интересно, использовались ли данные наработки при обучении семейства Flux2, или додумались уже позднее?
👍5
Видать давление со стороны Антропика и Гугла вынудило OpenAI зашевелиться.

Демонструют более эффективный tool use в сравнении с GPT-5.2, за меньшее число вызовов достигают лучшего качества. И якобы качество кодинга при той же latency чуть лучше, чем у специализированной GPT-5.3-Codex.

https://openai.com/index/introducing-gpt-5-4/
👍7
Краткий обзор, посвященный исследованиям влияния температуры 🤒 на качество генераций БЯМ и разным методикам подбора адаптивной температуры.

В частности, рассмотрены разные варианты - обучаемые и entropy-based, с глобальной температурой на последовательность и потокенной.

Одна из эвристик предлагает поднимать температуру, когда модель не уверена в предсказании, и понижать в противном случае.

Существуют также разные опции RL-я и meta-learning для предсказания оптимальной температуры на инференсе. Выученные RL-политики, правда, оказываются похожими на вышеупомянутую эвристику.

Также приводится список работ, где адаптивная температура подбирается для калибровки вероятностного распределения
👍4🔥2
Появились слухи, что грядет DeepSeek-V4.

Интересно, почему INT8, а не FP8 или даже NVFP4?)
😁162
Вот и настал тот славный день, когда мой скромный канальчик преодолел отметку в 3️⃣000 подписчиков.

Спасибо 🙏 всем за то, что вы здесь, за ваши комментарии, замечания и реакции.

Надеюсь и дальше продолжать делать обзорчики по квантизации, прунингу, дистилляции и иным ипостасям Efficient DL.
🔥39🎉22👍6
Forwarded from black_samorez
Кернелы претрен NVFP4 B200 скачать бесплатно без смс и регистрации
from quartet2.linear import Quartet_II_linear

linear = Quartet_II_linear(
in_dim,
out_dim,
device="cuda",
)
...
5🔥4
Mamba-3: Improved Sequence Modeling using State Space Principles
[Статья] [Блог] [Код анонсирован, но не добавлен]

Фантастический Три Дао, Альберт Гу и их падаваны из CMU и Принстона тихо, без шума выпустили 3-ую часть саги про Мамбу 🐍.
🔥6
🔬 Метод

Основной целью модификаций в Mamba-2 было повышение эффективности обучения, и для этого, в частности, упростили матрицу перехода состояний.

Однако, ограничение выразительности может ограничивать и достижимое качество.

С другой стороны, на практике не менее важно иметь и эффективный инференс, утилизирующий вычислительные возможности GPU. Как известно, инференс SSM сильно memory-bound - вычисления занимают гораздо меньше времени, чем трансфер памяти. Отсюда возникает мысль увеличить объем вычислений на один шаг, не меняя при этом количество передаваемой памяти.

В Мамбе-3 3 ключевых нововведения:
1️⃣ Более общий и выразительной вид рекурсии (экспоненциально-трапециоидальная схема)
2️⃣ Переход к комплекснозначной SSM при этом без осуществления вычислений в комплексных числах при помощи RoPE-трюка.
3️⃣ Multi-input, multi-output SSM вместо single-input, single-output. Суть в общих чертах, в том, чтобы обрабатывать состояние в несколько параллельных потоков.

Кроме того, модифицировали и сам слой Мамбы - добавили QK-norm, убрали короткую свертку (которая более не помогает, ввиду того, что схема рекурсии эффективно является сверткой). Также для MIMO-варианта добавляются MIMO-проекции.

Для реализацим используется Trtion, TileLang и CuTe DSL.

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

Архитектуру валидируют, обучая модели размера от 180M до 1.5B токенов на Fineweb-Edu.

Mamba 3 стабильно опережает Mamba-2 и Gated Delta Net того же размера. MIMO вариант еще немного подымает качество.

На retrieval задачах (Needle in a Haystack) Mamba-2 сильно страдала с увеличением длины контекста. Mamba-3 страдает меньше и показывает себя лучше чем GDN в среднем.

Prefill/Decode у SISO варианта Mamba-3 такой же по скорости, как у Mamba-2. У MIMO префилл чуть медленее, но декодирование почти не замедляется.

💡 Выводы

Выглядит как нетривиальное развитие направления с SSM, но полезность можно будет оценить только в более боевых и прикладных сетапах. Почти наверняка 3-ую Мамбу мы увидим в гибридных transformer/ssm моделях.
🔥1
Самое любопытное во всей этой истории то, что вложив много сил в развитие SSM, Tri Dao убивает их, выпуская новые версии Flash Attention.
😁16💯5
TurboQuant: Online Vector Quantization with Near-optimal Distortion Rate
[Статья] [Пост][Неофициальный код под MLX]

Квантизовать что-либо, будь то эмбеддинги, активации или KV-кэши хочется не абы как, а по возможности максимально точно.

И команда из Google Research предложила новый метод квантизации с теоретическими гарантиями и применила к задаче сжатия эмбеддингов в KV-кэшей.
👍13
🔬 Метод

Рассматривают 2-возможные постановки задачи оптимальной квантизации:

🔅 MSE - отпимальную, которая ищет лучшее приближение по квадратичной ошибке к заданному вектору
🔅 Inner Product - оптимальную - поиск лучшей квантизации для скалярного произведения пар векторов, где один из них квантизуется.

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

Для MSE-оптимизированного TurboQuant вектора поворачивают на случайную ортогональную матрицу (не Адамар), а затем подбирают оптимальную решетку с помощью Max-Lloyd для целевых битностей.

Для Inner Product алгоритм для MSE не годится из-за сдвига матожидания. Вместо этого делают следующее - сначала квантизуют MSE отпимальным квантизатором в битность - 1, а 1-битный остаток квантизуют через Quantized Johnson-Lindenstrauss (QJL).

Суть последнего в следующем:
Поворачиваем на случайную ортогональную матрицу, а затем берем знак. Деквантизация - это обратный поворот и перенормировка.


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

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

Сначала сжимают DBpedia Entities OpenAI3 эмбеддинги. Показывают, что MSE-оптимальный квантизатор имеет смещенную ошибку.

Затем переходят на сжатие KV-кэшей. На Needle-In-A-Haystack при сжатии в 4 бита не просаживаются в качестве, в отличие от бейзлайновых SnapKV, PyramidKV, KIVI (первые 2 подхода про прунинг токенов). На LongBench не просаживаются при 3.5 битной квантизации, и очень умеренно при 2.5 битной.

При 2-х и 4-х битной квантизации по качеству превосходят ProductQuantization и RabitQ, при этом работая гораздо быстрее.

💡 Выводы

Небезынтересная работа с солидной теоретической подоплекой. Однако, к выбору бейзлайнов можно придраться. В плане квантизации KV-кэшей есть более свежие и сильные бейзлайны. В частности, было бы интересно сравнить TurboQuant с квантизацией KV-кэшей
в HIGGS сетку на повернутых Адамаровыми вращениями векторах. И для сжатия эмбеддингов есть, как минимум Аддитивная квантизация и LSQ++.
🔥155👍2
ZOMG TEH DRAMA!

Авторы RabitQ написали гневный пост в x.com (бывшем твиттере) по поводу хайпанувшего TurboQuant.

Суть их претензий в следующем - RabitQ основан на тех же идеях - случайном повороте и теоретической оптимальности, но в TurboQuant об этом никак не упоминает. Кроме того, сравнивается производительность TurboQuant на GPU против single CPU core RabitQ.

Засим они подали публичную претензию в комментарии OpenReview, дабы утрясти возникшее недоразумение.

В комментариях жалуются на, что бигтехи бессовестно пиарят свои наработки, задвигая фундаментальную науку.
👍20🔥7