Мы рассмотрели архитектуры для текста, чисел и последовательностей - от простых RNN до гигантских MoE-трансформеров. Но есть ещё одна важная область, где ИИ добился потрясающих результатов, - генерация изображений. Долгое время здесь правили бал GAN-ы6 (Generative Adversarial Networks), но несколько лет назад произошла тихая революция. На сцену вышли диффузионные модели - те самые, что лежат в основе Midjourney, Stable Diffusion и Kandinsky.
Диффузионные модели обучаются постепенно добавлять шум к данным, а затем восстанавливать исходное распределение, убирая шум. Используются для генерации изображений.
Название «диффузия» пришло из физики, но не пугайтесь - идея на удивление проста и красива. Представьте, что вы учите модель не рисовать с нуля, а постепенно убирать шум с зашумлённой картинки, шаг за шагом проявляя изображение.
1. Логика идеи (Откуда взялось название)
Термин пришёл из физики (термодинамика). Если капнуть чернила в стакан с водой, они постепенно «растворятся» и равномерно распределятся - это процесс прямой диффузии (порядок → хаос).
Диффузионная модель делает обратное: берёт хаос (шум) и организует его в картинку.
По шагам это выглядит так
· Берём реальную фотографию кота.
· Медленно, шаг за шагом, добавляем к ней случайный шум (как помехи на старом телевизоре).
· Через много шагов картинка превращается в чистое «снежное поле» - абстрактный шум.
Модель обучается брать этот шум и проходить процесс в обратную сторону: убирать шум шаг за шагом, восстанавливая кота.
2. Как это устроено технически (коротко)
У модели два процесса

Аналогия с реставрацией
Представьте, что вам дали сильно повреждённую фреску (почти стёртую в пыль). Вы смотрите на неё и говорите: «Здесь, судя по фактуре, должна быть рука, а здесь - кусочек неба». Диффузионная модель делает то же самое, только с шумом.
3. Практическая сторона (Как это используют)
Генерация по тексту (Text-to-Image)
Когда вы пишете «красный дракон в стиле киберпанк», происходит следующее:
Текст → вектор
Ваш запрос превращается в эмбеддинг (как в языковых моделях).
Управление шумом
Модель начинает со случайного шума. На каждом шаге уборки шума она сверяется с текстовым вектором и спрашивает: «Соответствует ли то, что я сейчас восстанавливаю, слову "дракон"?». Если нет - корректирует.
Итерации
Проходит, например, 50 шагов очистки, и на выходе получается картинка.
Где применяется
· Stable Diffusion, Kandinsky, Midjourney: рисование по тексту.
· Inpainting (дорисовка): закрасили часть картинки - модель дорисует фон так, что не отличить.
· Super-resolution: повышение разрешения старых фотографий (модель «угадывает» детали, которых не было).
· Видео и 3D: генерация плавных переходов между кадрами или создание трёхмерных объектов.
4. Почему именно диффузия победила GAN-ы?
Раньше картинки генерировали через GAN, где две сети соревнуются: одна подделывает, другая ловит. Это работало, но было нестабильно (режим коллапса, когда сеть рисовала одно и то же).
Диффузия дала
Стабильность обучения
просто предсказываем шум - простая функция потерь (MSE, Mean Squared Error - средняя квадратичная ошибка), никаких соревнований.
Разнообразие
может сгенерировать бесконечное количество вариантов, потому что стартует с разного случайного шума.
Контроль
легко «подмешивать» условия (текст, контур, другую картинку) на каждом шаге очистки.
Важный нюанс
GAN-ы не умерли полностью. В задачах, где требуется фотореалистичная генерация лиц или конкретных объектов с минимальными искажениями, GAN-ы до сих пор держат позиции (например, StyleGAN3). Диффузия победила в массовых текстово-картиночных сервисах (Midjourney, Stable Diffusion) благодаря своей стабильности и контролируемости, но в узких нишах GAN-ы продолжают использоваться.
Диффузионная модель
это генератор, который учится превращать шум в осмысленное изображение, проходя множество маленьких шагов очистки. На каждом шаге она сверяется с текстовым запросом, постепенно проявляя детали. Это медленнее, чем одна проходка нейросети (нужно 20–50 последовательных шагов), зато результат получается детальным и разнообразным.
Мы разобрали, как трансформеры работают с текстом. Но та же архитектура - с минимальными изменениями - применяется к изображениям, звуку и даже видео. И ключевая идея здесь: превратить «не-текст» в последовательность, похожую на токены.
Как это работает для картинок (Vision Transformer, ViT)
Представьте, что вы берете фотографию и разрезаете её на маленькие квадратики одинакового размера - например, 16×16 пикселей. Каждый квадратик (патч) - это аналог токена. В отличие от текста, у патчей нет заранее заготовленного словаря.
Но есть важный нюанс: сырой патч - это просто 16×16×3 = 768 чисел (яркости красного, зеленого и синего для каждого пикселя). Сами по себе эти числа говорят только о цвете. Чтобы модель могла работать с патчем, этого мало - ей нужно больше «места» для записи сложных признаков: есть ли здесь граница? Похоже ли это на глаз? Какая текстура?
Поэтому каждый патч пропускается через линейный слой, который превращает 768 чисел в вектор гораздо большей размерности (например, 4096). Это не сжатие, а расширение. Модель сама учится заполнять эти 4096 чисел так, чтобы в них помещались все важные признаки патча: форма, структура, отношение к соседям. Это как если бы вы попросили эксперта описать квадратик не тремя словами («красный, круглый, яркий»), а 4096 словами - в таком описании поместится всё, что нужно.
Дальше - всё как в текстовом трансформере
К каждому вектору добавляется информация о позиции (чтобы модель знала, где был этот квадратик - в левом верхнем углу или в правом нижнем).
Механизм внимания ищет связи между патчами: «этот квадратик похож на глаз, а этот - на нос, и они должны быть рядом».
Многослойные блоки строят иерархию признаков: от простых (границы, текстуры) до сложных (ухо, хвост, морда).
Почему это важно понимать
Трансформеры не «заточены» под текст. Они универсальны. Любые данные, которые можно разбить на последовательность кусочков (патчей), можно скормить трансформеру. Разница лишь в том, как мы получаем эти кусочки и как превращаем их в начальные векторы.
Для звука - это короткие фрагменты аудиодорожки. Для видео - последовательность кадров или пространственно-временные патчи. Для генома - участки ДНК.
И везде работает один и тот же принцип: сырые данные превращаются в векторы, размерность которых выбирается инженером. Больше размерность - больше «места» для сложных признаков, но медленнее работа. Меньше - экономия памяти, но риск потерять детали.
Метафора
Трансформер - это универсальный читатель. Ему всё равно, на каком языке написана книга: словами, пикселями или нотами. Но перед чтением ему нужно, чтобы каждую «букву» описали не одним словом, а целым абзацем - так, чтобы в этом описании поместились все нюансы. Линейный слой - это и есть тот самый «переводчик», который превращает сырой пиксель в такой подробный абзац-вектор.
Итак, мы совершили обзор основных архитектур - от свёрточных сетей до диффузионных моделей, а также заглянули за рамки текста, чтобы понять, как те же принципы работают с изображениями. Теперь вы понимаете, чем они отличаются и для каких задач предназначены. Но архитектура - это только «железо» модели. Чтобы она заработала, её нужно обучить. А обучение современных моделей - это отдельная инженерная вселенная со своими этапами, ценами и компромиссами. Об этом - в следующей главе.