~/ai — attention — 1 head
‹ ai engineering03 / концепции

ATTENTION · НА КОГО СМОТРИТ ТОКЕН

Эмбеддинг слова «it» ничего не знает о кошке. Attention даёт каждому токену посмотреть на предыдущие и подмешать к себе то, что ему нужно.

Q K V
Q·K
маска
softmax
смесь
01 · токены каждый получает Q, K, V
Q — что токен ищет · K — чем токен может быть полезен · V — что он отдаст, если на него посмотрят.
02 · счёт и веса для «it» softmax(Q·Kᵀ / √d)
score = q · k / √2
Маска: токен видит только себя и тех, кто был раньше. Будущие слова получают −∞, после softmax их вес 0.
03 · вектор «it» до и после x + Σ wᵢ·vᵢ
04 · вся матрица внимания строка = кто смотрит
Треугольник: каждая строка распределяет 100% внимания по себе и предыдущим токенам. Глаголы и прилагательные тянутся к cat, служебные слова смотрят на всех понемногу.
Вычисления на странице настоящие. Веса WQ и WK заданы вручную, чтобы механизм было видно, а WV — единичная матрица. В реальной модели их подбирает обучение, признаки не имеют человеческих названий, а голов внимания десятки на каждом слое.
session log
~/ai $ attention(x, causal=True, heads=1)
токенов [10] dk [2] запрос [–] макс вес [–]