انتباه الخصم الأصلي (الجهاز الوطني للبحث العميق)
Type: Build
Languages: Python (stdlib)
Prerequisites: Phase 7 · 12 (KV cache, flash-attention), Phase 7 · 15 (attention variants), Phase 10 · 16 (differential attention)
Time: ~60 minutes
أهداف التعلم
- أخبرني عن الفرع الثلاثة التي تُراقبها وكالة الأمن القومي وما يلتقط كل منها
- شرح لماذا NSA "مدرسة طبيعيا" حيث كانت أساليب الاهتمام النادر السابقة استنتاج فقط.
- حساب حساب الاهتمام الوفاء من الـ NSA مقابل الاهتمام الكامل في سياق 64k كعمل من حجم كتلة الضغط والانتخاب أعلى-k.
- تنفيذ مزيج ثلاثة فروع في stdlib Python على تسلسل اصطناعي قصير وتحقق من سلوك أوزان البوابات.
المشكلة
الاهتمام الكامل عند طول التسلسل N تكاليف O(N^2)الوقت وO(N)كيه وي كاش لكل طبقة. عند الرموز 64 كيلوغرام، تعد أرقام النطاق النطاق الحاسوبي والذاكرة كارثية. تقدير نظري مقاس من ورقة NSA: يبلغ الاهتمام 70-80% من إجمالي تأخر فك الشفرة عند 64 كيلوغرام. كل شيء في الأسفل TTFT، الرموز / ثانية، تكلفة لكل مليون رموز تهيمن على تكلفة الاهتمام.
الانتباه القليل هو الإجابة الواضحة المحاولات السابقة تقع في علبين. النمط الثابت (الشاشة المزلقة، المتدريجة، المحلية) يرمي المعلومات بعيداً ويفشل في مهام الاستدعاء على المدى الطويل. يتم تطبيق ضيق الوقت الإستدلال (KV cache pruning، H2O، StreamingLLM) على نموذج تم تدريبه مسبقا على الاهتمام الكثيف ويسترد جزءًا صغيرًا فقط من التسارع المحتمل لأن النموذج لم يتم طلب منه أبداً توجيه المعلومات عبر النموذج الضيق.
يقدم الاهتمام النسبي (يوان وغيره ، DeepSeek + PKU + UW ، ACL 2025 أفضل ورقة ، arXiv: 2502.11089) كلتا: نمط الاهتمام النسبي الذي يتعلمه النموذج أثناء التدريب المسبق ، يتم تنفيذه كخوارزمية مرتبطة بالجرامة التي تقدم في الواقع توفير الحوسبة عند الاستنتاج. بعد عامين من الآن ، فإن NSA أو نَسْل مباشر هو الاهتمام الافتراضي على كل نموذج حدود طويل السياق.
المفهوم
ثلاثة فروع متوازية
لكل استفسار، تقوم وكالة الأمن القومي بتشغيل الاهتمام ثلاث مرات، مقابل ثلاثة مشاهدات مختلفة من الاحتفاظ السريع:
- Compressed branch.يتم تجميع الرموز إلى كتلة من الحجم
lيتم ضغط كل كتلة إلى رمز ملخص واحد عبر MLP الصغير المعلم. يقدم الاستفسار على هذه الرموز المضغوطة ، مما يحصل على رؤية ضخمة للسلسلة بأكملها.
- Selected branch.باستخدام درجات الاهتمام من الفرع المضغوط ، يتم تحديد كتلة top-k الأكثر أهمية للمسألة الحالية. يتم قراءة الرموز الدقيقة (غير المضغوطة) من تلك الكتل والمسألة تلتقي فوق جميعها. فكر في الاهتمام بالفرع المضغوط كإشارة توجيه للاختيار.
- Sliding-window branch.السؤال يلبي أحدث
Wالوهم (عادةً 512) للسياق المحلي. هذا الفرع يلتقط أنماط المدى القصير الثقيلة من الهيكل (التركيبة ، الإحساس المحلي) التي قد تفوت الاثنان الآخران.
يتم دمج ثلاثة خروجيات الفرع عبر بوابة تعلم لكل موقف:
out = g_cmp * out_cmp + g_sel * out_sel + g_win * out_wing_cmp, g_sel, g_winهي وزن البوابات من MLP صغير على السؤال. لا يجب أن يصل إلى 1 يمكنهم وزن الفرع بشكل مستقل.
لماذا هذا "مدرّب بطبيعته"
خطوة الاختيار (كتل العلوي-ك) متفرقة. عمليات متفرقة تقطع تدفق التراجع. عمل الانتباه النقي إما قفزت من الخلف من خلال الاختيار (التدريب الحدودي) أو استخدمت الاسترخاءات المستمرة التي لم تعط ضيقة حقيقية عند الاستنتاج.
وكالة الأمن القومي تتجنب هذا: الاهتمام بالفروع المضغوطة هو الاهتمام القاسية المميزة على السلسلة بأكملها. العملية العليا تستخدم فقط أعلى نقاط الاهتمام من الفرع المضغوط لتحديد الكتل الدقيقة التي يجب تحملها. تتدفق المعدلات من خلال درجات الفروع المضغوطة (التي تؤثر على كل من الخروج المضغوط ومنطق الاختيار) ، وسهولة الكتل المختارة في الخروج النهائي يمكن التمييز أيضا. غير المميزtop_kالعملية هي بدون عمل على الرسم البياني الحاسوبي المضي قدماً
هذا هو السبب في أن NSA يمكن استخدامها في التدريبات المسبقة من نهاية إلى نهاية. يتعلم النموذج توجيه المعلومات عبر الفرع الثلاث معا، مما ينتج نمطًا نادرًا الذي في الاستنتاج يقدم بالفعل السرعة الموعودة.
النواة المتحالفة مع الأجهزة
تم تصميم جوهر NSA لهيركيات الذاكرة GPU الحديثة. يقوم الجوهر بتحميل استفسارات من قبل مجموعات GQA (حلقة خارجية) ، ويجلب كتلة KV النادرة المقابلة لكل مجموعة (حلقة داخلية) ، ويجري الانتباه إلى SRAM. لأن كل مجموعة استفسارات ترى نفس الكتل المختارة (الاختيار هو لكل مجموعة استفسارات ، وليس لكل رأس استفسارات) ، يتم تعويض تلوثات KV عبر المجموعة. تبقى كثافة الحسابية عالية.
وتشير الصحيفة إلى أن أجزاء Triton تعمل بسرعة 9x أسرع من FlashAttention على 64k decodes، مع نمو التسرع المتزايد مع طول التسلسل. يتم توفير أجزاء أساسية ورائعة.
ميزانية الحساب
دعوناNيكون طول التسلسل ،lحجم كتلة الضغطkعدد اختيارات الـ "ك" العلياwالنافذة المنزلقةbحجم الكتلة المختار (عادة ما يساوي l)
- فرع ضغط:
O(N/l)المفاتيح لكل استفسار، لذلكO(N * N / l)إجمالي - الفرع المختار:
O(k b)المفاتيح لكل استفسار، لذلكO(N k * b). . . - فرع الزحف:
O(w)المفاتيح لكل استفسار، لذلكO(N * w). . .
إجمالي: O(N (N/l + kb + w)). . .
معN = 64k, l = 64, k = 16, b = 64, w = 512: تكلفة كل استفسار 1000 + 1024 + 512 = 2536 keysانتباهك الكامل64000 keys. 25x تخفيض الحساب
معN = 128k, l = 64, k = 16, b = 64, w = 512: تكلفة كل استفسار 2000 + 1024 + 512 = 3536 keysانتباهك الكامل128000 keys. 36x تقليل. الفائدة تزداد مع طول التسلسل، وهذا هو النقطة الكاملة.
كيف يُقارن
| Method | Differentiable | Real inference speedup | Long-range recall |
|---|---|---|---|
| Sliding window only | yes | yes | fails |
| Strided / block-sparse | yes | yes | partial |
| KV pruning (H2O, StreamingLLM) | N/A (inference-time) | yes | partial |
| MoBA (Moonshot) | partial | yes | good |
| NSA | yes (natively) | yes (9x at 64k) | matches full attention |
تم نشر MoBA (Moonshot ، arXiv: 2502.13189) في نفس الوقت ويأخذ نهجا مماثلا من ثلاثة هو أفضل من واحد ، وتطبيق مبدأ MoE على كتلة الاهتمام. NSA و MoBA هي المعماريين المعرفين ل2026 طويلة السياق التدريب المسبق.
بناءها
code/main.pyيطبق الفروع الثلاث على تسلسل اصطناعي قصير ويرجع إلى:
- المكملة MLP (مستخدمة خط أساس بسيط متوسط المجموعة للوضوح التربوي؛ وكالة الأمن القومي الحقيقية تستخدم المعلمة MLP).
- اختيار الكتل العليا القائمة على نقاط الفروع المضغوطة
- الاهتمام النافذة المنزلق على آخر
wرموز - التركيبة المفتوحة
- طباعة حسابية مقارنة مع الاهتمام الكامل
الخطوة الأولى: قم بتضغط الرموز إلى كتلة
pythondef compress(K, l):
n = len(K)
n_blocks = (n + l - 1) // l
out = []
for b in range(n_blocks):
start, end = b * l, min((b + 1) * l, n)
block = K[start:end]
summary = [sum(row[d] for row in block) / len(block) for d in range(len(K[0]))]
out.append(summary)
return outالخطوة الثانية: الاهتمام بالفروع المضغوطة
اجري الاهتمام المضغوط للطلب ضد المفاتيح المضغوطة. نقاط الفروع المضغوطة تضاعف كإشارة لتحديد top-k.
الخطوة الثالثة: اختيار الكتل العليا
اختر مؤشرات kأعلى نقاط الكتل المضغوطة، تحميل الرموز الأصلية غير المضغوطة من تلك الكتل وتحرك الانتباه إليها.
الخطوة الرابعة: مراقبة النافذة المنزلقة
خذ الأخيرwالوهم و إدارة الاهتمام القياسي ضدهم.
الخطوة 5: البوابة + الجمع
إن MLP الصغيرة على الاستفسار تنتج ثلاثة وزرات البوابة. الخروج النهائي هو جمع موازن من ثلاثة نتائج الفرع.
الخطوة 6: حساب الحساب
طبع عدد المفاتيح المشاركة في كل استفسار لكل فرع والجميع. مقارنة Nعلى جهاز صناعي ذو 1024 رمزاًl = 32, k = 4, w = 128, وكالة الأمن القومي ترى32 + 128 + 128 = 288المفاتيح لكل استفسار مقابل 1024 للاعتناء الكامل 3.5x أقل.
استخدمها
وكالة الأمن القومي تقوم بتسليم خط الأنابيب الخاص بـ DeepSeek قبل التدريب في السياق الطويل. حالة التكامل في مجموعات الاستخدام العامة اعتبارا من أبريل 2026:
- DeepSeek internal: الوزن الأصلي المنشورة يستخدم NSA أو خليفته DSA (التفاصيل العميقة الاهتمام).
- vLLM: دعم تجريبي من قبل وكالة الأمن القومي في تطوير وزنات DeepSeek-V3.x.
- SGLang: نشرت مؤشرات الاستعلامات الوطنية للإنسان؛ اتباع مسار الإنتاج vLLM.
- llama.cpp / CPU: لا يدعم؛ التكلفة العامة لتفكيك النواة ليست تستحقها عند انتاج CPU.
متى يجب الاتصال بالمنظمة الوطنية للضمان:
- تدريبات ما قبل التدريب أو تدريبات مستمرة تستهدف أكثر من 64 ألف حالة مع ميزانية حسابية خطيرة.
- إستنتاج لمواقع التفتيش الخاصة بـ (ديب سيك) في السياق الطويل، الوزن من (أن إس إيه)
متى لا يجب:
- لا يمكنك تعديل وكالة الأمن القومي دون تدريب مستمر
- -المدفوعات العليا الثلاثة تتهيمن على المدخرات
- دردشة تفاعلية للطائفة 1، فوائد فك الشفرة الحساسة بالتكسّف، ولكن فقط في سياقات طويلة.
أرسله
هذا الدرس يُنتجoutputs/skill-nsa-integrator.md. بالنظر إلى مواصفات التدريب المسبق للمشروع في السياق الطويل ، فإنه ينتج خطة تكامل NSA: حجم كتلة الضغط ، أعلى-k ، نافذة الزرعة ، عرض البوابة MLP ، اختيار النواة ، والقيام بتقييمات محددة في السياق الطويل التي ستبرر تغيير الهندسة المعمارية.
التمارين
- أركض
code/main.pyعلى جهاز صناعي ذو 1024 رمز(l, k, w)عبر ثلاث تعيينات مسبقة وتحسابات الطباعة. حدد تعيين مسبقا الذي يحقق أدنى عدد من المفاتيح لكل استفسار مع الحفاظ على 95% من التذكر ضد الاهتمام الكامل في اختبار الإبر في كومة العشب.
- استبدل مضغط الحجم المتوسط بمضغط MLP صغير المتعلم (مكون من 2 طبقات ، مختبئة 32). قم بتدريبه على مهمة اصطناعية حيث تكون الإشارة متوسطًا من كتلة. قم بقياس الفجوة في التعقيد مقابل خط الأساس المتوسط على البيانات المحفوظة.
- تنفيذ البوابة MLP. يأخذ الاستفسار كمدخول ويخرج ثلاثة مستويات. أظهر أن البوابة تتصرف بشكل معقول: وزن متساوي تقريبًا على الاستفسارات العشوائية، وزنه الثقيل على الفرع المختار عندما يصل الاستفسار إلى كتلة بعيدة.
- قم بحساب ميزانية ذاكرة الجهاز الاحتياطي الكهربائي لنموذج 70B المُمكن من NSA في سياق 128k. رؤوس KV هي 8 ، رأس 128, BF16. مقارنة مع الاهتمام الكامل و MLA (المرحلة 10 · 14 أظهرت أرقام MLA). حدد طول التسلسل حيث يكون الجهاز الجهاز الاحتياطي الكهربائي الكهربائي الكهربائي الكامل من NSA مساوياً للاهتمام الكامل.
- اقرأ القسم 4 من ورقة NSA (arXiv: 2502.11089) و اشرح في ثلاث جمل لماذا يتم إعادة استخدام درجات الاهتمام للقسم المضغوط لتحديد أعلى-k بدلاً من حساب درجة توجيه منفصلة. ربط الإجابة بتدفق التدفق.
الشروط الرئيسية
| Term | What people say | What it actually means |
|---|---|---|
| Compressed branch | "Coarse view" | Attention over block-averaged keys that provides global context in O(N/l) keys per query |
| Selected branch | "Top-k blocks" | Fine-grained attention over the k blocks with highest compressed-branch scores |
| Sliding window | "Local context" | Attention over the last W tokens for short-range patterns |
| Native trainability | "Pre-train with the sparsity on" | The sparsity pattern is learned during pre-training, not bolted on at inference |
| Compression block size l | "Group size for coarse view" | How many tokens get merged into one summary; 32-64 typical |
| Top-k | "Blocks to keep" | Number of compressed blocks whose uncompressed tokens get read; 16 typical |
| Sliding window W | "Local attention radius" | Typically 512; shorter hurts local coherence, longer wastes compute |
| Branch gate | "How to mix the three" | Per-position MLP output that weights the three branches' contributions |
| Hardware alignment | "Kernel-friendly sparsity" | Sparse pattern chosen so that the actual GPU kernel achieves the theoretical speedup |
| DSA | "NSA's successor" | Deepseek Sparse Attention, the architecture that followed NSA in DeepSeek's lineage |
المزيد من القراءة
- Yuan et al. — Native Sparse Attention: Hardware-Aligned and Natively Trainable Sparse Attention (arXiv:2502.11089, ACL 2025 Best Paper) الورق
- DeepSeek-V3 Technical Report (arXiv:2412.19437) عائلة الهدف المعماري من وكالة الأمن القومي
- Moonshot AI — MoBA: Mixture of Block Attention for Long-Context LLMs (arXiv:2502.13189)العمل المزامن، الاهتمام على الطراز من الـ MoE على الكتل
- Beltagy et al. — Longformer: The Long-Document Transformer (arXiv:2004.05150) أصول النافذة المنزلقة
- Xiao et al. — StreamingLLM: Efficient Streaming Language Models with Attention Sinks (arXiv:2309.17453) انخفاض الوقت الإستنتاجية القليل الأساسي NSA تحسن على
- Dao et al. — FlashAttention-2 (arXiv:2307.08691) الاهتمام الكامل خط الأساسي الأساسي NSA ضرب في 64k
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.