Sobes.tech
Middle — Senior

Podrobno razložite multi-head pozornost: kaj so Q/K/V, kako se izračunava teža pozornosti, zakaj je več glav.

sobes.tech AI

Odpoveď od AI

Мултихед увага — гэта ключавы механізм у трансформерах, які дазваляе мадэлі адначасова засяроджвацца на розных частках уваходнай паслядоўнасці.

  • Q (Запыт), K (Ключ), V (Значэнне) — тры матрыцы, атрыманыя з уваходных дадзеных з дапамогай навучальных лінейных трансфармацый. Кожная пазіцыя ў паслядоўнасці ператвараецца ў тры вектары:

    • Запыт — запыт, для якога шукаецца адпаведная інфармацыя.
    • Ключ — ключ, з якім параўноўваецца запыт.
    • Значэнне — значэнне, якое вяртаецца ў адказ на запыт.
  • Разлік вагі ўвагі:

    1. Выконваецца скалярнае ўяўленне паміж Query і Key для кожнай пары пазіцый.
    2. Вынік маштабуецца (звычайна дзяліцца на караень з памеру ключоў) для стабілізацыі градыентаў.
    3. Ужываецца softmax, каб атрымаць верагоднаснае размеркаванне ваг.
    4. Вагі памнажаюцца на адпаведныя Значэнні, і вынікі сумуюцца — гэта выхад увагі.
  • Чаму некалькі галоў (multi-head)? Многае галоў дазваляе мадэлі глядзець на інфармацыю з розных "кутоў гледжання", гэта значыць кожная галоўка вучыць вылучаць розныя залежнасці і ўзоры ў дадзеных. Гэта павышае выразнасць і якасць мадэлі.

Прыклад спрошчаны:

# Для кожнай галоўкі:
Q_i = X * W_Q_i
K_i = X * W_K_i
V_i = X * W_V_i

вагі ўвагі = softmax((Q_i @ K_i.T) / sqrt(d_k))
выхад_i = вагі ўвагі @ V_i

# Аб’ядноўваем выхады ўсіх галоў
выхад = concat(выхад_1, ..., выхад_h) * W_O

Дзе W_Q_i, W_K_i, W_V_i, W_O — навучальныя матрыцы, d_k — памернасць ключоў, h — колькасць галоў.