Ներկայացրեք մանրամասնորեն բազմասպառ ուշադրության մասին՝ ինչ են Q/K/V, ինչպես են հաշվում ուշադրության քաշերը, ինչու է մի քանի գլուխ։
sobes.tech AI
Պատասխան AI-ից
Բազմասեր ուշադրություն — դա հիմնական մեխանիզմ է տրանսֆորմատորներում, որը թույլ է տալիս մոդելին միաժամանակ կենտրոնանալ մուտքային հաջորդականության տարբեր մասերի վրա:
-
Q (Հարց), K (Բանալին), V (Արժեք) — երեք մատրիցներ, որոնք ստացվում են մուտքային տվյալներից ուսանվող գծային փոխարկումներով: Յուրաքանչյուր դիրք հաջորդականության մեջ փոխարկվում է երեք վեկտորների.
- Հարց — հարց, որի համար որոնվում է համապատասխան տեղեկատվություն:
- Բանալին — բալան, որի հետ համեմատվում է հարցը:
- Արժեք — արժեք, որը վերադարձվում է որպես պատասխան հարցին:
-
Ուղղորդման քաշերի հաշվարկ:
- Հաշվարկվում է սքալյար արտադրյալ Query և Key միջև յուրաքանչյուր դիրքի զույգի համար:
- Արդյունքը սքալյար է (հաճախ բաժանվում է բանալիների չափի քառակուսին), որպեսզի կայունացվի գրադենտների հաշվարկը:
- Օգտագործվում է softmax, որպեսզի ստացվի հավանականության բաշխում:
- Քաշերը բազմապատկվում են համապատասխան արժեքներով, և արդյունքները գումարվում — սա է ուշադրության ելքը:
-
Ինչու մի քանի գլուխ (multi-head)? Բազմագլուխները թույլ են տալիս մոդելին տեսնել տեղեկատվությունը տարբեր "անկյուններից", այսինքն՝ յուրաքանչյուր գլուխ սովորում է առանձնացնել տարբեր կախվածություններ և մոդելներ տվյալներում: Սա բարձրացնում է արտահայտչականությունը և մոդելի որակը:
Պարզեցված օրինակ:
# Ամեն գլուխի համար:
Q_i = X * W_Q_i
K_i = X * W_K_i
V_i = X * W_V_i
attn_weights = softmax((Q_i @ K_i.T) / sqrt(d_k))
output_i = attn_weights @ V_i
# Բոլոր գլուխների ելքերը միավորում ենք
output = concat(output_1, ..., output_h) * W_O
Որտեղ W_Q_i, W_K_i, W_V_i, W_O — ուսանվող մատրիցներ, d_k — բանալիների չափը, h — գլուխների թիվը: