Phase 10: LLMs from Scratch

मल्टी-टोकन भविष्यवाणी (एमटीपी)

प्रत्येक autoregressive LLM GPT-2 से Llama 3 प्रति स्थिति एक हानि पर ट्रेनः अगले टोकन का अनुमान लगाएं। डीपसेक-वी 3 ने प्रति स्थिति एक दूसरा नुकसान जोड़ाः उसके बाद टोकन की भविष्यवाणी करें। पैरामीटर के अतिरिक्त 14B (एक 671B मॉडल पर) को ग्रेडिएंट प्रवाह के माध्यम से मुख्य मॉडल में वापस डिस्टिल किया गया, और प्रशिक्षित MTP हेड को 80%+ स्वीकृति के साथ अनुमानात्मक-डिकोडिंग ड्राफ्टर के रूप में निष्कर्ष पर पुनः उपयोग किया गया। 1.8x पीढ़ी की गति मुफ्त में आया। यह पाठ डीपसेक तकनीकी रिपोर्ट से अनुक्रमिक एमटीपी मॉड्यूल का निर्माण करता है, हानि और साझा-हेड पैरामीटर लेआउट की गणना करता है, और समझाता है कि एमटीपी कारण श्रृंखला को क्यों रखता है जबकि ग्लोकल आदि के मूल समानांतर एमटीपी ने इसे तोड़ दिया है।

Type: Build

Languages: Python (stdlib)

Prerequisites: Phase 10 · 04 (pre-training a mini GPT), Phase 10 · 15 (speculative decoding)

Time: ~60 minutes

सीखने के लक्ष्य

  • एमटीपी प्रशिक्षण उद्देश्य का वर्णन करें और भविष्यवाणी गहराई के माध्यम से संयुक्त हानि का अनुमान लगाएं।
  • ग्लोकल एट एल्स के समानांतर एमटीपी हेड (2024) और डीपसेक-वी3 के क्रमिक एमटीपी मॉड्यूल के बीच अंतर और क्रमिक डिजाइन कारण श्रृंखला को क्यों संरक्षित करता है, समझाएं।
  • पूर्व-प्रशिक्षण रन में एमटीपी मॉड्यूल जोड़ने के पैरामीटर और मेमोरी ओवरहेड की गणना करें।
  • एक एमटीपी मॉड्यूल को खरोंच से लागू करेंः साझा एम्बेडिंग, प्रति-गहन ट्रांसफार्मर ब्लॉक, प्रोजेक्शन और साझा आउटपुट हेड।

समस्या

अगले टोकन भविष्यवाणी मानक एलएलएम प्रशिक्षण उद्देश्य है। हर छिपी हुई स्थिति की निगरानी एक ही बात की भविष्यवाणी करने के लिए की जाती हैः तुरंत बाद टोकन। यह आश्चर्यजनक रूप से कमजोर संकेत है। एक अनुक्रम में अधिकांश जानकारी एक टोकन संरचना, सुसंगतता, तथ्य, अंकगणितीय प्रवाह से परे फैलती है। मॉडल को उन लोगों को सीखना होगा जो ट्रिलियन टोकन पर कई एक टोकन संकेतों को जमा कर रहे हैं।

एमटीपी पूछता हैः क्या होगा अगर हर छिपे हुए राज्य की निगरानी की जाती है ताकि एक ही समय में कई भविष्य के टोकन की भविष्यवाणी की जा सके? ग्लॉकल एट अल. (मेटा, 2024) ने दिखाया कि यह मदद करता है। उनके कार्यान्वयन ने रीढ़ की हड्डी के ऊपर कई स्वतंत्र आउटपुट हेड लगाए, प्रत्येक ने एक अलग ऑफसेट की भविष्यवाणी की। समानांतर, सरल, लेकिन सिरों ने बिना किसी पदानुक्रमिक परिष्करण के एक ही छिपी हुई स्थिति देखी और भविष्यवाणियों ने कारण से श्रृंखला नहीं बनाई, इसलिए उन्हें अटकलों के लिए उपयोग नहीं किया जा सकता है।

डीपसेक-वी3 (दिसंबर 2024) ने एमटीपी को क्रमिक मॉड्यूल के रूप में फिर से डिज़ाइन किया जो प्रत्येक भविष्यवाणी की गहराई पर कारण श्रृंखला को बनाए रखता है। मॉडल भविष्यवाणी करता है t+1सेh_i^(0), फिर भविष्यवाणी करता है t+2एक नई छिपी हुई अवस्था सेh_i^(1)जो संयुक्त h_i^(0)के साथ E(t+1)प्रत्येक गहराई का अपना छोटा ट्रांसफार्मर ब्लॉक होता है. साझा एम्बेडिंग और साझा आउटपुट हेड पैरामीटर ओवरहेड को मामूली रखते हैं। डीपसेक-वी 3 के पैमाने पर, 671 बी मुख्य मॉडल के वजन के शीर्ष पर एमटीपी मॉड्यूल में 14 बी अतिरिक्त पैरामीटर होते हैं। उस 2% ओवरहेड ने निष्कर्ष पर अधिक घने प्रशिक्षण संकेत और एक तैयार अटकल-डिकोडिंग ड्राफ्ट खरीदा।

इस पाठ में एक एकल एमटीपी मॉड्यूल और D-गहनता खो खो देता है। गणित व्यवस्थित है। कार्यान्वयन 150 पंक्तियों है।

अवधारणा

अनुक्रमिक एमटीपी नुस्खा

डीपसेक-वी3 जोड़ता है Dमुख्य मॉडल के ऊपर एमटीपी मॉड्यूल। प्रत्येक मॉड्यूल k(के लिए k = 1..D) गहनता से टोकन की भविष्यवाणी करता है k यानी, t_{i+k}स्थिति के माध्यम से एक पूर्वावलोकन दिया i. .

मॉड्यूल kइसमें शामिल हैः

  • एक ट्रांसफार्मर ब्लॉक T_kअपने स्वयं के ध्यान और एमएलपी के साथ।
  • एक प्रक्षेपण मैट्रिक्स M_kजो पहले की गहराई से छिपी हुई स्थिति को अगले गहराई से अंतर्निहित मूल सत्य टोकन के साथ जोड़ता है।
  • साझा एम्बेडिंग E(मुख्य मॉडल के समान) ।
  • साझा आउटपुट हेड Out(मुख्य मॉडल के समान) ।

प्रशिक्षण में, पद के माध्यम से एक पूर्वावलोकन के लिए i, गहराई से छिपी हुई स्थिति हैः

h_i^(0) = main model backbone at position i
h_i^(k) = T_k( M_k * concat(RMSNorm(h_i^(k-1)), RMSNorm(E(t_{i+k}))) )   for k >= 1

गहन भविष्यवाणी हैः

logits_{i+k} = Out(h_i^(k-1))   for k = 1..D

गहराई के प्रति हानि मूल सत्य के साथ क्रॉस-एंट्रोपी है t_{i+k}:

L_k = CE(logits_{i+k}, t_{i+k})

गहराई पर जोड़ों का नुकसानः

L_MTP = (lambda / D) * sum_{k=1..D} L_k

lambda डीपसेक-वी3 प्रशिक्षण के पहले 10% के लिए 0.3 और उसके बाद 0.1 का उपयोग करता है।L_main + L_MTP. .

क्यों क्रमशः, समानांतर नहीं

ग्लोकल के मूल समानांतर एमटीपी में डी आउटपुट हेड थे, प्रत्येक सीधे लागू किया गया था h_i^(0). हर सिर भविष्यवाणी करता है .t_{i+k}एक ही रीढ़ की हड्डी से छिपी हुई स्थिति से. यह अच्छी तरह से ट्रेन करता है, लेकिन भविष्यवाणियों एक दूसरे पर शर्त नहीं है. आप उपयोग नहीं कर सकते.head_1मदद करने के लिए आउटपुटhead_2 समानांतर में सिरों की आग लगती है।

डीपसेक-वी3 का अनुक्रमिक डिजाइन निर्माण करता है h_i^(k)सेh_i^(k-1)प्लस वास्तविक अगले टोकन एम्बेडिंग E(t_{i+k}). जो कारणों की श्रृंखला को संरक्षित करता हैः भविष्यवाणी करने के लिएt_{i+k+1}, गहिराई पर मॉड्यूल k+1देखता है कि क्या था t_{i+k}. यह संरचनात्मक रूप से एक ऑटोरेग्रेसिव डिकोडर अपने स्वयं के आउटपुट का उपभोग करने के तरीके के समान है जिससे एमटीपी मॉड्यूल सीधे अनुमानात्मक डिकोडिंग ड्राफ्टर के रूप में उपयोग में आते हैं।

निष्कर्ष परः फ़ीड h_i^(k-1)और तैयार किया गया t_{i+k}मॉड्यूल में k+1, एक भविष्यवाणी प्राप्त करने के लिएt_{i+k+1}. दोहराएं. यह वास्तव में एक ईएजीएलई शैली का ड्राफ्ट है, जिसमें प्रशिक्षित एमटीपी मॉड्यूल को ड्राफ्ट नेटवर्क के रूप में उपयोग किया जाता है। डीपसेक-वी 3 में पहले एमटीपी मॉड्यूल पर 80% से अधिक स्वीकृति और ~ 1.8x गति की रिपोर्ट है।

पैरामीटर लेखांकन

छिपे हुए मॉडल के लिए hऔर शब्दावली V:

  • मुख्य मॉडलः अरबों मापदंडों, प्लस एक आउटपुट सिर आकार V * h. .
  • साझा आउटपुट हेडः मुख्य मॉडल के हेड का पुनः उपयोग करें। कोई अतिरिक्त पैरामीटर नहीं।
  • साझा एम्बेडिंगः मुख्य मॉडल के एम्बेडिंग का पुनः उपयोग करें। कोई अतिरिक्त पैरामीटर नहीं।
  • प्रति एमटीपी मॉड्यूलः

- प्रक्षेपण M_k(2h) * h = 2h^2. .

- ट्रांसफार्मर ब्लॉक T_kध्यान (4h^2MHA के लिए) प्लस MLP (आमतौर पर 8h^2SwiGLU के लिए अनुपात 8/3 है।12h^2प्रति ब्लॉक।

प्रति मॉड्यूल अतिरिक्त कुलः ~14h^2. डीपसेक-वी 3 के लिए h = 7168, D = 1 मॉड्यूल: ~14 * 7168^2 = ~720Mडीपसेक-वी3 रिपोर्ट 14B अंतर ज्यादातर विशेषज्ञ परतों एमटीपी मॉड्यूल में भी MoE है।

अनुमानित-डिकोडिंग भुगतान

पूर्व-प्रशिक्षण के दौरान, एमटीपी मॉड्यूल प्रशिक्षण को लगभग 10% (अधिक आगे की गणना, अतिरिक्त हानि) धीमा करते हैं। भुगतान दो गुना हैः

  1. डेंसर प्रशिक्षण संकेत. प्रत्येक छिपे हुए राज्य में डी + 1 निगरानी लक्ष्य दिखाई देते हैं। एमएमएलयू, जीएसएम 8 के, एमएटीएच, ह्यूमनईवल पर मापा प्रभावः डीपसेक-वी 3 के अपवर्तन में लगातार कुछ प्रतिशत-पॉइंट सुधार।
  1. अनुमान पर निः शुल्क अनुमानात्मक डिकोडिंग ड्राफ्ट। एमटीपी मॉड्यूल पहले से ही अगले कुछ टोकन की भविष्यवाणी करने के लिए प्रशिक्षित है। एक ड्राफ्ट नेटवर्क के रूप में पुनः उपयोग किया जाता है, यह 80% + स्वीकृति दर प्रदान करता है। उस स्तर पर, N = 3 या N = 5 स्पेसिफिकेशन डिकोडिंग 1.8x थ्रूपुट देता है। 10% प्रशिक्षण समय लागत पहली बार आप अनुमान चलाते हैं।

ईगल से संबंध

ईगल एक छोटे से ड्राफ्ट मॉडल को पूर्व-प्रशिक्षण के बाद अलग से प्रशिक्षित करता है। एमटीपी ड्राफ्ट को पूर्व-प्रशिक्षण में पकाता है। दोनों दृष्टिकोण समान स्वीकार दरों पर मुलाकात करते हैं लेकिन विभिन्न पाइपलाइनों के माध्यम सेः

DimensionEAGLE-3MTP (DeepSeek-V3)
When trainedPost-pre-trainingDuring pre-training
Backward-compatible with existing weightsYesNo (need to re-train)
Draft params1-2 transformer layers1 transformer block + projection
Acceptance rate0.88-0.920.80+ at depth 1
Benefit beyond speedupSpeculative decoding onlyDenser training signal + speedup

इसे बनाओ

code/main.pyएक एकल एमटीपी मॉड्यूल अंत-अंत का निर्माण करता हैः साझा एम्बेडिंग, प्रोजेक्शन, ट्रांसफार्मर ब्लॉक, साझा आउटपुट हेड। यह फिर एक छोटी सिंथेटिक अनुक्रम पर गहराई पार-एंट्रोपी हानि की गणना करता है और घटक द्वारा पैरामीटर की गिनती प्रिंट करता है। 32 टोकन की एक खिलौना शब्दावली संख्याओं को पठनीय रखती है।

चरण 1: साझा एम्बेडिंग टेबल

एक एकल vocab_size x hiddenतालिका मुख्य मॉडल और प्रत्येक एमटीपी मॉड्यूल द्वारा हर गहराई पर उपयोग किया जाता है. एक दूसरी प्रति नहीं शाब्दिक रूप से एक ही tensor.

चरण 2: प्रति गहराई संयोजन

pythondef combine(prev_hidden, next_token_embed, M_k):
    # concat along feature dim, then project down to hidden
    concat = rms_norm(prev_hidden) + rms_norm(next_token_embed)  # vector addition stand-in
    projected = matvec(M_k, concat)
    return projected

वास्तविक डीपसेक-वी3 दो आरएमएसनॉर्मड वेक्टरों को एक साथ जोड़ता है [2h]और परियोजनाओं के साथ h x 2hखेलौना एसडीएलबी संक्षिप्तता के लिए वेक्टर जोड़ का उपयोग करता है।

चरण 3: गहिराई k पर ट्रांसफार्मर ब्लॉक

स्व-ध्यान और एमएलपी। खिलौना में, एक-परत रैखिक ध्यान ब्लॉक और एक स्विल्यू एमएलपी संरचना को नंप के बिना दिखाई देता है।

चरण 4: साझा आउटपुट हेड

मुख्य मॉडल के आउटपुट प्रोजेक्शन का पुनः उपयोग करें. शब्दावली पर लॉजिट.

चरण 5: प्रति गहराई हानि

स्थूल सत्य टोकन के विरुद्ध softmax की क्रॉस-एंट्रोपी k. गहरे के पार संकलित करें lambda / Dस्केलिंग कारक।

चरण 6: पैरामीटर लेखांकन

कुल पैरामीटर की गिनती, साझा (एम्बेड, हेड) गिनती और प्रति मॉड्यूल अतिरिक्त गिनती प्रिंट करें। मुख्य मॉडल आकार के लिए एमटीपी अतिरिक्त का अनुपात दिखाएं।

इसका प्रयोग करें

एमटीपी को डीपसेक-वी3 (दिसंबर 2024) और डीपसेक-आर1 श्रृंखला में एकीकृत किया गया है। निष्कर्ष परः

  • डीपसेक के स्वयं के सेवा स्टैक में एमटीपी मॉड्यूल का उपयोग बॉक्स से बाहर अनुमानित डिकोडर के रूप में किया जाता है।
  • vLLM और SGLang के पास अप्रैल 2026 से डीपसेक-V3 एमटीपी के लिए एकीकरण मार्ग हैं।
  • AMD के ROCm SGLang ट्यूटोरियल में V3 चेकपॉइंट पर मापा गया 1.8x स्पीडअप के साथ एक विशिष्ट MTP अनुमानात्मक-डिकोडिंग कॉन्फ़िग दिखाया गया है।

नए पूर्व-प्रशिक्षण रन में एमटीपी का उपयोग कब करेंः

  • आप प्रशिक्षण पूर्व पूरी पाइपलाइन को नियंत्रित करते हैं और अधिक घने प्रशिक्षण संकेत बैंक करना चाहते हैं।
  • आप जानते हैं कि आप पैमाने पर मॉडल की सेवा करेंगे और निः शुल्क अटकलों डिकोडिंग चाहते हैं।
  • आपके छिपे हुए आकार कम से कम 4096 है 1B पैमाने पर ओवरहेड लाभ से अधिक चोट करता है।

कब नहीं करनाः

  • एक मौजूदा पूर्व-प्रशिक्षित घने मॉडल को ठीक से समायोजित करना। एमटीपी मॉड्यूल प्रशिक्षित नहीं है।
  • शोध मॉडल जहां आप एक स्वच्छ आधार रेखा की तुलना करना चाहते हैं। एमटीपी वास्तुकला बदलता है।

इसे भेजें

यह सबक हमें फल देता हैoutputs/skill-mtp-planner.md. प्रशिक्षण से पहले रन विनिर्देश (मॉडल आकार, डेटा, गणना) को देखते हुए, यह एमटीपी को एकीकृत करने की योजना देता हैः गहराई की संख्या D, lambdaसमय सीमा, मेमोरी ओवरहेड, और अनुमान समय अनुमानित-डिकोडिंग तारों.

व्यायाम

  1. दौड़ेंcode/main.py. सिंथेटिक सिग्नल के मजबूत होने के साथ प्रति गहराई हानि को एकतरफा रूप से कम करना दिखाएं. एक निश्चित पैटर्न का उपयोग करने के लिए सिंथेटिक को संशोधित करें और गहराई-1 और गहराई-2 दोनों हानि के अभिसरण की जांच करें।
  1. डी = 1 एमटीपी मॉड्यूल के साथ घने 70 बी मॉडल (छिपे हुए 8192, 80 परतें) के लिए पैरामीटर ओवरहेड की गणना करें। डीपसेक-वी 3 द्वारा रिपोर्ट किए गए 14 बी ओवरहेड की तुलना करें। समझाएं कि डीपसेक की संख्या क्यों अधिक हैः एमटीपी ट्रांसफार्मर ब्लॉक एक ही एमओई संरचना को विरासत में देता है, प्रति मॉड्यूल पैरामीटर की गिनती को बढ़ाता है।
  1. खिलौना में D=2 लागू करेंः एक दूसरा MTP मॉड्यूल जो h^(1) लेता है और भविष्यवाणी करता है t_{i+2}संयुक्त हानि और पैरामीटर लेखांकन डीपसेक पेपर के समीकरण 19-21 से मेल खाती है।
  1. खिलौना को समानांतर MTP (ग्लोकल शैली) पर स्विच करेंः मुख्य छिपे हुए राज्य के शीर्ष पर D आउटपुट हेड जोड़ें, प्रत्येक एक अलग ऑफसेट की भविष्यवाणी करते हुए। मापें कि एक ही सिंथेटिक सिग्नल पर अनुक्रमिक संस्करण के साथ गहराई के नुकसान की तुलना कैसे की जाती है। अनुक्रमिक संस्करण को k > 1 के लिए कम गहराई-k हानि पैदा करनी चाहिए क्योंकि यह मध्यवर्ती भविष्यवाणियों पर शर्त लगाता है।
  1. प्रशिक्षित एमटीपी मॉड्यूल का उपयोग ईजीएलई शैली के मसौदे के रूप में करेंः प्रस्ताव करने के लिए मॉड्यूल k को कॉल करें t_{i+k}यदि आप खिलौना पर 50%+ हिट करते हैं, तो आपने अनुभवजन्य MTP-as-draft गुण को पुनः प्रस्तुत किया है।

प्रमुख शर्तें

TermWhat people sayWhat it actually means
MTP module"Extra loss block"A small transformer block plus projection that predicts a token k positions ahead of the main model
Prediction depth"Which offset"The integer k such that module k predicts t_{i+k} from prefix through position i
Parallel MTP"Gloeckle-style"D independent heads on the same backbone hidden state, no conditional chain
Sequential MTP"DeepSeek-V3 style"Each module conditions on the previous depth's hidden state plus the next token's embedding; preserves causal chain
Shared output head"Reuse the main head"The MTP modules call the main model's LM head, not a separate output projection
Shared embedding"Reuse the main table"Same vocabulary embedding table is used everywhere; no duplicate parameters
Projection matrix M_k"Combine hidden + next-token"An h x 2h linear layer that folds the previous hidden state and the target-token embedding into the next depth's input
Joint loss L_MTP"Averaged extra losses"Arithmetic mean of per-depth cross-entropy losses, scaled by lambda
Acceptance rate at depth 1"How often MTP draft is right"The rate at which the D=1 MTP module's top-1 prediction equals the main model's top-1 prediction; 80%+ on DeepSeek-V3
Lambda weighting"Extra-loss importance"Per-depth scaling factor; 0.3 at start of training, 0.1 later on DeepSeek-V3

आगे पढ़ना

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.