次世代のLLMアーキテクチャはどのようなものになるのでしょうか? この疑問は議論を呼び続けており、Zhihuの貢献者兼開発者であるYuxuanは、DeepSeek Sparse Attention(DSA)とNative Sparse Attention(NSA)の鋭い比較、さらにTileLangを用いたDSA演算子の実装に関する実践的な考察を提供しています。 🚀 なぜDSA>NSA(長期コンテキストタスクにおいて)か: 小型モデルにDSAを追加したりNSAと比較したりする実験から、DSAは一貫してより良い性能を発揮しています。主な理由は2つの重要な設計選択によるものです。 1️^ インデックス選択のための明示的な監督→注意スコア蒸留 2️^ ブロックレベルではなくトークンレベルのスパーシティ→より細かく正確な検索 🔍 1) 注意スコア蒸留 スパースアテンションは、適切なキーと値の組み合わせの選択にかかっています。 DSAは真の注意スコアを用いてインデックスモジュールを直接監督し、トレーニングを実際の目的である「重要なトークンを選ぶ」と整合させます。 NSAはLM損失のみを最適化し、インデックス精度に明示的な制約を設けていません。これが長期文書検索ベンチマークでの性能低下の理由です。 🔍 2) トークンレベルとブロックレベルのスパーシティ 精度は計算予算に応じてスケールします。より正確なインデックス作成→より良い検索性です。 トークンレベルのインデックス(DSA)は、ブロックレベル(NSA)よりも高い忠実度をもたらします。 この観点から見ると、NSAのパフォーマンスボトルネックは予想されます。興味深い疑問です:ブロックサイズ=8はNSAがDSAに追いつくのに役立つでしょうか? ⚙️ 本当の課題:DSAの効率的なトレーニング DSAのトレーニングにはウォームアップ→スパースファインチューニングが含まれます。 課題は、両方の分野の注意力スコアを計算し、保存することです。 単純な実装はO(n²)のストレージを必要とし、FlashAttentionのメモリ節約効果を相殺します。 事前フィルタリング(k=2048、h=512+64)であっても、大きなバッファが必要です。 📎 コード: 🧩 カーネル融合の救助(図1) 大量の中間アタクトスコアを保存しないために、DSAはフューズドカーネルを使用します。 重要なコツは、Index-Score + Top-kを1つのカーネルに統合することです: ・2Kバッファの維持 • 各ブロックごとにインデックススコアを計算...