Du er i et forskerintervju hos OpenAI. Intervjueren spør: "Hvordan vil du utvide kontekstlengden til en LLM fra 2K til 128K tokens?" Du: «Jeg vil finjustere modellen på lengre dokumenter med 128K-kontekst» Intervjuet er over. Her er hva du gikk glipp av:
Å utvide kontekstvinduet handler ikke bare om større matriser. I en tradisjonell transformator øker utvidelse av tokens med 8x minnebehovet med 64x på grunn av den kvadratiske kompleksiteten til oppmerksomheten. Se bildet nedenfor! Så, hvordan håndterer vi det? fortsette... 👇
1) Sparsom oppmerksomhet Den begrenser oppmerksomhetsberegningen til et delsett av tokens ved å: - Bruke lokal oppmerksomhet (tokens ivaretar bare naboene). - La modellen lære hvilke tokens den skal fokusere på. Men dette har en avveining mellom beregningskompleksitet og ytelse.
En lignende idé ble brukt i ModernBERT. → Full global oppmerksomhet hvert 3. → Lokal oppmerksomhet (128 tokens) ellers Resultat: - 16 ganger større sekvenslengde - Mye bedre ytelse - Den mest minneeffektive koderen Enkelt, men kraftig. 👇
Her er en intuitiv forklaring hentet fra papiret: Se for deg at du leser en bok. For hver setning du leser, trenger du å være fullstendig klar over hele handlingen for å forstå det meste av det (full global oppmerksomhet)? Eller er bevissthet om det nåværende kapittelet nok (lokal oppmerksomhet), så lenge du av og til tenker tilbake på dets betydning for hovedplottet (global oppmerksomhet)? I de aller fleste tilfeller er det sistnevnte.
2) Flash oppmerksomhet Dette er en rask og minneeffektiv metode som beholder nøyaktigheten til tradisjonelle oppmerksomhetsmekanismer, det vil si at den bruker global oppmerksomhet, men effektivt. Hele ideen dreier seg om å optimalisere databevegelsen i GPU-minnet. La oss forstå!
Noen bakgrunnsdetaljer: - Tråden er den minste utførelsesenheten. - Flere tråder danner en blokk. Også: - Tråder i en blokk deler et raskt (men lite) minne kalt SRAM. - Alle blokker deler et globalt minne kalt HBM (rikelig, men sakte). Sjekk dette 👇
Oppmerksomheten flytter store matriser mellom SRAM og HBM: Slik beregner du QK: - distribuere matriser til tråder - beregne, og - sende produktet til HBM Slik beregner du softmax: - distribuere produktet til tråder - beregne, og - Send utdata til HBM Gjenta for alle lag. Sjekk dette 👇
Flash-oppmerksomhet involverer optimaliseringer på maskinvarenivå der den bruker SRAM til å bufre de mellomliggende resultatene. På denne måten reduserer den overflødige bevegelser, og gir en hastighet på opptil 7,6 ganger i forhold til standard oppmerksomhetsmetoder. Sjekk dette 👇
98,93K