Ce înseamnă Multi-Head Attention
În loc de un singur calcul de atenție, Transformerul rulează mai multe în paralel, numite capete (heads). Lucrarea originală explică motivul: atenția multi-head permite modelului să se uite simultan la informații din „subspații de reprezentare diferite”, la poziții diferite.
Transformerul din 2017 folosea 8 capete. Modelele actuale folosesc mai multe: în Llama 3, modelul de 8B are 32 de capete, cel de 70B are 64, iar cel de 405B are 128 (raportul Meta, Tabelul 3).
Cum funcționează
Vectorii Query, Key și Value sunt proiectați liniar în mai multe spații de dimensiune mai mică (în lucrarea originală, 8 capete × 64 de dimensiuni = 512).
Fiecare cap calculează propria atenție. Rezultatele sunt concatenate și trecute printr-o proiecție liniară finală.
Variantele moderne păstrează multe capete pentru Query, dar împart Key și Value între ele (MQA, GQA), ca să reducă memoria KV cache. Llama 3 are 8 capete Key/Value la toate cele trei mărimi.
Pe înțelesul tuturor
Mai mulți cititori parcurg același text, fiecare cu alte întrebări în minte. La final, notițele lor sunt puse cap la cap într-un singur rezumat.
Exemplu
Vizualizările din anexa lucrării originale arată capete al căror comportament pare legat de structura frazei. Ce face fiecare cap nu este însă stabilit dinainte: rolurile apar în timpul antrenării și nu sunt garantate.
De reținut
- Numărul de capete este un hiperparametru al arhitecturii.
- Capetele lucrează în paralel, deci nu încetinesc calculul față de o singură atenție de aceeași dimensiune totală.
Nu confunda
- Capete Query vs. capete Key/Value: la GQA există mai puține capete Key/Value decât capete Query (de exemplu 64 și 8 la Llama 3 70B).
Termeni înrudiți
- Auto-Atenția (Self-Attention): Inima Transformerului: mecanismul matematic care permite modelului să decidă ce alte cuvinte contează pentru a înțelege un anumit cuvânt în context.
- Arhitectura Transformer: Arhitectura de rețea neuronală bazată pe atenție, introdusă în 2017, pe care se construiesc modelele mari de limbaj actuale.
- KV Cache (Key-Value Caching): Memoria în care modelul păstrează vectorii Key și Value ai tokenilor deja procesați, ca fiecare token nou să fie generat fără recalcularea întregului istoric.
- Rețele Feed-Forward (FFN): Sub-stratul din fiecare bloc Transformer care transformă separat vectorul fiecărui token și care conține aproximativ două treimi din parametri.