Esminis dalykas, kalbant apie „revoliucinius“ dėmesio mechanizmus, yra tas, kad visi linkčioja galvomis, tarsi žiūrėtų į iliuzionistą, o paskui tyliai tikisi, kad niekas nepaprašys jų paaiškinti triuko. „DeepSeek Sparse Attention“ (DSA) yra vienas iš tokių triukų – sumanus, greitas ir, jei atidžiai įsižiūrėsite į detales, iš tikrųjų suprantamas be šimto puslapių matematikos. Pažadas: išsaugoti intelektą, atsikratyti skaičiavimo mokesčio. Realybė: priklauso nuo situacijos, bet šį kartą kompromisai atrodo stebėtinai protingi.
Pabandykime išsiaiškinti: DSA yra būdas dideliems kalbos modeliams atkreipti dėmesį tik į tai, kas svarbu. Ne kažkaip panašiai. Ne „galbūt tai svarbu“. Tai smulkaus grūdo schema, kuri apkarpo kvadratinį sprogimą, kurį gaunate iš pilno – nenupjaudama šakos, ant kurios modelis stovi. Jei senojo modelio dėmesys buvo kambarys, kuriame kiekvienas žodis turi užmegzti akių kontaktą su kiekvienu kitu žodžiu, DSA paverčia jį vakarėliu, kuriame klesti intravertai: tiesioginiai maršrutai, mažiau beprasmių plepalų ir daug mažiau triukšmo.
Kas iš tikrųjų yra „DeepSeek Sparse Attention“?
DSA yra mechanizmas, kuris sumažina skaičiavimo sudėtingumą nuo O(L²) iki O(Lk), kur L yra sekos ilgis, o k yra „išsaugotų“ ryšių skaičius vienam žymekliui – atrinkti, tikėtina, svarbūs kaimynai. Tai esmė vienoje eilutėje. Mažiau matematikos, daugiau prasmės: užuot kiekvienam žymekliui lyginus save su kiekvienu kitu žymekliu, DSA pasirenka pogrupį – kaimynus, galvas, langus, „inkarus“, bet kokią heuristiką ar išmoktą politiką, kuri modeliui yra prasmingiausia – kad negaištumėte laiko veltui.
Jei jums atrodo, kad tai girdėta, tai taip ir yra: nėra naujiena. Turėjome „Longformer“, „BigBird“, branduolius ir tuziną „vietinių + globalių“ hibridų. Įprasta problema yra ta, kad šablonai arba praleidžia prisiminimus (jie praleidžia adatą šieno kupetoje), arba juos taip sunku efektyviai įdiegti, kad visa tai, ką sutaupote teoriškai, tiesiog vėl atsiranda kaip branduolio pridėtinės išlaidos. DSA tvirtina, kad yra dviejų tipų: pirma, šablonas yra smulkesnis ir labiau prisitaikantis nei įprastas ; antra, jis buvo įdiegtas nuo galo iki galo taip, kad iš tikrųjų veiktų tikrose išvadų sistemose – įskaitant vLLM.
Intuicija: žaibo indeksuotojas, o ne vejapjovė
Naudingiausia analogija, kurią esu matęs: DSA veikia kaip žaibo indeksuotojas. Jis nepjauna viso lauko; jis nuskuba prie to, kas svarbu – kaip geras redaktorius, kuris išbrauko tris pastraipas ir palieka sakinį, kuris skamba. Sistema išsaugo nedidelį kiekį didelio signalo ryšių vienam žymekliui – pagalvokite apie pagal tam tikrą svarbos įvertinimą – plius ploną struktūros pagrindą (vietinius langus, periodinius globalius žymeklius), kad tolimojo nuoseklumas nevirstų koše.
Inžinieriams rūpi dalis po analogijos: ką „svarba“ reiškia operatyviai? Įvairūs DSA aprašymai užsimena apie heuristiką, kuri pasirenka kandidatų raktus pagal artumą ir ankstesnį svarbumą, po to – kompaktiškas dėmesys tarp tų kandidatų. Tai nėra magija; tai triažas. Jūs išsaugote akivaizdžius kaimynus (vietinis kontekstas beveik visada naudingas kalbai), įterpiate globalius „orientyrus“ ir selektyviai nukreipiate dėmesį į perspektyvius žymeklius. Grynasis rezultatas: sumažinate paieškos erdvę iki dydžio, nesumažindami prisiminimo. Kai tai daroma teisingai, tai jaučiasi ne tiek kaip apkarpyti, kiek kaip padorus elgesys.
Matematika, minimalistinis leidimas
- Pilnas : O(L²d), kur d yra galvos matmuo.
- DSA: O(Lkd). Fiksuotam k, tai yra linijinis L atžvilgiu. Tai svarbu ilgiems kontekstams. Esant 128 tūkst. žymeklių, jūsų GPU sąskaita jums padėkos.
- Modelis palaiko dinaminį kandidatų rinkinį vienam žymekliui. Jūs mokate už kandidatų atranką ir už faktinį dėmesį tarp jų. Jei kandidatų atranka yra vektorizuota ir atsižvelgiama į talpyklą, jūs laimite; jei ne, jūs spaudžiate balioną.
Tai yra įtampa visuose metoduose: sumažinkite asimptotiką, bet neįtraukite jos iš naujo į savo duomenų judėjimą ir branduolio paleidimo pridėtines išlaidas. Įdiegimai aplink DSA pabrėžia branduolio lygio palaikymą ir planuoklio integraciją, o naujausi įrašai rodo vLLM palaikymą, kad tai taptų realybe diegimo nustatymuose.
Kodėl DSA dabar svarbus?
Nes ilgas kontekstas yra naujas ekrano dydžio karas. Visi nori 200 tūkst. žymeklių ir daugiau – scenarijų, kodų bazės, PDF, atitinkančių jūsų sąžinės dydį. Kvadratinis dėmesys tokiems ilgiams yra nepradedamas dalykas dėl delsos, pralaidumo ir išlaidų. Galite apsimesti naudodami protingą skaidymą į dalis ir paiešką, bet tai yra tarsi lentynos įrengimas automobilyje, nes jūsų bagažinė nuolat prisipildo. DSA argumentas yra paprastesnis: padarykite faktinį dėmesio žingsnį ne kvailai brangiu.
Šalutinis pranašumas yra stabilumas. Pilnas dėmesys labai ilgoms sekoms gali tapti skaitmeniškai jautrus ir triukšmingas atminties atžvilgiu. sumažina darbinį rinkinį ir sumažina tikimybę, kad modelis „pamirš“, paskęsdamas silpnuose poriniuose baluose. Jūs išsaugote struktūros pagrindą ir nedidelį prisitaikymo gabalėlį ant viršaus. Tai yra praktinis kompromisas, kuris, vieną kartą, jaučiasi kaip inžinerinis sprendimas, o ne popierinė demonstracija.
Kur DSA tinka zoologijos sode
- Fiksuoti šablonai (vietiniai langai, išplėtimai): greiti, bet trapūs. Praleidžia tolimas kryžmines nuorodas, nebent jūsų sėkmės statistika yra maksimali.
- Globalūs žymekliai: prideda inkarus. Geriau, bet neapibrėžta. Negalite uždėti „CLS“ ant visko ir pavadinti tai prisiminimu.
- Maršrutas per išmoktas politikas: potencialiai idealus, operatyviai netvarkingas. Mokymo sudėtingumas ir trapios išvados.
- DSA smulkaus grūdo hibridas: kuruokite kompaktišką kandidatų rinkinį vienam žymekliui, kuris sujungia vietovę, struktūrizuotus globalius elementus ir didelio signalo pasirinkimus. Esmė nėra būti protingam – tai būti nuolat pakankamai geram, kad jūsų delsa ir kokybė didėtų.
Veikimas: O(L²) mokesčių grąžinimas
Iki šiol pateikiama informacija teigia, kad išlaidos gerokai sumažėjo – „perpus sumažėjusios“ išlaidos atsiranda kvapą gniaužiančiuose kūriniuose – bet esmė nėra tikslus skaičius, o tai, kad mastelio keitimo kreivė vėl grįžta į gyvybingumą ilgesniems raginimams ir didesniam lygiagretumui.
- RAG ir pokalbiai dokumentais per 100+ puslapių,
- Kelių failų kodo naršymas,
- Įrankius naudojantys agentai, kurie laiko ilgus juodraščius,
…DSA sumažina skaičiavimą ir atmintį vienam žymekliui. Galite perkelti kontekstą ten, kur jis iš tikrųjų naudingas, užuot surengę langinių įsilaužimų paradą. Ankstyvas vLLM palaikymas rodo, kad tai nėra tik puošmena – jis veikia ten, kur žmonės diegia modelius.
Įspėjimai (dar žinomi kaip kodėl niekas neturėtų skelbti pergalės antradienį)
- Kandidatų atranka nėra nemokama. Jei atrankos rutina užkliūva už talpyklos eilučių arba įstumia jus į CPU-GPU , jūsų laimėjimai išgaruoja.
- k yra biudžetas, o ne įgimta teisė. Per mažas ir praleidžiate kryžmines nuorodas, kurios yra svarbios. Per didelis ir vėl grįžtate prie tankaus.
- Nesutapimas tarp mokymo ir išvadų. Jei jūsų modelis buvo apmokytas tankiai, o jūs jį vykdote išvadų metu, tikėkitės kokybės nuokrypio. Stipriausi DSA rezultatai pasirodo, kai yra mokymo dietos dalis, o ne tik patiekimo metu naudojamas garnyras.
- Ilgo uodegos keistumas. šablonai kartais praleidžia netikėtą atgalinį ryšį 30 tūkst. žymeklių vėliau. Geri hibridai apsidraudžia periodiniais globaliais arba išmoktais inkarais.
Jei visa tai skamba kaip gero knygos indekso sudarymas, tai todėl, kad taip ir yra. Per trumpas ir nieko negalite rasti; per ilgas ir tai tiesiog vėl yra knyga.
Kaip DSA greičiausiai pasirenka, ką išsaugoti
Išsami informacija skiriasi priklausomai nuo įdiegimo, bet žaidimų knyga atrodo taip:
- Vietinis langas: išsaugokite kaimynus slenkančiame lange – dauguma kalbos struktūrų yra vietinės. 2) Periodiniai / globalūs žymekliai: įterpkite reguliarius „švyturius“, kurie visada jungiasi globaliai. 3) Svarbos įvertinimas: naudokite lengvus signalus – iš ankstesnio sluoksnio aktyvavimo, talpykloje saugomo svarbumo arba apytikslių verčių, tokių kaip panašumas – kad pasirinktumėte papildomus tolimus žymeklius. 4) Kompaktiškas dėmesys: vykdykite dėmesį tik virš išsaugoto rinkinio sąjungos. 5) Kartokite kiekvienam sluoksniui, leidžiant skirtingoms galvoms teikti pirmenybę skirtingoms struktūroms.
Tai nėra ortodoksija; tai tiesiog mažiausiai stebinantis dalykas, kuris galėtų veikti. Ir, matyt, veikia, atsižvelgiant į operatyvinį palaikymą, esantį šiuolaikinėse išvadų sistemose.
DSA vs. Skaidymas į dalis vs. Paieška: pasirinkite savo nuodą
- Naivus skaidymas į dalis: greitas, bet kvailas – konteksto ribos tampa uolomis. Tinka pralaidumui, netinka niekam subtiliam.
- Paieškos papildytas generavimas: protingesnis, bet trapus – priklauso nuo to, ar paieškos priemonė atsimins, ko generatoriui reikės vėliau.
- DSA stiliaus : išsaugo visą giją kontekste, sutelkiant skaičiavimą ten, kur svarbu. Jis nepakeičia paieškos; jis palengvina paiešką.
Sąžiningas sprendimas yra mišinys: paieška, kad būtų galima patraukti atitinkamus dokumentus, , kad būtų galima samprotauti ilgose sekose nesuyrant. Galite padaryti abu dalykus neapkęsdami savo debesies sąskaitos.
Kokybė: ar jis vis dar supranta?
Milijono dolerių klausimas yra tai, ar tyliai numeta prasmę tarp sakinių. Ankstyvos „DeepSeek“ modelių ataskaitos rodo, kad kokybė išlieka arba gerėja ilgame kontekste, nes modelis nešvaisto tikimybės masės beprasmėms porinėms baloms. Triukas yra sureguliuoti k ir globalią struktūrą taip, kad modelis turėtų patikimą pagrindą per raginimą. Ir vėlgi, mokymas su kilpoje yra svarbus – modeliai prisitaiko. Tai tarsi mokytis vairuoti su mechanine pavarų dėže; kai jau turite ritmą, nepasiilgstate automatinio.
Diegimo realybė: branduoliai, talpyklos, planuokliai
Verta paminėti vLLM palaikymą: DSA nėra tik popierinis triukas; atliekamas tikras darbas, siekiant palaikyti branduolį ir planavimą, kad jis nesustabdytų GPU su teatrališkumu. branduoliai, sulietos operacijos ir kruopštus KV-talpyklos išdėstymas sukuria arba sugadina šį dalyką. Blogiausi rezultatai gaunami dėl to, kad puikiai protingos idėjos susiduria su atminties pralaidumu ir paleidimo pridėtinėmis išlaidomis. Kai jie yra tvarkomi, dainuoja.
Kur DSA spindi
- Ilgas kontekstas Klausimai ir atsakymai per struktūrizuotus dokumentus. Vietinis + švyturio mišinys seka skyrius ir kryžmines nuorodas neužtvindydamas dėmesio.
- Kodo bazės samprotavimas. Vietiniai langai užfiksuoja failo viduje esantį kontekstą; periodiniai / globalūs ryšiai eina per failus, funkcijų iškvietimus ir importus.
- Agentai su juodraščiais. leidžia agentui išlaikyti ilgą darbinę atmintį nesumenkinant iki nesąmonių po penkto puslapio.
Kur DSA (dar) neveikia
- Maži raginimai. Tankus dėmesys yra gerai; pridėtinės išlaidos gali ne amortizuotis.
- Labai susipynusi poezija arba galvosūkių raginimai, kuriems reikia šuolių iš adatos šieno kupetoje be akivaizdžių struktūrinių užuominų. Vis tiek galite sureguliuoti k, bet metodui labiau patinka šablonai nei mįslės.
Štai bet kurio iš šių metodų testas: ar jie pagerina įrankius nepaverčiant vartotojų nemokamais kokybės užtikrinimo inžinieriais? Mano vykdymuose įrankiai, kurie gerai integruoja , ypač dokumentų ir kodo pokalbiams, jaučiasi mažiau temperamentingi. Sider.AI iš tikrųjų čia vaidina: kai įklijuojate 80 puslapių specifikacijas arba vargstate per repo, gebėjimas išlaikyti ilgą, nuoseklią giją nesustabdant ar haliucinuojant apie 47 puslapį yra svarbus. Rinkodara nesigiria „smulkaus grūdo “, ir tai yra gerai. Vartotojams rūpi, kad jis išliktų reaguojantis, išlaikytų tiesioginį kontekstą ir nekainuotų kaip savaitgalis Las Vegase. Jei dirbate su dideliais, netvarkingais įvesties duomenimis, ši dėmesio triukas yra būtent tas paslėptas pakeitimas, kuris pasirodo kaip mažiau karpų ir greitesni atsakymai. Praktinės gairės: jei nusprendžiate, ar naudoti DSA
- Jūsų kontekstas paprastai yra >32 tūkst. žymeklių: taip, įvertinkite jį.
- Jūs valdote savo diegimo sistemą (vLLM, „Triton“ branduoliai, KV-talpyklos derinimas): taip, ypač.
- Esate įstrigę su tankiai apmokytais svoriais ir negalite apmokyti iš naujo: atidžiai patikrinkite; apsvarstykite dalinę arba galvai būdingą .
- Delsai jautrūs, didelio QPS darbo krūviai: čia svarbus kreivės lenkimas. Išmatuokite p95 ir p99.
Ir prašau, dėl visų dalykų GPU, lyginamoji analizė su tikrais raginimais, o ne sintetiniais . metodai gyvena arba miršta nuo realistiško svarbos pasiskirstymo.
Meta-taškas: kaip geras skonis
Šiame dalyke yra estetika. Modeliai, kurie vienodai atkreipia dėmesį į viską, yra kaip susitikimai, kuriuose kalba visi. Atrodo demokratiška, nieko nepasiekiama. DSA jautrumas yra redakcinis: sutelkite dėmesį į įdomias dalis, palaikykite pagrindą ir išlaikykite biudžetą. Jei norite platesnės pamokos nei , štai ji. Geros sistemos nedaro visko. Jos daro teisingus dalykus, greitai.
Neišvengiama ateitis: apmokykite , patiekite
Pamatysime daugiau modelių, apmokytų nuo galo iki galo su šablonais. Iš ten gaunama paskutinė 10–15 % kokybės ir stabilumo dalis: leidžiant modelio indukcinėms nuostatoms susilyginti su aptarnavimo keliu. Jei aptarnaujate , bet apmokate tankiai, prašote modelio perjungti pavaras greitkelyje. Tai gali veikti, bet nenustebkite, kai jis suklups.
Tuo tarpu sistemos leis šablonus sudaryti: vietiniai langai + periodiniai globalūs + išmokti inkarai + paieškos žymekliai. Paskutinis dalykas – kilpos uždarymas tarp paieškos svarbos ir dėmesio svarbos – jaučiasi kaip kitas akivaizdus žingsnis. Kai tai, ką gaunate, informuoja apie tai, į ką atkreipiate dėmesį, nustojate žaisti tarp dviejų iš dalies aklų sistemų.
Taigi, kaip veikia DSA? Trumpas atsakymas
- Jis pasirenka kompaktišką tikėtinai svarbių žymeklių rinkinį kiekvienam žymekliui – daugiausia vietinius, kai kuriuos globalius, kai kuriuos protingus pasirinkimus.
- Jis vykdo dėmesį tik virš to rinkinio, sumažindamas skaičiavimą nuo kvadratinio iki apytiksliai tiesinio konteksto ilgio.
- Jis remiasi kruopščiais branduoliais ir talpyklos išdėstymu, kad teorinis taupymas pasireikštų kaip realus delsos laimėjimas.
- Jis išlaiko kokybę išsaugodamas struktūrą ir pakankamai globalaus ryšio, kad nebūtų prarastos tolimos nuorodos.
Viskas. Jokių smilkalų, jokių užkalbėjimų. Tiesiog priverstinis geras skonis, į ką atkreipti dėmesį.
Netikėta pabaiga (nes visada yra viena)
Kiekvienas AI triukas galiausiai turi savo nusivylimo akimirką. praleis kažką svarbaus, tikriausiai raginime, kurį sukūrė protingas kritikas, kuris tvirtina, kad modelis turėtų susieti trečią strofą su trisdešimt septinta strofa tarp kalbų, žongliruodamas funkcijos parašu. Gerai. Tačiau dauguma realaus darbo nėra poezija ir lyginamosios analizės – tai yra tekstų, kodų ir faktų malimas. Tam DSA yra ne tik gera idėja. Tai skirtumas tarp modelio, kuris apsimeta skaitantis jūsų kontekstą, ir modelio, kuris iš tikrųjų gali.
O jei galite tai padaryti nesudegindami skylės per debesies biudžetą? Tai nėra triukas. Tai pažanga.
DUK
Q1: Kaip veikia „DeepSeek Sparse Attention“ (DSA) paprasta kalba?
DSA susiaurina dėmesį į žymeklius, kurie yra svarbūs – daugiausia netoliese esantį tekstą, kelis globalius inkarus ir trumpą didelio signalo pasirinkimų sąrašą. Užuot naudoję O(L²) palyginimus, jis naudoja O(Lk), išlaikydamas kokybę išsaugodamas struktūrą ir sumažindamas skaičiavimą.
Q2: Ar DSA yra geresnis nei skaidymas į dalis ar paieška ilgam kontekstui?
DSA išlaiko viską vienoje gijoje, sutelkiant skaičiavimą ten, kur svarbu; skaidymas į dalis sukuria uolas, o paieška gali būti užmarši. Geriausi nustatymai sujungia paiešką su DSA, kad būtų galima samprotauti per ilgą kontekstą be kvadratinio mokesčio.
Q3: Ar DSA pakenks modelio kokybei, palyginti su tankiu dėmesiu?
Jei mokate ir aptarnaujate turėdami omenyje (ir nustatote k protingai), kokybė išlieka – dažnai geresnė ilgiems kontekstams, nes modelis nepaskęsta mažos vertės porose. ant tankiai apmokytų svorių gali nukrypti, todėl atlikite lyginamąją analizę su tikrais raginimais.
Q4: Kokius darbo krūvius labiausiai naudoja DSA?
Ilgo konteksto dokumentų klausimai ir atsakymai, kodo bazės naršymas ir agentų juodraščiai. Bet kur, kur sekos ilgis išsipučia, o tankus dėmesys virsta delsa, atminties slėgiu ir didėjančiomis išlaidomis.
Q5: Ar vLLM palaiko DSA diegimui?
Taip – naujausi įrašai rodo, kad vLLM integruoja „DeepSeek“ smulkaus grūdo palaikymą, atliekant branduolio ir planuoklio darbą, kad tai būtų praktiška gamybos linijose.