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 — единичная матрица. В реальной модели их подбирает обучение, признаки не имеют человеческих названий, а голов внимания десятки на каждом слое.
~/ai $ attention(x, causal=True, heads=1)
токенов [10]
dk [2]
запрос [–]
макс вес [–]