Урок вводный, «старый код» здесь — это старые подходы к 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 связывает любые два слова напрямую,
# позиционные эмбеддинги хранят порядок
⚠️ Это концептуальное сравнение подходов, а не запускаемый код. Цель — понять, почему трансформеры вытеснили предыдущие архитектуры.