⚡️ В LLMs-from-scratch добавили реализацию DeepSeek Sparse Attention с нуля.
Это тот редкий случай, когда сложную архитектурную идею можно открыть не в виде сухой формулы из статьи, а в виде понятного кода, где видно, как именно модель выбирает, на какие токены смотреть.
Проблема обычного attention хорошо знакома всем, кто работал с длинным контекстом: чем больше последовательность, тем дороже становится вычисление. Каждый токен сравнивается со всеми предыдущими, и цена быстро улетает в квадрат. Sparse attention пытается убрать лишнюю работу без полного отказа от качества.
В реализации показан базовый механизм DSA: лёгкий индексатор оценивает важность прошлых токенов, затем выбираются top-K позиций, остальные маскируются, и attention считается только по релевантным участкам контекста. По сути, модель получает не весь контекст подряд, а отфильтрованное поле внимания.
В примере есть GPT-style модель, слой attention с DSA, optional KV cache, отдельный runnable-скрипт и тесты. Это не production-код уровня DeepSeek V3.2 с fused kernels, MLA и серверными оптимизациями. Зато это хороший учебный разбор, где архитектурная идея превращается в читаемую реализацию.
Sparse attention здесь разобрать пройти руками: от scoring до маскирования и выбора токенов.
https://github.com/rasbt/LLMs-from-scratch/tree/main/ch04/09_dsa