Olet tutkimustieteilijän haastattelussa OpenAI:lla. Haastattelija kysyy: "Miten laajentaisit LLM:n kontekstin pituutta 2K:sta 128K:hen tokeniin?" Sinä: "Hienosäädän mallia pidemmissä dokumenteissa, joissa on 128K konteksti." Haastattelu ohi. Tässä mitä sinulta jäi huomaamatta:
Kontekstiikkunan laajentamisessa ei ole kyse vain suuremmista matriiseista. Perinteisessä muuntajassa tokenien laajentaminen 8-kertaiseksi lisää muistitarvetta 64-kertaiseksi huomion neliömäisen monimutkaisuuden vuoksi. Katso alla olevaa kuvaa! Joten miten hallitsemme sen? jatkaa... 👇
1) Harva huomio Se rajoittaa huomion laskennan tokenien osajoukkoon seuraavasti: - Paikallisen huomion käyttäminen (merkit huolehtivat vain naapureistaan). - Anna mallin oppia, mihin tokeneihin keskittyä. Mutta tässä on kompromissi laskennallisen monimutkaisuuden ja suorituskyvyn välillä.
Samankaltaista ideaa käytettiin ModernBERTissä. → Täysi globaali huomio joka kolmas kerros → Paikallinen huomio (128 tokenia) muuten Tulos: - 16x pidempi sekvenssipituus - Paljon parempi suorituskyky - Tehokkain muistia säästävä kooderi Yksinkertainen mutta voimakas.
Tässä on intuitiivinen selitys paperista: Kuvittele itsesi lukemassa kirjaa. Pitääkö sinun jokaisen lukemasi lauseen kohdalla olla täysin tietoinen koko juonesta, jotta ymmärrät suurimman osan siitä (täysi maailmanlaajuinen huomio)? Vai riittääkö tietoisuus nykyisestä luvusta (paikallinen huomio), kunhan silloin tällöin ajattelee sen merkitystä pääjuonen kannalta (globaali huomio)? Suurimmassa osassa tapauksista se on jälkimmäinen.
2) Välähdä huomiota Tämä on nopea ja muistia tehokas menetelmä, joka säilyttää perinteisten tarkkaavaisuusmekanismien tarkkuuden, eli käyttää globaalia huomiota, mutta tehokkaasti. Koko idea pyörii GPU-muistin tietojen liikkeen optimoinnin ympärillä. Ymmärretään!
Joitakin taustatietoja: - Lanka on pienin suoritusyksikkö. - Useat langat muodostavat lohkon. Myös: - Lohkon säikeillä on yhteinen nopea (mutta niukkas) muisti nimeltä SRAM. - Kaikilla lohkoilla on yhteinen globaali muisti nimeltä HBM (runsas mutta hidas). Tarkista tämä 👇
Huomio siirtää suuria matriiseja SRAM:n ja HBM:n välillä: QK:n laskeminen: - Jaa matriisit kierteisiin - laskea ja - Lähetä tuote HBM:lle Softmaxin laskeminen: - Jaa tuote kierteisiin - laskea ja - lähettää tulosteen HBM:lle Toista kaikille kerroksille. Tarkista tämä 👇
Flash-huomio sisältää laitteistotason optimointeja, joissa se käyttää SRAM:ia välitulosten välimuistiin. Tällä tavalla se vähentää tarpeettomia liikkeitä ja tarjoaa jopa 7,6-kertaisen nopeuden tavallisiin huomiomenetelmiin verrattuna. Tarkista tämä 👇
3) DeepSeek Sharse Attention (DSA) DeepSeekin uusi V3.2-malli esittelee DeepSeek Sparse Attention (DSA) -toiminnon, joka laskee monimutkaisuuden O(L²):stä O(Lk):hen, jossa k on kiinteä. Miten se toimii: Kevyt Lightning Indexer arvioi, mitkä tokenit oikeasti merkitsevät kussakin kyselyssä. Pieni määrä päitä, pyörii FP8:ssa, laskennallisesti halpaa. Tällöin valintamekanismi hakee vain top-k avainarvomerkinnät. Keskeinen oivallus on, että vain 2048 tokenia valitaan per kysely, riippumatta kontekstin pituudesta. Kallis tarkkaavaisuuslaskenta tapahtuu siis tällä pienellä osajoukolla, ei koko 128K-sarjalla.
128 000 kontekstissa esitäyttökulut laskevat ~0,65 dollarista ~0,35 dollariin miljoonaa tokenia kohden. Ja Dekoodauksen hinta putoaa ~$2.4:stä ~$0.8:aan. Ja esitys pysyy samana. Joissain pitkän kontekstin testeissä V3.2 saa itse asiassa korkeammat pisteet. Vähäinen huomio ei ole uutta. Mutta sen toteuttaminen ilman laadun menetystä on vaikeaa. Mitkä ovat muita tekniikoita LLM:ien kontekstin pituuden pidentämiseksi?
238,12K