Что было до модели трансформеров?
Комментарии (2)
Ответ сгенерирован нейросетью и может содержать ошибки
История NLP до Transformers: от RNN к внимательным моделям
Это история одного из самых больших прорывов в ML. Расскажу историю.
1. Эпоха: N-граммы и статистический NLP (1970-2010)
До глубокого обучения NLP был основан на статистике и правилах.
N-граммы:
Для текста "The cat sat on the mat"
Unigrams: [The, cat, sat, on, the, mat]
Bigrams: [The cat, cat sat, sat on, on the, the mat]
Trigrams: [The cat sat, cat sat on, sat on the, on the mat]
Как работало: Модель предсказывает следующее слово на основе N предыдущих слов.
P(mat | on the) = Count(on the mat) / Count(on the *)
Проблема: длинная история не учитывается, нужны миллионы n-грамм для полноты.
2. Революция RNN (Recurrent Neural Networks) - 2010-2014
RNN - первые модели, которые могли обрабатывать последовательности.
Архитектура:
Input: [word1, word2, word3, ...]
↓
RNN cell: h_t = tanh(W * [h_{t-1}, x_t] + b)
↓
Output: предсказание на основе скрытого состояния h_t
Идея: скрытое состояние h - это "память" о всей предыдущей последовательности.
Великое преимущество:
- Может обрабатывать последовательности произвольной длины
- Память о прошлом (теоретически)
Огромная проблема - Vanishing Gradient:
При backprop через 100 timesteps градиент → 0
Модель забывает, что было 50 слов назад
3. LSTM & GRU (2014-2016) - попытка решить память
LSTM (Long Short-Term Memory):
Идея: добавить "клеточное состояние" c_t, которое может сохранять информацию.
Есть три gates (врата):
1. Input gate: что из нового добавить в память?
2. Forget gate: что из памяти забыть?
3. Output gate: что из памяти выдать?
Это позволило сохранять важную информацию на длинные дистанции.
Результат:
- Machine Translation (Google Translate)
- Speech Recognition
- Image Captioning
Но всё ещё проблемы:
- Очень медленно обучается (последовательная обработка)
- Сложно распараллелить
- На очень длинных текстах (500+ слов) всё равно теряет информацию
4. Механизм Внимания (Attention) - 2014-2015
Критический момент истории.
Проблема: LSTM должна сжать весь контекст в один вектор. Это неэффективно.
Решение (Bahdanau et al., 2014):
Вместо того чтобы использовать только последнее скрытое состояние,
использовать взвешенную сумму всех скрытых состояний.
attention = softmax(scores) * values
scores = decoder_state * encoder_states (dot product)
Пример: Переводим "The cat sat"
Когда кодируем слово "cat":
- Внимание к "The": 0.1 (мало важно)
- Внимание к "cat": 0.8 (очень важно, это главное слово)
- Внимание к "sat": 0.1 (мало важно)
Итог: модель фокусируется на нужных словах.
Это изменило всё.
5. Sequence-to-Sequence + Attention - 2014-2016
Комбинация:
- Encoder LSTM: читает весь текст
- Decoder LSTM: пишет перевод
- Attention: выбирает, на какие слова обратить внимание
Input: "The cat sat on the mat"
Encoder LSTM: [h_1, h_2, h_3, h_4, h_5, h_6]
↓
Decoder LSTM с Attention:
"Le" - attention к [0.1, 0.0, 0.8, 0.1, 0.0, 0.0] → фокус на "cat"
"chat" - attention к [0.3, 0.6, 0.0, 0.1, 0.0, 0.0] → фокус на "cat"
...
Output: "Le chat s'est assis sur le tapis"
Эта архитектура использовалась годы.
6. Трансформер (Transformer) - июнь 2017
Paper: "Attention is All You Need" (Vaswani et al.)
Революционная идея: забить на RNN полностью. Использовать ТОЛЬКО внимание.
Традиционная архитектура:
Sequence → RNN → Attention → Output
(медленно, последовательная обработка)
Трансформер:
Sequence → Self-Attention → Feed Forward → Output
(параллельна, все слова обрабатываются одновременно)
Ключевые компоненты:
-
Self-Attention (Самовнимание)
Каждое слово смотрит на все остальные слова в предложении и узнаёт, какие из них важны для понимания. Query = W_q * word_embedding Key = W_k * word_embedding Value = W_v * word_embedding Attention = softmax((Query * Key^T) / sqrt(d_k)) * Value -
Multi-Head Attention
Не одно внимание, а 8 (или 12) разных "голов", каждая смотрит на текст по-разному -
Positional Encoding
RNN помнил порядок слов (потому что последовательность) Трансформер обрабатывает всё одновременно, поэтому нужно добавить информацию о позиции
Огромные преимущества:
- Параллельная обработка (на 10x быстрее)
- Лучше ловит дальние зависимости
- Легче обучать
7. BERT (2018) и последующие модели
После Трансформера появилась экосистема:
BERT: Предтренированный Трансформер
- Обучен на 3.3B слов из Wikipedia
- Fine-tune на свою задачу
- Огромный success
GPT (2018-2023): Generative Pre-trained Transformer
- Больше параметров
- Лучше качество
- GPT-4 имеет 1.7T параметров
Другие: RoBERTa, ALBERT, ELECTRA, T5, ...
Временная шкала
1970 ────────── N-граммы, статистический NLP
2010 ────────── RNN revolution
2013 ────────── Word2Vec (embeddings)
2014 ────────── LSTM/GRU, Attention
2016 ────────── Seq2Seq достаточно хорош
2017 ────────── TRANSFORMER (прорыв)
2018 ────────── BERT (предтренирование)
2020 ────────── GPT-3 (шок сообщества)
2022 ────────── ChatGPT (массовое применение)
2023-2024 ──── Многомодальные модели
Почему Трансформер победил?
1. Параллелизм
RNN: обрабатывает слово за словом (100 слов = 100 итераций)
Трансформер: обрабатывает все 100 слов одновременно
2. Масштабируемость
Оказалось, что чем больше данных + параметров,
тем лучше работает Трансформер.
Это не было очевидно для RNN.
Это привело к появлению LLM.
3. Дальние зависимости
RNN: забывает слова через 10-20 шагов
Трансформер: может связать слово в начале с словом в конце
Заключение
История:
N-граммы → RNN → LSTM + Attention → Трансформер
↑ ↑ ↑ ↑
Много Память Внимание Всё всем!
данных проблемы помогло
Трансформер - это не просто улучшение LSTM. Это фундаментальная смена парадигмы:
- От последовательной к параллельной обработке
- От скрытого состояния к явному механизму внимания
- От малых моделей к гигантским претренированным системам
Это позволило создать современные LLM, которые работают как ChatGPT.