
Полная версия
Инжиниринг искусственного интеллекта
Даже если технически модель может принять миллион токенов на вход, на практике информация из начала последовательности теряется в шумах внимания. Первые токены «вымываются» - их влияние на финальный ответ становится пренебрежимо малым. Это не баг, а следствие того, что внимание распределяется по всей длине, и длинные хвосты просто «перекрикивают» начало.
Проблема 3: Гигантские требования к памяти
Даже с KV Cache трансформеры требуют огромного количества памяти. Веса модели (сотни гигабайт), кэш для длинного контекста (ещё гигабайты), промежуточные вычисления - всё это делает развёртывание больших моделей дорогим и сложным. Для задач, где важна работа на периферии (на телефоне, в браузере), трансформеры часто оказываются слишком тяжёлыми.
Трансформеры - стандарт для LLM, но для задач на периферии, в реальном времени и на слабом железе RNN/LSTM/GRU и их современные аналоги (Mamba, RWKV) остаются лучшим выбором. Не выкидывайте их из инженерного арсенала
Альтернативы, которые бросают вызов трансформеру
Инженеры не сидят сложа руки. Уже есть архитектуры, которые пытаются решить эти проблемы и в некоторых задачах показывают результаты, сопоставимые с трансформерами.
State Space Models (SSM) - линейная сложность
Модели на основе пространства состояний (например, Mamba) предлагают принципиально иной подход: они обрабатывают последовательности как динамическую систему, обновляя скрытое состояние по мере чтения. Сложность - O(n) вместо O(n²). Это позволяет работать с контекстами в миллионы токенов без специальных оптимизаций. Mamba показывает результаты, близкие к трансформерам, на задачах вроде моделирования языка, и при этом требует значительно меньше памяти. Плата за скорость - чуть хуже качество на задачах, где важны сложные дальние зависимости.
RWKV (Receptance Weighted Key Value) - смесь трансформера и RNN
RWKV - это гибрид, который берёт лучшее от двух миров. Как RNN, он обрабатывает последовательность линейно и не требует квадратичной памяти. Как трансформер, он использует механизмы, похожие на внимание, и может быть эффективно обучен на GPU. RWKV показывает достойные результаты при существенно меньших требованиях к ресурсам, что делает его привлекательным для развёртывания на слабом железе.
RetNet (Retentive Network) - ещё один гибрид
RetNet от Microsoft сочетает параллелизм трансформера (для обучения) с линейной сложностью рекуррентных сетей (для инференса). На больших контекстах он может быть в десятки раз быстрее трансформера при сопоставимом качестве.
Важно понимать
Эти архитектуры пока уступают трансформерам не только в зрелости экосистемы, но и в стабильности обучения на больших масштабах.
Трансформеры за более чем семь лет эволюции обросли огромным количеством инженерных хитростей - специальные инициализации, хитрые оптимизаторы, проверенные схемы нормализации, техники борьбы с нестабильностью градиентов. У Mamba, RWKV и RetNet такого багажа пока нет. При масштабировании до сотен миллиардов параметров они могут вести себя непредсказуемо: loss может «срываться» в бесконечность, градиенты - взрываться, а сходимость - требовать десятков экспериментов с гиперпараметрами. Для исследовательских проектов это приемлемо, для продакшена - риск, который нужно закладывать в бюджет.
Однако у этих альтернатив есть важное ограничение: экосистема.
Вокруг трансформеров выстроены тысячи инструментов, библиотек, фреймворков и предобученных моделей. Для Mamba или RWKV пока нет такого же богатства готовых решений, оптимизированных ядер, инструментов для дообучения и развёртывания. Если вы строите экспериментальный проект или работаете на периферии - это не проблема. Если вам нужен стабильный продакшен с поддержкой сообщества - трансформеры всё ещё вне конкуренции.
Так умрёт ли трансформер?
Скорее всего, нет. Трансформеры стали стандартом де-факто, вокруг них выстроена гигантская экосистема инструментов, библиотек и обученных моделей. Но в задачах, где критичны сверхдлинные контексты или работа на периферии, альтернативы уже начинают вытеснять трансформеры. Скорее всего, будущее - за гибридными подходами, которые возьмут лучшее от обеих архитектур.
Для инженера это означает, что выбор архитектуры зависит от задачи:
· Если нужен универсальный солдат и есть бюджет - берите трансформер.
· Если нужно обрабатывать миллионы токенов или работать на слабом железе - присмотритесь к Mamba или RWKV.
· Если вы строите систему с нуля и готовы экспериментировать - следите за новыми SSM-архитектурами, они развиваются стремительно.
Все эти модели - плотные трансформеры, где каждый нейрон участвует в каждом вычислении. Они стали фундаментом, на котором строится современный ИИ. Но инженеры заметили, что разные задачи требуют разных знаний. Что если не заставлять одну модель учиться всему сразу, а собрать команду специалистов?
Так появилась архитектура, которая позволила перешагнуть порог в триллион параметров - коллектив экспертов (Mixture of Experts, MoE). О ней мы подробно поговорим в следующем разделе.
2.6 MoE (Mixture of Experts / Коллектив экспертов)
По мере того как модели росли, росла и цена их обучения и использования. GPT-3 со своими 175 миллиардами параметров уже стоил десятки миллионов долларов. Но мир хотел большего. И тут инженеры вспомнили старую идею: а что если не активировать все нейроны сразу, а включать только те, которые нужны для конкретной задачи? Так родилась архитектура MoE - в переводе дословно «Смесь экспертов» или «коллектив экспертов».
Трансформер, в котором слои FFN заменены на множество параллельных экспертов (experts). Входной токен направляется не во все эксперты, а только в несколько, выбранных маршрутизатором (router). Это позволяет наращивать общее число параметров (до триллионов), сохраняя вычислительную стоимость активных параметров на уровне небольшой модели.
MoE - это трансформер, где вместо одного «толстого» специалиста работают десятки узких экспертов, а умный диспетчер решает, к кому обратиться за конкретным токеном.
Идея (метафора)
Представьте клинику, где вместо одного терапевта наняли 100 узких специалистов: окулист, кардиолог, невролог и т.д. Когда приходит пациент (токен), администратор (роутер) быстро определяет, к кому его направить - например, только к окулисту и кардиологу. Остальные 98 специалистов в это время отдыхают.
В штате клиники числится 100 врачей (общие параметры), но на каждого пациента работают только двое (активные параметры). Клиника может позволить себе лучших экспертов, но платит зарплату только за фактически отработанные часы.
В этой метафоре скрыт главный секрет MoE: общий штат врачей (параметров) может быть огромным, но на каждого пациента работают только двое. Это даёт качество большой модели при скорости маленькой.
Как это устроено технически
В обычном трансформере каждый токен проходит через один и тот же слой FFN. В MoE вместо одного FFN ставится множество параллельных FFN - это и есть эксперты. Добавляется маршрутизатор - обычно это небольшой линейный слой с softmax, который для каждого токена вычисляет распределение вероятностей по экспертам и оставляет только K лучших (обычно K=1 или 2). Выход токена - взвешенная сумма выходов выбранных экспертов.
Звучит красиво, но на практике инженеры столкнулись с неожиданной проблемой: маршрутизатор иногда «влюблялся» в двух-трёх экспертов и отправлял всех пациентов только к ним. Остальные простаивали, память была занята, а пользы - ноль.
Ключевой трюк: маршрутизатор активирует не всех экспертов, а только K самых релевантных (обычно K=1 или 2). Остальные эксперты для этого токена простаивают, экономя память и вычисления.
Зачем это нужно
Главная цель MoE
Масштабирование без взрывного роста затрат
Можно сделать модель с триллионом параметров (огромная «копилка знаний»), но на каждом шаге обрабатывать токен лишь небольшой частью сети. Это даёт качество большой модели при скорости маленькой.
Пример
У Mixtral 8x7B общее число параметров - 47 млрд, но при обработке токена работает только 13 млрд (2 эксперта из 8). Формально это огромная модель, фактически - средняя по затратам.
Где используется
LLM-гиганты
GPT-4 (предположительно 16 экспертов), Mixtral (8 экспертов), DeepSeek-V3 (256 экспертов, но активны только 6), Grok.
Мультимодальность
Можно сделать экспертов под текст, под изображения, под звук - роутер сам направит данные куда надо.
Главная проблема и её решение
Проблема
Роутер может «полюбить» двух-трёх экспертов и отправлять токены только к ним. Остальные не обучаются, превращаются в «мёртвый груз» - память занята, пользы нет.
Решение
Инженеры добавляют штраф за неравномерность в функцию потерь или динамически балансируют нагрузку, подкручивая предпочтения роутера. В современных моделях (DeepSeek) это делается без штрафов, через хитрую динамику. Балансировка нагрузки достигается комбинацией вспомогательной функции потерь (auxiliary load-balancing loss) и динамического роутинга с температурой, которая адаптируется в процессе обучения для предотвращения коллапса на 1–2 экспертах. Полный отказ от регуляризации встречается редко, так как ведёт к коллапсу экспертов.
Инженерная деталь
Эта балансировка чаще всего реализуется через дополнительный штраф (auxiliary loss) в функции ошибки. Если какой-то эксперт получает слишком мало токенов, модель штрафуется. Это заставляет роутер использовать всех экспертов равномерно, иначе часть параметров модели превратится в «мертвый груз» - будет занимать память, но не обучаться.
MoE - это способ сделать модель «широкой, но не глубокой» в вычислительном смысле. Много экспертов = много знаний, мало активных = быстрая работа. Архитектура, которая позволила индустрии перешагнуть порог в триллион параметров, не сломав бюджет на инференс.
Мы рассмотрели архитектуры для текста и чисел. Казалось бы, трансформер универсален. Но при работе с изображениями высокого разрешения он упирается в свою главную слабость: квадратичную сложность внимания. Считать попарные связи между миллионами пикселей - непозволительная роскошь. Поэтому в области генерации изображений правят бал не трансформеры (хотя они и проникают туда через патчи), а принципиально иной подход - диффузионные модели, которые решают задачу не через "внимание ко всему сразу", а через постепенное удаление шума.
2.7 Diffusion Models (Диффузионные модели)
Мы рассмотрели архитектуры для текста, чисел и последовательностей - от простых 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 последовательных шагов), зато результат получается детальным и разнообразным.
2.8 За рамками текста: как трансформеры научились видеть
Мы разобрали, как трансформеры работают с текстом. Но та же архитектура - с минимальными изменениями - применяется к изображениям, звуку и даже видео. И ключевая идея здесь: превратить «не-текст» в последовательность, похожую на токены.
Как это работает для картинок (Vision Transformer, ViT)
Представьте, что вы берете фотографию и разрезаете её на маленькие квадратики одинакового размера - например, 16×16 пикселей. Каждый квадратик (патч) - это аналог токена. В отличие от текста, у патчей нет заранее заготовленного словаря.
Но есть важный нюанс: сырой патч - это просто 16×16×3 = 768 чисел (яркости красного, зеленого и синего для каждого пикселя). Сами по себе эти числа говорят только о цвете. Чтобы модель могла работать с патчем, этого мало - ей нужно больше «места» для записи сложных признаков: есть ли здесь граница? Похоже ли это на глаз? Какая текстура?
Поэтому каждый патч пропускается через линейный слой, который превращает 768 чисел в вектор гораздо большей размерности (например, 4096). Это не сжатие, а расширение. Модель сама учится заполнять эти 4096 чисел так, чтобы в них помещались все важные признаки патча: форма, структура, отношение к соседям. Это как если бы вы попросили эксперта описать квадратик не тремя словами («красный, круглый, яркий»), а 4096 словами - в таком описании поместится всё, что нужно.
Дальше - всё как в текстовом трансформере
К каждому вектору добавляется информация о позиции (чтобы модель знала, где был этот квадратик - в левом верхнем углу или в правом нижнем).
Механизм внимания ищет связи между патчами: «этот квадратик похож на глаз, а этот - на нос, и они должны быть рядом».
Многослойные блоки строят иерархию признаков: от простых (границы, текстуры) до сложных (ухо, хвост, морда).
Почему это важно понимать
Трансформеры не «заточены» под текст. Они универсальны. Любые данные, которые можно разбить на последовательность кусочков (патчей), можно скормить трансформеру. Разница лишь в том, как мы получаем эти кусочки и как превращаем их в начальные векторы.
Для звука - это короткие фрагменты аудиодорожки. Для видео - последовательность кадров или пространственно-временные патчи. Для генома - участки ДНК.
И везде работает один и тот же принцип: сырые данные превращаются в векторы, размерность которых выбирается инженером. Больше размерность - больше «места» для сложных признаков, но медленнее работа. Меньше - экономия памяти, но риск потерять детали.
Метафора
Трансформер - это универсальный читатель. Ему всё равно, на каком языке написана книга: словами, пикселями или нотами. Но перед чтением ему нужно, чтобы каждую «букву» описали не одним словом, а целым абзацем - так, чтобы в этом описании поместились все нюансы. Линейный слой - это и есть тот самый «переводчик», который превращает сырой пиксель в такой подробный абзац-вектор.
Итак, мы совершили обзор основных архитектур - от свёрточных сетей до диффузионных моделей, а также заглянули за рамки текста, чтобы понять, как те же принципы работают с изображениями. Теперь вы понимаете, чем они отличаются и для каких задач предназначены. Но архитектура - это только «железо» модели. Чтобы она заработала, её нужно обучить. А обучение современных моделей - это отдельная инженерная вселенная со своими этапами, ценами и компромиссами. Об этом - в следующей главе.
РЕЗЮМЕ ГЛАВЫ 2
CNN (свёрточные сети) используют скользящее окно с обучаемыми фильтрами; эффективны для изображений, но не для текста из-за отсутствия пространственной структуры.
RNN (рекуррентные сети) обрабатывают текст последовательно, ведя блокнот-память, но страдают от невозможности параллелизации и затухания градиентов.
LSTM добавляет три вентиля (забывания, входной, выходной) и «ленту конвейера» (cell state), решая проблему долгой памяти, но остаётся последовательной.
GRU - упрощённая LSTM с двумя вентилями (reset и update), на 25–30% меньше параметров, чуть быстрее, но чуть хуже на сверхдлинных последовательностях.
Трансформер обрабатывает все токены параллельно через механизм самовнимания. Однако у трансформера есть фундаментальные недостатки: квадратичная сложность внимания (O(n²)), «вымывание» первых токенов на длинных контекстах и гигантские требования к памяти.
Decoder-only (GPT, LLaMA) - генерирует текст, глядя только на прошлые токены; основа всех современных чат-ботов.
Encoder-only (BERT, RoBERTa) - понимает текст целиком (двунаправленное внимание), но не генерирует; используется для анализа и классификации.
Encoder-Decoder (T5, BART) - преобразует одну последовательность в другую; идеален для перевода и суммаризации.
MoE (коллектив экспертов) заменяет один FFN множеством экспертов, активируя только 1–2 из них; позволяет иметь триллионы параметров при умеренных затратах на инференс.
Диффузионные модели учатся постепенно убирать шум с картинки; победили GAN-ы в text-to-image благодаря стабильности и контролю (Midjourney, Stable Diffusion).
Альтернативы трансформеру - State Space Models (Mamba) и гибриды (RWKV, RetNet) предлагают линейную сложность O(n) и работу с контекстами в миллионы токенов. Плата - чуть хуже качество на задачах со сложными дальними связями.
Экосистема имеет значение. У трансформеров - тысячи готовых инструментов, библиотек и фреймворков. Альтернативы пока уступают в зрелости: для них меньше предобученных моделей, хуже документация и почти нет корпоративной поддержки. Для экспериментальных проектов это неважно, для продакшена - критично.
Гибридные подходы набирают силу. Некоторые новые архитектуры (Jamba, S4) пытаются комбинировать лучшие черты трансформеров и SSM: брать внимание для сложных зависимостей и линейную сложность для длинных контекстов. Скорее всего, будущее именно за гибридами.
Инженерный вывод
Выбор архитектуры зависит от задачи. Для универсальных решений с бюджетом - трансформер. Для сверхдлинных контекстов или работы на периферии - Mamba или RWKV. Для продакшена с жёсткими требованиями к памяти - гибриды. Трансформер остаётся стандартом, но не единственным игроком на поле.







