Telegram Web
Дорогой коллега и товарищ @snk4tr (по совместимости автор канала @c_research) выкатил на Хабр блогпост От каскадных моделей до картинок в 4к: как эволюционировали диффузионки.

Рекомендую всем желающим как-то осмыслить или переварить происходщее в мире диффузионных моделей, а также проследить за прогрессом и трендами в области.

Приятного чтения!
Do Large Language Model
Benchmarks Test Reliability?

[Статья][Блогпост][Код]

Новые SOTA LLMки выходят нынче, как собаки нерезанные, и тем острее встает ребром вопрос о качестве их оценки.

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

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

Ни одна модель не является безупречной, и даже SOTA LLM допускают осечки в простых случаях
Бенчи не без греха. В популярном GSM8k 5% условий и решений содержат проблемы.
У разных моделей разные достоинства. o1-mini лучше всех из списка в плане общего решения математических задач, но Sonnet понимает текст (reading comprehension).

Далее в блоге авторы приводят примеры забагованных задач:
🎯 С неправильным ответом
🎯 С ошибками и неоднозначностью в условии
🎯 Где забыли условие задачи

Кроме того, на днях те же авторы опубликовали почищенный тест-сет GSM8k под названием GSM8K-Platinum, и показали,, что ведущие LLM допускают на нем гораздо меньше ошибок по сравнению с оригинальной версией от OpenAI.

Мораль проста - ежели у вас есть штангенциркуль, смотрите, чтобы у него не поехала шкала.

У проекта есть классный 🥰 дашборд с визуализациями ошибок моделей.
У LiveCodeBench есть очень занятный spaces 🪐, где можно посмотреть на:

🌟 Условия задач
🌟 Долю ошибок моделей из лидерборда на данной задаче
🌟 Решения задач, полученные разными моделями

Задачи делятся на легкие, средние и сложные.

Легкие ожидаемо решаются более-менее всеми, а вот те, что потяжелее только ризонерами и Claude 3.5 (3.7/o3-mini пока нет в лидерборде). Некоторые задачи (из раздела arc) не решаются пока ни одной моделью из представленных.
Какой-то кореец (🇰🇷/🇰🇵?) бегает по репозиториям разных проектов про квантизацию LLMок с однотипными жалобами:

- no run (QuEST)
- how to run it (QTIP)
- not run (GreenBitAI)

Интересно, это реальный человек загорелся желанием все потыкать? Или LLMка, которая начала подозревать, что ее сжимают и ходит неприкаянная по гитхабу в поисках лечения.
Развлечения ради квантанул свежевышедшую gemma-3-27b-it через GPTQ (генно-модицированной версией с парой примбамбасов).

Картиночную SigLIPовскую тушку не трогал, она все равно маленькая.

Евалы на бенчах надеюсь добавить позднее, но вроде отвечает связно на паре VLM примерчиков.

[Карточка модели на лицехватс]

UPD 20.03.25

Метрики на OpenLLM Leaderboard v1 добавил.
Маленький коммит для человека, огромный скачок для человечества

Я контрибутор Мистраля!
Is Noise Conditioning Necessary for Denoising Generative Models?
[Статья][Нет Кода, но можно попросить Sonnet 3.7 написать]

Введение

В диффузионных моделях, как в классической DDPM постановке, так и популярном нынче Flow Matching, генерация осуществляется путем итеративного перевода некоторого случайного шума в сэмпл из распределения реальных данных.

Кроме самого зашумленного сэмпла на вход генеративной модели обычно подается скаляр - сила наложенного шума, который отображается в некоторый многомерный вектор, модулирующий тем или иным образом (обычно scale-shift) карты активации внутри.

Данное архитектурное решение как-то устаканилось, и народ как-то особо не задумывался о его необходимости. А авторы из MIT (среди которых автор Резнета 😱) сегодняшней статьи задумались и попробовали убрать обусловливание на шум.
Метод

Мотивация следующая - есть сети-денойзеры (в контексте Image Restoration), которые получают шум на инференсе различной, неизвестной заранее, силы, и вполне успешно работают. Следовательно. и в диффузионной постановке сеть потенциально должна уметь на основе самого шума оценивать его величину.

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

Ниже приводятся некоторые оценки на ошибку между солвером без и с обусловливанием, и типа расхождение не очень велико.

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

Сравнивают диффузионки без и с обусловливанием на время в следующих постановках:

Диффузионный процесс:
💥 DDPM
💥 EDM
💥 Flow Matching
💥 uEDM (предложенная модификация EDM без обусловливания на время)

Датасеты:
🛩 CIFAR10
🧔 FFHQ

Качество оценивают по FID (FIDары). Модели учат с одинаковым протоколом обучения для возможности честного сравнения.

В большинстве случаев просадка от исчезновения условия на время не очень велика (за исключением DDIM c детерминистическим сэмплером, где сильно ухудшился FID). Для Flow Matching даже наблюдается некоторое улучшение 🤔. Данное явление авторы объясняют. тем что с одной стороны сама процедура обучения немного другая - оценка flow field между распределениями, и таргет: x0 - шум не содержит в себе времени.

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

Выводы

Если рассматривать работу диффузионной модели как multi task, где каждая задача - расшумление при заданном уровне шума, то при стандартном подходе, у нас есть некоторая общая база и небольшое число параметров, специфичных для данного шага. С одной стороны, можно увеличить специализацию как в eDiff и иметь отдельные сети на каждый отрезок. Здесь же, наоборот, по сути предлагают иметь полностью идентичную модель на все уровни шума. Практическая польза как будто может быть при flow-matching постановке, но непонятно, насколько выигрыш переносится на большой сетап.
Scale-wise Distillation of Diffusion Models
[Статья] [Демка] [Код soon]

Введение

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

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

Отсюда мысль 🤔 - а что если ускорить генерацию за счет удешевления шагов сэмплирования?

Мы с коллегами из Yandex Research предложили метод дистилляции в несколько-шаговую генерацию, где разрешение изображения увеличивается постепенно, на каждом шаге генерации (SwD). За счет этого удается достичь более чем 2х кратного ускорения по сравнению с эквивалентной дистилляцией в фиксированном разрешении.
Метод

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

Можно попробовать генерировать сначала в низком разрешении, а потом постепенно повышать интерполяцией. Но как 🤔?

Исходная модель может быть не адаптирована под малогашовую генерацию (SDXL в 256x256 выдает безумный поп-арт на любой запрос), да и процедура интерполяции зашумленного латента плохо определена. Наивный upsampling латентов приводит к сильные дефектам. Несколько лучше работает upsampling x0 оценки из предсказанного латента с последующим зашумлением назад, но все равно не здорово.

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

В качестве основы для процедуры дистилляции берется DMD2 как все еще state-of-the-art метод дистилляции. Дополнительно к нему навешивается предложенный Patch Distribution Matching (PDM) лосс, который стремится уравнять прогнанные через исходную диффузионную модель генерации модели-учителя и студента на уровне отдельных токенов.

Итоговый лосс содержит в себе:
🎯обратную KL-дивергенцию
🎯GAN лосс
🎯PDM лосс

В качестве данных для обучения используется синтетика, сгенерированная моделью-учителем (примерно 500к сэмплов).
Эксперименты

Предложенный метод дистилляции валидируется на моделях семейства SD3.5 - Medium и Large. Для оценки качества смотрим как на классические метрики FID/CLIP/ImageReward/PickScore на COCO/MJHQ-30k, так и пользовательские предпочтения.

Процедура обучения длится примерно 5к итераций (все на одной A100 ноде). Для малошагового генератора и fake модели из DMD2 обучаем LoRA адаптеры (т.е PEFTа вполне достаточно).

Для 4-шагового сэмплирования используется следующая последовательность разрешений: [256, 384, 512, 640, 768, 1024]
Для 6-шагового сэмплирования используется следующая последовательность разрешений: [256, 512, 768, 1024]

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

Scale-wise диффузия практически не просаживается по качеству по сравнению с генерацией в фиксированном (конечном) разрешении. При этом при фиксированном бюджете генерации Scale-wise строго лучше (4-шаговая Scale-Wise против 2-шаговой Full-scale).

По большинству метрик SwD не проседает по сравнению с исходной моделью, за исключением FID (за счет потери разнообразия). По user-preference паритет по релевантности / дефектам, и некоторое даже улучшение по эстетике/комплексности. В том числе и бьем Switti (нашу прошлую работу про Scale-wise авторегрессию).

SwD позволяет выдавать почти 6 картинок в секунду для SD3.5-Medium и 2.5 для SD3.5-Large (при генерации с батчом 8).

В ablation показываем, что компоненты метода важны:
⚡️Обучение на синтетике
⚡️Правильно подобранное расписание шума
⚡️Адаптация модели под каждый скейл
⚡️PDM лосс очень важен
⚡️Замена L2 лосса на более сложный kernel (RBF) между признаками учителя и студента не дает улучшений.

Вывод

Scale-wise подход генерации изображений кажется эффективной и хорошо мотивированной идеей в генеративных задачах. От грубых простых деталей постепенно переходим к сложному. Ранее такая идея была воплощена в контексте Progressive GAN , VAR, каскадных диффузий. Латентную диффузию, как оказывается, можно достаточно быстро перевести в режим генерации от мала до велика. Альтернативный подход с использованием крупных патчей в DiT на первых шагах был предложен командой из Meta (с небезызвестным Артемом из эйай ньюз).
Обновление DeepSeek-V3 вышло - deepseek-ai/DeepSeek-V3-0324

И это примерно пока все, что известно...

UPD. есть метрики. И прирост вполне существенный.
Инструкции в мемах для рецензентов на Peer Reviewed конференциях.

Интересно, если подать данную страничку VLMке перед прочтением рецензий, то их качество на NeurIPS/ICML/ICLR возрастет?

А заодно можно еще и вкорячить в картинки Black-Box адверсариальную атаку)
Overtrained Language Models Are Harder to Fine-Tune
[Статья] [Где код, Билли?]

Введение

Во многом успех современного глубокого обучения обусловлен масштабированием моделей и времени обучения. Стандартный пайплайн обучения включает в себя предобучение на большом объеме данных с последующим дообучением на куда меньшем количестве примеров высокого качества.

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

Однако группа исследователей (часть из них ранее засветилась в Scaling Laws for Precision) обнаружила, что начиная с какого-то момента чекпоинты OLMo начинают проседать по качеству при файтьюнинге, решила поглубже исследовать данный вопрос и найти какое-то объяснение явлению “перетренированности” 💪.
Метод и эксперименты

Напомню, что OLMo - это полностью открытый проект по обучению больших языковых моделей с открытым исходным кодом и выложенными промежуточными чекпоинтами.

Давным-давно в одной далекой Галактике было показано что при фиксированном количестве FLOPs на обучение оптимальное качество достигается при отношении количества токенов (D) к параметрам модели (N) около 20. Но жирные модельки потом дорого гонять на железе, потому обыкновенно выходят далеко за данное отношение и качество все равно монотонно растет, хоть и не так быстро, как при отпимальном скейлинге. В частности, для Llama-3 отношение D/N = 2000.

Авторы взяли веса моделей (OLMo-1B, OLMo-2-7B, LLM360-Amber) с разных шагов обучения и обнаружили, что начиная с какого-то момента качество на некоторых задачах (AlpacaEval, ARC (не AGI), PiQA) при дообучении начинает убывать. При этом качество базовой модели непрерывно растет. Для 7B модели при этом такого явления не наблюдается, так как модель, по всей видимости еще не успела перейти в режим “перетренированности”.

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

Дабы проверить данную гипотезу, авторы обучают на корпусе С4 модели от 15M до 90M параметров (с подвыборками размером от 4B до 128B токенов).

Сначала авторы исследуют зависимость лосса модели от времени обучения при фиксированной величине пертурбаций параметров гауссовым шумом. Первоначально, лосс модели не сильно меняется даже при большой величине шума. Но начиная с какого-то момента при сильном зашумлении лосс “зашумленной” модели начинает возрастать, несмотря на то, что качество исходной модели монотонно улучшается. То есть просадка модели, вызванная шумом, растет быстрее, чем улучшается модель.

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

Далее авторы пробуют уменьшать шаг обучения, чтобы учесть большую чувствительность параметров модели, и это помогает на ID (in domain) задачах, но качество на OOD (out of domain) все равно может ухудшаться при дальнейшем обучении.

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

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

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

Вывод

Довольно любопытное и интересное наблюдение. Для полноценной валидации требуется репродукция другими командами ибо результат может быть обусловлен такими нюансами как детали оптимизации, архитектуры, mixed-precision настроек и выбора данных. Потенциально еще причина может быть в специфике оптимизации Adam-oм или стремлении модели неограниченно наращивать логиты вероятностей для оптимизации кросс-энтропии. Использование другого оптимизатора или регуляризации (например, SAM) вероятно способно предотвратить проблему. Было бы интересно еще проверить имеет ли место эффект в других задачах: т.е будет ли ухудшаться качество vision foundation моделей (CLIP/SigLIP) на downstream при очень продолжительном обучении?
Please open Telegram to view this post
VIEW IN TELEGRAM
Qwerky-72B and 32B : Training large attention free models, with only 8 GPU's
[Блог Пост]

‼️ Attention is NOT all you need ‼️

Убийца трансформеров, новая ступень эволюции архитектур 🤩!

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

Процедура следующая:

🤩 Берете трансформер
🤩 Заменяете Attention на RWKV

1️⃣ Сначала пытаетесь добиться того, чтобы блок RWKV воспроизвел выход исходного трансформерного
2️⃣ Потом дистиллируете логиты исходной модели (обучая только RWKV)
3️⃣ Потом еще раз дистиллируете (разморозив все)
4️⃣ Дообучаете на более длинном контексте

Бюджет дистилляции - всего-то несколько сот лямов токенов.

Таким образом получаются:
- Qwerky-QwQ из Qwen/QwQ
- Qwerky-72B Qwen/Qwen-2.5-72B-Instruct


На некоторых бенчах сохраняют качество, где-то теряют до 5%. Но хоть как-то работает, и ладно. И даже, как заявляется, опережает не абы что, а GPT-3.5 turbo без единого Attention слоя.

8 GPU это не A100/H100, как вы могли подумать, а амудшные карточки с 192Gb VRAM.
В ожидании аппрува на веса Llama 4
Кстати, с квантизацией Llama 4 в оригинальной репе какой-то наеб.

Скрипт квантизации quantize.py ссылается на несуществующий quantize_impls.

Правда, учитывая, что это RTN квантизация, которая раскоает модель в негодность в 4-х битах, да и вроде обещают QAT модельки, может и пох.
tg_image_3614481505.png
33.7 KB
Сук

Даже VPN не помог(

И указание другой страны
2025/05/19 11:16:16
Back to Top
HTML Embed Code: