LoRA vs Full Fine-Tuning: an illusion of equivalence #paper
Статья трёхнедельной давности, в которой обсуждается разницу между fine-tuning с помощью LoRA и full fine-tuning (FFT). Авторы задаются вопросом: являются ли решения полученные с помощью LoRA и FFT одинаковыми, при условии, что показывают схожее качество. Выясняется, что не всё так просто.
Оказывается, что LoRA и FFT выдают разные на структурном уровне решения, в частности внутри весов LoRA возникают intruder dimensions — сингулярные векторы при больших сингулярных числах, которые примерно ортогональны сингулярным векторам весов оригинальной модели, что приводит к затиранию информации содержащейся в изначальных весах. Это выполняется даже в тех случаях, когда обученные с помощью LoRA модели показывают хорошее (сопоставимое) качество с FFT на downstream task. Наконец, чем выше ранг LoRA, тем меньше возникает проблем описанных выше.
Проблему intruder dimensions авторы связывают с использованием матриц низкого ранга. Для того чтобы бороться с ней предлагается использовать технику rank-stabilization (домножать результат произведения матриц LoRA на γ = α / rank ** 0.5) вместе с увеличением ранга обучаемой LoRA, либо использовать FFT. Для первого случая авторы советуют использовать α = 2 * rank.
📜Paper
@gentech_lab
Статья трёхнедельной давности, в которой обсуждается разницу между fine-tuning с помощью LoRA и full fine-tuning (FFT). Авторы задаются вопросом: являются ли решения полученные с помощью LoRA и FFT одинаковыми, при условии, что показывают схожее качество. Выясняется, что не всё так просто.
Оказывается, что LoRA и FFT выдают разные на структурном уровне решения, в частности внутри весов LoRA возникают intruder dimensions — сингулярные векторы при больших сингулярных числах, которые примерно ортогональны сингулярным векторам весов оригинальной модели, что приводит к затиранию информации содержащейся в изначальных весах. Это выполняется даже в тех случаях, когда обученные с помощью LoRA модели показывают хорошее (сопоставимое) качество с FFT на downstream task. Наконец, чем выше ранг LoRA, тем меньше возникает проблем описанных выше.
Проблему intruder dimensions авторы связывают с использованием матриц низкого ранга. Для того чтобы бороться с ней предлагается использовать технику rank-stabilization (домножать результат произведения матриц LoRA на γ = α / rank ** 0.5) вместе с увеличением ранга обучаемой LoRA, либо использовать FFT. Для первого случая авторы советуют использовать α = 2 * rank.
📜Paper
@gentech_lab
Sapiens: A Family of Human-Centric Vision Models #pose_estimation #depth_estimation #paper
Статья (август 2024, ECCV 2024) от Meta представляет семейство моделей Sapiens для четырех основных задач компьютерного зрения, связанных с анализом людей: оценка позы человека (2D pose estimation), сегментация частей тела (body-part segmentation), оценка глубины (depth estimation) и предсказание нормалей поверхности (surface normal prediction).
В основе архитектуры лежит Vision Transformer, предобученный на специально собранном датасете Humans-300M, содержащем 300 миллионов изображений людей. Семейство включает четыре модели разного размера: от Sapiens-0.3B (336M параметров, 1.242T FLOPS) до Sapiens-2B (2.163B параметров, 8.709T FLOPS). Предобучение выполняется с помощью подхода masked autoencoder (MAE) на изображениях размером 1024x1024 с размером патча 16x16, при этом маскируется 75-95% патчей.
Для каждой из задач авторы используют специфичную архитектуру декодера. В задаче pose estimation применяется top-down подход, где сначала выполняется детекция человека, а затем оценка позы через предсказание heatmap с использованием Mean Squared Error loss. Модель работает с расширенным набором из 308 ключевых точек, включая 243 точки для лица и 40 для рук, на изображениях с аспектом 4:3 (1024x768). В задаче сегментации модель работает с 28 классами частей тела, используя Weighted Cross Entropy loss и легкий декодер с deconvolution слоями. Для depth estimation используется единый канал на выходе для регрессии с нормализацией глубины в диапазон [0,1] и специальным loss с учетом логарифмической разницы. В задаче normal estimation модель предсказывает xyz компоненты нормали через 3 выходных канала, используя комбинацию L1 loss и косинусной близости между предсказанными и ground truth нормалями.
Предобучение заняло 18 дней на 1024 GPU A100, а результаты превзошли SOTA во всех задачах: в pose estimation на 7.6 AP, в сегментации на 17.1 mIoU, в depth estimation на 22.4% RMSE и в normal estimation на 53.5%.
Ключевой вывод работы заключается в том, что специализированное предобучение на человеческих данных и использование высокого разрешения дают значительный прирост качества даже при использовании относительно простой архитектуры encoder-decoder. При этом модели демонстрируют хорошее обобщение на "дикие" данные, несмотря на обучение преимущественно на студийных и синтетических датасетах.
🔥Project
💻 Github
📜Paper
@gentech_lab
Статья (август 2024, ECCV 2024) от Meta представляет семейство моделей Sapiens для четырех основных задач компьютерного зрения, связанных с анализом людей: оценка позы человека (2D pose estimation), сегментация частей тела (body-part segmentation), оценка глубины (depth estimation) и предсказание нормалей поверхности (surface normal prediction).
В основе архитектуры лежит Vision Transformer, предобученный на специально собранном датасете Humans-300M, содержащем 300 миллионов изображений людей. Семейство включает четыре модели разного размера: от Sapiens-0.3B (336M параметров, 1.242T FLOPS) до Sapiens-2B (2.163B параметров, 8.709T FLOPS). Предобучение выполняется с помощью подхода masked autoencoder (MAE) на изображениях размером 1024x1024 с размером патча 16x16, при этом маскируется 75-95% патчей.
Для каждой из задач авторы используют специфичную архитектуру декодера. В задаче pose estimation применяется top-down подход, где сначала выполняется детекция человека, а затем оценка позы через предсказание heatmap с использованием Mean Squared Error loss. Модель работает с расширенным набором из 308 ключевых точек, включая 243 точки для лица и 40 для рук, на изображениях с аспектом 4:3 (1024x768). В задаче сегментации модель работает с 28 классами частей тела, используя Weighted Cross Entropy loss и легкий декодер с deconvolution слоями. Для depth estimation используется единый канал на выходе для регрессии с нормализацией глубины в диапазон [0,1] и специальным loss с учетом логарифмической разницы. В задаче normal estimation модель предсказывает xyz компоненты нормали через 3 выходных канала, используя комбинацию L1 loss и косинусной близости между предсказанными и ground truth нормалями.
Предобучение заняло 18 дней на 1024 GPU A100, а результаты превзошли SOTA во всех задачах: в pose estimation на 7.6 AP, в сегментации на 17.1 mIoU, в depth estimation на 22.4% RMSE и в normal estimation на 53.5%.
Ключевой вывод работы заключается в том, что специализированное предобучение на человеческих данных и использование высокого разрешения дают значительный прирост качества даже при использовании относительно простой архитектуры encoder-decoder. При этом модели демонстрируют хорошее обобщение на "дикие" данные, несмотря на обучение преимущественно на студийных и синтетических датасетах.
🔥Project
📜Paper
@gentech_lab
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
DEADiff: An Efficient Stylization Diffusion Model with Disentangled Representations #style_transfer #paper
Статья (март 2024) про стилизацию картинок в задачах text-2-image и image-2-image.
Основано на модели Stable Diffusion v1.5, работает в режиме инференса, обучение не требуется.
Используется дополнительный адаптер (Q-former), который принимает на вход CLIP-эмбединг исходной картинки, обучаемый массив токенов, и текст "Style"/"Content" (в зависимости от задачи). Полученные эмбединги направляются (через cross-attention) в разные блоки U-net (контент — в узкую часть, стиль — в части с высоким разрешением).
Для обучения использовался закрытый датасет (сгенерированный через Midjourney на специально подготовленных текстовых промптах). Q-former обучается в нескольких режимах: "только стиль", "только контент", и специальный режим реконструкции исходной картинки, когда она же сама подается и в качестве стиля, и в качестве объекта.
Сделана дополнительная оптимизация вычислений: 2 отдельных слоя cross-attention объединены в один слой, который обрабатывает за один проход сконкатенированные эмбединги картинки и текста.
Возможна комбинация с любыми вариантами ControlNet (для версии SD v1.5), например, с картами глубины, Возможно смешивание разных стилей путем простого сложения их эмбедингов.
🤗 HF
🔥Project Page
💻 Github
📜Paper
@gentech_lab
Статья (март 2024) про стилизацию картинок в задачах text-2-image и image-2-image.
Основано на модели Stable Diffusion v1.5, работает в режиме инференса, обучение не требуется.
Используется дополнительный адаптер (Q-former), который принимает на вход CLIP-эмбединг исходной картинки, обучаемый массив токенов, и текст "Style"/"Content" (в зависимости от задачи). Полученные эмбединги направляются (через cross-attention) в разные блоки U-net (контент — в узкую часть, стиль — в части с высоким разрешением).
Для обучения использовался закрытый датасет (сгенерированный через Midjourney на специально подготовленных текстовых промптах). Q-former обучается в нескольких режимах: "только стиль", "только контент", и специальный режим реконструкции исходной картинки, когда она же сама подается и в качестве стиля, и в качестве объекта.
Сделана дополнительная оптимизация вычислений: 2 отдельных слоя cross-attention объединены в один слой, который обрабатывает за один проход сконкатенированные эмбединги картинки и текста.
Возможна комбинация с любыми вариантами ControlNet (для версии SD v1.5), например, с картами глубины, Возможно смешивание разных стилей путем простого сложения их эмбедингов.
🔥Project Page
📜Paper
@gentech_lab
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
DreamStyler: Paint by Style Inversion with Text-to-Image Diffusion Models #style_transfer #paper
Не очень новая (декабрь 2023) статья от Harvard University, про стилизацию картинок в задачах text-2-image и image-2-image.
В подходе используется Textual Inversion механизм, где обучаются эмбединги токена, обозначающего стиль. Код в репозитории сделан на модели Stable Diffusion v1.5, но его можно будет переписать на более новые версии. Возможно совмещение с любыми подходящими ControlNet, например, с картой глубины.
Особенность подхода в том, что одновременно учится несколько экземпляров обучаемого токена. Обучение происходит в 2 этапа. Сначала учится один экземпляр обучаемого токена. Для этого составляется специальный текстовый промпт "Painting in
В работе проведены интересные эксперименты по подаче эмбедингов от совсем разных картинок стиля на разных стадиях генерации одной картинки. Например, на рисунке показано, что если стилизовать один текстовый запрос одновременно тремя картинками, и на каждом шаге денойзинга одновременно обуславливать на все три картинки, то результат получается смазанным и невыразительным. А если разделить это по стадиям, и подавать одну картинку в начале процесса, другую в середине, и третью в конце, то от начальных картинок будут перенесены общая структура и крупные детали, а от конечных стадий — мелкие детали, которые прорисованы более тонко.
Дополнительно дается объяснение того, как влияет на генерацию параметр guidance_scale, в зависимости от того, насколько тонкими/грубыми являются детали стиля. Если стиль определяется крупно-масштабными деталями, то они будут перенесены практически при любых значениях guidance_scale. А если стиль заключен в очень тонких деталях маленького размера, то качество переноса стиля будет улучшаться с увеличением guidance_scale .
🔥 Project Page
💻 Github
📜 Paper
@gentech_lab
Не очень новая (декабрь 2023) статья от Harvard University, про стилизацию картинок в задачах text-2-image и image-2-image.
В подходе используется Textual Inversion механизм, где обучаются эмбединги токена, обозначающего стиль. Код в репозитории сделан на модели Stable Diffusion v1.5, но его можно будет переписать на более новые версии. Возможно совмещение с любыми подходящими ControlNet, например, с картой глубины.
Особенность подхода в том, что одновременно учится несколько экземпляров обучаемого токена. Обучение происходит в 2 этапа. Сначала учится один экземпляр обучаемого токена. Для этого составляется специальный текстовый промпт "Painting in
<S*>
style", включающий в себя обучаемый токен <S*>
и описание картинки стиля, полученное через BLIP-2. На втором этапе весь процесс денойзинга (обычно 50 шагов) разделяется на несколько стадий (оптимальное число 6). На каждой стадии учится отдельный экземпляр обучаемого токена. За счет этого достигается более точное обуславливание в процессе денойзинга.В работе проведены интересные эксперименты по подаче эмбедингов от совсем разных картинок стиля на разных стадиях генерации одной картинки. Например, на рисунке показано, что если стилизовать один текстовый запрос одновременно тремя картинками, и на каждом шаге денойзинга одновременно обуславливать на все три картинки, то результат получается смазанным и невыразительным. А если разделить это по стадиям, и подавать одну картинку в начале процесса, другую в середине, и третью в конце, то от начальных картинок будут перенесены общая структура и крупные детали, а от конечных стадий — мелкие детали, которые прорисованы более тонко.
Дополнительно дается объяснение того, как влияет на генерацию параметр guidance_scale, в зависимости от того, насколько тонкими/грубыми являются детали стиля. Если стиль определяется крупно-масштабными деталями, то они будут перенесены практически при любых значениях guidance_scale. А если стиль заключен в очень тонких деталях маленького размера, то качество переноса стиля будет улучшаться с увеличением guidance_scale .
🔥 Project Page
📜 Paper
@gentech_lab
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
GameFactory: Creating New Games with Generative Interactive Videos #paper
В последние годы мы увидели большие продвижения в задаче генерации игр, однако все они основаны на попытке смоделировать уже существующую игру, например DOOM или Minecraft. В статье недельной давности, авторы пытаются создать игровой нейродвижок с помощью которого можно было бы создавать новые игры.
В качестве backbone авторы берут диффузионную модель-трансформер для генерации видео, в которую добавляют блоки Action Control Module. Эти блоки на основе cross-attenton позволяют обуславливать генерацию следующего кадра на действие, введённое пользователем-игроком.
Остаётся только одна проблема: где взять размеченные данные для обучения? Для некоторых игр, таких, например, как Minecraft и DOOM существуют размеченные датасеты, однако если обучать модель на них напрямую, то происходит такое явление как domain shift и все сгенерированные игры становятся похожи на обучающие данные. Это происходит из-за того, как обучаются диффузионные модели. Минимизируя MSE, модель одновременно учится как расшумлять изображения, так и обрабатывать действия, и выученные навыки смешиваются.
Авторы предлагают очень элегантное решение описанной выше проблемы: разделают обучение на два этапа. На первом этапе они обучают специальный LoRA-адаптер генерировать видео на датасете кадров Minecraft без всякого обуславливания на действия. На втором этапе этот адаптер, вместе с самой моделью, замораживается, а в модель добавляются Action Control Module блоки, которые обучаются по набору прошлых кадров и действий предсказывать следующий кадр. Такая стратегия позволяет модели на первом этапе выучить всё, что связано со стилем, а на втором этапе сосредоточиться непосредственно на управлении.
Во время инференса модели LoRA-адаптер не используется. В результате получается модель, которая, пусть и не идеально, но способна генерировать новые игры-миры, по которым пользователь может перемещаться. Авторы понимают, что получившаяся модель далека от генерации игр интересных современному пользователю, однако замечают, что данных подход можно использовать для генерации синтетических данных или как среду для обучения агентов.
🔥 Project Page
💻 Github
📜 Paper
@gentech_lab
В последние годы мы увидели большие продвижения в задаче генерации игр, однако все они основаны на попытке смоделировать уже существующую игру, например DOOM или Minecraft. В статье недельной давности, авторы пытаются создать игровой нейродвижок с помощью которого можно было бы создавать новые игры.
В качестве backbone авторы берут диффузионную модель-трансформер для генерации видео, в которую добавляют блоки Action Control Module. Эти блоки на основе cross-attenton позволяют обуславливать генерацию следующего кадра на действие, введённое пользователем-игроком.
Остаётся только одна проблема: где взять размеченные данные для обучения? Для некоторых игр, таких, например, как Minecraft и DOOM существуют размеченные датасеты, однако если обучать модель на них напрямую, то происходит такое явление как domain shift и все сгенерированные игры становятся похожи на обучающие данные. Это происходит из-за того, как обучаются диффузионные модели. Минимизируя MSE, модель одновременно учится как расшумлять изображения, так и обрабатывать действия, и выученные навыки смешиваются.
Авторы предлагают очень элегантное решение описанной выше проблемы: разделают обучение на два этапа. На первом этапе они обучают специальный LoRA-адаптер генерировать видео на датасете кадров Minecraft без всякого обуславливания на действия. На втором этапе этот адаптер, вместе с самой моделью, замораживается, а в модель добавляются Action Control Module блоки, которые обучаются по набору прошлых кадров и действий предсказывать следующий кадр. Такая стратегия позволяет модели на первом этапе выучить всё, что связано со стилем, а на втором этапе сосредоточиться непосредственно на управлении.
Во время инференса модели LoRA-адаптер не используется. В результате получается модель, которая, пусть и не идеально, но способна генерировать новые игры-миры, по которым пользователь может перемещаться. Авторы понимают, что получившаяся модель далека от генерации игр интересных современному пользователю, однако замечают, что данных подход можно использовать для генерации синтетических данных или как среду для обучения агентов.
🔥 Project Page
📜 Paper
@gentech_lab
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
SHMT: Self-supervised Hierarchical Makeup Transfer via Latent Diffusion Models #makeup_transfer #paper
Новая cтатья (декабрь 2024) про перенос макияжа с одной фотографии на другую.
Авторы - Alibaba Group, и это одна статья из целой группы (SSAT, SSAT++, CSD-MT) про работу с макияжем. Модель сделана на основе диффузионной архитектуры, поэтому работает сравнительно медленно, для real-time решений не подойдет.
Используется готовый визуальный энкодер (Latent Diffusion, а конкретно VQ-f4), но U-net модель учится полностью с нуля. Обученная модель доступна для скачивания. Итоговая модель на вход принимает 2 картинки — лицо без макияжа ("Сontent"), и другое лицо с макияжем ("Makeup"). На выходе получается картинка, где на лицо "Content" наложен макияж.
В работе применено несколько интересных решений:
- Парадигма "decoupling-and-reconstruction". Для обучения используется специально сформированный датасет (объединение трех датасетов: BeautyGAN, Wild-MT, LADN). Каждая картинка лица с макияжем раскладывается на 2 части: отдельно grayscale модель лица, и отдельно цветовая составляющая макияжа. Диффузионная модель обучается восстанавливать исходную картинку из этих двух составляющих.
- Иерархические данные о текстурах. Grayscale модель лица, в свою очередь, состоит из 2 частей — 3D-модель лица (для построения используется модель 3DDFA-V2) , и Laplasian pyramyde фичей (5 уровней). Для каждого уровня — обучается отдельная модель, и они выбираются в зависимости от того, насколько сложный/простой макияж нужно перенести.
- Модуль Iterative Dual Alignment (IDA). Диффузионная модель обуславливается одновременно на модель лица и на макияж. Но степень обуславливания сделана разной в зависимости от шага диффузии. Технически это реализовано в виде взвешенного суммирования с результатом генерации предыдущего шага, а коэффициент взвешивания — это в свою очередь обучаемый параметр от номера шага.
💻 Github
📜 Paper
Новая cтатья (декабрь 2024) про перенос макияжа с одной фотографии на другую.
Авторы - Alibaba Group, и это одна статья из целой группы (SSAT, SSAT++, CSD-MT) про работу с макияжем. Модель сделана на основе диффузионной архитектуры, поэтому работает сравнительно медленно, для real-time решений не подойдет.
Используется готовый визуальный энкодер (Latent Diffusion, а конкретно VQ-f4), но U-net модель учится полностью с нуля. Обученная модель доступна для скачивания. Итоговая модель на вход принимает 2 картинки — лицо без макияжа ("Сontent"), и другое лицо с макияжем ("Makeup"). На выходе получается картинка, где на лицо "Content" наложен макияж.
В работе применено несколько интересных решений:
- Парадигма "decoupling-and-reconstruction". Для обучения используется специально сформированный датасет (объединение трех датасетов: BeautyGAN, Wild-MT, LADN). Каждая картинка лица с макияжем раскладывается на 2 части: отдельно grayscale модель лица, и отдельно цветовая составляющая макияжа. Диффузионная модель обучается восстанавливать исходную картинку из этих двух составляющих.
- Иерархические данные о текстурах. Grayscale модель лица, в свою очередь, состоит из 2 частей — 3D-модель лица (для построения используется модель 3DDFA-V2) , и Laplasian pyramyde фичей (5 уровней). Для каждого уровня — обучается отдельная модель, и они выбираются в зависимости от того, насколько сложный/простой макияж нужно перенести.
- Модуль Iterative Dual Alignment (IDA). Диффузионная модель обуславливается одновременно на модель лица и на макияж. Но степень обуславливания сделана разной в зависимости от шага диффузии. Технически это реализовано в виде взвешенного суммирования с результатом генерации предыдущего шага, а коэффициент взвешивания — это в свою очередь обучаемый параметр от номера шага.
📜 Paper
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM