Дифузійні моделі з’явилися як потужний підхід до генеративного штучного інтелекту, який дає найсучасніші результати у створенні зображень, аудіо та відео. У цій докладній технічній статті ми дослідимо, як працюють дифузійні моделі, їхні ключові інновації та чому вони стали такими успішними. Ми розглянемо математичні основи, процес навчання, алгоритми вибірки та передові застосування цієї захоплюючої нової технології.
Введення в моделі дифузії
Дифузійні моделі це клас генеративних моделей, які вчаться поступово знімати шуми в даних шляхом реверсування процесу дифузії. Основна ідея полягає в тому, щоб почати з чистого шуму та ітеративно вдосконалити його до високоякісної вибірки з цільового розподілу.
Цей підхід був натхненний нерівноважною термодинамікою – зокрема, процесом зворотної дифузії для відновлення структури. У контексті машинного навчання ми можемо думати про це як про навчання змінювати поступове додавання шуму до даних.
Деякі ключові переваги дифузійних моделей включають:
Найсучасніша якість зображення, яка у багатьох випадках перевершує GAN
Стабільна підготовка без змагальної динаміки
Дуже розпаралелюваний
Гнучка архітектура – можна використовувати будь-яку модель, яка зіставляє вхідні дані з виходами однакової розмірності
Сильна теоретична база
Давайте глибше зануримося в те, як працюють моделі дифузії.
Стохастичні диференціальні рівняння керують прямими та зворотними процесами в моделях дифузії. Передній SDE додає шум до даних, поступово перетворюючи його на розподіл шуму. Зворотне SDE, кероване функцією навченого оцінювання, поступово усуває шум, що призводить до створення реалістичних зображень із випадкового шуму. Цей підхід є ключовим для досягнення високоякісної генеративної продуктивності в безперервних просторах станів
Процес прямої дифузії
Процес прямої дифузії починається з точки даних x₀, відібраної з реального розподілу даних, і поступово додається гаусівський шум протягом T часових кроків, щоб отримати дедалі шумніші версії x₁, x₂, …, xT.
На кожному кроці часу t ми додаємо невелику кількість шуму відповідно до:
x_t = √(1 - β_t) * x_{t-1} + √(β_t) * ε
де:
β_t це розклад відхилень, який контролює кількість шуму, доданого на кожному кроці
ε це випадковий гаусівський шум
Цей процес триває до тих пір, поки xT не стане майже чистим гаусовим шумом.
Математично ми можемо описати це як ланцюг Маркова:
Розклад β_t зазвичай вибирається малим для ранніх часових кроків і збільшується з часом. Загальні варіанти включають лінійний, косинусний або сигмоподібний графіки.
Процес зворотної дифузії
Мета дифузійної моделі полягає в тому, щоб вивчити зворотний процес цього процесу – почати з чистого шуму xT і поступово приглушити його, щоб відновити чистий зразок x₀.
Де μ_θ і σ_θ^2 – це навчені функції (як правило, нейронні мережі), параметризовані θ.
Ключове нововведення полягає в тому, що нам не потрібно явно моделювати повний зворотний розподіл. Натомість ми можемо параметризувати його в термінах прямого процесу, який ми знаємо.
Зокрема, ми можемо показати, що оптимальне середнє значення зворотного процесу μ* є:
Архітектура U-Net є центральною для кроку усунення шумів у дифузійній моделі. Він має структуру кодера-декодера зі з’єднаннями пропуску, які допомагають зберегти дрібні деталі під час процесу реконструкції. Кодер поступово зменшує дискретизацію вхідного зображення, зберігаючи функції високого рівня, а декодер збільшує дискретизацію закодованих функцій, щоб реконструювати зображення. Ця архітектура особливо ефективна в задачах, що вимагають точної локалізації, таких як сегментація зображення.
Мережа прогнозування шуму ε_θ може використовувати будь-яку архітектуру, яка відображає входи на виходи однакової розмірності. Архітектури стилю U-Net є популярним вибором, особливо для завдань створення зображень.
Після того, як ми навчили нашу мережу прогнозування шуму ε_θ, ми можемо використовувати її для створення нових зразків. Основний алгоритм вибірки такий:
Цей процес поступово знімає шум у зразку, керуючись нашою навченою мережею прогнозування шуму.
На практиці бувають різні методики відбору проб які можуть покращити якість або швидкість:
Вибірка DDIM: детермінований варіант, який передбачає меншу кількість кроків вибірки
Родові проби: включає вивчену дисперсію σ_θ^2
Усічена вибірка: зупиняється раніше для швидшого генерування
Ось базова реалізація алгоритму вибірки:
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 призводять до різних типів процесів дифузії. Наприклад:
Розуміння цих SDE дозволяє нам отримати оптимальні стратегії вибірки та розширити дифузійні моделі до нових областей.
Зіставлення балів і знешумлення
Зв’язок між дифузійними моделями та зіставленням балів дає ще одну цінну перспективу. Функція оцінки визначається як градієнт логарифмічної щільності ймовірності:
s(x) = ∇x log p(x)
Зіставлення балів усунення шуму має на меті оцінити цю функцію балів, навчаючи модель усунення шуму злегка збурених точок даних. Ця мета виявляється еквівалентною меті навчання моделі дифузії в безперервній межі.
Цей зв’язок дозволяє нам використовувати методи генеративного моделювання на основі балів, такі як динаміка відпалу Ланжевена для вибірки.
Поглиблені методи навчання
Вибірка важливості
Стандартне навчання дифузійної моделі рівномірно відбирає часові кроки. Однак не всі часові кроки однаково важливі для навчання. Методи вибірки важливості можна використовувати, щоб зосередити навчання на найбільш інформативних часових кроках.
Одним із підходів є використання нерівномірного розподілу за часовими кроками, зваженого за очікуваною нормою L2 оцінки:
p(t) ∝ E[||s(x_t, t)||²]
Це може призвести до швидшого навчання та покращення якості зразків.
Прогресивна дистиляція
Прогресивна дистиляція — це техніка для створення швидших моделей відбору проб без втрати якості. Процес працює наступним чином:
Навчання моделі базової дифузії з багатьма кроками в часі (наприклад, 1000)
Створіть модель студента з меншою кількістю кроків у часі (наприклад, 100)
Навчіть студента відповідати процесу усунення шумів базової моделі
Повторіть кроки 2-3, поступово скорочуючи кроки часу
Це забезпечує високу якість генерації зі значно меншою кількістю кроків усунення шумів.
Архітектурні інновації
Моделі дифузії на основі трансформатора
Незважаючи на те, що архітектури U-Net були популярними для моделей дифузії зображень, нещодавні роботи досліджували використання трансформаторних архітектур. Трансформатори мають кілька потенційних переваг:
Покращена робота з далекими залежностями
Більш гнучкі механізми кондиціонування
Простіше масштабування до більших розмірів моделі
Моделі подобаються DiT (дифузійні трансформатори) показали багатообіцяючі результати, потенційно пропонуючи шлях до ще більш якісного виробництва.
Моделі ієрархічної дифузії
Моделі ієрархічної дифузії генерують дані в кількох масштабах, що забезпечує як глобальну узгодженість, так і дрібні деталі. Процес зазвичай включає:
Створення виходу з низькою роздільною здатністю
Поступове підвищення дискретизації та вдосконалення
Цей підхід може бути особливо ефективним для створення зображень із високою роздільною здатністю або створення довгоформатного вмісту.
Розширені теми
Керівництво без класифікатора
Керівництво без класифікатора це техніка для покращення якості зразка та керованості. Ключова ідея полягає в тому, щоб навчити дві моделі дифузії:
Безумовна модель 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. U-Net, керуючись механізмами перехресної уваги, інтегрує інформацію з різних джерел кондиціонування, таких як семантичні карти, текст і представлення зображень, остаточно реконструюючи зображення в піксельному просторі. Цей процес є ключовим у створенні високоякісних зображень із контрольованою структурою та бажаними атрибутами.
Це дає кілька переваг:
Швидше навчання та вибірка
Покращена робота із зображеннями високої роздільної здатності
Легше включити кондиціонування
Процес працює наступним чином:
Навчіть автокодер стискати зображення до латентного простору
Навчіть модель дифузії в цьому прихованому просторі
Для генерації вибірка в латентному просторі та декодування в пікселі
Цей підхід виявився дуже успішним, оскільки використовував такі моделі, як Stable Diffusion.
Моделі узгодженості
Моделі узгодженості – це нещодавня інновація, спрямована на покращення швидкості та якості моделей дифузії. Ключова ідея полягає в тому, щоб навчити єдину модель, яка може зіставляти будь-який рівень шуму безпосередньо з кінцевим виходом, замість того, щоб вимагати повторного усунення шумів.
Це досягається завдяки ретельно розробленій функції втрат, яка забезпечує узгодженість між прогнозами на різних рівнях шуму. Результатом є модель, яка може генерувати високоякісні зразки за один прохід вперед, що значно прискорює логічний висновок.
Практичні поради щодо навчання моделям дифузії
Навчання високоякісних дифузійних моделей може бути складним завданням. Ось кілька практичних порад щодо покращення стабільності тренувань і результатів:
Відрізання градієнта: Використовуйте обрізання градієнта, щоб запобігти вибуховим градієнтам, особливо на початку навчання.
EMA ваг моделі: Зберігайте експоненціальне ковзне середнє (EMA) ваг моделі для вибірки, що може призвести до стабільнішого та якіснішого генерування.
Збільшення даних: для моделей зображень прості доповнення, такі як випадкові горизонтальні перевороти, можуть покращити узагальнення.
Планування шуму: Експериментуйте з різними графіками шуму (лінійним, косинусним, сигмоїдним), щоб знайти те, що найкраще підходить для ваших даних.
Змішана підготовка точності: використовуйте змішане навчання точності, щоб зменшити використання пам’яті та прискорити навчання, особливо для великих моделей.
Умовна генерація: Навіть якщо вашою кінцевою метою є безумовна генерація, навчання з кондиціонуванням (наприклад, на класах зображень) може покращити загальну якість вибірки.
Оцінка моделей дифузії
Належна оцінка генеративних моделей є важливою, але складною. Ось деякі загальні показники та підходи:
Початкова відстань Фреше (FID)
FID це широко використовувана метрика для оцінки якості та різноманітності створених зображень. Він порівнює статистику згенерованих зразків із реальними даними в просторі ознак попередньо навченого класифікатора (як правило, InceptionV3).
Нижчі показники FID вказують на кращу якість і більш реалістичний розподіл. Однак FID має обмеження і не повинен бути єдиним використовуваним показником.
Початкова оцінка (IS)
Початковий бал вимірює як якість, так і різноманітність створених зображень. Він використовує попередньо навчену мережу Inception для обчислення:
IS = exp(E[KL(p(y|x) || p(y))])
Де p(y|x) — умовний розподіл класів для згенерованого зображення x.
Вищий IS вказує на кращу якість і різноманітність, але він має відомі обмеження, особливо для наборів даних, які сильно відрізняються від ImageNet.
Для дифузійних моделей ми можемо обчислити від’ємну логарифм правдоподібності затриманих даних. Це забезпечує пряме вимірювання того, наскільки добре модель відповідає справжньому розподілу даних.
Однак NLL може бути обчислювально дорогим для точної оцінки для даних великої розмірності.
Оцінка людини
Для багатьох застосувань, особливо творчих, людська оцінка залишається вирішальною. Це може включати:
Порівняння з іншими моделями
Оцінки в стилі тесту Тьюринга
Оцінювання конкретних завдань (наприклад, підписи до зображень для моделей тексту в зображення)
Незважаючи на те, що оцінка людьми є суб’єктивною, вона може охопити ті аспекти якості, які не враховуються автоматизованими показниками.
Дифузійні моделі у виробництві
Розгортання дифузійних моделей у виробничих середовищах представляє унікальні проблеми. Ось деякі міркування та найкращі практики:
Оптимізація для висновків
Експорт ONNX: конвертуйте моделі у формат ONNX для швидшого висновку на різному обладнанні.
Квантування: Використовуйте такі методи, як квантування INT8, щоб зменшити розмір моделі та покращити швидкість висновку.
кешування: для умовних моделей кешуйте проміжні результати для безумовної моделі, щоб пришвидшити вказівки без класифікаторів.
Пакетна обробка: Використовуйте групування для ефективного використання ресурсів GPU.
Масштабування
Розподілений логічний висновок: для програм з високою пропускною здатністю реалізуйте розподілений висновок між кількома графічним процесором або машиною.
Адаптивна вибірка: динамічно регулюйте кількість кроків вибірки на основі бажаного компромісу між якістю та швидкістю.
Прогресивне покоління: для великих результатів (наприклад, зображень із високою роздільною здатністю) генеруйте поступово від низької до високої роздільної здатності, щоб отримати швидші початкові результати.
Безпека та фільтрація
фільтрація вмісту: Впровадити надійні системи фільтрації вмісту, щоб запобігти створенню шкідливого або невідповідного вмісту.
Водяний знак: подумайте про включення невидимих водяних знаків у створений вміст для відстеження.
додатків
Дифузійні моделі знайшли успіх у широкому діапазоні генеративних завдань:
Генерація зображень
Створення зображень – це те, де дифузійні моделі вперше набули популярності. Деякі відомі приклади включають:
ВІД-Є 3: модель перетворення тексту в зображення OpenAI, яка поєднує кодер тексту CLIP із декодером дифузійного зображення
Стабільна дифузія: модель прихованої дифузії з відкритим кодом для створення тексту в зображення
Зображення: модель поширення тексту в зображення Google
Ці моделі можуть створювати дуже реалістичні та творчі зображення з текстових описів, перевершуючи попередні підходи на основі GAN.
Генерація відео
Дифузійні моделі також були застосовані для створення відео:
Моделі розповсюдження відео: генерування відео шляхом розгляду часу як додаткового виміру в процесі дифузії
Зробіть відео: модель поширення тексту у відео Meta
Imagen Відео: модель поширення тексту у відео Google
Ці моделі можуть створювати короткі відеоролики з текстових описів, відкриваючи нові можливості для створення контенту.
Генерація 3D
Остання робота розширила дифузійні моделі до генерації 3D:
DreamFusion: Генерація тексту в 3D за допомогою моделей 2D дифузії
точка: Дифузійна модель хмари точок OpenAI для створення тривимірних об’єктів
Ці підходи дозволяють створювати 3D-ресурси з текстових описів із застосуванням в іграх, VR/AR і дизайні продуктів.
Виклики та майбутні напрямки
Незважаючи на те, що дифузійні моделі показали надзвичайний успіх, все ще є кілька проблем і областей для майбутніх досліджень:
Обчислювальна ефективність
Ітеративний процес вибірки дифузійних моделей може бути повільним, особливо для вихідних даних із високою роздільною здатністю. Такі підходи, як моделі прихованої дифузії та узгодженості, спрямовані на вирішення цього питання, але подальше підвищення ефективності є активною сферою досліджень.
Керованість
Незважаючи на те, що такі методи, як настанова без класифікаторів, покращили керованість, ще потрібно попрацювати, щоб забезпечити більш детальний контроль над згенерованими результатами. Це особливо важливо для творчих додатків.
Мультимодальна генерація
Сучасні дифузійні моделі чудово підходять для генерації однієї модальності (наприклад, зображень чи аудіо). Розробка дійсно мультимодальних дифузійних моделей, які можуть легко генерувати різні модальності, є захоплюючим напрямком для майбутньої роботи.
Теоретичне розуміння
Хоча дифузійні моделі мають сильні емпіричні результати, ще потрібно зрозуміти, чому вони працюють так добре. Розвиток глибшого теоретичного розуміння може призвести до подальших удосконалень і нових застосувань.
Висновок
Дифузійні моделі представляють собою крок вперед у генеративному штучному інтелекті, пропонуючи високоякісні результати в різних модальностях. Навчившись змінювати процес додавання шуму, вони забезпечують гнучкий і теоретично обґрунтований підхід до генерації.
Від творчих інструментів до наукового моделювання, здатність генерувати складні багатовимірні дані має потенціал для трансформації багатьох сфер. Однак важливо зважено підходити до цих потужних технологій, враховуючи як їхній величезний потенціал, так і етичні проблеми, які вони представляють.
Останні п’ять років я провів, занурюючись у захоплюючий світ машинного та глибокого навчання. Моя пристрасть і досвід допомогли мені внести свій внесок у понад 50 різноманітних проектів розробки програмного забезпечення, зосередивши особливу увагу на ШІ/ML. Моя постійна цікавість також привела мене до обробки природної мови, галузі, яку я хочу досліджувати далі.