ar
Feedback
КПД

КПД

الذهاب إلى القناة على Telegram

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

إظهار المزيد
3 433
المشتركون
+524 ساعات
+67 أيام
+4430 أيام
أرشيف المشاركات
КПД
3 432
И кстати, группа для комментов и обсуждений: @quant_prune_distill_comments Походу до нее не очевидно добраться)

КПД
3 432
NVIDIA на днях выложила статью про перенос KV-кэша между разными моделями: маленькая модель читает промпт, большая отвечает и
NVIDIA на днях выложила статью про перенос KV-кэша между разными моделями: маленькая модель читает промпт, большая отвечает из её кэша через линейный маппинг. Кода нет, анонса нет, ничего нет, только цифры с 8x H100. Ну я и решил проверить 🤨 Взял пару Qwen3 0.6B и 1.7B, две 3090, и собрал всё внутри vLLM, а не на синтетике: свой KV-коннектор, перенос через /dev/shm, ridge-маппер замкнутой формулой, 15 минут фита на FineWeb. Живёт всё как KV Connector для вллм. Оно работает 😫 HellaSwag держит 94% качества, перплексия хуже всего на 10%. TTFT на 32K контексте падает с 3657 до 1645 мс, в x2.22 🤌🏻 Под конкурентностью 8 прогретый путь тоже гуд, 2393 против 3928 мс на запрос, ноль сбоев за все прогоны. У авторов 17-25x на паре 14B и 32B с NVLink, у меня 2.22x на PCIe, и короткие промпты проигрывают накладным расходам переноса. Окупается это дело на длинном контексте, где prefill больнее всего 📉 Код, коннектор и оба обученных маппера выложил 👇 https://github.com/alesha-pro/vllm-cross-model-kv https://huggingface.co/anonymousmaharaj/vllm-cross-model-kv

КПД
3 432
photo content

КПД
3 432
🛠️ Метод Сначала определяют, какие слои лучше всего отображаются из одной модели в другую. Для этого обучают гребневую регрессию (Ridge Regression) между всеми парами слоёв source- и target-модели и находят те, где R² самый большой. При этом важно фитировать pre-RoPE-ключи. Так и ошибка выходит меньше, и на другие контексты экстраполируется лучше. Замечают, что ключи предсказываются лучше, чем значения. Впрочем, это было известно и из прошлой литературы. После определения самых важных source-слоёв для данного target-слоя признаки из них конкатенируют в один тензор и снова обучают на этом гребневую регрессию. Показывают, что важно брать не один, а несколько — 4–8 — слоёв из source-модели для приемлемого R². ⏱️ Занимает это час-полтора на ноде из 8×H100. 🧪 Эксперименты Валидируют подход на моделях семейств Qwen3, Llama-3.1, Ministral и на задачах с коротким ответом: ARC-C, HellaSwag, Winogrande, MMLU. На паре Qwen3 14B → 32B работает неплохо, на Qwen3 8B → 32B — уже хуже, а на Llama 3.1 и Ministral 3. В ablation показывают для Qwen, что pre-RoPE важен и что k = 1 — брать один самый важный слой — недостаточно. Для Ministral 3 можно вытянуть качество, если заменить линейную модель на MLP. Для Qwen3 это не помогает. Утверждается, что оверхед от маппера из source в target небольшой — в 3–25 раз меньше, чем prefill. 💡 Выводы Интересное исследование и идея, но будто бы до практического использования ещё далеко. Тесты — на простых бенчах, и будто бы подход не универсален. Для качественного отображения между разными моделями, скорее всего, потребуется более выразительная модель, и здесь возникает сложный trade-off между потенциальным выигрышем, стоимостью работы и обучения этой прокладки.

КПД
3 432
Cross-Model KV Cache Transfer in LLM Families: A Closed-Form Linear Mapping for Prefill Reuse 📄 Статья: Нередко интересующую задачу можно разбить между несколькими LLM-ками, делегировав более простые куски бюджетным моделям, а сложные — самым топовым и дорогим. Коммуникацию можно построить через текст, однако внутренние представления, в частности KV-кэш, могут содержать гораздо больше полезной информации. В работе Cache-2-Cache рассматривается следующая постановка: 1. 🔹 Source- и target-модели делают префилл. 2. 🔹 Обучаемый fuser-модуль выдаёт добавку к target-модели, которая в некотором смысле передаёт знания из source-модели. Практически интересны два сценария: - 🧠 Делаем префилл большой моделью и достаточно длинную генерацию маленькой моделью. Надеемся, что мощный префилл зарешает. - ⚡ Делаем большой префилл маленькой моделью и короткую генерацию большой моделью. Авось большая модель переварит выдачу малой модели и выдаст точный ответ. - Однако в исходной статье префилл, по-любому, приходится делать двумя моделями, и обучение fuser может быть недешёвым. Ребята из NVIDIA предложили обучать проектор, в большинстве случаев линейный, из одной модели в другую, подобрав для target-модели наиболее полезные слои из source-модели, — и оно более-менее завелось.

КПД
3 432
🛠️ Метод Дабы всё можно было реализовать одним кернелом без обращения к глобальной памяти, надо расписать все вычисления так, чтобы нужные активации всегда лежали под рукой у нужного CTA (Cooperative Thread Array). А ещё хочется избавиться от лишних синхронизаций. Есть две технические сложности: 1. В наивной реализации сначала идёт gate-проекция, а затем up, и CTA нужно тянуться далеко за нужными элементами матрицы весов. 2. Чтобы получить выход down-проекции, необходимо просуммировать по всей промежуточной размерности. Проблема 1 решается просто — будем перемежать куски up- и gate-проекции, чтобы CTA мог достать их разом из одного места. Проблема 2 решается гораздо сложнее, и ей посвящена, по сути, большая часть блога. Если коротко — так расписывается то, как данные подаются в тензорные ядра, синхронизируются consumer- и producer-потоки, пайплайнинг и заумный эпилог. Многие штуки зиждутся на Blackwell-специфичных инструкциях, позволяющих перекрывать в одной операции вычисления и трансфер памяти. ⚙️ Есть у них как bf16-, так и mxfp8-реализация. 📊 Замеры Сравниваются с наивной торчовой реализацией (дико медленной, само собой, и это даже несерьёзно) и torch.grouped_mm. В bf16 получают ускорение порядка 20% против grouped_mm и около 2 раз для mxfp8 (против торчового mxfp8). Если убрать requant из торчовой реализации mxfp8, то ускорения почти нет. 🤔 Сравнений с другими эффективными fused-кернелами — SonicMoE и Mixture-of-Kittens — нет, так что непонятно, насколько это круто.

КПД
3 432
Prime Flash MoE - Faster MoE Kernels optimized for Blackwell 🔗 Блогпост Работы по вайбкодингу реализации эффективных MoE-кер
Prime Flash MoE - Faster MoE Kernels optimized for Blackwell 🔗 Блогпост Работы по вайбкодингу реализации эффективных MoE-кернелов пошли кучно, и ребята из Prime Intellect не остались в стороне и породили свой fused-кернел Prime Flash MoE.

КПД
3 432
Наткнулся на интересный блог от некоего Simon Veitner. Дизайн суровый, минималистичный, максимально дешево и сердито, но есть немало интересных статей про написание и ускорение кернелов, компоненты современных GPU, а также реализации различных алгоритмов в CuTe / CuTeDSL . В частности: • Making RMSNorm really fastMaking matrix transpose really fast on Hopper GPUsCuTeDSL on Hopper - WGMMA and TMA intro Будет полезно интересующимся написанием кернелов и эффективными программными реализациями алгоритмов на видеокартах, в особенности, на архитектурах Hopper и Blackwell.

КПД
3 432
Некий стартап LithosAI предлагает сверхбыстрый инференс моделек у себя. Обещают 800 токенов в секунду (на одного юзера) проти
Некий стартап LithosAI предлагает сверхбыстрый инференс моделек у себя. Обещают 800 токенов в секунду (на одного юзера) против 150 у другого стирального порошка других провайдеров. При этом это все гоняется не на специализированных чипах Cerebras, а на какой-то обычной стойке из 8 B300. В чем секрет такой выдающей скорости, не раскрывают, утверждают, что все дело в мегаэффективном движке инференса. Правда, по всей видимости основной фактор, определяющий latency, здесь - low-batch serving. И, само собой, удовольствие не дешевое, и чтобы не травмировать психику потенциальных юзеров, цену за мильон токенов не разглашают.

КПД
3 432
Иллюстрация Ping-Pong Scheduling для GEMM. [Блогпост]
Иллюстрация Ping-Pong Scheduling для GEMM. [Блогпост]

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

КПД
3 432
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-исполнение, особенно в сценарии низкой загрузки. На больших батчах оверхеды от перестановок/перегруппировок токенов не так сильно болят.

КПД
3 432
Repost from N/a
Dflash2 тпшнулся и теперь продаёт курсы на скиллбокс?! Да да боже опять дифлеш… лорд Айм уан, лорд айм ту, начинали год как бодрый новичок с плюс минус новым подходом в спекдеке, даже обещали выложить пайплайн обучения, и вот конец года - тяжёлый люкс, эйай блог в тёмных тонах, пишите в Директ скинем модельки 💅 Из изменений: докинули конволюцию (стак мор лейерс) и газанули на дспарк из-за рекуррентности, хотя сами не лучше со своим path finder’ом. Замерились опять на каких то доходягах типа meta muse glimmer это че блеск для глаз, и опять под раздачу попала КраснаяШляпаЭйАй, до отстаньте вы от них да делают средние драфт модели, да за один день, да бесплатно, но издеваться то зачем? это какая то груша для битья на все случаи жизни? если Канье Веста заменят домиником джокером в саже - пойду красной шляпе дизов насую на хф, ну чтобы знали Крч, китайцы срубили бабла, даже им нужен один залетевший рилз, гад блес зем https://inco.ai/blog/dflash2/

КПД
3 432
🛠️ Метод По существу предлагается не так уж много: - 📐 Берем квадратичное разложение. Вместо полного Гессиана (матрицы Фишера) берем диагональ, а ее оцениваем через статистики Адама (которые у нас и так есть). - ⚖️ Диагональ Фишера используем для подбора оптимальных скейлов при заданных квантованных значениях (кодах). Перебирая общий скейл-фактор, находим оптимальные коды. - 🔢 В основном фокусируются на 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ов тема вполне рабочая.

КПД
3 432
QUASAR: Lowering the Loss Floor of Quantization-Aware Training with Loss-Aware Reconstruction 📄 Статья 💻 Кода нет Когда PTQ
QUASAR: Lowering the Loss Floor of Quantization-Aware Training with Loss-Aware Reconstruction 📄 Статья 💻 Кода нет Когда PTQ (Post-Training Quantization) не выдает желаемого качества при целевой степени сжатия или модель нужно адаптировать по ходу дела, неизбежно приходится переходить к QAT (Quantization-Aware Training). Наивный STE (проброс градиента) может работать сносно, но расходится на низких битностях и вообще не очень стабилен. По факту градиент считается не из той точки, где в данный момент находится вес. Кроме того, существующие техники не учитывают кривизну при оптимизации в STE. И данная работа предлагает сравнительно недорогой способ сделать STE точнее и более адаптивным под геометрию.

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

КПД
3 432
Если гора не идет к Магомету, то Магомет идет к горе
Если гора не идет к Магомету, то Магомет идет к горе

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

КПД
3 432
Недавний блогпост от Alex Zhang, навеял мысль, что харнесс можно рассматривать как автокодировщик. Харнесс задает то, как обратывается вход, а также выходное распределение. Он может быть замороженным, а может и оптимизируемым (Darwin Godel Machine, Ouroboros). Harness are AutoEncoders - хорошее название для статейки, чтобы набрать классов в твиттере...

КПД
3 432
📄 Блогпост 🌵 Стартап 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, будучи при этом гораздо меньше.