Phase 10: LLMs from Scratch

انتباه الخصم الأصلي (الجهاز الوطني للبحث العميق)

عند الرموز 64K، الاهتمام يأكل 70-80% من تأخير فك الرموز. كل مختبر مفتوح لديه خطة لإصلاحه وكالة الأمن القومي (أفضل ورقة في ACL 2025) في DeepSeek هي التي عالقت: ثلاثة فروع مراقبة متوازية تم ضغط رموز بقمح ضخمة، وتم الاحتفاظ بشكل انتقائي ب رموز بقمح رفيعة، ونوافذ زلقة للسياق المحلي مزجعة من خلال بوابة تعلم. هو متوافق مع الأجهزة (صديقة للنواة) ، يمكن تدريبها بشكل طبيعي (يعمل في التدريب المسبق ، وليس مشغولا عند الاستنتاج) ، وعلى 64k تشكيل يعمل أسرع من FlashAttention مع مطابقة أو ضرب جودة الاهتمام الكامل. هذا الدرس يبني الفروع الثلاثة من نهاية إلى نهاية ويعرض لماذا النقطة يمكن التمييز بين النهاية إلى النهاية.

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 أو نَسْل مباشر هو الاهتمام الافتراضي على كل نموذج حدود طويل السياق.

المفهوم

ثلاثة فروع متوازية

لكل استفسار، تقوم وكالة الأمن القومي بتشغيل الاهتمام ثلاث مرات، مقابل ثلاثة مشاهدات مختلفة من الاحتفاظ السريع:

  1. Compressed branch.يتم تجميع الرموز إلى كتلة من الحجمlيتم ضغط كل كتلة إلى رمز ملخص واحد عبر MLP الصغير المعلم. يقدم الاستفسار على هذه الرموز المضغوطة ، مما يحصل على رؤية ضخمة للسلسلة بأكملها.
  1. Selected branch.باستخدام درجات الاهتمام من الفرع المضغوط ، يتم تحديد كتلة top-k الأكثر أهمية للمسألة الحالية. يتم قراءة الرموز الدقيقة (غير المضغوطة) من تلك الكتل والمسألة تلتقي فوق جميعها. فكر في الاهتمام بالفرع المضغوط كإشارة توجيه للاختيار.
  1. Sliding-window branch.السؤال يلبي أحدثWالوهم (عادةً 512) للسياق المحلي. هذا الفرع يلتقط أنماط المدى القصير الثقيلة من الهيكل (التركيبة ، الإحساس المحلي) التي قد تفوت الاثنان الآخران.

يتم دمج ثلاثة خروجيات الفرع عبر بوابة تعلم لكل موقف:

out = g_cmp * out_cmp + g_sel * out_sel + g_win * out_win

g_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 تقليل. الفائدة تزداد مع طول التسلسل، وهذا هو النقطة الكاملة.

كيف يُقارن

MethodDifferentiableReal inference speedupLong-range recall
Sliding window onlyyesyesfails
Strided / block-sparseyesyespartial
KV pruning (H2O, StreamingLLM)N/A (inference-time)yespartial
MoBA (Moonshot)partialyesgood
NSAyes (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 ، اختيار النواة ، والقيام بتقييمات محددة في السياق الطويل التي ستبرر تغيير الهندسة المعمارية.

التمارين

  1. أركضcode/main.pyعلى جهاز صناعي ذو 1024 رمز(l, k, w)عبر ثلاث تعيينات مسبقة وتحسابات الطباعة. حدد تعيين مسبقا الذي يحقق أدنى عدد من المفاتيح لكل استفسار مع الحفاظ على 95% من التذكر ضد الاهتمام الكامل في اختبار الإبر في كومة العشب.
  1. استبدل مضغط الحجم المتوسط بمضغط MLP صغير المتعلم (مكون من 2 طبقات ، مختبئة 32). قم بتدريبه على مهمة اصطناعية حيث تكون الإشارة متوسطًا من كتلة. قم بقياس الفجوة في التعقيد مقابل خط الأساس المتوسط على البيانات المحفوظة.
  1. تنفيذ البوابة MLP. يأخذ الاستفسار كمدخول ويخرج ثلاثة مستويات. أظهر أن البوابة تتصرف بشكل معقول: وزن متساوي تقريبًا على الاستفسارات العشوائية، وزنه الثقيل على الفرع المختار عندما يصل الاستفسار إلى كتلة بعيدة.
  1. قم بحساب ميزانية ذاكرة الجهاز الاحتياطي الكهربائي لنموذج 70B المُمكن من NSA في سياق 128k. رؤوس KV هي 8 ، رأس 128, BF16. مقارنة مع الاهتمام الكامل و MLA (المرحلة 10 · 14 أظهرت أرقام MLA). حدد طول التسلسل حيث يكون الجهاز الجهاز الاحتياطي الكهربائي الكهربائي الكهربائي الكامل من NSA مساوياً للاهتمام الكامل.
  1. اقرأ القسم 4 من ورقة NSA (arXiv: 2502.11089) و اشرح في ثلاث جمل لماذا يتم إعادة استخدام درجات الاهتمام للقسم المضغوط لتحديد أعلى-k بدلاً من حساب درجة توجيه منفصلة. ربط الإجابة بتدفق التدفق.

الشروط الرئيسية

TermWhat people sayWhat 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

المزيد من القراءة

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.