До трансформеров главными архитектурами для текста были рекуррентные сети (RNN, LSTM). Они читали текст слово за словом и плохо помнили далёкие связи. Трансформер изменил подход: вся последовательность обрабатывается параллельно, и каждое положение видит все остальные.
Ключевые элементы
- Внимание (attention) — механизм, по которому модель решает, на какие части входа смотреть при обработке каждого токена.
- Многоголовое внимание — параллельные «головы» внимания, каждая ищет свой тип связей.
- Слои нормализации и полносвязные слои — стандартные строительные блоки, идущие после внимания.
Почему это сработало
- Параллельные вычисления — отлично легли на видеокарты, ускорили обучение в десятки раз.
- Хорошая работа с длинными связями в тексте.
- Универсальность — оказалось, что та же архитектура работает и на изображениях, и на звуке, и на коде.
- Любые задачи понимания и генерации текста
- Понимание и генерация кода
- Современные задачи компьютерного зрения и обработки звука всё чаще тоже решаются на трансформерах
- Простые задачи с табличными данными — здесь градиентный бустинг обычно быстрее и точнее
- Очень ограниченные ресурсы — большие трансформеры дороги в эксплуатации
Когда модель отвечает на вопрос по длинному документу, механизм внимания позволяет ей при работе над конкретным фрагментом «подсветить» именно те абзацы, которые касаются вопроса, и не отвлекаться на остальные. Не так давно для этого приходилось писать отдельные алгоритмы поиска и компоновки, теперь это часть стандартной работы трансформера.
На уровне продукта обычно не нужно знать внутренности трансформера. Достаточно понимать, что от размера контекстного окна и числа параметров зависят скорость, стоимость и возможности модели, а архитектурные детали можно оставить разработчикам моделей.