Subiecte populare
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Ești într-un interviu de cercetător științific la OpenAI.
Intervievatorul întreabă:
"Cum ați extinde lungimea contextului unui LLM de la 2K la 128K token-uri?"
Tu: "Voi regla fin modelul pe documente mai lungi cu context de 128K"
Interviul s-a încheiat.
Iată ce ai ratat:
Extinderea ferestrei de context nu este doar despre matrice mai mari.
Într-un transformator tradițional, extinderea jetoanelor de 8 ori crește nevoile de memorie de 64 de ori datorită complexității pătratice a atenției. Consultați imaginea de mai jos!
Deci, cum o gestionăm?
continua... 👇

1) Atenție redusă
Limitează calculul atenției la un subset de jetoane prin:
- Utilizarea atenției locale (jetoanele se ocupă doar de vecinii lor).
- Lăsând modelul să învețe pe ce jetoane să se concentreze.
Dar acest lucru are un compromis între complexitatea computațională și performanță.

O idee similară a fost folosită în ModernBERT.
→ Atenție globală deplină la fiecare al 3-lea strat
→ Atenție locală (128 jetoane) în caz contrar
Rezultat:
- Lungimea secvenței de 16 ori mai mare
- Performanță mult mai bună
- Cel mai eficient codificator din punct de vedere al memoriei
Simplu, dar puternic. 👇
Iată o explicație intuitivă preluată din lucrare:
Imaginează-ți că citești o carte. Pentru fiecare propoziție pe care o citiți, trebuie să fiți pe deplin conștienți de întreaga intrigă pentru a înțelege cea mai mare parte a acesteia (atenție globală completă)?
Sau este suficientă conștientizarea capitolului curent (atenție locală), atâta timp cât te gândești ocazional la semnificația sa pentru intriga principală (atenția globală)?
În marea majoritate a cazurilor, este cea de-a doua.
2) Atenție fulgerătoare
Aceasta este o metodă rapidă și eficientă din punct de vedere al memoriei, care păstrează exactitatea mecanismelor tradiționale de atenție, adică folosește atenția globală, dar eficient.
Întreaga idee se învârte în jurul optimizării mișcării datelor în memoria GPU.
Să înțelegem!

Câteva detalii de fundal:
- Un fir este cea mai mică unitate de execuție.
- Mai multe fire formează un bloc.
Și:
- Firele dintr-un bloc împărtășesc o memorie rapidă (dar rară) numită SRAM.
- Toate blocurile împărtășesc o memorie globală numită HBM (abundentă, dar lentă).
Verificați acest lucru 👇

Atenția mută matricele mari între SRAM și HBM:
Pentru a calcula QK:
- distribuie matrice pe fire
- calculează, și
- trimite produsul la HBM
Pentru a calcula softmax:
- distribuie produsul pe fire
- calculează, și
- trimite ieșire la HBM
Repetați pentru toate straturile.
Verificați acest lucru 👇

Atenția flash implică optimizări la nivel hardware în care utilizează SRAM pentru a memora în cache rezultatele intermediare.
În acest fel, reduce mișcările redundante, oferind o viteză de până la 7,6x față de metodele standard de atenție.
Verificați acest lucru 👇

98,95K
Limită superioară
Clasament
Favorite