⚖️ Старый vs Новый: подходы к NLP

← К оглавлению урока

⚡ Что изменилось

  • Правила/шаблоны (ELIZA) → обучение на данных
  • n-граммы (локальный контекст) → внимание (глобальный контекст)
  • RNN (последовательно, медленно) → трансформеры (параллельно, быстро)

Урок вводный, «старый код» здесь — это старые подходы к NLP из истории области. Сравним их с современным подходом на трансформерах.

Сравнение 1: подход к пониманию текста

🟡 Старое: правила и n-граммы

# Псевдокод: ответ по шаблону (как ELIZA)
if "я чувствую" in text:
    reply = "Почему вы так чувствуете?"
# n-грамма: вероятность по локальным частотам
P(next | prev_word)  # только соседнее слово

Нет понимания смысла и глобального контекста.

🟢 Новое: трансформер

# Высокоуровнево
from transformers import pipeline
nlp = pipeline("sentiment-analysis")
nlp("Фильм был невероятно интересным!")
# учитывает ВЕСЬ контекст предложения сразу

Внимание учитывает весь контекст; модель обучена на больших данных.

Сравнение 2: обработка последовательности

🟡 RNN — по одному слову

h = 0
for word in sentence:      # последовательно
    h = rnn_step(h, word)  # «память» затухает
# дальний контекст теряется

🟢 Трансформер — всё сразу

# все слова обрабатываются параллельно,
# attention связывает любые два слова напрямую,
# позиционные эмбеддинги хранят порядок
⚠️ Это концептуальное сравнение подходов, а не запускаемый код. Цель — понять, почему трансформеры вытеснили предыдущие архитектуры.