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

Авторы валидируют свой подход на больших моделях из семейства OPT (66B, 175B) и Bloom через замеры перплексии на WikiText/C4, и zero-shot бенчмарках из lm-eval-harness. Contextual sparsity в районе 50-60% даже слегка накидывает в качестве, и до 80% не просаживает качестве по сравнению с исходной моделью.

Deja Vu ускоряет генерацию с OPT-175B в 1.8-2x по сравнению с FasterTransformers и 4.8-6x c реализацией трансформера в HuggingFace (сильно неоптимальной) при contextual sparsity 75%

Для Bloom результаты и выводы аналогичные.

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

Deja Vu можно совместить с другими методами сжатия и ускорения, в частности, квантизацией.

Вывод

С одной стороны логичное и в то же время интересное наблюдение. Интуитивно понятно, что все заложенное знание в foundation модель не требуется для конкретного запроса, но вопрос о том, как эффективно извлекать это знание, не перебирая при этом половину книг в эдакой импровизированной библиотеке. Результаты для OPT выглядят весьма впечатляюще, однако отсутствие подобных экспериментов на более современных и эффективных моделях, пресловутой Llama к примеру, вызывает смутные подозрения. По всей видимости, столь высокая разреженность активаций как-то связана с недообученностью и compute-неоптимальностью моделей. Тем не менее, contextual sparsity - перспективное направление для развития эффективных foundation моделей.
1
Exponentially Faster Language Modelling
[Статья][Код]

Только мы на днях разбирали contextual sparsity, как DL сообщество сотрясла статья, реализующая данную концепцию в экстремальном объеме.

Согласно аннотации, вариация BERT, предложенная в статье, которую без лишней скромности нарекли UltraFastBERT, выдает умопомрачительные показатели по эффективности:
⭐️ Прямой проход с использованием всего 0.3% параметров
⭐️️️️️️️ Ускорение в 78 раз по сравнению с оптимизированной реализацией прямого прохода

Ну все, значится. Теперь BERT можно гонять хоть на старой нокии или калькуляторе. AGI в кармане - теперь дело времени. Так ли все замечательно?

Ан нет.

Первый нюанс заключается в том, что оптимизируются только feedforward блоки, а attention блоки остаются без изменения. Авторы мотивируют это тем, что BERT обычно обрабатывает последовательности длины порядка 128, где основные вычисления происходят в feedforward. Это действительно так, тем не менее, attention занимает все равно нетривиальную долю вычислительного бюджета, потому всю модель в десятки раз ускорить не выйдет.
😱3👍2
Теперь про сам метод.

FastFeedForward network, которая предлагается в качестве альтернатива обычной FFN, представляет собой следующее: две матрицы размера 2^D - 1 x H, где D глубина дерева, а H - embedding dim, соответствующие входной и выходной проекции, и функция активации. Вернее даже правильнее будет сказать, что это последовательности матриц размеров 1, 2, … 2^{D-1}, отвечающие разным уровням дерева.

Прямой проход выглядит следующим образом:

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


Асимптотическая сложность алгоритма - O(log N) по промежуточной размерности против O(N) у обычный FFN из двух линейных слоев и активации.

Красиво? Красиво.

Несколько таких деревьев можно прогонять параллельно. Вариации описанной выше архитектуры называют UltraFastBERT-KxD, где K - количество деревьев, а D - глубина дерева. Внутренняя размерность, таким образом, равна K x (2^D - 1). В частном случае K - деревьев глубины 1 имеем привычную архитектуру трансформера.
👍3
Эксперименты

UltraFastBert - бертоподобная модель с 12 блоками с деревьями глубины 11 (т.е 4095 = 2^12 - 1 нейронами в скрытой размерности ffn).

В качестве бейзлайна авторы берут crammedBERT из статьи, где обучили бертоподобную модель на MLM до качества, немного уступающему оригинальному BERT за день на одной GPU. Сравниваются со стандартной версией со скрытой размерностью 3072, и версией, в которой feedforward_dim=4095. Из этой же статьи берут гиперпараметры обучения.

Для валидации замеряют точность на бенчмарках из GLUE.

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

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

Гораздо веселее история с замерами. Свою реализацию FFF авторы сравнивают со своими же самописными реализациями операций для бейзлайновой архитектуры. Сетап сравнения тоже довольно экзотический - батч размера 128 последовательностей длины 128, и в качестве L1 бейзлайна они пробегают циклом по всем строкам матриц и вызывают скалярные произведения. В качестве L2 бейзлайна копируют матрицы весов batch_size раз и запускают batched matvec, что крайне неэффективно по памяти к тому же.

Отсюда и берутся невероятные цифры по ускорению.

Абсолютные цифры по времени инференса в статье тактично опущены.

Вывод

Идея статьи на самом деле не так уж безумна, и если бы существовало железо, способное претворить предложенную идею в жизнь эффективно, то она бы могла найти широкое применение на практике. Однако, у реальных ускорителей есть множество нюансов с доступами к памяти, аппаратной реализацией операций. Если бы авторы честно упомянули все limitations и провели честное сравнение с бейзлайнами, то была бы вполне неплохая статья уровня типичного постера NeurIPS/ICLR, с разумной идеей, но не оставившей большого следа. Но авторы решили сорвать хайп. Геростратова слава, тоже слава. По итоге имеем LK-99 из мира DL.
👍4
PS

Ноутбук от вашего покорного слуги сравнения на Колабской цпушке их FFN с crammedBERT торчовой реализацией. В моих замерах время инференса UltraFastBERT и BaselineBERT на батче размера 1 (практически интересном), совпадает в пределах стандартного отклонения. Точные цифры будут зависеть от железа и версий библиотек, но вряд ли вы где пронаблюдаете ~100 кратное ускорение.

UltraFastBERT: 43.8 +- 8.2 ms
Not UltraFastBERT: 40.5 +- 13.3 ms
🔥61
Adversarial Diffusion Distillation
[Статья][Блог][Код]

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

Ко всей движухе подключились метры из Stability-AI и выкатили SDXL Turbo (при выборе названия явно вдохновлялись OpenAI), генеративную модель достигающую довольно хорошего качества генерации в один или несколько шагов, обученную посредством Adversarial Diffusion Distillation, о котором будет рассказано ниже.

Метод

В настоящий момент, наиболее успешные подходы по одношаговой или малошаговой генерации сводятся к progressive/consistency distillation или старому доброму GAN. И в данной работе авторы по существу совместили дистилляцию и адверсариальное обучение.

За основу берут предобученные SD v2.1 и SDXL.

Дистилляционный лосс представляет собой взвешенный MSE лосс между предсказаниями незашумленной картинки сети-ученика и сети учителя, взвешенный с некоторым коэффициентом, зависящим от шага зашумления (например \alpha_t - весом исходного сигнала в зашумленном сэмпле).

Адверсиальный лосс - hinge loss c R1 gradient penalty для дискриминатора. Утверждается что R1 регуляризация особенное полезна при обучении в высоком разрешении. Дискриминатор инициализируют весами одного из современных feature extractor-ов - DINO v1/v2, CLIP. Дискриминатор обуславливается на текстовый эмбеддинг промпта и картиночной эмбеддинг незашумленной картинки.
🔥2
Эксперименты

Обучают две модели:
1️⃣️️️️️ ADD-M c 860M параметров из Stable Diffusion v1.5 (для честного сравнения с бейзлайнами) / v2.1 (для ablation)
2️⃣️️️️️ADD-XL из SDXL.
Текстовый эмбеддинг для дискриминатора получают из CLIP-ViT-g-14 и картиночный эмбеддинг из DINOv2-ViT-L.

В качестве бейзлайнов выступают прогрессивная дистилляция SD, Latent Consistency Model, InstaFlow, OpenMuse и StyleGAN-T++ (реимплементация StyleGAN-T, достигающая даже более высоких метрик чем модель из исходной статьи и конкурентный GigaGAN). Сравнивают стандартные генеративные метрики - FID/CLIP score и пользовательские предпочтения по качеству изображений и соответствию запросу.

Как нетрудно догадаться, ADD разбивает конкурентные подходы в пух и прах.
Один шаг уже работает хорошо, а 4 шага для SDXL-Turbo бьют даже базовую SDXL с 50 шагами сэмплирования.

Примечателен ablation. Дистилляционный лосс по отдельности работает плохо, лучше всего работает взвешенная комбинация дистилляционного лосса и адверсариального лосса, но что любопытно и адверсариальный лосс по отдельности работает почти так же хорошо. Выбор инициализации для дискриминатора существенно влияет на качество, причем лучше всего себя показывает не самый большой ViT-Small с DINOv2 обучением. Обуславливание генератора немного улучшает качество. ADD-M лучше большей ADD-XL по FID, но хуже по CLIP score. Случайно инициализированный студент не способен обучиться до приемлемого качества. Результат итеративного расшумления сетью-учителем картинки вместо предсказания в один шаг в качестве таргета дистилляции не накидывает.

Вывод

Результаты генераций в 1, 2, 4 шага, вероятно черрипикнутые, выглядят неплохо. Подход сравнительно простой по сравнению с типичными пайплайнами дистилляции, при этом картинки остаются резкими и четкими. Однако за красоту и скорость инференса все же приходится платить определенную цену - снижение разнообразия генераций. По существу имеем некоторый trade-off между GAN и vanilla диффузионной моделью.
🔥2
QUIK: Towards End-to-End 4-Bit Inference on Generative Large Language Models
[Статья] [Код]

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

Метод

В этой статье авторы квантуют и веса, и активации в 4 бита. Для квантования весов используется симметричное квантование GPTQ, а для активаций динамическое (границы квантования определяются по время инференса) по токенам. Как известно, существуют отдельные размерности, где малые изменения значений весов и активаций могут существенно исказить выход. Потому предлагается их хранить в исходной точности. Определять их во время инференса неэффективно, но оказывается, что они находятся на тех же позициях, потому их можно определить заранее.

В этом по существу заключается и основная суть метода. Кроме того, для моделей семейcтва Llama-2 оказывается предпочтительным квантовать Down проекцию в MLP в 8 бит вместо 4-х, так как ее квантование сильно просаживает качество .

Ускорение вычислений достигается за счет того, что матричные операции проводятся в INT4. Название QUIK расшифровывается как QUantization to INT4 with GPU Kernel support.

При числе токенов от 1 до 16 операции матричное перемножение memory-bound, с большим количеством вычисления начинают доминировать.
👍4
Эксперименты

Метод валидируют на моделях семейства OPT, Llama-2 и Falcon. Для оценки качества замеряют перплексию на WikiText2 и точность на zero-shot из lm-eval-harness. Во всех экспериментах берут 256 оутлаеров, примерно 3% измерений для OPT-66B.

QUIK достигает заметно лучшего качества по сравнению с бейзлайнами SmoothQuant, OmniQuant, RPTQ при квантовании в 4 бита. Просадка по качеству значительная, но приемлемая для многих приложений.

Квантование в 8 бит сохраняет исходное качество для всех рассмотренных моделей.

Предложенный метод дает примерно двукратное ускорение по сравнению с fp16 при квантовании в 8 бит, и до 3.4x при квантовании в 4 бита (при 4-кратном теоретическом).

Пиковый расход памяти уменьшается от 2 до 3.5 раз в зависимости от размера модели.

Ablation study показывает, что 256 оутлаеров около оптимально. Квантование Down Proj в 4 бита сильно ухудшает качество, при этом инференс этой группы слоев в 8 битах не слишком сказывается на общем времени работы.

Квантование можно совместить с 2:4 sparsity, но для сохранения качества приходится прунить только attention проекции.

Вывод

Практически полезный технический результат.
👍2
Striped Hyena-7b
[Блог] [Модели (Hessian/Nous)]

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

И команда из Together.AI совместно с HazyResearch выпустили StripedHyena-7B, которая оказывается достойным конкурентом современным LM уровня Llama-2 и Mistral-7b.

Метод

Архитектура модели составлена в основном из эффективных сверточных блоков, умеющих эффективно обрабатывать длинный контекст - FlashFFTConv, и некоторого количества стандартных Attention блоков. Авторы показывают, что смесь attention и conv блоков в соотношении 25:75 достигает наилучшего качества при заданном размере модели и бюджете обучения. Одни лишь сверки без attention работают однако хуже, чем просто attention.

Кроме того, в свертки привносят multi-head из attention и утверждается, что это накидывает (grouped convolution)?

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

Together.AI выпустили две модели - Hessian (базовая модель), и Nous (instruction finetuned). SH-7B опережает Llama-2-7b и слегка уступает Mistral-7b на OpenLLM бенчмарке, Nous версия лучше файнтьюна Llama-2-13b-OpenHermes, но слегка слабее похожего файнтьюна для Мистрали.

На длинных последовательностях (128k токенов) предложенная архитектура в 1.5 раза быстрее, чем оптимизированный трансформер с FlashAttention-2 и Grouped Query Attention. Расход памяти тоже уменьшается до 2 раз на длинном контексте. Кроме того. модель не проседает при увеличении контекста в 2 раза по сравнению с самым большим, увиденным во время обучения (а если в 4/8 раз?).

Вывод

Неплохая попытка скинуть трансформеры с пьедестала больших языковых моделей. Однако наличие некоторой доли attention блоков в конечной архитектуре все же делает пока Multihead Attention незаменимой компонентой в дизайне LLM.
👍2
Mixtral of experts
[Блог]

Прогресс в языковых моделях идет насколько быстро, что ни день, то новая SOTA-lm.

Mistral.AI, которые некоторое время назад выкатили LM Mistral, которая несмотря на скромные размеры опередила более крупные версии Llama-2, теперь выкатили уже смесь экспертов, где поменяли одну букву в названии (Mistral / Mixture).

В модели 45B параметров, и на прямом проходе активируются 2 из 8 экспертов (attention блоки задейсвтуются все). И в итоге для каждого сэмпла задействуются 12B параметров - чуть более одной четверти от общего количества.

Модель обладает следующими фичами:
1) хорошо умеет в 🏴󠁧󠁢󠁥󠁮󠁧󠁿, 🇫🇷, 🇮🇹, 🇩🇪, 🇪🇸 языки.
2) обрабатывает контекст до 32k
3) могет неплохо в код и математику

Слой распределяющий по экспертам (обычная линейная проекция) учится вместе с моделью.

Детали обучения - на каких данных, сколько токенов, неизвестны.

Mixtral 8x7B на бенчмарках в основном бьет Llama-2-70b, GPT-3.5. Хоть и в нынешнее время стоит относиться с некоторой осторожностью к подобным заявлениям, ибо неизвестно, какова вероятность, что данные из бенчмарков, или похожие на них, не попадали в pretrain.

Время инференса у модели, как у Llama-2-13b, при этом перформанс на порядок выше на ряде разных доменов.
И вроде бы меньше подвержена biasам и галлюнам.

Похоже, за смесями экспертов и правда будущее, во всяком случае, настолько насколько это обозримо в мире DL, где революции случаются постоянно.
👍6
Название стартапа, кстати, вдохновлено маркой риса
😁6🥴41
Imagen 2
[Блог]

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

Из блога можно понять (или предположить) следующее:
1️⃣ Использовались более подробные синтетические описания картинок как в DALLE-3.
2️⃣ Черри-пики выглядят вполне фотореалистично
3️⃣ Была обучена aesthetics модель на предпочтениях пользователей, которая была затем использована для conditioning Imagen 2.
4️⃣ Imagen 2 умеет в генерацию а-ля DreamBooth/Textual inversion по нескольким примерам
5️⃣ Imagen 2 умеет в inpainting (модификацию части картинки) и outpainting (продолжение картинки извне).
6️⃣ Imagen 2 идет вместе с SynthID, тулзой для обнаружения NSFW контента и ватермарок

Остальное остается за кадром - латентная ли диффузия или каскадная, информация о архитектуре и обучении.
🔥8
Controlling Text-to-Image Diffusion by Orthogonal Finetuning
[Статья]
[Cтраница проекта]
[Страница документации в PEFT]

Введение

Разнообразные адаптеры и методы PEFT стали общепринятым способом дообучения. Хороший адаптер должен быстро и эффективно обучаться выучивать специфику конкретной задачи, при этом сохраняя накопленное с таким трудом в модели знание.

Пресловутая LoRA обучает добавки низкого ранга к матрицам весов.

В этой статье же предлагается обучать ортогональное преобразование исходной матрицы весов (Orthogonal Finetuning), сохраняя похожесть разных признаков между друг другом.

Метод

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

Конечный адаптер имеет вид W = R W0, где R - обучаемое ортогональное преобразование, а W0 - исходная матрица весов. Такой адаптер сохраняет сущность с устрашающим и внушающим благоговейный трепет названием - гиперсферическую энергию. Однако суть на самом деле проста, и по факту мы хотим сохранить попарные углы между весами матриц.

Но как добиться условия на ортогональность матрицы R? Авторы используют параметризацию Кэли - R = (1 + Q)(1 - Q)^-1 c кососимметричной Q = -Q^T.

Однако в исходной форме метод имеет слишком много обучаемых параметров - O(d^2), примерно столько же, сколько и исходная сеть. Потому предлагается рассматривать блочно-диагональные адаптеры, тем самым снизив сложность до O(d^2/r), r - число блоков. Можно еще сильнее уменьшить число параметров, продублировав адаптер во всех блоках (до O(d^2/r^2)).

В качестве конкретного примера, авторы сравнивают LoRA адаптер ранга 8 и OFT с 8 блоками. В первом случае - 2048 обучаемых параметров, против 960 во втором. Однако, для больших матриц выигрыш будет не пользу OFT, ибо OFT масштабируется квадратично по размерам исходных весов)

Вообще говоря, ортогональное преобразование, может далеко увести от исходных весов, потому авторы предлагают накладывать условие, чтобы выученная матрица не сильно отличалась от единичной. Такая модификация называется COFT (Constrained OFT). Предполагая малое отклонение от единичной матрицы, выполнение данного условия можно достичь с помощью проектированного градиентного спуска. Утверждается, что данная опция обладает большей стабильностью
👍2
Эксперименты

Метод валидируют на DreamBooth и других задачах conditional генерации - на основе keypoints и сегментационных масок.

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

По метрикам качества - похожести DINO эмбедов, соотвествия текстовому и картичному промпту OFT опережает бейзлайны.

В задаче контролируемой генерации лиц по ключевым точкам OFT сходится быстрее чем конкуретные LoRA, Text2Image адаптер и ControlNet, при этом достигая более высокого качества.

Аналогичный результат достигается и для генерации по маскам сегментации.

Вывод

Выглядит как вполне неплохой и разумный адаптер. Основной областью применения скорее всего будут диффузионные модели, тушки из компьютерного зрения и небольшие по современным меркам языковые модели. А вообще интересный вопрос - какой самый эффективный адаптер по числу параметров в зависимости от задачи, и какие исходя из каких соображений следует выбирать тот или иной метод PEFT под конкретное приложение?
👍1
SwitchHead: Accelerating Transformers with Mixture-of-Experts Attention
[Статья] [Код]

Смеси экспертов для MLP блоков были неоднократно с успехом применены в больших языковых моделях (в частности в недавно вышедшей Mixtral, и GPT-4 по слухам тоже ей является). Однако, кроме MLP в трансформере можно добиться ускорения за счет использования за счет части голов в MultiHeadAttention. На больших последовательностях Attention слои требуют много вычислений и памяти, и использование части голов даст некоторую экономию.

Даже если бы статья была анонимной, то по цитированиям Шмидхубера при каждом упоминании Attention, можно было бы угадать одного из авторов)

Метод

Наивный подход был бы следующий - иметь предиктор, который предсказывает скор для каждой головы и берет только с наибольшим скором. Однако, проблема в том, что при авторегрессивной генерации могут активироваться разные эксперты и в итоге придется все равно хранить кэш keys и values на все головы (проблема, правда, нынче лечится MultiQueryAttention).

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

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

Подход валидируют на TransformerXL, который обучают на С4/peS2o 100к шагов. Не самый типичный setting для 2023. Качество замеряют по перплексии на WikiText103, C4, peS2o.

В бейзлайновом трансформере 2 или 10 голов (с одинаковым числом параметров), в предложенном SwitchHead 2 головы с 5 экспертами. Во всех случаях смесь экспертов имеет столько же параметров, сколько и исходная модель. В разных конфигурациях Q, K, V и O проекции могут быть как разбиты на экспертов, так и нет. Перплексия везде примерно +/- одинаковая и будто бы метод не проигрывает сильно в качестве исходному трансформеру с 10 головами (и уверенно опережает двуглавый). Вопрос в том, правда, насколько хорош бейзлайн.

Сравниваются с работой MoA, при том же качестве их подход гораздо экономичнее по памяти, с экономией в ~4-5 раз, в то время, как у MoA выходит ~1.5-3 раза.

Далее, можно сделать MLP тоже экспертами и получить Switch-All модель.
И Switch-All при примерно той же перплексии расходует снова заметно меньше памяти.

Выводы

Специализация attention в трансформере - полезное направление, однако эксперименты выглядят не слишком убедительно. Нет и замеров ускорения, а лишь сравнение MACs между SwitchHead(All) и бейзлайном. Да и в популярном нынче MultiQueryAttention можно было бы активировать часть query проекций и иметь профит в плане памяти и вычислений.
👍7
Не проплаченной рекламы пост)

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

1) gonzo-обзоры ML статей
Классный канал с детальными и подробными разборами, во многом вдохновивший меня на создание собственного канала. Кроме того там публикуются новости из мира AI, математики, философии и всякая сборная солянка.
2) Abstract DL
Короткие разборы и анонсы разных вкусностей из мира CV, NLP.
3) Concise Research
Краткий, но исчерпывающий рисерч в области компьютерного зрения и не только. Если хотите в компактной форме, но при этом в достаточном содержании понять суть статьи - вам сюда.
4) Сиолошная
Новости из мира NLP, где иногда разьясняют всякие прикольные штуки и фишки в современном NLP. Новости из мира AI и еще про космос.
5) Что-то на DL-ском
Классный блог с аннотациями статей по NLP, CV, находками автора и обзором полезных инструментов и хаков.
6) Love, Death, Transformers
Классная подборка всякой всячины из мира AI, от образовательных статей до социальных и житейских моментов. Культура, мемы, веселье.
7) Voronkov_AI_RU_public: ChatGPT, langchain, LLM
Анонсы и новости из мира глубокого обучения и AI. Преимущественно про NLP, но не только. Сборник новостей, образовательных и обучающих материалов с разных источников.
8 ) grokaem себя
Милый и уютный канал, где время от времени появляются хорошие статьи, проясняющие тот или иной концепт из области NLP. Саморазвитие, опросы, разьяснение и разбор распостраненных и не очень ошибок. Классные истории из жизни с счастливым концом.
9) Machine Learning
Краткие анонсы и ссылки на разные новинки в области машинного обучения. Преимущественно прикладного толка и с ориентацией на репозитории, где есть разные красивые демки.
10) Awesome DL
Отличный канал с разборами статей из разных областей DL разной длины, в том числе и с видеоразборами.
11) Kali Novskaya
Преимущественно про NLP, но и не только. Подборка новостей из разных областей. Мемы, культура, искусство.
12) эйай ньюз
Просто самый лучший канал.
12🔥3🥰2👍1
Your Student is Better Than Expected: Adaptive Teacher-Student Collaboration for Text-Conditional Diffusion Models
[Статья]
[Код]

Введение

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

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

И на данном соображении построена рассматриваемая статья.

Метод

В качестве учителя берут предобученную Stable Diffusion (SD v1.5 или SDXL) модель. Ученика инициализируют весами учителя и проводят процедуру Consistency Distillation.

Полученная модель может за малое число шагов (в большинстве экспериментов используют 5) выдавать генерации неплохого качества. Тем не менее, дистиллированная модель все же уступает учителю по оценке разметчиков (50% за учителя против 30% за студента).

Дальнейший анализ весьма примечателен и интересен.

Чем меньше модель—ученик подражает учителю, тем больше доля голосов ассесоров, сделавших выбор в пользу модели-студента. (Примечание: гистограммы отнормированы на суммарное число побед конкретной модели, а не число побед для данного расстояния. То есть 60% побед на правой гистограмме означает, что среди побед студента 60% из них достигаются, когда расстояние между студентом и учителем велико)

Характерно, что модель—ученик отходит от учителя сильнее на более сложных картинках (для оценки сложности картинки используется ICNet модель) и на длинных текстовых промптах. По всей видимости, и то и другое реже встречается в данных, потому у ученика появляется больший простор для фантазии.

Возвращаясь к исходной задаче — как же все таки понять, использовать ли ученика или учителя? И для этого используют ImageReward модель, которая оценивает качество генерации. Если качество генерации выше некоторого порога, то используется генерация студента, иначе прибегаем к помощи учителя. Оптимальный порог оценивается по валидационной выборке как некоторый квантиль ImageReward для учителя. корреляция с человеческими предпочтениями не идеальная — около 60%, но лучшего результата текущие методы оценки качества изображений пока не могут достичь.

Предлагается два варианта использования учителя:
1️⃣️️️️️ Regeneration (генерация с нуля)
2️⃣️️️️️ Refinement (неполное зашумление результата ученика с последующим расшумлением)
🔥3
Результаты

В первой серии экспериментов используют SDv1.5 в качестве ученика—учителя.
Consistency дистилляция проводится на 80M подвыборке LAION-2B.

Сравнивают модели на промтах из LAION-Aesthetics и COCO2014-Сaptions.

Тандем ученик—учитель с 10 шагами генерации в среднем примерно равен DPM и DDIM с 25 шагами и 50 шагами генерации учителя, соответственно. При 15 шагах даже чуть лучше. При сравнении использовался Refinement подход.
Адаптивный подход лучше, чем просто Refinement.

Что касается автоматических метрик, Refinement и Regeneration имеют примерно одинаковый image reward, Regeneration лучший CLIP (alignment с текстом), а Refinement лучший FID (мера соответствия распределению реальных картинок).

Тандем ученик—учитель поверх SDXL сравнивается с SDXL c 50 шагами солвера и опережает SDXL-turbo.

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

Кроме того метод неплохо сохраняет разнообразие генераций учителя и хорошо себя показывает в text-guided image editing и контролируемой генерации.

Выводы

Красивая идея и результаты, подкрепленные занимательным анализом. Использование нескольких моделей для решения конкретной задачи выглядит действительно сильным подходом, уже неоднократно возникавшим в литературе . Основная сложность именно в том, как оптимально выбрать ту или иную модель и сколько моделей и какие мы можем позволить держать в памяти и применять.
Denoising Diffusion Bridge Models
[Статья][Кода нет, и не обещают]

Введение

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

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

И в данной статье предлагают ответ на данный вопрос.

Метод

Сам подход основан на стандартной теории диффузионных процессов. Однако берется специфичная форма процесса, такая, что удовлетворяет заданным граничным условиям на обоих концах (то что и хочется для задач перехода из одного распределения в другое). В литературе такой процесс известен как Doob h-преобразование. При заданной начальной точке он называется диффузионным мостом.

Далее авторы предлагают формулировку такого процесса для Variance Preserving (с постоянной дисперсией) и Variance Exploding (с растущей дисперсией) расписания шума.

Предложенный подход обобщает генерацию из шума в целевое распределение и OT-Flow-Matching / Rectified Flow.

Результаты

Метод проверяют на задачах image2image - edges2handbags и DIODE-256×256 (как я понял, это не про электронику, а генерацию сцены по маске сегментации) и unconditional генерации.

Предложенный подход заметно опережает GAN-based Pix2Pix и подходы, основанные на диффузионных моделях и работу I^2SB, использующую мосты Шредингера, по метрикам FID и LPIPS.

Unconditional генерация из шума тоже работает весьма достойно на CIFAR и FFHQ, выдавая качество сравнимое с EDM при том же количестве шагов генерации.

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

Вывод

Интересный и разумный подход, адаптирующий имеющуюся диффузионые техники на задачи перехода из одного распределения в другое. Было бы интересно провалидировать подход на большем масштабе и более сложных задачах (с широким распределением данных и высоким разрешением изображений).
2
2025/08/27 16:57:51
Back to Top
HTML Embed Code: