Архитектура трансформера и attention
Кратко разбираем, как устроен трансформер и почему механизм внимания изменил NLP.
Трансформер — архитектура нейросети, в основе которой лежит механизм внимания (attention), позволяющий каждому токену «смотреть» на все остальные.
Идея внимания
В предложении «банк у реки» и «банк дал кредит» слово «банк» значит разное. Чтобы понять его смысл, нужно учитывать соседей. Механизм внимания позволяет каждому токену взвешенно собирать информацию со всех других токенов: для «банк» он «обратит внимание» на «реку» или на «кредит» и уточнит представление.
Это связь с курсом LLM, где attention разбирается подробно. Здесь — короткая интуиция, достаточная для работы с моделями.
Из чего состоит блок трансформера
токены
|
v
[ self-attention ] токены обмениваются информацией
|
v
[ feed-forward ] каждый токен обрабатывается отдельно
|
v
новые представления (и так N блоков подряд)Блоки складывают стопкой (например, 12 или 24 раза). С каждым блоком представления становятся «осмысленнее». Поскольку attention видит все токены сразу (а не по очереди, как RNN), трансформеры отлично параллелятся на GPU — это и сделало возможным обучение огромных моделей.
Позиционные эмбеддинги
Attention сам по себе не различает порядок слов — «кот ловит мышь» и «мышь ловит кота» для него выглядят одинаково. Поэтому к токенам добавляют позиционные эмбеддинги — информацию о позиции в последовательности.
Как работает под капотом
В self-attention каждый токен порождает три вектора: query (что я ищу), key (что я предлагаю) и value (что я несу). Похожесть query одного токена и key другого даёт вес: чем выше, тем сильнее первый токен учитывает value второго. Сумма value с этими весами и есть новое представление. Обычно таких «голов внимания» несколько (multi-head) — каждая улавливает свой тип связей (синтаксис, кореференцию и т.п.).
Частые ошибки
- Считать, что трансформер «понимает» текст как человек. Это статистическая модель связей между токенами.
- Забывать про позиционную информацию. Без неё порядок слов теряется.
- Путать число слоёв и число голов внимания. Это разные гиперпараметры.
Итог
- Трансформер строится из блоков self-attention и feed-forward.
- Attention позволяет каждому токену собирать информацию со всех остальных.
- Позиционные эмбеддинги добавляют информацию о порядке слов.
- Параллельность attention сделала возможным обучение огромных моделей.