Sobes.tech
Middle — Senior

Ներկայացրեք մանրամասնորեն բազմասպառ ուշադրության մասին՝ ինչ են Q/K/V, ինչպես են հաշվում ուշադրության քաշերը, ինչու է մի քանի գլուխ։

sobes.tech AI

Պատասխան 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

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 — գլուխների թիվը: