3.4K subscribers
256 photos
7 files
468 links
Квантование & Прунинг & Дистилляция

Блог про сжатие сетей и не только.
От древнейших времен по настоящее время.
Download Telegram
7x size reduction for Gemma4 Edge models

📝 Блогпост

Команда из thestage.ai выпустила занятный блогпост про сжатие Gemma-4 в 6,4 раза с умеренной просадкой качества.

Работа примечательна тем, что комбинирует многие классические и свежие практики, чтобы выдать наилучший trade-off между размером модели и качеством.
🔥14👍1
🛠 Метод

🎯 Авторы ставят своей целью эффективный инференс на edge-девайсах вроде мобилок. iOS накладывает жёсткие ограничения на размер памяти, используемой приложением, — ~3 гига, поэтому чекпоинт 4B-модели туда никак не влезет без оффлоадинга.

🏗 Архитектура модели включает в себя трансформерные блоки, PLE-эмбеддинги и объединённую LM-голову / эмбеддинги. Каждая из компонент требует своего рецепта.

⚙️ Для сжатия слоёв в трансформерных блоках используют GPTQ. Но не просто GPTQ, а усиленный Quantization Error Propagation (QEP) и тюнинг скейлов, минимизирующий квадратичную ошибку на выходе. Для калибровки подбирают датасет с примерами из разных областей — самокалибровочные генерации (генерации исходной модели по каким-то промптам), многошаговые диалоги, ризонинг / safety-данные.

📊 В ablation показывают, что QEP существенно снижает KL-дивергенцию между квантизованной и исходной моделью.

🗜 PLE — самая тяжеловесная часть модели, потому требует экстремального сжатия. Скалярные квантизаторы не жмут ниже одного бита, да и сильно сажают качество. Потому используют модифицированный вариант AQLM с 8-мерными группами и кодовой книгой размера 128 (7/8 бит на параметр?). Вместо X^T X используется регуляризованная матрица Фишера. В итоге удаётся добиться сильного сжатия с умеренным отклонением от исходной модели.

🧩 Эмбеддинг, он же голова, квантизуется через RTN с тюнингом скейлов.

🔧 Равномерное сжатие не учитывает разную важность и чувствительность слоёв, потому авторы используют RCO из недавней работы , который подбирает оптимальную битность под каждый слой из некоего набора пресетов через Риманову оптимизацию. Причём сначала подбирают оптимальные битности, а затем переквантовывают модель снова (чтобы калибровка учитывала степень сжатия прошлых слоёв). Оптимизированная конфигурация также выдаёт гораздо более близкие выходы к исходной модели.

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

📉 По соотношению KL-дивергенция / размер выпущенные чекпоинты заметно лучше по Парето-фронту, чем публичные GGUF-ы.

📋 Далее качество замеряют на MMLU Pro, IFEval, tau2 bench.

🏆 L- и M-чекпоинты со степенью сжатия в 6–7 раз по качеству даже лучше GGUF-ов с 4x-сжатием.

🚀 По скорости оно даёт увеличение TPS в 2–2,5 раза против bf16-чекпоинта и снижает потребление памяти в 5–6 раз. 4-битная скалярная квантизация при этом даёт ускорение примерно в 1,5 раза (маловато чёт).

💡 Выводы

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

Следующим шагом было бы отскейлить сие на здоровые MoE-шки, чтобы запускать условный GLM-5.2 хотя бы на паре H100 или одной H200.

📦 Чекпоинты моделей выложены на лицехватс, и их можно запускать на яблочных чипах при помощи либы.
🔥15😱2
Годный блогпостик про использование FP4 квантизации в проде от провайдера Spheron.

В частности, оценивается стоимость инференса при аренде конкретной GPU с учетом максимально достижимого throughput при использовании данного типа данных, а также вопросы качества и доступности в инференсных фреймворках.
🔥7
Quantized Reasoning Models Think They Need to Think Longer, but They Do Not

📄 Статья
📝 Блогпост

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

Но из-за чего именно это происходит?

Команда из Meta обнаружила, что квантизованные модели подвержены overthinking: они начинают зацикливаться в рассуждениях и, даже получая в промежуточных рассуждениях верный ответ, не выдают его по итогу.

Авторы исследуют данное явление и предлагают простую стратегию, позволяющую одновременно укоротить ответы и улучшить качество.
1🔥1
🧪 Метод и эксперименты

Авторы рассматривают следующие варианты квантизации:

* 🔹 weight-only AWQ в 3 и 4 бита;
* 🔹 weight-only GPTQ в 3 и 4 бита;
* 🔹 weight + activation + KV-cache-квантизация в 4 и 8 бит при помощи FlatQuant.

Качество оценивают на задачах по математике, общим научным вопросам (GPQA-Diamond) и кодингу (LiveCodeBench). В качестве моделей рассматривают дистиллы дипсика и QwQ (почему не Квен / Квен-3.5?).

Менее агрессивные квантизации не так сильно меняют выход, но 3-битная квантизация весов и 4-битная квантизация весов + активаций заметно просаживают качество и одновременно увеличивают длину ризонинга. Причём длина ризонинга и качество имеют негативную корреляцию: чем длиннее ризонинг, тем хуже качество.

Анализируя ответы, авторы замечают, что сильно повышается доля токенов — overthinking markers — вида “Wait”, “But”, “Alternatively” и т. п. Кроме того, они обычно соответствуют позициям, где KL-дивергенция между выходами исходной и квантизованной моделей велика.

Для того чтобы побороть явление overthinking, предлагают занижать логиты, отвечающие за 50 вручную отобранных overthinking-токенов. В качестве бейзлайнов рассматривают случайные токены и токены с низкой / высокой KL-дивергенцией между сжатой и несжатой моделями.

📈 Занижение логитов отобранных токенов консистентно улучшает качество на 5–15%, при этом длина ризонинга сокращается на 10–20%.

В основном прирост качества достигается как раз за счёт решения проблемы overthinking — доля таких ошибок снижается в два и более раза.

Из альтернативных стратегий пенализация high-KL-токенов тоже работает неплохо, но хуже, чем пенализация вручную отобранных. Пенализация случайных токенов ничего не даёт, а low-KL-токенов только просаживает качество и удлиняет ризонинг.

💡 Гипотеза авторов о природе явления состоит в том, что токены с высокой энтропией имеют сильно размазанное распределение вероятностей, поэтому даже малый шум может привести к выбору другого токена — чаще всего как раз одного из overthinking-токенов.

📝 Выводы

Интересное наблюдение и простое решение для повышения качества работы, которое легко внедряется.

Было бы хорошо проверить справедливость полученных в работе выводов на квантизации больших и не очень МоЕшек в агентских задачах.
8😁7🔥1
Extreme Low-Bit Inference in Reasoning Models: Failure Modes and Targeted Recovery

📄 Статья
💻 Код

Вдогонку про влияние квантизации на ризонинг.

Ребята из Brain Lab выпустили интересное исследование, показывающее, как ломается ризонинг у квантизованных моделей, а также пару стратегий, помогающих предотвратить зацикливание генерации.
14
🧪 Метод и эксперименты

В данной работе фокусируются на 2-битном weight-only-сжатии ризонящих моделей. В аппендиксе есть эксперименты с FP4, со сжатием активаций и KV-кэшей. Квантизуют модели Qwen3-8B / Qwen3-32B через GPTQ.

Оказывается, что квантизация сильно меняет поведение трейсов ризонинга:

🔄 Число циклов резко возрастает, особенно для меньшей модели.
📏 Многие трейсы не вписываются в заданный лимит токенов.
⚠️ Блок <think> часто оказывается незакрытым.
💡 При этом сам ответ появляется в среднем чуть ли не раньше в трейсе, но модель его не выводит.
📈 Длина ризонинга сильно увеличивается.

Из этого следует, что, кроме просадки качества, мы ещё теряем в эффективности из-за того, что генерируем больше токенов.

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

При этом результат сильно зависит от выбора задачи: на ризонинг-бенчмарках типа AIME / GPQA-Diamond эффект сильно заметен. На простых задачах — ARC-C, ARC-E, PIQA, WinoGrande — просадка и в 2 битах очень умеренная. Вообще, я думал, что эти бенчмарки likelihood-based и гоняются с выключенным <think>.

Вводят четыре режима деградации качества:

🟢 Стабильный. Без заметной просадки.
🟡 Заметная, но умеренная просадка. Трейсы ещё не ломаются, но есть нарушения в плане фактологии и commonsense.
🟠 Значительная деградация. Генерация часто не завершается.
🔴 Полный коллапс.

В первую категорию попадает Qwen3-32B на простых задачах. По мере усложнения задач и уменьшения размера модели растёт степень деградации.

Дабы как-то подлечить просадку, предлагают два решения:

📝 (+P) FP16-модель пишет план, а квантизованная исполняет. Это заметно поднимает качество и правит многие ошибки ризонинга, но точность всё ещё ощутимо ниже базовой модели.

🔁 (+L) Loop Rescue. Если модель зацикливается, но выдаёт ответ, выписываем промежуточный ответ. Если ответа нет, просим FP16-модель сгенерировать его с нуля.

Стратегии комплиментарны и могут дополнять друг друга.

На простых задачах смысла в этом не так много, так как и просадки, и зацикливания нет. Но на сложных задачах и ризонинг укорачивается, и качество заметно улучшается.

На простых задачах end-to-end speedup с учётом длины генерации находится в районе 2×, а на сложных — несколько процентов с просадкой порядка 20% в среднем.

📌 Выводы

Занятная и интересная стратегия по выправлению ризонинга. Для production-grade-системы, понятное дело, просадки качества слишком велики, но и 2-битная квантизация без свистоплясок — это действительно тяжёлый случай.

Интересно было бы дообучить квантизованную модель через какой-нибудь RL с penalty на циклы.
7
Интересная по описанию либа Humming от InclusionAI.

Позиционируется как легковесный, высокопроизводительный фреймворк с JIT-компилированными GEMM-операциями (под NVIDIA GPU).

⚙️ Он предлагает широкий ассортимент кернелов под разные конфигурации квантованных весов и активаций:

🧮 Веса можно квантовать почти в любую целочисленную битность от 1 до 8, а также в разные варианты FP.
Активации можно квантовать в FP16/BF16/FP8/FP4/INT8/INT4. FP8 поддерживается только начиная с Hopper, а FP4 — с Blackwell.

🧩 Ещё он работает с MoE и позволяет прикручивать адамаровы повороты в квантизацию.

🤷‍♂️ Утверждается, что он выдаёт SOTA-скорость и эффективность, но никаких чисел в README, да и вообще нигде, не приводится.

📊 Квантованных чекпоинтов с замерами качества и скорости тоже нигде нет.

🤔 Выглядит потенциально интересно для ресерча, но как будто не хватает нормальной доки и полноценного описания бенефитов. Могли бы Claude Code постараться напрячь, раз он у них и так многое делает.
10
Бывает и такое, что Reviewer #2 ставит тебе Accept.

Но ревью настолько короткое и несодержательное, что Area Chair не примет во внимание...
😁14💯5
Серёжа сьел токены сына
Зачем? Не объяснив причину
Серёжа запускает клод, рой агентов
И сьедает квоту его

Зачем так ждать чего-то?
Так сильно хотеть чего-то?
Так сильно обливать сердце кровью?
И в снег, и в метель, и в грозы
Писать Деду Морозу
Чтоб выслал новые токены
А не какой-нибудь сраный пенал…
😭16👏3👎1🥴1
step: 11 loss: 9.8672 grad_norm: 2.8441 tps: 5,471 time/step: 2.99s tflops: 198,319.19 mfu: 63563.84% memory: 243.85GiB


MFU > 60000%

Такое даже Уроборосу не снилось)
😁17🤣7🔥5
🚀 Лаба Song Han (одного из апостолов EfficientDL) из MIT выпустила репозиторий со скиллом для агентов, предназначенным для оптимизации кернелов под Hopper и Blackwell.

📚 Репозиторий содержит набор скриптов, которые позволяют агенту обращаться к различным базам знаний, блогам, PR'ам и другим артефактам, посвященным тензорным ядрам и архитектурным особенностям Hopper и Blackwell.

🛠️ В частности, в него заложены знания по:

* CUDA
* CuTe DSL
* PTX
* Triton
* TileLang
* cuTile

⚠️ При этом авторы сразу оговаривают в дисклеймере, что скилл не предназначен для задач, связанных с распределенным обучением и мультихостовым параллелизмом.
🔥92👍2