Новый курс «GPT-4 в бизнес-аналитике» — запись открыта. Узнать подробнее →
19 фев 2025 22 мин чтения NLP Архитектуры Практика

Трансформеры: от «Attention is All You Need» до современных LLM

Полное практическое руководство по архитектуре трансформеров — от математики механизма внимания до fine-tuning собственной модели на реальных данных

Визуализация архитектуры трансформера с цветными линиями внимания между токенами текста на тёмном технологическом фоне

В 2017 году восемь исследователей Google опубликовали статью «Attention is All You Need». Шесть лет спустя трансформерная архитектура лежит в основе всех крупнейших языковых моделей, систем компьютерного зрения и мультимодальных систем. Если вы работаете в ML и ещё не разобрались в трансформерах — это руководство закроет этот пробел раз и навсегда.

Почему трансформеры победили RNN

До 2017 года стандартом для задач обработки последовательностей были рекуррентные сети (LSTM, GRU). У них было три фундаментальных ограничения:

  • Последовательная обработка — следующий токен нельзя обработать без обработки предыдущего. GPU-кластеры простаивали.
  • Проблема исчезающего градиента — зависимости на длинных дистанциях (сотни токенов) терялись при обучении.
  • Ограниченный контекст — «память» модели деградировала с ростом длины последовательности.

Трансформеры решили все три проблемы одновременно с помощью механизма Self-Attention, позволяющего каждому токену «смотреть» на все остальные токены в последовательности параллельно.

Self-Attention: математика простыми словами

Механизм внимания преобразует каждый токен входной последовательности в три вектора: Query (Q), Key (K) и Value (V). Это происходит через три отдельные обучаемые матрицы весов.

# Attention computation (упрощённо)
Attention(Q, K, V) = softmax(QKT / √dk) × V
# Где d_k — размерность ключей (масштабирующий фактор)
Q = X × W_Q # Query matrix
K = X × W_K # Key matrix
V = X × W_V # Value matrix

Интуиция: Query — это «вопрос» текущего токена, Keys — «ответы» всех токенов, Values — содержательная информация. Скалярное произведение Q и K определяет, насколько релевантен каждый токен для текущего. Деление на √d_k предотвращает слишком большие значения, ведущие к насыщению softmax.

Multi-Head Attention: зачем несколько голов

Одного механизма внимания недостаточно — он захватит лишь один тип зависимостей. Multi-Head Attention запускает несколько механизмов внимания параллельно, каждый из которых специализируется на разных аспектах: синтаксических связях, семантическом сходстве, кореференции и т.д.

HEAD 1

Синтаксические зависимости

Согласование подлежащего и сказуемого, позиция в предложении.

HEAD 2

Кореференция

«Он пошёл в магазин» — «Он» указывает на кого?

HEAD N

Семантическое сходство

Какие слова синонимичны или семантически близки в данном контексте.

Позиционное кодирование: как трансформер «знает» порядок

В отличие от RNN, трансформер обрабатывает все токены параллельно и «не знает» их порядка. Позиционное кодирование добавляет к эмбеддингу каждого токена вектор, уникально кодирующий его позицию в последовательности.

Оригинальный трансформер использовал фиксированные синусоидальные функции. Современные архитектуры применяют Rotary Positional Embeddings (RoPE, используется в LLaMA 2/3, Mistral) или Alibi (экстраполяция на длины, не виденные при обучении).

BERT vs GPT: два пути одной архитектуры

ХарактеристикаBERT (Encoder)GPT (Decoder)
Направление вниманияДвунаправленноеПричинно-следственное (слева направо)
Задача предобученияMasked Language ModelingNext Token Prediction
Лучше подходит дляКлассификация, NER, Q&AГенерация текста, диалог
ПримерыBERT, RoBERTa, DeBERTaGPT-4, LLaMA 3, Mistral
Fine-tuning сложностьПроще (меньше параметров)Требует больше ресурсов

Fine-tuning: как адаптировать предобученную модель

Полный fine-tuning крупной модели требует десятков GPU. В 2022–2024 годах появились методы параметрически эффективного тонкого настраивания (PEFT), позволяющие обучать <1% параметров модели при сохранении 90–95% качества.

LoRA

Low-Rank Adaptation

Добавляет две маленькие матрицы к весам трансформера вместо обучения оригинальных. Позволяет fine-tuning Llama 3 (8B) на одном GPU A100.

QLoRA

Quantized LoRA

Комбинирует LoRA с 4-битным квантованием. Позволяет fine-tuning 65B модели на одном потребительском GPU (RTX 4090).

Практический пример: fine-tuning для классификации

# Fine-tuning DistilBERT для sentiment analysis (HuggingFace)
from
transformers import AutoModelForSequenceClassification, Trainer, TrainingArguments

model = AutoModelForSequenceClassification.from_pretrained(
"distilbert-base-uncased"
,
num_labels=2
)

training_args = TrainingArguments(
output_dir="./results",
num_train_epochs=3,
per_device_train_batch_size=16,
eval_strategy="epoch"
)

Где применять знания прямо сейчас

Трансформеры — это не только NLP. К 2025 году их применяют для задач временных рядов (Time Series Transformer), геномики (DNA-BERT), аудио (Whisper, MusicGen), химии (AlphaFold 2 использует трансформерный encoder) и физического моделирования. Инвестиция времени в глубокое понимание этой архитектуры окупается во многих доменах.

← Все статьи