FlashAttention
A FlashAttention egy memóriahatékony algoritmus, amely pontosan ugyanazt a figyelmet számítja ki, mint a hagyományos transzformátorok, de anélkül, hogy valaha is felírná az óriási figyelemmátrixot a lassított GPU-memóriára.
Áttekintés
It made long-context training and inference dramatically faster and cheaper.
Mély merülés
A standard figyelem minden tokenpárra kiszámol egy pontszámot, így N-szer N mátrixot hoz létre. Egy 4000 tokenből álló sorozat esetén ez 16 millió pontszámot jelent, és a mátrixot a GPU nagy sávszélességű memóriájába (HBM) kell írni és vissza kell olvasni. Ez a memóriaforgalom, nem a matematika, az igazi szűk keresztmetszet. A Tri Dao és munkatársai által 2022-ben bevezetett FlashAttention átstrukturálja a számítást, így a mátrix soha nem valósul meg teljesen. A szekvenciát csempékben dolgozza fel, amelyek beleférnek a GPU apró, ultragyors chipes SRAM-jába, és menet közben fokozatosan számítja ki a softmaxot. Az eredmény matematikailag megegyezik a szokásos figyelemfelkeltéssel, de sokkal kevesebb memóriát használ, és többszörösen gyorsabban fut, így sokkal hosszabb kontextusablakokat tesz lehetővé.
Technikai betekintés
A trükk a burkolással kombinált „online softmax”. A FlashAttention a lekérdezések, kulcsok és értékek kis blokkjait tölti be az SRAM-ba, kiszámítja a részleges figyelemkimeneteket, és az új blokkok érkezésével újraskálázza a futó összegeket, így a softmax normalizálás helyes marad anélkül, hogy az összes pontszámot egyszerre látná. Mivel soha nem tárolja a teljes N-szeres mátrixot a HBM-ben, a memória inkább lineárisan, mint négyzetesen skálázódik, és a kernel egyetlen GPU-műveletté olvad össze, hogy minimalizálja a lassú memóriaolvasást és -írást.
Stratégiai hatás
Sebesség és méretarány
A nyelvi munkafolyamatok gyorsabban haladhatnak a következetesség feláldozása nélkül.
Hozzáférés és elérés
Kibővíti a hozzáférést a nyelvek és a kommunikációs stílusok között.
Tisztább döntések
A csapatok több időt tölthetnek az ítélkezéssel, míg az automatizálás kezeli az ismétlést.
A FlashAttention jövője
A FlashAttention alapértelmezett építőelemmé vált. A FlashAttention-2 továbbfejlesztette a GPU-particionálást, a FlashAttention-3 pedig a Hopper újabb hardverfunkcióit használja ki, például az aszinkronitást és az alacsony pontosságú FP8-at. Folyamatos közös tervezésre számíthat chipekkel, mélyebb integrációval a következtetési szerverekbe a hosszú dokumentumokhoz, valamint a ritka vagy csúszóablakos figyelemre hangolt változatokkal. Ahogy a kontextusablakok több millió tokenek felé törnek, az ehhez hasonló IO-tudatos kernelek továbbra is elengedhetetlenek a képzési és kiszolgálási költségek kezelhetőségéhez.
Valós megvalósítás
Nagy nyelvi modellek, például Llama és GPT-stílusú rendszerek betanítása gyorsabban és alacsonyabb GPU-költséggel
Hosszú kontextusú csevegési asszisztensek, amelyek teljes könyveket vagy kódbázisokat dolgoznak fel anélkül, hogy kifogyna a memória
A több tízezer tokent egyszerre feldolgozó dokumentum-összesítő folyamatok felgyorsítása
Látás- és multimodális transzformátorok tápellátása, ahol a képfoltok hosszú sorozata megdrágítja a figyelmet
Kockázatok és védőkorlátok
A hallucinált tények csendben bekerülhetnek a jelentésekbe, a támogatási folyamatokba vagy a kutatási eredményekbe.
Az azonnali érzékenység inkonzisztens eredményeket eredményezhet a hasonló kérések között.
Ha a hozzáférés-szabályozás gyenge, az érzékeny szöveges adatok megjelenhetnek.
Végrehajtási ütemterv
A kiadás előtt határozza meg a kimeneti formátumot, hangszínt és minőségi szabványokat.
Földelje a válaszokat megbízható forrásokból, amikor a pontosság számít.
Tartson emberi ellenőrzési pontot a nagy tétű kimenetekhez.
Kövesse nyomon a meghibásodási mintákat, és rendszeresen tanítsa át az utasításokat vagy a munkafolyamatokat.
Folytassa a felfedezést
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the FlashAttention quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Következő útmutató
Rotary Position Beágyazások
Gyakran ismételt kérdések
What is FlashAttention?
A FlashAttention egy memóriahatékony algoritmus, amely pontosan ugyanazt a figyelmet számítja ki, mint a hagyományos transzformátorok, de anélkül, hogy valaha is felírná az óriási figyelemmátrixot a lassított GPU-memóriára. A hosszú kontextusú képzést és következtetést drámaian gyorsabbá és olcsóbbá tette.
Mi a FlashAttention fő szűk keresztmetszete a normál figyelemben?
A szabványos figyelem memóriához kötött: a hatalmas N-szer N-mátrixnak a nagy sávszélességű memóriába és onnan való ingadozása uralja az időt, nem maga az aritmetika.
Hogyan viszonyul a FlashAttention teljesítménye a normál figyelemhez?
A FlashAttention pontosan ugyanazokat a figyelemértékeket számítja ki; csak átszervezi a számítást, hogy elkerülje a teljes mátrix megvalósulását.
Melyik GPU memóriát használja ki a FlashAttention a csempékben lévő adatok feldolgozásával?
A FlashAttention kis csempéket tölt be a GPU gyors chipbe épített SRAM-jába, így a nehéz munka a számítási egységek közelében marad.
Milyen technika teszi lehetővé a FlashAttention-nek a softmax kiszámítását anélkül, hogy az összes pontszámot egyszerre látná?
Az online softmax fenntartja a futó maximumokat és összegeket, új csempék érkezésekor átskálázza a részeredményeket, így a végső normalizálás helyes.
Mit használt ki konkrétan a FlashAttention-3?
A FlashAttention-3-at modern Hopper GPU-kkal közösen tervezték, aszinkron végrehajtást és kis pontosságú FP8-at használtak a további gyorsítások érdekében.