КПД
Ir al canal en Telegram
Квантование & Прунинг & Дистилляция Блог про сжатие сетей и не только. От древнейших времен по настоящее время. Группа с комментариями: @quant_prune_distill_comments
Mostrar más3 507
Suscriptores
+124 horas
-17 días
+2330 días
Archivo de publicaciones
3 508
Продолжение истории про Dust
📑 Блогпост
История с DUST вызвала определенный интерес у энтузиастов, которые решились коллективным мозговым штурмом решить главную проблему метода - медленную сходимость измеряюемую по wall-time.
Судя по всему, отпимизации по большей части были обнаружены агентами.
Основные оптимизации следующие:
• Настройка параметров эволюционного поиска
• Использование Адамаровых сдвигов (вектор сдвига - строка Адамаровой матрицы) вместо случайных гауссовых шумов.
• Оптимизации кернелов, CUDA графов и пайплайнинга.
В результате удалось ускорить сходимость на 10М токенах до лосса 4.2 в 4000 раз 😱.
Однако, сравнения с nanogpt спидраном не приводится, там и целевой другой (более низкий).
3 508
Агенты, помимо всего прочего хороего, еще и способствуют здоровому сну.
Раньше сидишь себе, дебажишь до посинения пока не заведется, а теперь поставил на ночь агентский цикл, прилег себе спокойно, и с утра все работает как надо. Ну, если хватит лимитов...
3 508
⚙️ Метод
- 🧩 Модель из себя представляет DFlash, к которому добавили AdaLN на время.
- 🌫️ Зашумляют непосредственно логиты, а не признаки последнего слоя. Так как размерность словаря очень большая, более-менее целевой токен различим лишь вблизи чистого сэмпла. Потому время параметризуют так, чтобы равномерно убирать шум на каждом отрезке. На инференсе сетку тоже подбирают соответствующим образом.
- 🔄 Дистилляция заимствует методику обучения FlowMap без явных приколов.
🧪 Эксперименты
- 🏋️ Учат DFlash спекдек на Qwen3-4B, Qwen3-8B на 500к сэмплах из Open-PerfectBlend.
- ⚖️ Сравниваются с DFlash, EAGLE-3.
- 🚀 По acceptance 1-шаговый FlowMap в среднем чуть лучше просто DFlash, 2-шаговый еще чуть лучше, но по конечному ускорению 1-шаговый FlowMap оказывается выгоднее.
- ⚠️ Однако замеры ускорений для бейзлайного DFlash гораздо слабее, чем в оригинальной статье.
- 🔀 Дабы проверить гипотезу о факторизации, сравнивают длину принятия при исходном и перемешанном шуме. Есть некоторая нетривиальная разница: при одношаговом FlashMap — порядка 0.3, при 2-шаговом — около 0.7 в среднем по задачам, тем самым показывая, что FlashMap чувствителен к порядку.
💡 Выводы
Выучивание совместного распределения через диффузию выглядит разумной стратегией. Однако бейзлайн заведен всрато, и непонятно, переносится ли профит на невсрато заведенный бейзлайн. Да и есть ли выигрыш на практике у 1-шагового FlashMap против DSpark/DFlash2, где форвард самой модели дороже из-за нашлепок, но прирост длины принятия существеннее?
3 508
FlashMap: Flow Map Speculative Decoding
📄 Статья
При спекулятивном декодировании мы хотим за раз предсказать как можно больше токенов драфт-моделью. Однако DFlash по умолчанию предсказывает факторизованное / независимое для каждого токена распределение без специальных архитектурных нашлепок, как в DSpark / DFlash2. А хочется как-то моделировать совместное распределение.
Итеративный диффузионный процесс способен потенциально это сделать, но многошаговый инференс может перекрыть потенциальную выгоду от большей длины принятия. Потому логично задистиллировать это в малошаговую диффузию тем или иным образом.
В данной статье авторы сначала учат непрерывный flow matching для спекдека, а потом дистиллируют его в 1–2-шаговую генерацию через FlowMap.
3 508
Repost from Минималистик🧀
Капец хайпует плесень. Прошло 2 года и ничего не изменилось, Игл по прежнему крутит счётчик своих версий.
Из нового - ничего нового, у авторов кончились гранты (бабки) и закупились инфлюенскрами на всю котлету: будь виральным либо сдохни.
Смотрю и думаю, откуда ускорение, ну че то там че то там, оказывается Игл4 изобрёл динамический спекдек, ну то есть официально, ну наконец то заживем! Один из проплаченных блогов спалил зачем то ацепт 4/12 токенов в дереве, хотя авторы так старались ни слова об этом не писать
Скоро 2027 а типы такие аааа нужно было хардвер авеар делать! За новое Лого осуждаю
3 508
Метод
🔎 Ключевое наблюдение:
🧩 Одно зашумление на всю последовательность очень неэффективно по данным. Давайте задавать специфичный шум для каждого токена последовательности.
🎛️ Добиться этого можно, зашумляя активации вместо весов независимым шумом для каждого токена. Для каждого токена смотрим на изменение лосса (скажем, кросс-энтропии) при зашумлении этим шумом и задаём награду как сумму изменений лосса на текущем токене и всех последующих, причём последующие входят с экспоненциально убывающим дисконтом.
📈 Для каждого токена генерируем несколько шумов, усредняем их и, домножая на шум, получаем некий псевдоградиент по выходным активациям. Внешнее произведение с входной активацией линейного слоя даёт что-то вроде градиента по весу.
🧠 Так это работает для линейных слоёв, но бывают ведь ещё и другие. Для внимания они оптимизируют не end-to-end, а вместо конечного лосса смотрят на отклонение внимания при зашумлении.
⚙️ Чтобы всё это нормально работало, оказывается, важно не зашумлять всё за один проход: иначе шумы с разных слоёв интерферируют друг с другом. Поэтому зашумляют разные группы слоёв по очереди. В случае поблочного зашумления даже достаточно делать блочный форвард, а не прогонять всю модель. Кроме того, во внимании каждую проекцию зашумляют независимо.
Эксперименты
🧪 Валидируют эту конструкцию на обучении 8-слойной GPT-2-like модели на FineWeb с контекстом 2k. В качестве бейзлайнов — EGGROLL и SGD с моментом…
📊 Сходится она куда лучше EGGROLL (текущая SOTA в эволюционных алгоритмах обучения) и, якобы, конкурирует с SGD. Причина лучшей сходимости по данным по сравнению с EGGROLL в том, что на одну последовательность теперь эффективно приходится столько же сэмплов, сколько токенов в ней.
💰 Бюджеты обучения впечатляют: 10–20 млн токенов.
📉 Чем больше популяция K, тем лучше алгоритм сходится и тем больше псевдоградиент похож на истинный градиент.
🔁 А ещё этот псевдоградиент можно поставить вместо градиента в Adam — и алгоритм тоже будет работать.
Выводы
💭 Идейка, безусловно, интересная и заслуживает внимания. Однако до перспектив внедрения в реальное обучение ещё очень далеко, и «убийца бэкпропа» не случился. Нет замеров wall-clock time, а необходимость больших популяций K и ограниченность обучений десятками миллионов токенов (что мало даже по меркам нищебродского рисерча диффузионных LLM) намекают на то, что гонять всю эту приблуду нереально дорого. Но начинание хорошее.
3 508
Dust: Pretraining Transformers Without Backpropagation
📑 Блогпост
На данный момент алгоритмы градиентного спуска с обратным распространением ошибки безраздельно доминируют среди алгоритмов обучения глубоких нейронных сетей.
Было предложено множество разнообразных идей разной степени безумия и абсурдности в качестве альтернатив, не требующих явного подсчёта градиента: эволюционные алгоритмы, Forward-Forward имени Хинтона. Увы, на практике они сходятся из ряда вон медленно, и никто в здравом уме не запустит претрейн БЯМ на них.
В этом же блогпосте ребята предлагают yet another алгоритм оптимизации нулевого порядка, обладающий значительно лучшей сходимостью, чем существовавшие ранее подходы.
3 508
Repost from N/a
Привет! Это Yandex Research, исследовательское подразделение Яндекса в области машинного обучения.
Мы занимаемся фундаментальными исследованиями и работаем совместно с командами, которые решают прикладные задачи. Из этого соседства рождаются совместные проекты, а у теоретических идей появляется путь к практике.
Одни наши работы начинаются с теоретического вопроса, другие — с задачи конкретного сервиса. Результатом может стать научная статья, открытая модель, код или датасет. Иногда исследование становится частью продукта.
Сейчас мы в основном работаем с табличными данными, графовым ML и генеративными моделями, а также над эффективностью и оптимизацией моделей.
В канале будем делиться нашими статьями и препринтами, рассказывать об опенсорсных релизах и текущих исследованиях, публиковать анонсы ридинг-групп и записи встреч.
ml residency · yandex research reading group · diffusion reading group · hardware efficiency reading group · X · сайт
⏩Yandex Research
3 508
LUT3 в NVIDIA Rubin
Блогпост от какого-то челика
Описание хранения в PTX ISA
Последнее поколение GPU от NVIDIA добавило аппаратную поддержку специфичного 3-битного типа данных LUT3.
Данный тип из себя представляет следующее:
• 3-битные значения
• Один скейл на 32 значения как в MXFP (0.25 бита на значения)
• Одна кодовая книга из 8-битных слов в FP8 на 512 весов (0.125 бит на значение)
Итого 3.375 бит, или на 20% меньше MXFP4.
Утверждается, что в таком виде его можно подать тензорным ядрам, и они сами умножат, как надо и довольно быстро.
Выглядит как перспективный вариант сжимать и обучать LLM-ки, с поддежкой батчового инференса.
Однако никаких бенчмарков скорости, времени работы умножения с таким представлением, я нигде не смог найти.
3 508
⚙️ Метод
При низкоранговом сжатии можно пытаться приближать ошибку аппроксимации весов (SVD), учитывать как-то входные активации (ASVD, RRR), но подпространство, важное для L2-веса / слоя, может быть не оптимальным для решения целевой задачи. Были ещё метрики на основе аппроксимаций Фишера (FW-SVD, LLM-Surgeon, GFW-SWD), которые уже более явно учитывают лосс, но это всё ещё прокси.
Кроме того, непонятно, как оптимально выбрать ранг для каждого слоя.
Тут авторы предлагают не пытаться какими-то эвристиками и прокси искать оптимальное разложение, а напрямую учить ортогональную проекцию на нужное подпространство в духе SpinQuant. А конкретно, учат ортогональную матрицу U, для которой проектор — I − U Uᵀ.
Ранг распределяют на основе KL с исходной моделью. Там, где KL больше, там и ранг выделяют побольше. Ранги фиксируются и уже не меняются в процессе.
Чтобы это лучше сходилось и работало:
- 🧩 Инициализируют матрицы так, чтобы минимизировать послойную ошибку.
- 🔥 Проектор разогревают постепенно, чтобы модель не развалилась в начале.
🧪 Эксперименты
Тестируют на OPT (упаси Господь!), Llama-2 и даже Qwen3.
Показывают метрики на бенчах значимо лучше бейзлайнов (а как же?). И вроде при 50–70% сжатии модель даже не в полную труху улетает. Из бейзлайнов не хватает GFW-SWD и Basis Sharing.
Ещё сжатие ViT проверили.
Низкоранговое сжатие даже даёт некоторое ускорение инференса (в Торче?) — до 1,5× при 70% сжатии.
Q, K, V-проекции жмутся гораздо лучше, чем MLP-слои.
📝 Выводы
Математически интересная формулировка и неплохие результаты, но как будто существенное ускорение всё ещё достигается при серьёзных просадках, и вы у себя не будете заводить этот метод.
3 508
🧠 Learning Functional Subspaces for Neural Network Compression
📄 Статья
Вообще говоря, попытки сделать низкоранговое сжатие для LLM практическим — гиблое дело, но бывают более-менее интересные заходы.
Тут предложили очередной заход — учить ортогональные проекции на подпространство, важное для модели, в каждом слое end-to-end, подбирая адаптивно ранги. И среди авторов есть не абы кто, а сам месье Ян ЛеКун.
3 508
I have a Universal Transformer
I have a Universal Attention
I have a Universal Transformer with Universal Attention
3 508
Считаю, статьи без кода, если это только не теор DL или position paper, надо деск реджектить.
Нагаллюцинировать у себя можно сколь угодно хорошие результаты. А без возможности валидации со стороны рецензента, авторов сложно уличить во лжи или подлоге результатов.
Также надо реджектить спекдек с батчом 1 и без vLLM / SGLang интеграции.
И квантизацию OPT-ов и Llama-1/2 в 2026-м году.
3 508
🧩 Метод
DEdit предлагает следующее:
- 🔹 На первом проходе делаем первичное предсказание.
- 🔹 На каждом последующем проходе, обусловливаясь предыдущим, пытаемся его улучшить.
Далее авторы вводят Proposal Mix (что-то наподобие teacher forcing): для high-confidence токенов с последнего предсказания модели подаём ground truth на вход следующему прогону модели, а low-confidence — as is. Утверждается, что это полезно.
Веса для первичного прохода и редактирования одни и те же.
Кроме того, ещё делают расширение окна. Сначала учат на одном, меньшем размере окна, а потом его расширяют (16 → 24 → 32), уменьшая скорость затухания экспоненты в позиционном взвешивании лосса по токенам.
🧪 Эксперименты
Метод валидируют поверх DFlash / DSpark на стандартном наборе бенчей для спекдека.
В своём боевом сетапе используют размер окна 32 и 3 прохода против 16 у бейзлайнов.
Получают acceptance length на 0,5–1 больше, чем у бейзлайнов, и прирост ускорения против ванильной авторегрессионной генерации — 0,3–0,5x. Однако все замеры — для batch_size=1 и, по всей видимости, через ванильный торч, а не vLLM / SGLang-интеграцию.
В ablation показывают, что именно итеративная генерация позволяет эффективно использовать более широкие окна (W=2), а для одношагового прохода окна больше 16 бесполезны. Proposal Mix даёт небольшой прирост длины принятия.
📝 Выводы
Идея итеративного улучшения предсказания моделью выглядит разумной, но непонятно, насколько увеличение стоимости драфтинга за счёт нескольких проходов окупится в сценариях high-concurrency serving на эффективных движках инференса. Кроме того, нет сравнения с опцией просто увеличить драфт-модель до той же стоимости прямого прогона.
3 508
DEdit: Iterative Draft Editing for Speculative Decoding
📄 Статья
Параллельные драфтеры (DFLash и его производные) стали уже общепринятой техникой ускорения инференса авторегрессионных моделей. Но чтобы ускорять дальше, надо как-то повышать длину принятия.
Есть архитектурные примочки (Domino, DSpark, DFlash2), деревья (DDTree), но можно пробовать улучшать качество предсказаний драфта за счёт итеративного улучшения, как в диффузиях.
