КПД
前往频道在 Telegram
Квантование & Прунинг & Дистилляция Блог про сжатие сетей и не только. От древнейших времен по настоящее время.
显示更多3 278
订阅者
+424 小时
+287 天
+9830 天
帖子存档
3 278
[11/19] RUN cd flash-attention && python3 -m pip install . --no-build-isolation 31733.0s
Флэш аттентшен долго запрягает, да быстро едет
3 278
Обожаю ревьюить конфы по ML-ю.
Чуваки в одной статье утверждают, что они первые придумали mixed-precision квантизацию 🤣.
А еще хвастаются тем, что с 2.7 бит в среднем на параметр бьют бейзлайны по качеству с 2 битами на параметр.
3 278
19 сентября в Москве пройдет Practical ML Conf - конференция про ML-технологии, с упором на практическое применение, пользу и новизну для научного и инженерного сообщества.
Подать заявку на доклад и выступить можно вплоть до 1 июня 23:59.
В программном комитете состоят многие уважаемые и известные люди из мира отечественного AI.
Так что, если есть что сказать интересного и нового, что бы хотелось показать честной публике - милости просим и будем рады)
PS. За рекламу обещали двойную норму сырков Александрова.
3 278
🔬 Метод
Ключевое наблюдение статьи заключается в следующем:
🎯 Стандартная диффузия делает много шагов интегратора и много раз запускает диффузионную модель
🎯 Дистиллированная диффузия делает мало шагов интегратора и мало раз запускает диффузионную модель
А что если делать много шагов интегратора и мало раз запускать диффузионную модель?Авторы предлагают модифицировать процесс дистилляции так, чтобы модель выдавала некоторую политику (нечто определяющее процесс интегрирования) на всей траектории. Выходы модели необходимо модифицировать так (расширив число выходных каналов), чтобы она выдавала несколько характеристик, соответствующих разному уровня шума, на ODE траектории. Предлагают 2 политики: 📌 DX - политику. Выглядит как просто предсказание скоростей на разных участках траектории. 📌 GMFlow. Сеть предсказывает факторизованную по шагам расшумления смесь Гауссиан, каждая компонента отвечает своей моде расшумления. Процедура обучения напоминает Consistency Distillation: 1️⃣ Сэмплируется начальный шаг зашумления. 2️⃣ Предсказывается политика. 3️⃣ С замороженной политикой (no grad) расшумляют немного. 4️⃣ Предсказывают политику из новой точки. 5️⃣ Считают MSE между ее предсказаниями и предсказаниями из исходной точки. Траектории на обучении можно генерить расшумляя некоторые входные данные, а можно прямо с нуля генерировать. 🧪 Эксперименты Тестируют все это дело на ImageNet и Flux-1 / Qwen-Image. GMFlow работает заметно лучше, чем DX и выдает около SOTA FID при 1- и 2- шаговой генерации. π-Flow дистиллы Flux и Qwen-Image примерно на одном уровне по метрикам (HPS, ClipScore, FID) с другими SOTA дистиллами. Впрочем, без user preference study сложно сделать конкретные выводы. Далее на конкретных картинках показывают, что конкуренты шакалят текстуры, а они нет. Скорость инференса от перехода к многошаговой политике практически не меняется. 💡 Выводы Выглядит как Consistency Distillation на стероидах, и будто бы не хватает сравнения с sCM / rCM. Здесь, правда, не надо париться с JVP.
3 278
pi-Flow: Policy-Based Few-Step Generation via Imitation Distillation
[Статья][Код]
Эту статью я как-то проглядел на ICLR 2026, но, как показали ребята из Kandinsky на датафесте, тема вполне рабочая.
Проблема малошаговых диффузионных дистилляций в том, что они либо теряют качество, либо разнообразие, либо и то, и другое. А хотелось бы, само собой, все это сохранить.
И команда из Standford/Adobe Research предложила очередной способ дистилляции, который, как утверждается, удовлетворяет этих хотелкам.
3 278
И еще из приглянувшегося с Data Fest - это рассказ Льва Новицкого про дистилляцию Kandinsky Video 5.0 в малошаговую генерацию.
Используемый метод представляет собой комбинацию pi-Flow (принято на ICLR 2026, но я как-то проглядел эту работу) и Sim LADD (адверсариальная дистилляция через сэмплирование). Как утверждается, оно не только быстрее, но и лучше по user preference, чем учитель.
Таймлайн рассказа
4:00:27-4:15:33
3 278
🔬 Метод
Первое явление, которое обнаруживают авторы - это смещение внимания от sink токенам к последним по ходу драфтинга (attention drift). Причем оно имеет место как и для EAGLE-3, так и для MTP. Кроме того, sink-like поведение и похожий сдвиг есть даже у моделей, специально заточенных бороться с sink-ами (Qwen3-Next, GPT-OSS).
Чтобы разобраться в причинах возникновения, авторы замеряют нормы входных состояний в драфтер, скрытого состояния и выходов. Обнаруживают, что состояния из более поздних слоев имеют большую норму и могут на себя оттягивать внимание драфтера. Кроме того, нормы состояния драфтера и выходов растут 🔼 с ростом глубины спекуляции. Последний эффект, вероятно, и вызывает перекос attention ибо более высокие нормы ключей/значений перетягивают на себя вероятностную массу.
Отсюда возникает идея заменить pre-norm на post-norm в драфтере, что поддерживать норму состояния примерно постоянной. Данная модификация заметно улучшает принятие с увеличением глубины драфта.
Кроме того пробуют добавить gated attention, чтобы подавить влияние синка. Синк оно подавляет и attention drift, но нормы продолжают расти.
Затем еще показывают, что post норма делает выход гораздо более устойчивым к шуму.
🧪 Эксперименты
Итоговая модификация выглядит следующим образом:
📌 Добавляем RMS норм на входные хиддены таргета
📌 Заменяем pre-norm на post-norm для выходного состояния драфта
Переход на post-norm повышает acceptance rate на 14% в среднем по моделям в ID режиме. Шатания шаблона заметно просаживают принятие у pre-norm, но почти не влияют на post-norm.
Gated attention делает модель более чувствительной к системному промпту, поэтому в итоге не используется.
Далее пробуют решить проблему с обобщаемостью на длинный контекст. Дефолтный EAGLE-3 ломается, acceptance уходит в 0. С post-norm уже заметно лучше, но все еще менее 1 принятого токена. А вот что реально позволяет обобщаться - это переход от полного attention к SWA (внимание только на скользящее окно последних токенов) + BOS (или системный промпт). Таким образом удается поддерживать acceptance length около 3.
💡 Выводы
Как будто несложная, но хорошо мотивированная, подкрепленная анализом модификация EAGLE. Более того, это уже даже выкатили в vLLM под названием EAGLE-3.1 (см. блогпост) и обучили для Kimi K 2.6. Интересно было бы увидеть сравнение с DFlash.
3 278
Attention Drift: What Autoregressive Speculative Decoding Models Learn
[Статья][Код]
EAGLE (в особенности 3-ий) и MTP-головы стали уже довольно стандартными техниками ускорения инференса за счет предсказания нескольких токенов наперед.
Однако, длина принятия не так велика, как бы хотелось. Кроме того, драфтеры оказываются неустойчивы к изменению системного шаблона и длинным контекстам.
В данной работе провели анализ причин проблем драфтеров и предложили некоторые архитектурные улучшения.
3 278
Еще из спекулятивных новостей.
На vLLM появился блогпост про 🦅 EAGLE-3.1.
Авторы заметили, что вход в драфтер несбалансирован, так как более поздние состояния из сети большие по величине доминируют во входе. Кроме того, скрытое состояние драфтера растет по величине в процессе из-за отсутствия нормализаций, что делает спекуляцию нестабильной на больших глубинах драфта.
Потому:
• Накидывают RMS нормализации на скрытые состояния таргета
• Заменяют pre-norm на post-norm для скрытых состояний драфтера
Предложенные модификации якобы делают EAGLE более стабильным к разным данным, шаблонам диалогов и улучшает acceptance.
Но нормальных сравнений с EAGLE 3 нигде не приведено, потому непонятно, насколько оно накидывает.
Они обучили драфтер поверх Kimi-K2.6, который дает ускорение 2x на батче 1, и 1.66 на батче 6.
3 278
К статье выше 👆
На Датафесте в Сбере был очень интересный доклад от Станислава Ильюшина из Хуавея про современное состояние области спекулятивного декодирования, текущие тренды, а также представлен разбор и эксперименты автора с вышеупомянутым DFlash.
Рекомендую всем желающим освежить и углубить знания про спекулятивку!
3 278
🔬 Метод
Ключевой идеей работы является использование представлений более мощной таргет - модели для драфта. А именно, берутся активации с разных слоев таргет-модели, конкатенируются, прогоняются через некий адаптер и подаются через kv-кэш (причем во все блоки).
Все токены (в пределах расшумляемого блока) предсказываются за один проход сети.
Процедура обучения выглядит следующим образом:
📌 Сэмплируются anchor токены начала блока
📌 Первый токен в последовательности - чистый, остальные заменяются на
[MASK]. Это отличается от типичного обучения диффузии, где зашумляются токены на случайных позициях.
Кроме того, утверждается что более ранние токены более важны для генерации, поэтому лосс убывает по экспоненте от начала расшумляемого блока.
Голова и эмбеддинги берутся от таргет-модели.
🧪 Эксперименты
Учат драфт-модели поверх Llama-3.1 Instruct (8B) , Qwen-3 (4B, 8B, Coder-30B-A3B-Instruct). Драфт-модель - диффузионка (той же архитектуры что и базовая модель?) с 5 блоками, 8 для Qwen-3-Coder. Учат драфт на смеси примеров из Nemotron Post-Training Dataset V2 и Code Alpaca.
Замеряют ускорение (качество не надо, ибо lossless) на разных бенчах на математику/код и MTBench. Оно дает ускорение до 6 раз против ~2 раз у EAGLE-3. Acceptance length тоже заметно больше.
На бенчах на ризонинг тоже все хорошо.
Есть и SGLang интеграция, дающая ускорение до 4х раз на батче 1, и до 2 с чем-то раз на батче 32.
В ablation показывают, что выбранный размер драфта более-менее оптимален по скорости / acceptance. Больше фичей от таргета улучшает качество, но повышает расход памяти. Выбранный размер блока расшумления 16 тоже около оптимален.
💡 Выводы
Если все на самом деле так хорошо, то выглядит просто как имба. Надо учить диффузионный драфтер, но это все равно дешево по сравнению с обучением базовой авторегрессии. Команды, выкладывающие новые модели, могли бы выкладывать их вместе с таким драфтером. Оригинальный репозиторий уже содержит большое количество моделей разного размера - вплоть до Kimi K2.6.3 278
DFlash: Block Diffusion for Flash Speculative Decoding
[Статья] [Блог] [Код]
Авторегрессионные модели генерят по одному токену за раз, что медленно, а диффузионные могут за раз выдать много, но не всегда с первого раза хорошо, и на текущий момент все еще нет моделей уровня state-of-the-art AR-ок.
Довольно успешной стратегией по ускорению AR генерации показывает себя спекулятивное декодирование, где маленькая моделька предсказывает несколько токенов наперед. В частности, EAGLE и его версии получили широкое распространение. Однако максимально достижимое ускорение все равно ограничено длиной принятия, и тем что драфт-модель приходится гонять несколько раз авторегрессивно.
Диффузия в качестве драфта предлагает предсказание многих токенов за один проход.
3 278
🔬 Метод
В основе идеи статьи лежит следующее наблюдение - query меняется не очень сильно между соседними токенами, косинусная близость порядка 0.9. Отсюда мысль - давайте будем держать в памяти, то что мы подгрузили на прошлом шаге и менять по мере необходимости.
В качестве кратких summary 📜 по группам токенов, используемых для определения важных токенов на оффлоадинге, берутся ландмарки из QuEST (min-max pooled ключи).
Всегда брать одни и те же ключи и значения, очевидно, плохо, и для каждой головы они следят за изменением query (косинусная близость), и если изменение превышает порог - пересчитывают актуальные ключи и значения. На практике, это надо делать не слишком часто.
Кроме того, подгрузку KV можно перекрыть с вычислениями в attention / mlp, тем самым дополнительно сэкономив время.
🧪 Эксперименты
Предложенный подход валидируют на семействах моделей Llama-3, Qwen-2.5 и дистиллах DeepSeek-R1. Удается достичь качества оффлоадинга, при этом будучи в разы, а то и десяток раз быстрее бейзлайнов. Правда, стоит заметить, что везде инференс поверх HF transformers, так что это гонки на инвалидных колясках.
💡 Выводы
Вроде бы не слишком сложно реализуемый и логичный метод оффлоадинга. Но практическое применение будет упираться в возможность интеграции в эффективные фреймворки инференса vllm / sglang.
3 278
FreeKV: Boosting KV Cache Retrieval for Efficient LLM Inference
[Статья] [Код]
Есть две популярные техники сжатия KV-кэшей (вообще говоря гораздо больше, но далее рассказ затронет только эти две):
💣 KV-Cache Pruning/Eviction - убирающий наименее полезные токены
🦾 KV-Cache Offloading - сгружающий KV-кэш в более медленную, но обьемную память RAM
Первый из них потенциально дает некоторое ускорение, но на практике определять важные/неважные токены сложно, из-за чего имеют место заметные просадки в качестве. Оффлоадинг потенциально сохраняет качество, но замедляет инференс из-за дорогостоящего трансфера данных из CPU RAM в VRAM.
А в идеале хотелось бы чего-то быстрого и сохраняющего качество.
3 278
Некто Niels Rogge с 🤗 просто машина 🦾 по производству ишшуей)
• https://github.com/IST-DASLab/GridGames/issues/1
• https://github.com/chunxiaoxx/nautilus-compass/issues/8
• https://github.com/chuningxdy/Noisy-Quadratic-System/issues/2
3 278
🔬 Метод
Оригинальный DeltaNet делает обновление ранга один, которое в некотором смысле затирает текущую ассоциацию с ключом k_t, и перезаписывает ее с новым value.
S_{t} = (1 - b_t k_t k_t^T) S_{t-1} + \beta_t k_t v_t^T
Gated DeltaNet навешивает еще скалярный forget gate на старое состояние.
S_{t} = \alpha_t (1 - b_t k_t k_t^T) S_{t-1} + \beta_t k_t v_t^T
KDA (Kimi Delta Attention) заменяет скаляр \alpha_t на вектор D_t, так что каждый канал модулируется независимо.
S_{t} = (1 - b_t k_t k_t^T) D_t S_{t-1} + \beta_t k_t v_t^T
В Gated DeltaNet предложили развить идею из KDA и добавить еще две дополнительные векторные модуляции:
S_{t} = (1 - k_t (b_t ⊙ k_t)^T) D_t S_{t-1} + \beta_t k_t (w_t ⊙ v_t)^T
Как и в прошлых версиях DN, GDN работает почанковое обучение, чтобы не взрываться по памяти. Наличие дополнительных гейтов требует некоторой модификации обратного прохода, но не очень сложной.
🧪 Эксперименты
Для Gated DeltaNet-2 и бейзлайнов (Mamba-2, Mamba-3, GDN, KDA, Transformer) учат 1.3B модель 100B токенов (причем Адамом, не Мюоном). На перплексии и бенчах Gated DeltaNet-2 естественно лучше всех.
Гибридный вариант GDN-2 с Sliding Window Attention чуть лучше.
На NIAH (иголка в стоге сена) сырой GDN лучше линейных бейзлайнов, но чуть уступает трансформеру. Гибрид с SWA всех рвет.
По скорости (training throghput) довольно стабильна с длиной контекста. Несколько помедленнее GDN, KDA и Mamba-2, Mamba-3-SISO.
💡 Выводы
Будто бы логичное, но инкрементальное развитие Gated DeltaNet. Сохранится ли значимый прирост от нововведений на масштабе и перевесит ли некоторое замедление обучения 🤔?3 278
Пока все обсуждают новую Гемини Флэш, NVIDIA тихонько выкатили серию диффузионных моделей Nemotron-Labs-Diffusion.
В коллекции 6 чисто языковых моделей - 3B, 8B, 14B LM-ки с алайнментом и их базовые модели, и еще 8B диффузионная VLM.
Модели имеют 3 режима работы:
• Авторегрессионную генерацию
• Диффузионную генерацию
• Спекулятивную генерацию с набрасыванием чернового варианта диффузией и AR самопроверкой
По качеству оно типа немного лучше Qwen-3-8B, но по скорости в самоспекулятивном режиме обходит Qwen3-8B-Eagle3 в 3 раза. Правда вышел уже 3.5 ...
3 278
Repost from N/a
IDLM: Inverse-distilled Diffusion Language Models (ICML 2026, Our recent work)
Paper | Code | Checkpoints
⚡️ Can a language model generate a 1024-token sequence in just 16 forward passes?
That would mean producing 1024/16=64 tokens per forward pass.
For today’s standard language models, this sounds almost impossible. They are autoregressive, meaning they generate text token by token: first token, then the next, then the next…
So generating 1024 tokens usually requires 1024 forward passes.
This is one of the biggest bottlenecks in LLM inference.
A promising alternative is Diffusion Language Models. Instead of generating tokens one by one, they try to generate or refine the whole sequence in parallel, potentially removing the need for strict autoregressive decoding.
In theory, this could make generation much faster.
But in practice, diffusion-based language models often turn out to be slower, not faster, than autoregressive models.
The main challenge is the space dimension.
If we want the model to generate the next 64 tokens at once, it is not enough to predict one token 64 times independently. Ideally, the model should approximate the joint distribution over all possible 64-token continuations.
But the number of such continuations is enormous.
Even for a relatively small vocabulary, like GPT-2’s vocabulary of about ≈60,000 tokens, the number of possible 64-token sequences is:
60,000⁶⁴ ≈ 10³⁰⁶
That is an astronomically large number. We cannot enumerate these possibilities, store them, or explicitly simulate such a distribution.
So the real question becomes:
Can we generate many tokens in parallel while keeping the model’s complexity only linear in sequence length?
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
