Matryoshka (MDM) - сквозная структура для синтеза изображений и видео высокого разрешения. Вместо обучения отдельных моделей использован многомасштабный процесс совместной диффузии, в котором модели меньшего масштаба вложены в модели большего масштаба. Такая структура вложенности не только облегчает обмен свойствами между масштабами, но и обеспечивает постепенный рост обучаемой архитектуры.
ml_mdm - Python-фреймворк для синтеза изображений и видео c с помощью набора pre-trained моделей Matryoshka.
Codebase фреймворка:
Для тестирования инференса, оценки на датасете CC12M и обучении на собственных наборах изображений представлены 3 pre-trained модели, построенные на архитектурах U-Net и Nested U-Nets, обученные на 50 млн. пар "текст-изображение" с Flickr:
Зависимости для установки по умолчанию в файле pyproject.toml выбраны таким образом, чтобы можно было установить библиотеку даже на CPU-only систему.
# Running Test Cases:
> pytest # will run all test cases - including ones that require a gpu
> pytest -m "not gpu" # run test cases that can work with just cpu
# Download the models:
curl https://docs-assets.developer.apple.com/ml-research/models/mdm/flickr64/vis_model.pth --output vis_model_64x64.pth
curl https://docs-assets.developer.apple.com/ml-research/models/mdm/flickr256/vis_model.pth --output vis_model_256x256.pth
curl https://docs-assets.developer.apple.com/ml-research/models/mdm/flickr1024/vis_model.pth --output vis_model_1024x1024.pth
# Launch Web Demo:
torchrun --standalone --nproc_per_node=1 ml_mdm/clis/generate_sample.py --port 19999
⚠️ В Issues репозитория есть обращение о некорректной команде запуска Web Demo. Следите за обновлением тикета и коммитами.
@ai_machinelearning_big_data
#AI #Diffusion #ML #Text2Image #Apple
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤8🥰4
LongAlign - метод тонкой настройки диффузионных text-2-image моделей, который улучшает понимание длинных промптов. Вместо того, чтобы подавать весь длинный текст в CLIP, LongAlign разбивает его на сегменты (например, предложения) и кодирует каждый сегмент по отдельности. Это позволяет использовать CLIP, несмотря на его ограничения.
После кодирования отдельных сегментов LongAlign объединяет полученные эмбединги в единый вектор. Для этого используется конкатенация с удалением повторяющихся специальных токенов (
<sot>, <eot>, <pad>) и добавлением нового токена <pad*>.Чтобы достичь точности согласования, в LongAlign используется 3 техники:
По проведенным оценкам, LongAlign значительно превосходит базовые модели Stable Diffusion, PixArt-α и Kandinsky v2.2 по показателям FID и Denscore. Отдельно выполненная оценка в GPT-4o подтвердила преимущества LongAlign в согласовании text-2-image.
./model/LaVi-Bridge)./model/longSD)# Prepare environment
pip install -r requirements.txt
# Train original Stable Diffusion
# support long-text inputs
bash run_unet.sh align ct5f
# preference optimization for long-text alignment
bash run_unet.sh reward test
# Train LCM-version Stable Diffusion
# support LCM sampling
bash run_unet.sh lcm ct5f
# preference optimization for long-text alignment
bash run_unet.sh reward_lcm test
#AI #ML #Diffusion #Text2Image #LongAlign
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤6🔥5
Stability AI опубликовала Stable Diffusion 3.5 Large - модель text-to-image с 8 млрд. параметров.
В основе SD 3.5 Large - архитектура Multimodal Diffusion Transformer (MMDiT). Модель использует три предобученных текстовых энкодера:
OpenCLIP-ViT/G и CLIP-ViT/L имеют контекстную длину 77 токенов, а T5-xxl - 77/256 токенов.
Модель доступна по API в сервисах - Stability AI, Replicate и Deepinfra.
Для локального использования модели рекомендуется использовать ComfyUI (базовый воркфлоу) или Diffusers.
⚠️ Инференс квантованной NF4-версии на ограниченных VRAM
⚠️ Подробные инструкции по файнтюну и тренировке LoRA для Stable Diffusion 3.5 Large.
# install Diffusers
pip install -U diffusers
# Inference
import torch
from diffusers import StableDiffusion3Pipeline
pipe = StableDiffusion3Pipeline.from_pretrained("stabilityai/stable-diffusion-3.5-large", torch_dtype=torch.bfloat16)
pipe = pipe.to("cuda")
image = pipe(
"A happy woman laying on a grass",
num_inference_steps=28,
guidance_scale=3.5,
).images[0]
image.save("woman.png")
@ai_machinelearning_big_data
#AI #ML #Diffusion #SDL #StabilityAI
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23❤11👍9
Stability AI, следуя своему анонсу, выпустила в открытый доступ младшую text-to-image модель семейства Stable diffusion 3.5 - Medium c 2.6 млрд. параметров.
Модель позиционируется в семействе SD 3.5 как решение для работы на потребительском оборудовании.
SD 3.5 Medium способна генерировать изображения с разрешением от 0.25 до 2 мегапикселей, а для запуска с максимальной производительностью ей требуется всего 9.9 Gb VRAM.
Stable Diffusion 3.5 Medium претерпела ряд изменений в архитектуре (MMDiT-X вместо MMDiT ) и протоколах обучения для корреляции качества с числом параметров, связности и возможности генерации изображений с различным разрешением.
SD 3.5 Medium прошла обучение на разрешениях от 256 до 1440 пикселей.
Текстовые энкодеры не претерпели изменений, остались те же, что и у Stable Diffusion 3.5 Large: OpenCLIP-ViT/G, CLIP-ViT/L и T5-xxl.
Для локального использования модели рекомендуется использовать ComfyUI (базовый воркфлоу) или или Diffusers.
# install Diffusers
pip install -U diffusers
# Inference
import torch
from diffusers import StableDiffusion3Pipeline
pipe = StableDiffusion3Pipeline.from_pretrained("stabilityai/stable-diffusion-3.5-medium", torch_dtype=torch.bfloat16)
pipe = pipe.to("cuda")
image = pipe(
"A happy woman laying on a grass",
num_inference_steps=28,
guidance_scale=3.5,
).images[0]
image.save("woman.png")
#AI #ML #Diffusion #SD3_5Medium #StabilityAI
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥13🎉5❤3👏2
Sana - семейство моделей для генерации изображений с разрешением до 4096x4096 пикселей. Главное преимущество Sana - высокая скорость инференса и низкие требования к ресурсам, модели можно запустить даже на ноутбуке.
Секрет эффективности Sana в ее архитектуре, которая состоит из нескольких инновационных компонентов:
Сжимает изображение в 32 раза, в результате чего значительно сокращается число латентных токенов, что, в свою очередь, повышает эффективность обучения и позволяет генерировать изображения с разрешением 4K.
Использует линейное внимание вместо традиционного, ускоряя генерацию с разрешением 4K в 1.7 раза.
В Linear DiT вместо модуля MLP-FFN используется Mix-FFN, который объединяет в себе свертку 3x3 и Gated Linear Unit (GLU). Mix-FFN позволяет отказаться от позиционного кодирования без потери качества.
Энкодер, основанный на LLM Gemma, который лучше понимает текстовые запросы пользователя и точнее передает их смысл на генерации.
Для точного соответствия "текст - изображение" при обучении энкодера применялись "сложные человеческие инструкции" (CHI), которые научили Gemma учитывать контекст запроса.
Sana создавалась с помощью уникальной стратегии обучения и выборки. В процессе обучения используются несколько VLM (VILA, InternVL2) для создания различных аннотаций к каждому изображению. Затем, на основе CLIP-оценки, были отобраны наиболее подходящие пары "текст-изображение".
Обучение происходило постепенно, начиная с разрешения 512x512 и заканчивая 4096x4096, а алгоритм Flow-DPM-Solver ускорил процесс выборки, сократив количество шагов по сравнению с Flow-Euler-Solver.
Результаты тестирования Sana впечатляют:
⚠️ Для локального инференса модели 0.6B требуется 9GB VRAM, а для модели 1.6B - 12GB VRAM.
# official online demo
DEMO_PORT=15432 \
python app/app_sana.py \
--config=configs/sana_config/1024ms/Sana_1600M_img1024.yaml \
--model_path=hf://Efficient-Large-Model/Sana_1600M_1024px/checkpoints/Sana_1600M_1024px.pth
@ai_machinelearning_big_data
#AI #ML #Diffusion #SANA #NVIDIA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥16❤5
Boltz-1 - первая доступная модель с открытым исходным кодом, которая достигает точности AlphaFold3 в прогнозировании 3D-структур белков, РНК, ДНК и небольших молекул. Boltz-1 основана на архитектуре AlphaFold3, но включает ряд модификаций, повышающих точность и общую эффективность модели.
Архитектура состоит из модуля множественного выравнивания последовательностей (MSA), модуля PairFormer и диффузионной модели, работающую на двух уровнях разрешения: тяжелые атомы и токены. Токены представляют собой аминокислоты для белков, основания для РНК и ДНК, а также отдельные тяжелые атомы для других молекул.
Boltz-1 использует диффузионную модель, аналогичную AlphaFold3, но Boltz-1 использует жесткое выравнивание с помощью алгоритма Кабша после каждого шага процедуры вывода, чтобы гарантировать, что интерполированная структура более похожа на очищенную от шума выборку. Это уменьшает дисперсию потерь денойзинга и предотвращает переобучение модели.
Обучение модели проводилось на структурных данных из PDB, выпущенных до 30 сентября 2021 года, с разрешением не менее 9Å. Чтобы ускорить обучение, разработчики Boltz-1 применили алгоритм сопряжения MSA с использованием таксономической информации, унифицированный алгоритм кадрирования и алгоритм определения кармана связывания. Обучение модели заняло 68 тысяч шагов с размером пакета 128, что меньше, чем у AlphaFold3.
Оценка Boltz-1 была выполнена на датасете CASP15 и на наборе PDB, специально созданном разработчиками для тестирования.
Результаты показали, что Boltz-1 сопоставима по точности с Chai-1, закрытой репликацией AlphaFold3. Обе модели демонстрируют схожие показатели среднего LDDT и среднего TM-score.
Boltz-1 продемонстрировала преимущество в предсказании взаимодействия белок-лиганд на наборе данных CASP15.
Прикладная реализация инференса, доступная в репозитории на Github, может принимать на вход форматы:
Подробные инструкции для процесса прогнозирования и дообучения опубликованы в репозитории с кодом.
# Install boltz with PyPI
pip install boltz
# run inference
boltz predict input_path
@ai_machinelearning_big_data
#AI #ML #Diffusion #3D #Biomolecular
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥11❤10
Маскированная (или абсорбирующая) диффузия - перспективный подход в генеративном моделировании дискретных данных, предлагающий альтернативу авторегрессионным моделям.
MD4 (Masked Discrete Diffusion for Discrete Data) - метод, разработанный в Google DeepMind предлагает упрощенный и обобщенный подход к маскированной диффузии. Структура метода позволяет обучать обобщенные модели маскированной диффузии с гибкими схемами маскировки, зависящими от состояния данных.
В основе MD4 лежит «маскирующий» процесс, превращающий исходные данные в состояние «маски» в случайный момент времени. Обращение этого процесса позволяет синтезировать новые данные, сохраняющие распределение обучающей выборки.
Математически прямой процесс описывается как марковская последовательность дискретных случайных величин, индексируемых временным параметром от 0 до 1.
MD4 продемонстрировал превосходство над диффузионными языковыми моделями по показателю перплексии на наборе данных OpenWebText и значительно обошел существующие дискретные диффузионные модели по качеству пиксельного моделирования изображений, достигая 2,75 бит на измерение для CIFAR-10 и 3,40 бит на измерение для ImageNet 64 × 64.
Эти результаты выше, чем показатели авторегрессионных моделей сопоставимого размера (GPT-2, PixelRNN, Gated PixelCNN, PixelCNN++, PixelSNAIL, Image Transformer, Sparse Transformer).
Несмотря на все преимущества метода, MD4 склонен к переобучению, что снижает его эффективность для задач с нулевой выборкой по сравнению с более простыми моделями.
Прикладная реализация MD4 опубликована в репозитории Google Deepmind, в котором представлена возможность повторить экспериментальное обучение на тексте или изображениях.
⚠️ Batch size зависит от вычислительных ресурсов. Для обучения модели MD4-S с длиной последовательности 1024, 8 GPU A100 могут поддерживать максимальный batch size=128. При запуске на TPU, 8 чипов v5litepod, batch size=32.
# Create & activate env
python -m venv md4_venv
source md4_venv/bin/activate
# Install required packages
pip install -r requirements_gpu.txt
# Include a path dir in the Python path
export PYTHONPATH="$PYTHONPATH:~/path/to/md4"
# Prepare openwebtext for training
mkdir data_dir
python prepare_openwebtext_data.py
# Train a MD4-S model over text data
python md4/main.py --config=md4/configs/md4/openwebtext.py --sharded=false --workdir=./expt
# Train a MD4-S model over image data via cifar10
python md4/main.py --config=md4/configs/md4/cifar10.py --sharded=false --workdir=./expt
@ai_machinelearning_big_data
#AI #ML #Diffusion #MD4 #GoogleDeepMind
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥6❤5
This media is not supported in your browser
VIEW IN TELEGRAM
📲 Diffusion Explainer - визуализация, которая поможет понять работу моделей, основанных на диффузии:
⭐️Визуал, который будет понятен каждому
⭐️Работает в браузере
⭐️Отличное наглядное объяснение того, как модели диффузии генерируют изображения.
https://poloclub.github.io/diffusion-explainer
▪Diffusion explainer
▪Github
▪Статья
▪Видео
@ai_machinelearning_big_data
#diffusion #tutorial #ml
⭐️Визуал, который будет понятен каждому
⭐️Работает в браузере
⭐️Отличное наглядное объяснение того, как модели диффузии генерируют изображения.
https://poloclub.github.io/diffusion-explainer
▪Diffusion explainer
▪Github
▪Статья
▪Видео
@ai_machinelearning_big_data
#diffusion #tutorial #ml
❤54👍26🔥21
Позволяют VLM точно определять редактируемые объекты даже в сложных сценах, не затрагивая остальное изображение.
Динамически регулирует степень редактирования на разных этапах шумоподавления, интегрируя информацию о времени с текстовыми эмбеддингами.
Позволяет сохранить высокочастотные визуальные детали и семантическую согласованность изображения.
FireEdit превосходит другие SOTA-методы на датасете Emu Edit — как по точности локализации, так и по качеству результата.
@ai_machinelearning_big_data
#AI #VLM #Diffusion #ImageEditing #FireEdit #ML
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍47❤14🔥13😁3
Это одна из самых сложных задач в семантической генерации:
🔸 нужно сохранить структуру сцены
🔸 вставить объект по текстовому описанию
🔸 и найти уместное место, а не просто налепить поверх
Большинство моделей с этим не справляются — объект добавляется не к месту или портит фон.
Новый метод Add-it от NVIDIA решает эту задачу без обучения модели.
Он расширяет механизм внимания в диффузионных моделях, чтобы учитывать сразу три источника:
1. Оригинальное изображение
2. Текстовый промпт
3. Промежуточную сгенерированную картинку
📌 Такой подход позволяет:
– сохранить геометрию сцены
– встроить объект туда, где он действительно мог бы быть
– не терять мелкие детали и текстуры
📊 Результаты:
– Add-it без дообучения обходит supervised‑модели
– На новом бенчмарке Additing Affordance показывает SOTA результат по «естественности размещения»
– В слепых тестах люди выбирают его в 80% случаев
– Улучшает метрики качества генерации
@ai_machinelearning_big_data
#NVIDIA #Diffusion #Addit #StableDiffusion #AIgen #ControllableGeneration
Please open Telegram to view this post
VIEW IN TELEGRAM
❤83🔥33👍30👻7💯6❤🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Любопытны пост, где автор объяснил на примере очень простую и очевидную, но мощную идею.
Он заметил, что то, что мы называем диффузией текста, на самом деле - это просто обобщённая версия классического обучения BERT.
Как работает BERT?
В BERT модель берёт текст и маскирует часть слов, а потом учится угадывать, какие слова были скрыты.
В диффузии происходит почти то же самое, только шагов больше: на каждом шаге модель немного «портит» текст (добавляет шум), а затем восстанавливает его, всё меньше и меньше теряя смысл, пока не соберёт финальный чистый текст.
То есть BERT делает один шаг очистки - угадывает замаскированные слова.
А диффузионная модель делает много таких шагов подряд, постепенно превращая случайный набор токенов в осмысленный текст.
Барри дообучил RoBERTa, чтобы показать это на практике - и получил настоящий текстовый диффузионный генератор.
В примере:
- Используется RoBER (улучшенная версия модели BERT,) и датасет WikiText.
- На каждом шаге часть токенов заменяется на
<MASK>, модель восстанавливает их, потом снова маскирует — и так несколько раз.
- После нескольких итераций модель способна генерировать связный текст,
даже без автогенеративного декодера (как у GPT).
📈 Результаты
- Модель генерирует осмысленный текст, хотя и не идеально связный.
- Качество улучшалось по мере добавления шагов диффузии.
- По времени генерации RoBERTa Diffusion была немного медленнее, чем GPT-2 (~13 сек против 9 сек), но архитектура осталась полностью encoder-only.
Автор упоминает, что позже наткнулся на работу DiffusionBERT, где идею реализовали глубже и подтвердили результатами.
Главная мысль:
BERT можно считать одноступенчатой версией текстовой диффузии.
Если добавить больше шагов, то vs получаем диффузионный генератор текста.
Если BERT - это один шаг диффузии, то будущее может принадлежать моделям, совмещающим "понимание" и "генерацию" текста в одном процессе.
https://nathan.rs/posts/roberta-diffusion/
@ai_machinelearning_big_data
#AI #Diffusion #RoBERTa #BERT #LanguageModel #MLM #Research
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥172❤36👍22👏19🤓19👨💻7🤗2🥰1😁1🥱1🤝1