¿Cómo será la arquitectura de LLM de próxima generación? Esta pregunta sigue generando debates — y Yuxuan, colaborador y desarrollador de Zhihu, ofrece una comparación precisa entre DeepSeek Sparse Attention (DSA) y Native Sparse Attention (NSA), además de una visión práctica sobre cómo implementar operadores de DSA con TileLang. 🚀 Por qué la DSA > NSA (en tareas de largo contexto): Desde experimentos que añadieron DSA a modelos pequeños y comparándolos con NSA, DSA rinde consistentemente mejor — principalmente debido a dos decisiones clave de diseño: 1️⃣ La destilación Attn-Score → supervisión explícita para la selección de índices 2️⃣ Esparsidad a nivel de token en lugar de a nivel de bloque→ recuperación más fina y precisa 🔍 1) Destilación de Attn-Score La poca atención depende de seleccionar los pares clave-valor adecuados. DSA supervisa directamente el módulo índice utilizando puntuaciones de atención reales, alineando la formación con el objetivo real: "elegir los tokens críticos." La NSA optimiza en cambio solo la pérdida de LM, sin proporcionar ninguna restricción explícita en la precisión del índice — lo que explica su menor rendimiento en benchmarks de recuperación de documentos largos. 🔍 2) Escasidez a nivel de ficha frente a bloque La precisión escala con el presupuesto de cálculo: una indexación más precisa → mejor recuperación. La indexación a nivel de token (DSA) naturalmente proporciona una mayor fidelidad que la a nivel de bloque (NSA). Desde esta perspectiva, se espera el cuello de botella de rendimiento de la NSA — una pregunta interesante: ¿Ayudaría el tamaño del bloque = 8 a la NSA a alcanzar la DSA? ⚙️ El verdadero reto: entrenar a la DSA de forma eficiente El entrenamiento DSA incluye Warmup → Sparse Finetune. El reto: calcular y almacenar las puntuaciones de atención de ambas ramas. Una implementación ingenua requiere almacenamiento O(n²), lo que anula el ahorro de memoria de FlashAttention. Incluso el prefiltrado (k=2048, h=512+64) sigue exigiendo grandes búferes. 📎 Código: 🧩 Fusión de núcleos al rescate (Fig. 1) Para evitar almacenar enormes puntuaciones intermedias de Attn, DSA utiliza núcleos fusionados. Un truco clave es fusionar Index-Score + Top-k en un mismo núcleo: • Mantener un buffer de 2K • Calcular la puntuación índice para cada bloque...