Как устроен трансформер и какие крупные блоки в нем есть
Что проверяют
Можете ли вы пройти путь токена через модель блок за блоком и объяснить, зачем нужен каждый. Следом почти всегда просят записать формулу внимания или сравнить encoder-only и decoder-only модели.
Как отвечать
Исходный трансформер 2017 года это encoder-decoder для машинного перевода. Крупные блоки:
- эмбеддинги и позиции: токены превращаются в векторы размерности
d_model. Внимание само по себе порядка не знает, поэтому добавляется позиционная информация: синусоидальная в оригинале, обучаемая в BERT, RoPE в большинстве современных LLM; - multi-head self-attention: линейными проекциями из входа получаются Q, K, V, внимание считается как
softmax(QKᵀ/√d_k)·V. Деление на √d_k не даёт softmax уйти в насыщение на больших скалярных произведениях. Голов несколько, каждая ловит свои связи; - feed-forward: два линейных слоя с нелинейностью, применяются к каждой позиции отдельно, внутренняя размерность обычно в 4 раза больше
d_model. Здесь большая часть параметров; - residual и нормализация: вокруг каждого подблока остаточное соединение и LayerNorm. В оригинале нормализация стоит после сложения, в современных перед подблоком (Pre-LN), это стабильнее;
- декодер: masked self-attention, чтобы позиция не видела будущие токены, затем cross-attention, где Q берётся из декодера, а K и V из выхода энкодера, затем FFN;
- выходная голова: линейный слой на размер словаря и softmax, обучение на кросс-энтропии предсказания следующего токена.
Дальше назовите семейства: encoder-only (BERT) для классификации и эмбеддингов, decoder-only (GPT, LLaMA) для генерации, encoder-decoder (T5) для задач «текст в текст».
Где спотыкаются
Говорят, что трансформер легко справляется с длинными последовательностями. Внимание стоит O(n²) по времени и памяти от длины, и длинный контекст как раз главная инженерная проблема, её решают FlashAttention, оконное и разреженное внимание.
Утверждают, что трансформер полностью параллелен. Обучение да, благодаря teacher forcing и маске, а генерация идёт по одному токену.
Путают маску в декодере с паддинг-маской. Первая скрывает будущее, вторая исключает пустые позиции из внимания.