Jak bude vypadat architektura LLM nové generace? Tato otázka stále vyvolává debaty — a přispěvatel a vývojář Zhihu Yuxuan nabízí ostré srovnání mezi DeepSeek Sparse Attention (DSA) a Native Sparse Attention (NSA), plus praktický pohled na implementaci DSA operátorů pomocí TileLang. 🚀 Proč DSA > NSA (v úkolech s dlouhým kontextem): Z experimentů s přidáním DSA k malým modelům a porovnáním s NSA DSA konzistentně dosahuje lepších výsledků — hlavně díky dvěma klíčovým návrhovým rozhodnutím: 1️⃣ Destilace Attn-Score → explicitní dohled nad výběrem indexu 2️⃣ Tokenová úroveň řídkosti místo blokové→ jemnější a přesnější vyhledávání 🔍 1) Attn-score destilace Malá pozornost závisí na výběru správných párů klíč-hodnota. DSA přímo dohlíží na modul indexu pomocí skutečných skóre pozornosti, čímž sladí trénink s reálným cílem: "vybrat kritické tokeny." NSA místo toho optimalizuje pouze ztrátu LM, neposkytuje žádné explicitní omezení přesnosti indexu — což vysvětluje její slabší výkon při benchmarkech pro dlouhé vyhledávání dokumentů. 🔍 2) Tokenová vs bloková vzácnost Přesnost škáluje s výpočetním rozpočtem: přesnější indexování → lepší vyhledávání. Token-level indexing (DSA) přirozeně přináší vyšší věrnost než bloková indexace (NSA). Z tohoto pohledu se očekává omezení výkonu NSA — zajímavá otázka: Pomohla by block-size=8 NSA dohnat DSA? ⚙️ Skutečná výzva: Efektivní školení DSA Trénink DSA zahrnuje zahřátí → Sparse Finetune. Výzvou bylo vypočítat a uložit skóre pozornosti obou odvětví. Naivní implementace vyžaduje úložiště O(n²) — což ruší úspory paměti FlashAttention. I předfiltrování (k=2048, h=512+64) stále vyžaduje velké buffery. 📎 Kód: 🧩 Fúze jádra na záchranu (obr. 1) Aby se zabránilo ukládání masivních mezilehlých Attn-skóre, DSA používá fúzovaná jádra. Klíčovým trikem je sloučení index-skóre + top-k do jednoho jádra: • Udržujte 2K buffer • Výpočet indexového skóre pro každý blok...