3.1K subscribers
206 photos
6 files
412 links
Квантование & Прунинг & Дистилляция

Блог про сжатие сетей и не только.
От древнейших времен по настоящее время.
Download Telegram
Self-Supervised Flow Matching for Scalable Multi-Modal Synthesis
[Статья][Блог]

Ранее в работе REPA было показано, что выравнивание внутренних представлений сети с неким внешним энкодером, обученном на большом обьеме данных.

Однако, возникает вопрос - а какой энкодер брать, и как именно выравнивать признаки? Да и как-то оно не из первых принципов.

Ребята из Black Forest Labs предложили Self-Supervision на основе признаков самой диффузионной модели с более низкого уровня шума.
👍4
🔬 Метод

Первое наблюдение, которое делают авторы, что сила энкодера не всегда соответствует качеству генерации. Например, переход от DINOv2 к DINOv3, DINOv2-B к DINOv2-L ухудшает качество, хотя, казалось бы, внешняя модель должна была выучить лучшие репрезентации.

Потому предлагают выравнивать представления от самой модели на разных уровнях шума. Но как это правильно сделать 🤔?

Пробовали некоторые токены полностью зашумлять или зашумлять все независимо. Но это приводит к несовпадению между обучением и инференсом и только просаживает качество.

Вместо этого решили сэмплировать два времени - t и s - независимо, и часть токенов зашумлять на меньший шум, а часть - на больший.

Уже это как-то работает. Но еще лучше, если добавить лосс выравнивания (косинусную близость) между признаками ученика с входом зашумленным с разным силой и учителем (ЕМА ученика), зашумленным на меньший из шумов. Причем выравнивают более ранние (ближе к входу) признаки ученика с признаками учителя.

Итоговый лосс есть сумма flow-matching лосса и лосса выравнивания.

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

Подход валидируют для 3 модальностей - text-2-image, text-2-video, text-2-audio и для мультимодальной генерации.

Для экспериментов на ImageNet берут SiT с SD автоэнкодером в базовой постановке. Self-Flow работает немного лучше, чем REPA и заметно лучше, чем бейзлайн SRA. Self-Flow помогает даже поверх RAE.

На text-2-image генерации Self-Flow тоже лучше SRA. REPA и SigLIP2 не помогают text-2-image генерации.

На видео 📹 генерации Self-Flow снова заметно улучшает метрики. Внешние автоэнкодеры (V-JEPA, DepthAnything) только просаживают качество.

И аналогичная картина наблюдается для аудио 🔉.

Кроме того, учат модель которая одновременно умеет в 3 модальности и video-action модель.

С увеличением размера моделей разница с REPA только растет (судя по CLIP Score).

В ablation показывают, что self-supervised лосс важен для качества. Также важно маскирование, и сэмплирование шагов на широком интервале значений, чтобы модель с высоких шумов могла видеть признаки с низких. Равномерное зашумление лучше логит-нормального.

💡 Выводы

Выглядит как универсальный и при этом достаточно простой рецепт ускорения претрейна для диффузионных моделей. Интересно, использовались ли данные наработки при обучении семейства Flux2, или додумались уже позднее?
👍4
Видать давление со стороны Антропика и Гугла вынудило OpenAI зашевелиться.

Демонструют более эффективный tool use в сравнении с GPT-5.2, за меньшее число вызовов достигают лучшего качества. И якобы качество кодинга при той же latency чуть лучше, чем у специализированной GPT-5.3-Codex.

https://openai.com/index/introducing-gpt-5-4/
👍6
Краткий обзор, посвященный исследованиям влияния температуры 🤒 на качество генераций БЯМ и разным методикам подбора адаптивной температуры.

В частности, рассмотрены разные варианты - обучаемые и entropy-based, с глобальной температурой на последовательность и потокенной.

Одна из эвристик предлагает поднимать температуру, когда модель не уверена в предсказании, и понижать в противном случае.

Существуют также разные опции RL-я и meta-learning для предсказания оптимальной температуры на инференсе. Выученные RL-политики, правда, оказываются похожими на вышеупомянутую эвристику.

Также приводится список работ, где адаптивная температура подбирается для калибровки вероятностного распределения
👍4
Появились слухи, что грядет DeepSeek-V4.

Интересно, почему INT8, а не FP8 или даже NVFP4?)
😁162
Вот и настал тот славный день, когда мой скромный канальчик преодолел отметку в 3️⃣000 подписчиков.

Спасибо 🙏 всем за то, что вы здесь, за ваши комментарии, замечания и реакции.

Надеюсь и дальше продолжать делать обзорчики по квантизации, прунингу, дистилляции и иным ипостасям Efficient DL.
🔥39🎉21👍6
Forwarded from black_samorez
Кернелы претрен NVFP4 B200 скачать бесплатно без смс и регистрации
from quartet2.linear import Quartet_II_linear

linear = Quartet_II_linear(
in_dim,
out_dim,
device="cuda",
)
...
5🔥4
Mamba-3: Improved Sequence Modeling using State Space Principles
[Статья] [Блог] [Код анонсирован, но не добавлен]

Фантастический Три Дао, Альберт Гу и их падаваны из CMU и Принстона тихо, без шума выпустили 3-ую часть саги про Мамбу 🐍.
🔥6
🔬 Метод

Основной целью модификаций в Mamba-2 было повышение эффективности обучения, и для этого, в частности, упростили матрицу перехода состояний.

Однако, ограничение выразительности может ограничивать и достижимое качество.

С другой стороны, на практике не менее важно иметь и эффективный инференс, утилизирующий вычислительные возможности GPU. Как известно, инференс SSM сильно memory-bound - вычисления занимают гораздо меньше времени, чем трансфер памяти. Отсюда возникает мысль увеличить объем вычислений на один шаг, не меняя при этом количество передаваемой памяти.

В Мамбе-3 3 ключевых нововведения:
1️⃣ Более общий и выразительной вид рекурсии (экспоненциально-трапециоидальная схема)
2️⃣ Переход к комплекснозначной SSM при этом без осуществления вычислений в комплексных числах при помощи RoPE-трюка.
3️⃣ Multi-input, multi-output SSM вместо single-input, single-output. Суть в общих чертах, в том, чтобы обрабатывать состояние в несколько параллельных потоков.

Кроме того, модифицировали и сам слой Мамбы - добавили QK-norm, убрали короткую свертку (которая более не помогает, ввиду того, что схема рекурсии эффективно является сверткой). Также для MIMO-варианта добавляются MIMO-проекции.

Для реализацим используется Trtion, TileLang и CuTe DSL.

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

Архитектуру валидируют, обучая модели размера от 180M до 1.5B токенов на Fineweb-Edu.

Mamba 3 стабильно опережает Mamba-2 и Gated Delta Net того же размера. MIMO вариант еще немного подымает качество.

На retrieval задачах (Needle in a Haystack) Mamba-2 сильно страдала с увеличением длины контекста. Mamba-3 страдает меньше и показывает себя лучше чем GDN в среднем.

Prefill/Decode у SISO варианта Mamba-3 такой же по скорости, как у Mamba-2. У MIMO префилл чуть медленее, но декодирование почти не замедляется.

💡 Выводы

Выглядит как нетривиальное развитие направления с SSM, но полезность можно будет оценить только в более боевых и прикладных сетапах. Почти наверняка 3-ую Мамбу мы увидим в гибридных transformer/ssm моделях.
Самое любопытное во всей этой истории то, что вложив много сил в развитие SSM, Tri Dao убивает их, выпуская новые версии Flash Attention.
😁16💯5
TurboQuant: Online Vector Quantization with Near-optimal Distortion Rate
[Статья] [Пост][Неофициальный код под MLX]

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

И команда из Google Research предложила новый метод квантизации с теоретическими гарантиями и применила к задаче сжатия эмбеддингов в KV-кэшей.
👍12
🔬 Метод

Рассматривают 2-возможные постановки задачи оптимальной квантизации:

🔅 MSE - отпимальную, которая ищет лучшее приближение по квадратичной ошибке к заданному вектору
🔅 Inner Product - оптимальную - поиск лучшей квантизации для скалярного произведения пар векторов, где один из них квантизуется.

От второй еще хочется свойства несмещенности - матожидание квантизованного произведения должно быть равно неквантизованному.

Для MSE-оптимизированного TurboQuant вектора поворачивают на случайную ортогональную матрицу (не Адамар), а затем подбирают оптимальную решетку с помощью Max-Lloyd для целевых битностей.

Для Inner Product алгоритм для MSE не годится из-за сдвига матожидания. Вместо этого делают следующее - сначала квантизуют MSE отпимальным квантизатором в битность - 1, а 1-битный остаток квантизуют через Quantized Johnson-Lindenstrauss (QJL).

Суть последнего в следующем:
Поворачиваем на случайную ортогональную матрицу, а затем берем знак. Деквантизация - это обратный поворот и перенормировка.


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

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

Сначала сжимают DBpedia Entities OpenAI3 эмбеддинги. Показывают, что MSE-оптимальный квантизатор имеет смещенную ошибку.

Затем переходят на сжатие KV-кэшей. На Needle-In-A-Haystack при сжатии в 4 бита не просаживаются в качестве, в отличие от бейзлайновых SnapKV, PyramidKV, KIVI (первые 2 подхода про прунинг токенов). На LongBench не просаживаются при 3.5 битной квантизации, и очень умеренно при 2.5 битной.

При 2-х и 4-х битной квантизации по качеству превосходят ProductQuantization и RabitQ, при этом работая гораздо быстрее.

💡 Выводы

Небезынтересная работа с солидной теоретической подоплекой. Однако, к выбору бейзлайнов можно придраться. В плане квантизации KV-кэшей есть более свежие и сильные бейзлайны. В частности, было бы интересно сравнить TurboQuant с квантизацией KV-кэшей
в HIGGS сетку на повернутых Адамаровыми вращениями векторах. И для сжатия эмбеддингов есть, как минимум Аддитивная квантизация и LSQ++.
🔥134👍2
ZOMG TEH DRAMA!

Авторы RabitQ написали гневный пост в x.com (бывшем твиттере) по поводу хайпанувшего TurboQuant.

Суть их претензий в следующем - RabitQ основан на тех же идеях - случайном повороте и теоретической оптимальности, но в TurboQuant об этом никак не упоминает. Кроме того, сравнивается производительность TurboQuant на GPU против single CPU core RabitQ.

Засим они подали публичную претензию в комментарии OpenReview, дабы утрясти возникшее недоразумение.

В комментариях жалуются на, что бигтехи бессовестно пиарят свои наработки, задвигая фундаментальную науку.
👍19🔥7
Gram Newton-Schulz: A Fast, Hardware-Aware Newton-Schulz Algorithm for Muon
[Блог]

Монстрический 👾 Три Дао и его команда нашли очередное место с потенциалом ускорения - оптимизацию оптимизатора Мюона.
🔬 Метод

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

polar(X) = U V^T для X = U S V^T

и подставить его вместо момента.

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

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

В выражения, возникающие в процессе подсчета многочленов в Ньютоне-Шульце, несколько раз возникают матричные произведения с матрицей X, которая может быть сильно вытянутой вдоль одной из размерностей. Гораздо дешевле тогда работать с матрицей Грама X^T X.


В качестве альтернативы оригинальному алгоритму предлагают считать полярное разложение в виде: X (X^T X)^{-1/2}. Матричную степень находят тоже через Ньютон-Шульц, но для матрицы X^T X меньшего размера теперь уже.

Для типичных конфигураций больших трансформеров это дает 55% уменьшений FLOPs против оптимизированных реализаций.

Далее замечают, что при перемножении симметричных матриц достаточно считать половину элементов, а остальные отражать по диагонали.

И все - успех, победа 🍾?

Ан нет. Наивная реализация, описанная выше численно нестабильна и приводит к спайкам в лоссе, инфам и нанам.
Анализируют причины произошедшего и, оказывается, что все дело в численной стабильности. Из-за конечной точности матрица X^T X может оказаться не положительно определенной. Да и собственные значения разъезжаются.

Чтобы это побороть делают алгоритм с рестартами. Это позволяет добиться контролями над собственными значениями. И для подстраховки делят матрицы на 1.02 - 1.05, дабы надежнее попасть в интервал собственных значений [0, 1], чтобы сойтись к оптимуму. Это чуть увеличивает время алгоритма, но стабилизирует его.

Между float16 и bfloat16 большой разницы нет, но авторы рекомендуют первый, как более точный в окрестности нуля.

Под используемые в работе матричные операции с симметричным матрицами пишут и выкладывают свои кернелы в Quack.

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

Учат семейства моделей разной архитектуры - Llama-430M, Qwen-600M, Gemma-1B и кастомный MoE на 2х Шиншилла оптимальном бюджете. Вроде учится стабильно. Кривые лосса сходятся с исходным мюоном.

Ускорение оптимизатора в 1.5-2 раза в сравнении с ванильной торчовой реализацией, и несколько меньше против Мюона со специальными кернелами. Правда, в плане производительности (времени на шаг) все еще далеко до Адама.

💡 Выводы

Солидная инженерная работа с очевидной пользой для сообщества. В текущих воркфлоу шаг оптимизатора обычно не очень дорогой - 5-15% от общей стоимости обучения. Но с переходом на обучение в FP8/NVFP4 - доля времени работы алгоритма повысится. Тем самым ускорение станет более актуальным.
🔥16👍2
Опенсорс исходников claude code это хорошо, но для полного счастья не хватает еще весов.

Глядишь, и конкурентам придется опенсорснуться, чтобы не ударить лицом в грязь.
28🤪5😁1
😁66🥴13🔥8👎1👻1
Announcing 1-bit Bonsai: The First Commercially Viable 1-bit LLMs
[Блог][Гитхаб с демо][Коллекция]

Стартап PrismML анонсировал Bonsai - семейство 1-битных LLM, которые можно запустить на любом чайнике.

Квантизуется все - эмбеддинги, внимание, MLP и lm голова.

По бенчам выдает что-то на уровне Ministral/Olmo 3 7b, при этом будучи заметно меньше по размеру чекпоинта. Дабы продемонстрировать свою мегаэффективность, вводят понятие intelligence density - минус log(ошибка на наборе бенчей) / размер модели в Gb. По этому показателю заметно обходят всех (бейзлайны тоже можно было бы квантизовать).

Это дело можно запустить на iPhone 17, в то время как в half precision 8B модель просто не поместится, и генерить со скоростью 40 токенов в секунду.
Кроме того, оно якобы работает быстрее на RTX 4090 (через llama.cpp) и M4Pro. Энергоэффективность на один токен улучается в 4-5 раз.

Также выпускают 1.7B и 4B версии моделек.

Рецепт обучения, приведший к столь восхитительным результатам, остается за кадром.
6🔥3👍1🥴1
Reasoning Shift: How Context Silently Shortens LLM Reasoning
[Статья]

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

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

Данная работа ищет ответ на следующие вопросы - что происходит с рассуждениями при наличии дополнительного контекста, может ли модель так же хорошо решать поставленную задачу?

Рассматриваются следующие постановки:
🔅 Baseline. Просто исходная задача и вопрос.
🔅 Subtask. Одно пользовательское сообщение и две подзадачи.
🔅 Long input. Много иррелевантного контекста и задача,
🔅 Multi-turn. Многошаговый диалог после которого идет сама задача.

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

Проверяют следующие модели:
🚀 Qwen-3.5-27B
🚀 GPT-OSS-120B
🚀 Gemini 3 Flash Preview
🚀 Kimi K2 Thinking

Для всех не Baseline вариантов наблюдается следующее:
🩳 Длина ответа сокращается
⬇️ Качество несколько проседает

Затем подают в Qwen3.5-27B разное количество токенов иррелевантного контекста и наблюдают монотонную просадку длины генераций. 64к токенов укорачивают ответ вдвое (с 8к до 4к).

Кроме того, пробуют модели семейства Olmo-3:
🔅На Instruct чекпоинте почти не наблюдает описанное явление.
🔅Для Thinking чекпоинтов сокращение длины имеет место.
Для Qwen-3-32B укорачивание генераций тоже гораздо более заметно в reasoning режиме.

💡 Выводы

Данный результат показывает, что рассуждающие модели имеет смысл специальным образом дообучать, чтобы адаптировать к большему объему релевантного или постороннего контекста, который может возникать в агентных сценариях.
🔥62