🛠 Метод
🎯 Авторы ставят своей целью эффективный инференс на 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.
📦 Чекпоинты моделей выложены на лицехватс, и их можно запускать на яблочных чипах при помощи либы.
🎯 Авторы ставят своей целью эффективный инференс на 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 при использовании данного типа данных, а также вопросы качества и доступности в инференсных фреймворках.
В частности, оценивается стоимость инференса при аренде конкретной GPU с учетом максимально достижимого throughput при использовании данного типа данных, а также вопросы качества и доступности в инференсных фреймворках.
🔥7
Quantized Reasoning Models Think They Need to Think Longer, but They Do Not
📄 Статья
📝 Блогпост
Известно, что квантизованные модели просаживаются в качестве несколько сильнее, чем модели на остальных классах задач.
Но из-за чего именно это происходит?
Команда из Meta обнаружила, что квантизованные модели подвержены overthinking: они начинают зацикливаться в рассуждениях и, даже получая в промежуточных рассуждениях верный ответ, не выдают его по итогу.
Авторы исследуют данное явление и предлагают простую стратегию, позволяющую одновременно укоротить ответы и улучшить качество.
📄 Статья
📝 Блогпост
Известно, что квантизованные модели просаживаются в качестве несколько сильнее, чем модели на остальных классах задач.
Но из-за чего именно это происходит?
Команда из 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-токенов.
📝 Выводы
Интересное наблюдение и простое решение для повышения качества работы, которое легко внедряется.
Было бы хорошо проверить справедливость полученных в работе выводов на квантизации больших и не очень МоЕшек в агентских задачах.
Авторы рассматривают следующие варианты квантизации:
* 🔹 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 выпустили интересное исследование, показывающее, как ломается ризонинг у квантизованных моделей, а также пару стратегий, помогающих предотвратить зацикливание генерации.
📄 Статья
💻 Код
Вдогонку про влияние квантизации на ризонинг.
Ребята из Brain Lab выпустили интересное исследование, показывающее, как ломается ризонинг у квантизованных моделей, а также пару стратегий, помогающих предотвратить зацикливание генерации.
❤14
🧪 Метод и эксперименты
В данной работе фокусируются на 2-битном weight-only-сжатии ризонящих моделей. В аппендиксе есть эксперименты с FP4, со сжатием активаций и KV-кэшей. Квантизуют модели Qwen3-8B / Qwen3-32B через GPTQ.
Оказывается, что квантизация сильно меняет поведение трейсов ризонинга:
🔄 Число циклов резко возрастает, особенно для меньшей модели.
📏 Многие трейсы не вписываются в заданный лимит токенов.
⚠️ Блок
💡 При этом сам ответ появляется в среднем чуть ли не раньше в трейсе, но модель его не выводит.
📈 Длина ризонинга сильно увеличивается.
Из этого следует, что, кроме просадки качества, мы ещё теряем в эффективности из-за того, что генерируем больше токенов.
Как и в прошлой статье, замечают, что длина ризонинга у квантизованных моделей обратно коррелирует с качеством. Причина как раз в этих зацикливаниях.
При этом результат сильно зависит от выбора задачи: на ризонинг-бенчмарках типа AIME / GPQA-Diamond эффект сильно заметен. На простых задачах — ARC-C, ARC-E, PIQA, WinoGrande — просадка и в 2 битах очень умеренная. Вообще, я думал, что эти бенчмарки likelihood-based и гоняются с выключенным
Вводят четыре режима деградации качества:
🟢 Стабильный. Без заметной просадки.
🟡 Заметная, но умеренная просадка. Трейсы ещё не ломаются, но есть нарушения в плане фактологии и commonsense.
🟠 Значительная деградация. Генерация часто не завершается.
🔴 Полный коллапс.
В первую категорию попадает Qwen3-32B на простых задачах. По мере усложнения задач и уменьшения размера модели растёт степень деградации.
Дабы как-то подлечить просадку, предлагают два решения:
📝 (+P) FP16-модель пишет план, а квантизованная исполняет. Это заметно поднимает качество и правит многие ошибки ризонинга, но точность всё ещё ощутимо ниже базовой модели.
🔁 (+L) Loop Rescue. Если модель зацикливается, но выдаёт ответ, выписываем промежуточный ответ. Если ответа нет, просим FP16-модель сгенерировать его с нуля.
Стратегии комплиментарны и могут дополнять друг друга.
На простых задачах смысла в этом не так много, так как и просадки, и зацикливания нет. Но на сложных задачах и ризонинг укорачивается, и качество заметно улучшается.
На простых задачах end-to-end speedup с учётом длины генерации находится в районе 2×, а на сложных — несколько процентов с просадкой порядка 20% в среднем.
📌 Выводы
Занятная и интересная стратегия по выправлению ризонинга. Для production-grade-системы, понятное дело, просадки качества слишком велики, но и 2-битная квантизация без свистоплясок — это действительно тяжёлый случай.
Интересно было бы дообучить квантизованную модель через какой-нибудь RL с penalty на циклы.
В данной работе фокусируются на 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 постараться напрячь, раз он у них и так многое делает.
Позиционируется как легковесный, высокопроизводительный фреймворк с 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 не примет во внимание...
Но ревью настолько короткое и несодержательное, что 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
⚠️ При этом авторы сразу оговаривают в дисклеймере, что скилл не предназначен для задач, связанных с распределенным обучением и мультихостовым параллелизмом.
📚 Репозиторий содержит набор скриптов, которые позволяют агенту обращаться к различным базам знаний, блогам, PR'ам и другим артефактам, посвященным тензорным ядрам и архитектурным особенностям Hopper и Blackwell.
🛠️ В частности, в него заложены знания по:
* CUDA
* CuTe DSL
* PTX
* Triton
* TileLang
* cuTile
⚠️ При этом авторы сразу оговаривают в дисклеймере, что скилл не предназначен для задач, связанных с распределенным обучением и мультихостовым параллелизмом.
🔥9❤2👍2
Введение в Квантизацию.pdf
6.1 MB
📚 Презентация про квантизацию с моего выступления на нашей Hardware Efficiency Reading Group, где мы обсуждаем статьи, идеи и практические аспекты эффективного глубокого обучения.
🎥 Записи и 📋 программу прошлых семинаров можно найти здесь.
🗓️ Семинар проходит (почти) каждый понедельник с 13:00 до 14:00.
📢 Группа с анонсами и материалами — тут.
Будем рады всем, кто интересуется эффективным глубоким обучением, GPU, CUDA, оптимизацией и современными ML-системами! 🚀
🎥 Записи и 📋 программу прошлых семинаров можно найти здесь.
🗓️ Семинар проходит (почти) каждый понедельник с 13:00 до 14:00.
📢 Группа с анонсами и материалами — тут.
Будем рады всем, кто интересуется эффективным глубоким обучением, GPU, CUDA, оптимизацией и современными ML-системами! 🚀
👍12❤7🔥3