трансформер в машинном обучении
Трансформер в машинном обучении — архитектура нейронной сети, основанная на механизме само-внимания (self-attention), которая произвела революцию в обработке естественного языка и вышла далеко за его пределы. Предложенная в 2017 году в статье «Attention Is All You Need», эта архитектура сегодня лежит в основе GPT, BERT, DALL-E, AlphaFold и сотен других моделей.
Проблема, которую решил трансформер
До трансформеров последовательные данные обрабатывались рекуррентными сетями (RNN, LSTM). Их главный недостаток — последовательный характер вычислений: для получения представления слова N нужно пройти через все предыдущие N-1 шагов. Это делало обучение медленным и создавало трудности с долгосрочными зависимостями в длинных текстах.
Трансформер заменяет рекурсию на параллельные операции внимания, что позволяет каждому элементу последовательности напрямую «видеть» все остальные элементы, независимо от расстояния между ними.
Механизм само-внимания
Само-внимание вычисляет для каждого токена его взаимосвязи со всеми остальными токенами последовательности. Каждый токен проецируется в три вектора: Query (запрос), Key (ключ) и Value (значение). Сходство между Query одного токена и Key другого определяет, насколько сильно второй повлияет на выход первого.
Формула: Attention(Q, K, V) = softmax(QKᵀ / √dₖ) · V, где dₖ — размерность ключей (масштабирование предотвращает насыщение softmax). Результат — взвешенная сумма векторов Value, где веса отражают релевантность.
Многоголовое внимание
Вместо одной матрицы внимания используется H параллельных «голов» (heads) с независимыми проекциями. Каждая голова фокусируется на разных аспектах: одна — синтаксических связях, другая — семантических, третья — дальних кореферентных зависимостях. Результаты конкатенируются и проецируются обратно в исходное пространство.
Позиционные кодировки
Само-внимание инвариантно к порядку токенов — нужно явно добавить информацию о позиции. Оригинальный трансформер использует синусоидальные кодировки. Современные модели предпочитают RoPE (Rotary Position Embedding, LLaMA, Mistral) и ALiBi — они лучше обобщаются на длины контекста, превышающие обучающие.
Encoder, Decoder и их варианты
Encoder-only (BERT, RoBERTa)
Обрабатывает весь контекст двунаправленно. Лучше подходит для задач понимания: классификация, NER, вопросно-ответные системы с извлечением. Обучается на masked language modeling — предсказании замаскированных токенов.
Decoder-only (GPT, LLaMA, Mistral)
Видит только предыдущие токены (causal masking). Обучается предсказывать следующий токен. Естественен для генеративных задач и масштабируется лучше всего. Стал стандартом для LLM.
Encoder-Decoder (T5, BART, mT5)
Encoder кодирует источник, Decoder генерирует цель с кросс-вниманием к энкодеру. Оптимален для машинного перевода, суммаризации, seq2seq.
Трансформеры за пределами NLP
Vision Transformer (ViT) применяет трансформер к патчам изображений — теперь конкурирует с лучшими CNN. DALL-E, Stable Diffusion (в диффузионной части) используют трансформеры для понимания текстовых промптов. AlphaFold2 произвёл революцию в предсказании структуры белков. Decision Transformer решает задачи RL как задачи последовательного предсказания.
Вычислительная сложность и оптимизации
Стандартное само-внимание квадратично по длине последовательности: O(n²). Для длинных документов это ограничение. Flash Attention реорганизует вычисления для эффективного использования памяти GPU (IO-awareness), ускоряя обучение в 2–4 раза. Sparse Attention, Longformer, BigBird снижают сложность до O(n log n) или O(n) за счёт разреженных паттернов внимания.
Почему трансформер стал доминирующей архитектурой
Параллелизируемость обучения, способность захватывать дальние зависимости, превосходное масштабирование, универсальность для разных модальностей и задач — всё это сделало трансформер стандартом де-факто. Единственная существенная альтернатива — архитектуры на основе State Space Models (Mamba), которые могут быть эффективнее на очень длинных последовательностях.
Частые вопросы
Почему трансформер лучше LSTM для языковых задач?
LSTM обрабатывает последовательность шаг за шагом, что ограничивает параллелизм при обучении и создаёт узкое место при передаче информации на большие расстояния. Трансформер обрабатывает всю последовательность параллельно через само-внимание, что ускоряет обучение и позволяет любому токену напрямую взаимодействовать с любым другим без «затухания» сигнала.
Что такое токен в контексте трансформера?
Токен — базовая единица текста, которую обрабатывает модель. Это не обязательно слово: токенизаторы (BPE, SentencePiece) разбивают текст на подслова. Например, «программирование» может быть токенизировано как «программи» + «рование». Среднее слово в русском языке — около 1,5–2 токена.
Как трансформеры используются в компьютерном зрении?
Vision Transformer (ViT) разбивает изображение на патчи фиксированного размера (например, 16×16 пикселей), преобразует каждый в вектор и подаёт их как «токены» в стандартный трансформерный энкодер. Механизм само-внимания позволяет учитывать глобальные зависимости между патчами. При достаточном объёме данных ViT превосходит CNN в задачах классификации и детекции.
Другие термины в теме «ИИ и машинное обучение»
Не хватает деталей?
Напишите, что уточнить по теме «трансформер в машинном обучении» — это помогает улучшать материал и подсказывает, какие термины добавить дальше. Email необязателен: укажите, если хотите ответ только для вас (мы не шлём рассылки).