← Назад к вопросам

Что было до модели трансформеров?

2.0 Middle🔥 122 комментариев
#NLP и обработка текста#Глубокое обучение

Комментарии (2)

🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

История 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
(параллельна, все слова обрабатываются одновременно)

Ключевые компоненты:

  1. 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
    
  2. Multi-Head Attention

    Не одно внимание, а 8 (или 12) разных "голов",
    каждая смотрит на текст по-разному
    
  3. 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.