Основная идея метода заключается в применении процедуры диффузии для моделирования вероятностных распределений по токенам. Такой подход исключает традиционную категориальную кросс-энтропийную функцию потерь в пользу функции Diffusion Loss. Так устраняется необходимость в сложных и зачастую несовершенных токенизаторах с дискретными значениями, чувствительных к Gradient Approximation и субоптимальному качеству реконструкции.
В прикладной реализации используется сеть денойзинга, небольшая MLP-сеть, которая работает на основе вектора, производимого авторегрессивной моделью. Эта сеть обучена предсказывать распределение для каждого токена через функцию денойзинг-диффузии.
В результате MAR+DiffLoss модель может быстро генерировать изображения высокого качества , используя внутренние преимущества скорости моделирования последовательностей.
Одним из полученных достижений в ходе исследования стала способность модели генерировать изображения со скоростью менее 0,3 секунды на изображение при достижении впечатляющего показателя Fréchet Inception Distance (FID) менее 2,0 на наборе данных ImageNet.
Для тестирования демонстрации метода предлагается настроенный ноутбук для Google Collab. Помимо этого, в репозитории на Github размещены инструкции и код для самостоятельной тренировки моделей и запуску оценочного бенчмарка на датасете ImageNet.
⚠️ Внимание, тренировочный процесс крайне ресурсоемкий.
@ai_machinelearning_big_data
#AI #ML #Diffusion #Pytorch
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥7❤2
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🔥12😁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
❤75🔥31👍26👻7💯5