The AI / news

DeepSeek-V3 من الصفر : بناء البنية في PyTorch

DeepSeek-V3 من الصفر : بناء البنية في PyTorch

ينشر موقع PyImageSearch درسًا تعليميًا مخصصًا لبناء بنية DeepSeek-V3 باستخدام PyTorch، وهي مكتبة للتعلم العميق. كجزء خامس من سلسلة مكونة من ستة أجزاء، يجمع هذا الدرس التعليمي، الذي وضعه Puneet Mangla، اللبنات التي تم تقديمها في الدروس السابقة لتشكيل نموذج لغة كامل، يحول الرموز (Tokens)، وهي وحدات النص التي يعالجها النموذج، إلى قيم احتمالية أولية (Logits)، وهي الدرجات الممنوحة لكل رمز محتمل.

غطت الدروس السابقة إعداد النموذج، وRotary Position Embeddings (RoPE)، التي ترمز موقع الرموز، وMultihead Latent Attention (MLA)، وهي آلية انتباه، وMixture of Experts (MoE)، أو خليط الخبراء، الذي يوزع الحساب بين عدة شبكات فرعية متخصصة. وأخيرًا، تتيح Multi-Token Prediction (MTP) التنبؤ بعدة رموز دفعة واحدة. وفقًا للدرس التعليمي، فإنها تحسن كفاءة التدريب ويمكن أن تسرع الاستدلال بفضل فك الترميز التخميني.

يجمع كل كتلة من كتل المحول (Transformer) بين MLA و MoE وفق مخطط يسمى « pre-norm »، حيث يحدث التطبيع قبل كل طبقة فرعية. وتنقل الوصلات المتبقية (Residual Connections) الإشارات مباشرة من طبقة إلى أخرى، وهو ما، كما يوضح المؤلف، يساعد في حل مشكلة تلاشي التدرجات (Vanishing Gradients) في الشبكات العميقة. ثم يربط النموذج الكامل بين تضمينات الرموز والمواضع، وطبقة الإسقاط (Dropout)، والكتل، والتطبيع النهائي، ورأس التنبؤ بالمفردات، وبشكل اختياري، رؤوس MTP.

مشاركة الأوزان والتنبؤ بعدة رموز

يقدم الدرس التعليمي أيضًا مشاركة الأوزان بين مصفوفة تضمين الرموز ورأس التنبؤ. لمفردات مكونة من 50,259 رمزًا وبعد تضمين مقداره 256، تتيح هذه التقنية توفير حوالي 12.9 مليون معلمة. وفقًا للمؤلف، فإنها غالبًا ما تحسن الأداء، لأن مساحتي الإدخال والإخراج تظلان متوافقتين.

أثناء التدريب، يتم حساب مخرجات رؤوس MTP لعدة آفاق مستقبلية، ثم يتم دمج خسائرها مع الخسارة الرئيسية ومع خسارة مساعدة لـ MoE، تهدف إلى موازنة الحمل بين الخبراء. في الكود المقدم، يتم ترجيح متوسط خسارة MTP بمقدار 0.3 بالنسبة للخسارة الرئيسية. لا تُستخدم رؤوس MTP أثناء الاستدلال، أي توليد النص.

حجم النموذج والبصمة الذاكريّة

وفقًا للمؤلف، يحتوي النموذج على حوالي 30 إلى 35 مليون معلمة موزعة على ست طبقات، أي 2 إلى 3 ملايين لكل طبقة، بالإضافة إلى 2 إلى 3 ملايين معلمة لكل رأس MTP. بدقة FP32، على 32 بت، تمثل المعلمات وحدها 120 إلى 140 ميغابايت. يتطلب التدريب، مع التدرجات وحالات مُحسّن AdamW، حوالي 500 إلى 600 ميغابايت، بالإضافة إلى التنشيطات. لمجموعة من 4 أمثلة مكونة من 1,024 رمزًا، تزن هذه التنشيطات 200 إلى 300 ميغابايت، أي ما يقرب من 800 ميغابايت إجمالاً، وهي كمية يرى الدرس التعليمي أنها متوافقة مع وحدات معالجة الرسوميات (GPU) الحالية.

في الاستدلال، تقلل دقة FP16 الذاكرة إلى النصف تقريبًا. لا تلجأ التنفيذية إلى ذاكرة تخزين مؤقت للمفاتيح والقيم (KV Cache) وبالتالي تعيد حساب السياق في كل خطوة توليد. سيركز الدرس القادم في السلسلة على تدريب هذا النموذج على بيانات حقيقية.