КПД


Kanal geosi va tili: Rossiya, Ruscha


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

Связанные каналы  |  Похожие каналы

Kanal geosi va tili
Rossiya, Ruscha
Statistika
Postlar filtri


Наткнулся на интересный блог от некоего Simon Veitner.

Дизайн суровый, минималистичный, максимально дешево и сердито, но есть немало интересных статей про написание и ускорение кернелов, компоненты современных GPU, а также реализации различных алгоритмов в CuTe / CuTeDSL .

В частности:
Making RMSNorm really fast
Making matrix transpose really fast on Hopper GPUs
CuTeDSL on Hopper - WGMMA and TMA intro

Будет полезно интересующимся написанием кернелов и эффективными программными реализациями алгоритмов на видеокартах, в особенности, на архитектурах Hopper и Blackwell.


Некий стартап LithosAI предлагает сверхбыстрый инференс моделек у себя.

Обещают 800 токенов в секунду (на одного юзера) против 150 у другого стирального порошка других провайдеров.

При этом это все гоняется не на специализированных чипах Cerebras, а на какой-то обычной стойке из 8 B300.

В чем секрет такой выдающей скорости, не раскрывают, утверждают, что все дело в мегаэффективном движке инференса. По всей видимости основной фактор, определяющий latency, здесь - low-batch serving. И, само собой, удовольствие не дешевое, и чтобы не травмировать психику потенциальных юзеров, цену за мильон токенов не разглашают.


Народная мудрость при написании кернелов с помощью агентов.

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


Better MoE model inference with Warp Decode

🔗 Блогпост

Ребята из Cursor не остановились на Mixture-of-Kittens и реализовали ещё одну примечательную оптимизацию MoE для low-batch-инференса под названием Warp Decode.

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

Курсоровцы же предлагают параллелизовать не по экспертам, а по выходам. Каждый варп отвечает за одно выходное значение. Инференс реализован через два fused-кернела — gate+up и down. Варп достаёт в потоковом режиме нужную строчку из матрицы весов и проводит операции.

⚡ Так как варпы работают независимо, то всё выходит embarrassingly parallel: вообще не нужно париться по поводу банковских конфликтов, барьеров и синхронизаций. Все редукции выполняются через warp-level-инструкции вида __shfl_xor_sync.

🛠️ Ещё из полезных плюшек стоит отметить следующее:

- 📐 Не нужно паддить до какой-то степени двойки (типа 128).
- 🗂️ Можно избавиться от scatter и combine: токены последовательности раздаются экспертам, а потом всё собирается. Также исчезает необходимость в промежуточных буферах.

🚀 В итоге оно даёт ускорение порядка 1,8× на B200.

💡 А ещё они избавляются от MXFP8-квантизации, ибо и так всё работает достаточно быстро)

📈 На батче из 32 удаётся достичь до 58% максимально достижимой пропускной способности памяти.

Однако авторы утверждают, что их подход не полностью вытесняет expert-centric-исполнение, особенно в сценарии низкой загрузки. На больших батчах оверхеды от перестановок/перегруппировок токенов не так сильно болят.


Минималистик🧀 dan repost
Dflash2 тпшнулся и теперь продаёт курсы на скиллбокс?!
Да да боже опять дифлеш… лорд Айм уан, лорд айм ту, начинали год как бодрый новичок с плюс минус новым подходом в спекдеке, даже обещали выложить пайплайн обучения, и вот конец года - тяжёлый люкс, эйай блог в тёмных тонах, пишите в Директ скинем модельки 💅

Из изменений: докинули конволюцию (стак мор лейерс) и газанули на дспарк из-за рекуррентности, хотя сами не лучше со своим path finder’ом.
Замерились опять на каких то доходягах типа meta muse glimmer это че блеск для глаз, и опять под раздачу попала КраснаяШляпаЭйАй, до отстаньте вы от них да делают средние драфт модели, да за один день, да бесплатно, но издеваться то зачем? это какая то груша для битья на все случаи жизни? если Канье Веста заменят домиником джокером в саже - пойду красной шляпе дизов насую на хф, ну чтобы знали

Крч, китайцы срубили бабла, даже им нужен один залетевший рилз, гад блес зем
https://inco.ai/blog/dflash2/


🛠️ Метод

По существу предлагается не так уж много:

- 📐 Берем квадратичное разложение. Вместо полного Гессиана (матрицы Фишера) берем диагональ, а ее оцениваем через статистики Адама (которые у нас и так есть).
- ⚖️ Диагональ Фишера используем для подбора оптимальных скейлов при заданных квантованных значениях (кодах). Перебирая общий скейл-фактор, находим оптимальные коды.
- 🔢 В основном фокусируются на INT2/3/4, но еще рассматривают и NVFP4, где скейлы перебираются по FP8-сетке.

Дальше много всякой теоретической лабуды, которой я не читал.

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

Для валидации метода рассматривают QAD (дистилляцию на логитах исходной модели) предобученных Qwen3-4B-Thinking-2507 и Llama-3.1-8B-Instruct, а также SFT Qwen3-4B-Base.

По бенчам в 2 битах оно заметно лучше QAT/PTQ-бейзлайнов, в 3 и 4 битах разница не столь существенна. Лосс на обучении ниже и стабильнее.

Ablation показывает, что все компоненты дают пользу:

- 🧠 Hessian-aware взвешивание
- 🔍 Поиск скейлов

Итоговый оверхед якобы небольшой — замедление шага обучения всего на 1,5% против стандартного QAT со STE.

🧾 Выводы

Вроде бы несложная модификация STE, потенциально улучшающая качество. Но эффект провалидирован только на небольших моделях (обучение без FSDP, по всей видимости). Для больших моделей аншардирование статистик Адама может приводить к нетривиальному замедлению. Кроме того, нынче модно учить с Мюоном, а там аналога такой кривизны просто нет. При этом Мюон со STE может быть и не хуже Адама с прибамбасами, кто знает. Но для лечения GGUFов тема вполне рабочая.


QUASAR: Lowering the Loss Floor of Quantization-Aware Training with Loss-Aware Reconstruction

📄 Статья
💻 Кода нет

Когда PTQ (Post-Training Quantization) не выдает желаемого качества при целевой степени сжатия или модель нужно адаптировать по ходу дела, неизбежно приходится переходить к QAT (Quantization-Aware Training).

Наивный STE (проброс градиента) может работать сносно, но расходится на низких битностях и вообще не очень стабилен. По факту градиент считается не из той точки, где в данный момент находится вес.

Кроме того, существующие техники не учитывают кривизну при оптимизации в STE.

И данная работа предлагает сравнительно недорогой способ сделать STE точнее и более адаптивным под геометрию.


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


Если гора не идет к Магомету, то Магомет идет к горе


Если учитель доступно объяснил материал - он хороший харнесс, а если плохо - то плохой.


Недавний блогпост от Alex Zhang навеял мысль, что харнесс можно рассматривать как автокодировщик.

Харнесс задает то, как обратывается вход, а также выходное распределение перед подачей в генератор.

Он может быть замороженным, а может и оптимизируемым (Darwin Godel Machine, Ouroboros).

Harnesses are AutoEncoders - хорошее название для статейки, чтобы набрать классов в твиттере...


📄 Блогпост

🌵 Стартап Cactus Compute выпустил крохотную модель Needle 2 с весом чекпоинта всего 14 Mb для tool calling и работы со структурированными входа для edge устройств.

Исходная модель имеет 45M параметров, поверх нее применяется CQ-2bit квантизация (некая проприетарная техника).

Квантизация получается в процессе обучения (Quantization Aware Training).

⚡ Скорость

На префилле скорость 800+ tok/s, и 500+ tok/s на декоде на Raspberry Pi 5. Еще оно якобы быстро генерит на VR устройствах и Samsung-ах.

🏗️ Архитектура

Архитектура основана на ихней же работе Simple Attention Network. Там немало архитектурных прибамбасов:

• mHC
• Engram
• Hadamard MLP. Дабы сэкономить на параметры, параметризуют веса как произведение диагональной на Адамарову матрицу.
• GQA + Sliding Attention + синки для тулов

Needle 2 производит меньше операций на токен против традиционной трансформерной архитектуры.

📚 Обучение

На обучение потратили 115B токенов из проприетарных токенов и 38B на посттрейн, что на порядки меньше, чем у LFM.

📊 Бенчмарки

Модель оценивают на бенчмарках:

• Mobile Actions
• Droid Call
• Seal-Tools
• BFCL v4

🎯 Оно выходит по качеству близко к Function Gemma 270M, LFM 2.5 230M, Apple FM, будучи при этом гораздо меньше.


Дарио, когда увидел openweight endpoint.


Гречневые мысли dan repost
Про совсем компактные модели

Мне нравится идея крутить локальные модели, но не нравится идея забивать всю память ими. Мне всегда казалось, что самый лучший способ сделать подобную edge модель — попробовать создать что-то, что будет достаточно умным, чтобы мочь делать выводы из данных, но не иметь собственных знаний. Да и зачем модели собственные знания, когда есть тривиально настраивающийся поиск в интернете и тулколлинг? Мои коллеги из AIRI подумали о том же и сделали Optimal Cognitive Core, про который я уже писал — затюненные reasoning версии Qwen-3-0.6B и Qwen-3-1.7B, которые оптимизированы под работу с внешним контекстом и RAG. Модели в целом подходят под мои требования к железу — веса занимают 1.2 и 3.4 гб в их родном BF16, ещё столько же на длинный контекст (так как это Qwen3, там GQA, это вам не модный нынче гибрид), итого, с пивком потянет. Другой вопрос, что эти модели слишком малы, чтобы быть применимыми для general purpose задач — всё таки это 600M и 1.7B dense. В этом размере обычно бывают забавные попугаи, который могут делать парафразу или простенькую классификацию после файнтюна, но не более.

Следующий способ ужать модель в память моего MacBook Air M4 — использовать квантизацию. Тут отличились PrismML, сделав Bonsai-27B, бинарный- и тернарный кванты Qwen-3.6-27B. 27B модель в тернарном кванте занимает всего 7.2 гб после запуска инференса и вполне себе бегает на маках. К сожалению, Qwen-3.6-27B это dense модель, так что на моём маке она уж совсем медленная — если верить тому, что я нашёл в сети, генерация там будет в районе 13-14 токенов в секунду, чтение контекста — 100-150 токенов в секунду. Кроме того, это QAT (или вообще PTQ, подробностей мало), причём который скорее всего не затачивали на русский — так что я не ожидаю, что итоговая модель за пределами своего калибрационного сета/сета, на котором делали QAT сможет показать что-то интересное.

Буквально в ответ на Bonsai появился Maple-Preview. Это 20B A1B MoE, которую специально затачивали под локальный инференс на маках ещё на этапе проектирования архитектуры, обучая свою модель с нуля в тернарной точности — то есть это не квантизация чьей-то модели. В итоге, получилась модель размером в 5.31 гб, 7.5 гб с учётом 131к контекста — почти в полтора раза меньше, чем бинарный квант Bonsai — который выдаёт аж 218 токенов в секунду на M4 Mac Mini и 127 токенов в секунду на iPhone (каком — непонятно). Модель практически не знает русского, да и в целом, мало знает (путает, в какой игре босса зовут Psycho Mantis), но если дать ей поиск, она вполне себе справляется с ответами на простые вопросы. Бенчей по тулколлам они не дают, в целом, понятно почему — я прогнал Tau-2 (в качестве user sim я использовал Qwen3-235B-A22B-Instruct-2507), на Airline скор 0.48, на Retail 0.175, на Telecom 0.427. Это не соннет и тем более не квен, но на то это и Maple Preview, они специально пишут, что учить модель на агентов будут дальше.

При всех плюсах квантизации, это всё ещё почти половина доступной мне памяти. Поэтому есть ещё и третий способ как снизить использование оперативки: выгружать все веса на SSD и стримить экспертов у MoE с диска. Уже есть turbo-fieldfare, который запускает Gemma-4-26B на маке с использованием всего 2 гб памяти и есть Mference, форк turbo-fieldfare, который расширяет поддержку на Qwen-3.6-25B, DeepSeek V4 Flash и Inkling-Small 276B. Оно действительно использует очень мало памяти, но ценой того, что скорость генерации и чтения контекста падает до десятков токенов в секунду. Кажется, Apple делает что-то похожее в своей новой Siri, правда, активируя экспертов на весь промпт, а не на токен как в этих фреймворках.

И тут появляется интересная идея — а что если мы возьмём Maple Preview, которая суперэффективная, с маленькими экспертами и обучавшаяся в тернарной битности, и внесём её в Mference? Так мы сможем, в теории, получить ещё меньшее использование памяти и относительно нормальную скорость генерации — потому что модель оптимизировалась под это на этапе архитектуры.

Сказано — сделано. Спасибо кодексу и моей подписке за 200$, спустя 20 часов и 30% от недельного лимита я получил паритет с официальной имплементацией на teacher forced top-10 токенах в The Raven Эдгара Аллана По. Модель, в зависимости от контекста, занимает от 500 до 1200 мб памяти (!), на MacBook Air M4 читает и генерит со скоростями 40 и 20 тпс соответственно, может дёргать тулы и генерить текст. Такое не жалко оставить всегда включённым в фоне — кушать не просит, пусть лежит, если надо спрошу, он ответит. Попробую дотащить до мейна потом, но сейчас уже можно попробовать запуститься в моём форке на гитхабе.

Зачем это нужно? Имхо, есть два режима использования подобных моделей. Первый — интерактивный чат. Там важно, чтобы модель отвечала быстро и имела низкий латенси. Второй — когда модель в фоне, почти не используя память и не мешаясь остальным модулям системы, что-то анализирует — классифицирует сообщения, достраивает граф знаний, фильтрует почту, пишет сводку, что-то медленно ресёрчит в интернете. Во втором режиме требований к латенси нет, так что скорости в 20 тпс вполне себе достаточно. Ну а чтобы переключиться из одного режима в другой, нужно всего лишь загрузить всю модель в оперативку с SSD — что делается довольно быстро, буквально за пару секунд. Если модель умеет в тулколлы — Maple Preview умеет не слишком хорошо, но на то она и Preview — то можно строить агентные пайплайны без требований к латенси и всегда иметь умного помощника, готового к работе оффлайн даже на старых телефонах. И это прекрасно — мне было бы очень приятно, если бы будущее было локальным.

Код
Суперинтересный пост от DeepGrove про то как они дизайнили модель


99 usage limit resets in Codex, 99 usage limit resets
Take one down and pass it around, 98 usage limit resets in Codex

98 usage limit resets in Codex, 98 usage limit resets
Take one down and pass it around, 97 usage limit resets in Codex
...
No usage limit resets in Codex, no more usage limit resets
Go to chatgpt.com and buy a new subscription, 99 usage limit resets in Codex


Лайфак по использованию агентов.

Если не запускать GPT Sol и Claude Opus на любой чих, то подписка расходуется не так быстро.



2k 1 12 3 23

🧪 Метод и эксперименты

Основными задачи при разработке кернела были:
• Уменьшить обьем CPU работы и CPU-GPU синхронизации
• Максимально эффективно перекрывать вычисления и коммуникации

Рассматриваются два типа dispatching

Push-based dispatch (традиционный подход)

1. Router для каждого токена определяет его экспертов.
2. Для каждого токена выполняется: Отправить этот токен эксперту №7.

То есть именно токен "толкается" (push) в буфер нужного эксперта.

T0 ---> Expert 2
T1 ---> Expert 7
T2 ---> Expert 2
T3 ---> Expert 5


⚠️ Проблемы

Если тысячи потоков одновременно хотят записать данные эксперту 7, они начинают конкурировать за

• atomic counter,
• место в буфере,
• память.

Получается много случайных записей и плохая эффективность памяти.

Pull-based dispatch

Идея разворачивается наоборот.

Сначала известно, какие токены принадлежат каждому эксперту (например, после сортировки).

После этого сам эксперт приходит за своими токенами.

Expert 2:
беру токены [0,2,9,15]

Expert 5:
беру токены [3,8]

Expert 7:
беру токены [1,4,5,6]


Теперь данные читаются большими непрерывными кусками.

Никаких scatter-записей больше не требуется.

Pull позволяет организовать данные так, чтобы чтение стало почти непрерывным, что улучшает пропускную способность памяти и снижает накладные расходы на scatter/atomic операции.

Кернел валидируют на разных MoE моделях - GLM-5.2, Qwen-3.5-397B, Kimi-K2.7, DeepSeek V4 Pro.

Удается добиться ускорения ~2x против бейзлайнов на форварде, и ~1.5x на обратном проходе.

📌 Выводы

Выкладывание в открытый доступ данного кернела - хороший подарок компаниям, которым завезли NVL72, и они не знают, как их эффективно использовать.


Mixture-of-Kittens: our open-source MoE megakernel for NVL72s

📄 Блогпост
💻 Код

Ребята из курсора реализовали MXFP8 мегакернел под названием Mixture-of-Kittens, где пофьюжены все операции для слоя смеси экспертов, специализированный под GB300 NVL72s.

В отличие от MegaMoE от команды Дипсика 🐋, этот кернел не только под инференс, а еще и под обучение.


Введение в Квантизацию.pdf
6.1Mb
📚 Презентация про квантизацию с моего выступления на нашей Hardware Efficiency Reading Group, где мы обсуждаем статьи, идеи и практические аспекты эффективного глубокого обучения.

🎥 Записи и 📋 программу прошлых семинаров можно найти здесь.

🗓️ Семинар проходит (почти) каждый понедельник с 13:00 до 14:00.

📢 Группа с анонсами и материаламитут.

Будем рады всем, кто интересуется эффективным глубоким обучением, GPU, CUDA, оптимизацией и современными ML-системами! 🚀

20 ta oxirgi post ko‘rsatilgan.