Дифузійні моделі стали потужним підходом у генеративному ШІ, забезпечуючи передові результати у створенні зображень, аудіо та відео. У цій технічній статті розглянемо принципи їхньої роботи, ключові нововведення й причини успіху: математичні основи, навчання, алгоритми вибірки та сучасні застосування.
Вступ до дифузійних моделей
Дифузійні моделі — це генеративні моделі, які вчаться поступово видаляти шум, обертаючи процес дифузії. Основна ідея — почати з чистого шуму й послідовно перетворити його на якісний зразок із цільового розподілу.
Підхід натхненний нерівноважною термодинамікою, зокрема оберненням дифузії для відновлення структури. У машинному навчанні це можна розуміти як навчання обертати поступове додавання шуму до даних.
Основні переваги дифузійних моделей:
Передова якість зображень, яка в багатьох випадках перевищує результати GAN
Стабільне навчання без змагальної динаміки
Широкі можливості паралельного обчислення
Гнучка архітектура: можна використати будь-яку модель, що відображає вхід у вихід тієї самої розмірності
Стохастичні диференціальні рівняння описують прямий і зворотний процеси дифузійних моделей. Пряме рівняння додає шум, поступово перетворюючи дані на шумовий розподіл. Зворотне, кероване навченою скор-функцією, поступово видаляє шум і створює реалістичні зображення. Цей підхід є ключовим для якісної генерації в неперервному просторі станів.
Прямий процес дифузії
Процес починається з точки x₀, вибраної з реального розподілу даних. Протягом T часових кроків додається гаусівський шум, утворюючи дедалі зашумленіші x₁, x₂, …, xT.
На кожному кроці t додається невелика кількість шуму:
x_t = √(1 - β_t) * x_{t-1} + √(β_t) * ε
де:
β_t — розклад дисперсії, який визначає кількість шуму на кожному кроці
ε — випадковий гаусівський шум
Процес триває, доки xT не стане майже чистим гаусівським шумом.
U-Net відіграє центральну роль у видаленні шуму. Вона має структуру кодера–декодера з обхідними з’єднаннями, які зберігають дрібні деталі під час відновлення. Кодер поступово зменшує роздільність зображення та виділяє високорівневі ознаки, а декодер збільшує роздільність закодованих ознак, відтворюючи зображення. Архітектура особливо ефективна для точної локалізації, зокрема сегментації зображень.
Мережа прогнозування шуму ε_θ може мати будь-яку архітектуру зі збігом розмірностей входу та виходу. Для генерації зображень часто використовують структури на зразок U-Net.
Цей процес поступово видаляє шум під керуванням навченої мережі.
На практиці існують різні методи вибірки, що підвищують якість або швидкість:
Вибірка DDIM: детермінований варіант із меншою кількістю кроків
Предкова вибірка: враховує навчену дисперсію σ_θ²
Усічена вибірка: зупиняється раніше для швидшої генерації
Базова реалізація алгоритму:
def sample(model, n_samples, device):
# Start with pure noise
x = torch.randn(n_samples, 3, 32, 32).to(device)
for t in reversed(range(1000)):
# Add noise to create x_t
t_batch = torch.full((n_samples,), t, device=device)
noise = torch.randn_like(x)
x_t = add_noise(x, noise, t)
# Predict and remove noise
pred_noise = model(x_t, t_batch)
x = remove_noise(x_t, pred_noise, t)
# Add noise for next step (except at t=0)
if t > 0:
noise = torch.randn_like(x)
x = add_noise(x, noise, t-1)
return x
Математичні основи дифузійних моделей
Для глибокого розуміння дифузійних моделей потрібно розглянути їхні математичні основи. Ось кілька ключових понять.
Ланцюги Маркова та стохастичні диференціальні рівняння
Прямий процес можна розглядати як ланцюг Маркова або, в неперервній границі, як стохастичне диференціальне рівняння (SDE). Це дає потужну теоретичну основу для аналізу й розширення моделей.
Пряме SDE записується так:
dx = f(x,t)dt + g(t)dw
де:
f(x,t) — член дрейфу
g(t) — коефіцієнт дифузії
dw — вінерівський процес, тобто броунівський рух
Різні f і g визначають різні процеси, наприклад:
Із наростанням дисперсії (VE): SDE: dx = √(d/dt σ²(t)) dw
Розуміння цих рівнянь дозволяє виводити оптимальні стратегії вибірки та застосовувати моделі в нових сферах.
Узгодження скор-функції та узгодження з видаленням шуму
Зв’язок дифузійних моделей зі скор-узгодженням дає ще один корисний погляд. Скор-функція визначається як градієнт логарифма густини ймовірності:
s(x) = ∇x log p(x)
Узгодження скор-функції з видаленням шуму оцінює цю функцію, навчаючи модель відновлювати злегка збурені дані. У неперервній границі ця ціль еквівалентна цілі навчання дифузійної моделі.
Цей зв’язок дозволяє використовувати методи генеративного моделювання на основі скор-функцій, наприклад відпалену динаміку Ланжевена для вибірки.
Розширені методи навчання
Вибірка за важливістю
Стандартне навчання рівномірно вибирає часові кроки, хоча їхня інформативність різна. Вибірка за важливістю зосереджує навчання на найкорисніших кроках.
Один із підходів — нерівномірний розподіл кроків із вагами за очікуваним квадратом L2-норми скор-функції:
p(t) ∝ E[||s(x_t, t)||²]
Це може прискорити навчання та покращити якість зразків.
Поступова дистиляція
Поступова дистиляція створює швидші моделі вибірки без втрати якості. Процес:
Навчити базову модель із багатьма кроками, наприклад 1 000
Створити модель-учня з меншою кількістю кроків, наприклад 100
Навчити учня відтворювати процес видалення шуму базової моделі
Повторювати кроки 2–3, поступово скорочуючи кількість часових кроків
Це забезпечує якісну генерацію зі значно меншою кількістю кроків видалення шуму.
Архітектурні нововведення
Дифузійні моделі на основі трансформерів
Хоча для зображень популярна U-Net, нові дослідження розглядають трансформери. Їхні потенційні переваги:
Краще врахування далеких залежностей
Гнучкіші механізми задання умов
Простіше збільшення розміру моделі
Моделі на кшталт DiT (Diffusion Transformers) показали перспективні результати й можуть забезпечити ще вищу якість генерації.
Ієрархічні дифузійні моделі
Ієрархічні моделі генерують дані на кількох масштабах, поєднуючи загальну узгодженість із дрібними деталями. Зазвичай процес включає:
Генерацію результату низької роздільності
Поступове збільшення роздільності та уточнення
Це особливо ефективно для зображень високої роздільності або довгого контенту.
Поглиблені теми
Керування без класифікатора
Керування без класифікатора покращує якість і керованість зразків. Основна ідея передбачає дві дифузійні моделі:
Безумовну модель p(x_t)
Умовну модель p(x_t | y), де y — умовна інформація, наприклад текстовий запит
Під час вибірки їхні прогнози комбінуються:
ε_θ = (1 + w) * ε_θ(x_t | y) - w * ε_θ(x_t)
w > 0 — масштаб керування, який визначає вагу умовної моделі.
Це посилює вплив умов без перенавчання. Метод важливий для успіху DALL-E 2 і Stable Diffusion.
Латентна дифузійна модель (LDM) кодує вхідні дані в латентний простір, де відбувається дифузія. До представлення зображення поступово додається шум, який потім видаляє U-Net. Завдяки перехресній увазі вона поєднує семантичні карти, текст та представлення зображень, після чого зображення відновлюється у просторі пікселів. Це дозволяє створювати якісні зображення з керованою структурою та потрібними ознаками.
Переваги:
Швидші навчання та вибірка
Краще опрацювання зображень високої роздільності
Простіше додавання умов
Процес відбувається так:
Навчити автокодер стискати зображення в латентний простір
Навчити дифузійну модель у цьому просторі
Для генерації вибрати зразок у латентному просторі та декодувати його в пікселі
Цей успішний підхід лежить в основі Stable Diffusion.
Моделі узгодженості
Моделі узгодженості покликані підвищити швидкість і якість дифузійних моделей. Вони навчаються безпосередньо перетворювати дані з будь-яким рівнем шуму на кінцевий результат, без багаторазового видалення шуму.
Спеціальна функція втрат забезпечує узгодженість прогнозів на різних рівнях шуму. Модель може створювати якісні зразки за один прямий прохід, значно прискорюючи висновування.
Практичні поради щодо навчання
Навчання якісних дифузійних моделей складне. Ось поради для стабільності та кращих результатів:
Обрізання градієнтів: запобігає їхньому вибуховому зростанню, особливо на початку навчання.
Експоненційне ковзне середнє ваг (EMA): використовуйте EMA для вибірки, щоб підвищити стабільність і якість генерації.
Аугментація даних: випадкові горизонтальні віддзеркалення зображень можуть покращити узагальнення.
Розклад шуму: порівнюйте лінійний, косинусний і сигмоїдний варіанти для своїх даних.
Змішана точність: зменшує використання пам’яті та прискорює навчання, особливо великих моделей.
Умовна генерація: навіть за безумовної кінцевої мети навчання з умовами, наприклад класами зображень, може підвищити якість.
Оцінювання дифузійних моделей
Коректне оцінювання генеративних моделей важливе, але складне. Поширені метрики й підходи наведено нижче.
Відстань Фреше в просторі ознак Inception (FID)
FID широко використовують для оцінювання якості й різноманітності зображень. Вона порівнює статистики згенерованих і реальних даних у просторі ознак попередньо навченого класифікатора, зазвичай InceptionV3.
Менша FID означає кращу якість і реалістичніший розподіл. Проте метрика має обмеження й не повинна бути єдиною.
Оцінка Inception (IS)
Inception Score вимірює якість і різноманітність зображень за допомогою попередньо навченої мережі Inception:
IS = exp(E[KL(p(y|x) || p(y))])
p(y|x) — умовний розподіл класів для згенерованого зображення x.
Вища IS означає кращу якість і різноманітність, але має відомі обмеження, особливо для даних, несхожих на ImageNet.
Для дифузійних моделей можна обчислити NLL відкладених даних. Це безпосередньо оцінює відповідність справжньому розподілу.
Точна оцінка NLL для високовимірних даних може бути обчислювально дорогою.
Оцінювання людьми
У багатьох застосуваннях, особливо творчих, людське оцінювання залишається важливим. Воно може включати:
Порівняння результатів різних моделей поруч
Оцінювання на зразок тесту Тюрінга
Оцінювання для конкретного завдання, наприклад опис зображень для моделей генерації за текстом
Попри суб’єктивність, люди можуть помітити аспекти якості, які пропускають автоматичні метрики.
Дифузійні моделі у виробничому середовищі
Розгортання цих моделей має особливі виклики. Ось основні міркування та практики.
Оптимізація висновування
Експорт ONNX: конвертуйте модель для швидшого виконання на різному обладнанні.
Квантування: INT8 та інші методи зменшують модель і прискорюють висновування.
Кешування: зберігайте проміжні безумовні результати, щоб прискорити керування без класифікатора.
Пакетне опрацювання: використовуйте пакети для ефективнішого завантаження GPU.
Масштабування
Розподілене висновування: для високої пропускної здатності розподіляйте роботу між GPU або машинами.
Адаптивна вибірка: змінюйте кількість кроків відповідно до потрібного балансу якості та швидкості.
Поступова генерація: великі результати створюйте від низької до високої роздільності, щоб швидше показати початковий варіант.
Безпека та фільтрація
Фільтрація контенту: запровадьте надійні системи проти шкідливих чи неприйнятних результатів.
Водяні знаки: розгляньте невидимі знаки для відстеження походження контенту.
Застосування
Дифузійні моделі успішно працюють у багатьох генеративних завданнях.
Генерація зображень
Саме тут вони спочатку набули популярності. Приклади:
DALL-E 3: модель OpenAI для генерації зображень за текстом із текстовим кодером CLIP і дифузійним декодером зображень
Stable Diffusion: відкрита латентна дифузійна модель генерації за текстом
Imagen: дифузійна модель Google для генерації зображень за текстом
Ці моделі створюють реалістичні й творчі зображення за описами, перевершуючи попередні підходи на основі GAN.
Генерація відео
Дифузійні моделі також застосовують до відео:
Video Diffusion Models: час розглядається як додатковий вимір дифузії
Make-A-Video: дифузійна модель Meta для відео за текстом
Imagen Video: дифузійна модель Google для відео за текстом
Короткі відео за текстовими описами відкривають нові можливості створення контенту.
Генерація 3D
Нові дослідження поширили дифузію на тривимірну генерацію:
DreamFusion: генерація 3D за текстом із використанням двовимірних дифузійних моделей
Point-E: дифузійна модель хмар точок OpenAI для створення тривимірних об’єктів
Це дозволяє створювати 3D-ресурси за описами для ігор, VR/AR і проєктування продуктів.
Виклики та майбутні напрями
Попри успіх, залишаються виклики й теми для досліджень.
Обчислювальна ефективність
Ітеративна вибірка може бути повільною, особливо за високої роздільності. Латентна дифузія та моделі узгодженості розв’язують цю проблему, але подальше підвищення ефективності потребує досліджень.
Керованість
Керування без класифікатора покращило контроль, але потрібне точніше керування результатами, особливо у творчих застосуваннях.
Мультимодальна генерація
Наявні моделі добре генерують окремі модальності, наприклад зображення чи аудіо. Створення справді мультимодальних моделей із плавним переходом між ними — перспективний напрям.
Теоретичне розуміння
Емпіричні результати сильні, але причини успішності ще потребують вивчення. Глибша теорія може привести до покращень і нових застосувань.
Висновок
Дифузійні моделі просувають генеративний ШІ, забезпечуючи якісні результати для різних модальностей. Навчаючись обертати додавання шуму, вони пропонують гнучкий і теоретично обґрунтований підхід до генерації.
Від творчих інструментів до наукових симуляцій — створення складних високовимірних даних може змінити багато сфер. Водночас важливо враховувати як значний потенціал цих технологій, так і етичні виклики.
Останні п'ять років я занурювався в захопливий світ машинного та глибокого навчання. Завдяки своєму захопленню та фаховим знанням я долучився до понад 50 різноманітних проєктів програмної інженерії, приділяючи особливу увагу ШІ та машинному навчанню. Моя невпинна допитливість також привела мене до обробки природної мови — галузі, яку я прагну досліджувати далі.