مقال
تكتسب نماذج اللغة الصغيرة أهمية متزايدة مع سعي المستخدمين للحصول على نماذج قادرة يمكن نشرها بكفاءة. لقد أنتجت المجتمع مجموعة مثيرة من النماذج الصغيرة القادرة، حيث تدفع كل منها حدود الممكن في هذا النطاق. مع SmolLM3، نحن متحمسون للمساهمة بنموذج جديد تنافسي مفتوح بالكامل بحجم 3B:
- النموذج الأساسي: https://hf.co/HuggingFaceTB/SmolLM3-3B-Base
- نموذج التعليم والتفكير: https://hf.co/HuggingFaceTB/SmolLM3-3B
يجلس SmolLM3 في منطقة الكفاءة المثلى. نموذجنا بحجم 3B يتفوق على Llama-3.2-3B و Qwen2.5-3B بينما يبقى تنافسياً مع البدائل الأكبر بحجم 4B (Qwen3 و Gemma3). بعيداً عن أرقام الأداء، نحن نشارك بالضبط كيف بنيناه باستخدام مجموعات بيانات عامة وأطر تدريب.

ملخص النموذج:
- نموذج 3B تم تدريبه على 11T من الرموز، وهو الأفضل في فئته بحجم 3B وتنافسي مع نماذج 4B
- نموذج التعليم مع تفكير مزدوج، يدعم أوضاع
think/no_think - دعم متعدد اللغات لست لغات: الإنجليزية، الفرنسية، الإسبانية، الألمانية، الإيطالية، والبرتغالية
- سياق طويل يصل إلى 128k باستخدام NoPE و YaRN
الوصفة الكاملة: نحن نطلق SmolLM3 مع مخططنا الهندسي. يتضمن تفاصيل الهيكل، ومزيج البيانات الدقيق الذي يظهر كيف نعزز الأداء تدريجياً عبر المجالات في نهج تدريب مسبق من ثلاث مراحل، والمنهجية لبناء نموذج تفكير هجين. عادةً، سيتطلب تحقيق هذه النتائج شهوراً من الهندسة العكسية. بدلاً من ذلك، نحن نقدم المنهجية الكاملة.

سواء كنت تبني نماذجك الخاصة أو ترغب في فهم ما يدفع الأداء في هذا النطاق، فإن هذا المخطط يظهر القصة الهندسية وراء الأداء التنافسي بحجم 3B.
دعونا نلقي نظرة على مرحلة التدريب المسبق.
التدريب المسبق
لقد غير SmolLM3 كل من الهيكل ومزيج البيانات مقارنة بسابقيه. دعونا نلقي نظرة على الهيكل وتكوينات التدريب أولاً!
تفاصيل الهيكل والتدريب

يتبع SmolLM3 هيكل محول مفكك مع ربط التضمين مشابه لـ SmolLM2، حيث يبني على هيكل Llama مع بعض التعديلات الرئيسية المحسنة للكفاءة وأداء السياق الطويل.
الانتباه المجمع (GQA): لقد استبدلنا الانتباه متعدد الرؤوس بانتباه مجمع باستخدام 4 مجموعات. أظهرت تجاربنا على نموذج 3B تم تدريبه على 100B من الرموز من FineWeb-Edu أن GQA يطابق أداء الانتباه متعدد الرؤوس بينما يقلل بشكل كبير من حجم ذاكرة التخزين المؤقت KV أثناء الاستدلال.
NoPE: قمنا بتنفيذ NoPE من "RoPE إلى NoRoPE والعودة مرة أخرى: استراتيجية انتباه هجينة جديدة" (Yang et al.، 2025)، من خلال إزالة التضمينات الموضعية الدوارة من كل طبقة رابعة. يحسن هذا النهج أداء السياق الطويل دون التأثير على قدرات السياق القصير، كما أكدت تجاربنا.
تغطية الوثائق الداخلية: بناءً على "تحليل تأثير تكوين التسلسل على تدريب نماذج اللغة"، نستخدم خلال التدريب تقنية حجب الانتباه لضمان عدم تفاعل الرموز من مستندات مختلفة في نفس تسلسل التدريب مع بعضها البعض. يشبه ذلك ما تم استخدامه في Llama 3، مما يساعد على تسريع التدريب على السياقات الطويلة بشكل أكثر استقرارًا مع الحفاظ على أداء جيد في السياقات القصيرة.
استقرار التدريب: بناءً على OLMo 2، قمنا بإزالة تآكل الوزن من طبقات التضمين لتحسين استقرار التدريب. ساهم هذا التعديل في ديناميكيات تدريب أكثر استقرارًا، حيث استقرت معايير التضمين بشكل طبيعي عند قيم أكثر صحة خلال التدريب دون التأثير على الأداء العام في تجاربنا.
تم التحقق من جميع هذه التغييرات من خلال التجارب باستخدام نفس بنية 3B المدربة على 100B رموز من FineWeb-Edu، مما يضمن أن كل تعديل إما حسّن الأداء أو حافظ عليه مع تقديم فوائد أخرى.
تكوين التدريب: نستخدم حجم دفعة عالمي يبلغ 2.36M رموز مع طول تسلسل 4096، ومعدل تعلم يبلغ 2e-4، ومُحسّن AdamW (بيتا1: 0.9، بيتا2: 0.95) مع تآكل وزن قدره 0.1 وتقليم تدرج قدره 1. نستخدم جدولة WSD (التسخين - الاستقرار - التآكل)، مع 2000 خطوة تسخين، وتآكل خطي إلى 0 في آخر 10% من خطوات التدريب. استخدمنا إطار عمل nanotron للتدريب، وdatatrove لمعالجة البيانات، وlighteval للتقييم. تم تدريب النموذج على 384 وحدة معالجة رسومية من نوع H100 لمدة 24 يومًا. يمكنك رؤية إعداد التدريب الموزع في الشكل التالي.

بالإضافة إلى تغييرات البنية، قمنا أيضًا بتحسين وصفة التدريب. دعونا نلقي نظرة أقرب.
خليط البيانات ومراحل التدريب
استنادًا إلى نهج SmolLM2 متعدد المراحل، نقوم بتدريب SmolLM3 على 11.2T رموز باستخدام استراتيجية تدريب من ثلاث مراحل تمزج بين بيانات الويب والرياضيات والبرمجة بنسب متطورة. أجرينا تجارب واسعة على نماذج 3B المدربة على 50B إلى 100B رموز لتحديد خليط البيانات والنسب.

يتكون التدريب المسبق من هذه المراحل، كما هو موضح في الشكل أعلاه:
- المرحلة 1: المرحلة المستقرة (0T → 8T رموز) تؤسس هذه المرحلة الأساسية قدرات عامة قوية مع خليط بياناتنا الأساسي:
- الويب: 85% (12% متعدد اللغات) - FineWeb-Edu، DCLM، FineWeb2 وFineWeb2-HQ
- البرمجة: 12% - The Stack v2 (16 لغة برمجة)، طلبات StarCoder2، دفاتر Jupyter وKaggle، مشاكل GitHub، وStackExchange.
- الرياضيات: 3% - FineMath3+ وInfiWebMath3+
- المرحلة 2: المرحلة المستقرة (8T → 10T رموز) نقدم مجموعات بيانات رياضية وبرمجية عالية الجودة مع الحفاظ على تغطية جيدة للويب:
- الويب: 75% (12% متعدد اللغات)
- البرمجة: 15% - إضافة Stack-Edu
- الرياضيات: 10% - تقديم FineMath4+، InfiWebMath4+، وMegaMath (بما في ذلك Qwen Q&A، إعادة كتابة Pro الاصطناعية، وكتل النص والرمز المتداخلة)
- المرحلة 3: مرحلة التآكل (10T → 11.1T رموز) المرحلة النهائية تزيد من بيانات الرياضيات والبرمجة:
- الويب: 63% (12% متعدد اللغات)
- البرمجة: 24% - زيادة بيانات البرمجة عالية الجودة
- الرياضيات: 13% - زيادة بيانات الرياضيات وتقديم مجموعات بيانات التعليم والتفكير مثل OpenMathReasoning
مع هذه المراحل والخليط، حققنا أداءً تنافسياً للغاية للنموذج الأساسي. المزيد عن ذلك في قسم التقييم. يمكن العثور على تكوينات تدريب nanotron مع أوزان البيانات الدقيقة هنا. سنشارك أيضًا سجلات تدريبنا جنبًا إلى جنب مع نقاط التحقق الوسيطة.
بعد التدريب المسبق الرئيسي، قمنا بتحسين النموذج في مرحلة تدريب وسطى لتحسين السياق الطويل والتفكير.
التدريب الوسيط
نطلق على تكييف السياق الطويل وتكييف التفكير "التدريب الوسيط". هما أقصر بكثير من التدريب المسبق الرئيسي ولكنهما لا يزالان عامًا إلى حد ما ويهدفان إلى تحسين النموذج في هذين المجالين. دعونا نلقي نظرة أولاً على تدريب السياق الطويل.
تمديد السياق الطويل

بعد التدريب المسبق الرئيسي، قمنا بتدريب SmolLM3 على 100B رموز إضافية لتمديد طول السياق. قمنا بتمديد نافذة السياق بشكل متتابع على مرحلتين لكل منهما 50B رموز: أولاً الانتقال من 4k إلى 32k سياق مع زيادة RoPE theta إلى 1.5M، ثم من 32k إلى 64k سياق مع زيادة RoPE theta إلى 5M. زادت كلا المرحلتين من بيانات الرياضيات والبرمجة والتفكير. خلال التجارب، وجدنا أن زيادة بيانات السياق الطويل المحددة مثل مستودعات البرمجة، والكتب، وصفحات الويب الطويلة (تتجاوز العينات الطويلة بشكل طبيعي في خليطنا) لم تعزز الأداء بشكل أكبر على معايير RULER وHELMET. كان استخدام NoPE والتدريب على خليط التآكل مع تسلسلات أطول وزيادة قيم RoPE theta كافياً لتحقيق أداء تنافسي في السياق الطويل يصل إلى 64k.
استنادًا إلى Qwen2.5، نستخدم YARN لاستقراء ما وراء طول سياق التدريب. خلال الاستدلال، يمكن للنموذج التعامل مع سياق يصل إلى 128k (تمديد 2x يتجاوز طول التدريب 64k).
التدريب الوسيط للتفكير
بعد تمديد طول سياق النموذج، قمنا بتدريبه في مرحلة تدريب وسطى لتضمين قدرات التفكير. الفرق الرئيسي بين مرحلة التدريب الوسيط ومرحلتَي التدريب السابقة واللاحقة هو أننا استهدفنا قدرة عامة دون التركيز بعد على مجال معين. في حالتنا، أردنا تدريب النموذج على التفكير دون استهداف مجال معين، مثل الرياضيات أو البرمجة.
تضمن مجموعة بيانات التدريب الوسيط لدينا 35B رموز مستمدة من Open Thought’s OpenThoughts3-1.2M ومجموعة فرعية من مجموعة بيانات NVIDIA’s Llama-Nemotron-Post-Training-Dataset-v1.1 مع آثار التفكير من R1. استخدمنا قالب دردشة ChatML وعبوات التعبئة لتجنب تقديم هيكل مفرط للنموذج. قمنا بتدريب النموذج لمدة 4 (~140B رموز) دورات واستخدمنا نقطة التحقق للمرحلة التالية من SFT.
ما بعد التدريب
أظهرت إطلاق نماذج التفكير مثل DeepSeek R1 وQwen3 القدرات القوية التي تظهر عندما يمكن للنماذج الانخراط في التفكير الصريح. ومع ذلك، لا تزال المجتمع يفتقر إلى وصفات مفتوحة بالكامل مع مجموعات بيانات عامة لبناء نماذج تعليم مزدوجة تدعم كل من أوضاع التفكير وغير التفكير. تتضمن معظم الأساليب الحالية عمليات تعلم تعزيزية معقدة ومجموعات بيانات ملكية، مما يجعل من الصعب على الباحثين إعادة إنتاج هذه النتائج والبناء عليها.
في هذا القسم، نشرح كيف تعاملنا مع هذه التحديات ونشارك وصفتنا الكاملة لبناء نموذج تعليم مزدوج. نفصل كيف نوازن الأداء بين أوضاع التفكير وغير التفكير من خلال خط أنابيب تدريب مصمم بعناية يتضمن التدريب الوسيط لقدرات التفكير العامة، والتدريب الدقيق الخاضع للإشراف مع توليد بيانات اصطناعية، والمحاذاة باستخدام تحسين التفضيل المربوط (APO) - وهو نوع حديث من DPO.

بناء قالب الدردشة
قبل الغوص في منهجية التدريب، من الضروري تحديد كيفية تفاعل المستخدمين مع نموذجنا ثنائي الوضع. يعمل قالب الدردشة كواجهة تتيح التبديل السلس بين أوضاع التفكير وغير التفكير، وتصميمه يؤثر بشكل مباشر على كل من تنسيق بيانات التدريب وسلوك النموذج. يسمح قالب الدردشة في SmolLM3 للمستخدمين بالتحكم في وضع التفكير أثناء المحادثة. يمكن للمستخدمين تفعيل أوضاع التفكير أو غير التفكير من خلال تضمين العلامات
/thinkو/no_think، على التوالي، في موجه النظام. في وضع عدم التفكير، نقوم بملء استجابة النموذج مسبقًا بكتل تفكير فارغة، مشابهة لـ Qwen3، لضمان إجابات مباشرة دون تفكير صريح.يدعم SmolLM3 استدعاء الأدوات، ويتضمن قالب الدردشة قسمين متميزين لوصف الأدوات: أدوات XML وأدوات Python. أثبتت هذه التصنيف المحدد فائدته في تجاربنا لتفسير النموذج بدقة لتعريفات الأدوات في كل تنسيق.
يوفر قالب الدردشة رسالة نظام افتراضية لكلا وضعي التفكير، بالإضافة إلى قسم بيانات التعريف الذي يتضمن التاريخ، وتاريخ قطع المعرفة، ووضع التفكير الحالي. يمكن للمستخدمين استبدال رسالة النظام الافتراضية عن طريق تقديم واحدة مع دور
system. يمكن استبعاد قسم بيانات التعريف باستخدام العلامة/system_overrideفي موجه النظام، مما يوفر مرونة لحالات الاستخدام المحددة.التدريب الدقيق الخاضع للإشراف
بعد مرحلة التدريب الوسيط للتفكير، حيث قمنا بتدريب النموذج على 140B رموز من بيانات التفكير العامة، ننتقل إلى التدريب الدقيق الخاضع للإشراف (SFT) لتضمين القدرات عبر كل من أوضاع التفكير وغير التفكير للرياضيات، والبرمجة، والتفكير العام، واتباع التعليمات، ومتعدد اللغات، واستدعاء الأدوات. يتطلب تدريب نموذج ثنائي الوضع موازنة دقيقة لخليط البيانات للحفاظ على أداء قوي في كلا الوضعين عبر جميع المجالات المستهدفة. لتقييم أداء SmolLM3 طوال فترة التدريب، تتبعنا المجالات التالية: الرياضيات، والبرمجة، والتفكير العام، واتباع التعليمات، ومتعدد اللغات.
كانت التحدي الرئيسي الذي واجهناه عند بناء مجموعة بيانات وضع التفكير هو ندرة مجموعات البيانات التي تحتوي على آثار التفكير لبعض المجالات. لمعالجة هذه الفجوة، قمنا بتوليد بيانات اصطناعية من خلال توجيه Qwen3-32B في وضع التفكير مع توجيهات من مجموعات بيانات غير التفكير الموجودة. سمح لنا ذلك بتحسين الأداء في المجالات التي كان النموذج يعاني فيها في وضع التفكير، مثل المحادثات متعددة الأدوار، ومتعدد اللغات، والمحادثات اليومية.

كان خليط بياناتنا النهائي نتيجة لتجارب واسعة تفحص النسبة المثلى من الرموز في وضع التفكير إلى الرموز في وضع عدم التفكير والتكوين داخل كل وضع. تحتوي مجموعة بيانات SFT الناتجة على 1.8B رموز: 1B في وضع عدم التفكير و0.8B في وضع التفكير، وتتكون من 12 مجموعة بيانات غير تفكير و10 مجموعات بيانات مع آثار التفكير. قمنا بالتدريب لمدة 4 دورات (~8B رموز) باستخدام تعبئة BFD (الأفضل تناسبًا) مع إخفاء الخسارة على أدوار المستخدم والنتائج من استدعاءات الأدوات.
سنقوم بإصدار هذا الخليط من البيانات جنبًا إلى جنب مع نصوص تدريبنا الكاملة لتمكين المجتمع من إعادة إنتاج وبناء على عملنا.
محاذاة النموذج خارج السياسة باستخدام تحسين التفضيل المربوط (APO)
بعد خطوة SFT، قمنا بإجراء جولة من محاذاة النموذج باستخدام مجموعة بيانات تفضيل Tulu3 لوضع عدم التفكير ومجموعات تفضيل اصطناعية جديدة لوضع التفكير، التي قمنا بتوليدها من Qwen3-32B وQwen3-0.6B. لضمان تغطية كاملة لجميع المجالات في مجموعة بيانات عدم التفكير، قمنا بتوليد أزواج تفضيل وضع التفكير المكمّلة. اخترنا الأجيال من Qwen3-32B كـ "مُختار" والردود من Qwen3-0.6B كـ "مرفوض" من أجل المحاذاة باستخدام تحسين التفضيل المربوط.

تحسين التفضيل المربوط (APO) هو نوع من تحسين التفضيل المباشر (DPO) الذي يوفر هدف تحسين أكثر استقرارًا. في DPO، تقيس دالة المكافأة r_θ(x,y) نسبة اللوغاريتم للاحتمالية التسلسلية خلال التدريب مقارنة بالنموذج في بداية التدريب، النموذج المرجعي:

هنا β يتحكم في مقدار التغيير الذي يمكن أن يحدث للنموذج الذي يتم تحسينه بالنسبة للنموذج المرجعي. تعمل خسارة DPO على تحسين ثلاثيات من التوجيهات x، المختار y_w والردود المرفوضة y_l:

أظهر هدف APO أنه أكثر استقرارًا، كما لاحظنا أيضًا أداءً أعلى في المهام اللاحقة في تجاربنا الداخلية.

بينما أظهرت التقييمات اللاحقة تحسينات عبر الرياضيات، والعلوم، واتباع التعليمات، والترميز، والدردشة، والمهام متعددة اللغات، لاحظنا تدهور الأداء في معايير السياق الطويل مثل RULER. تتبعنا هذا التدهور إلى مرحلة التدريب الوسيط للتفكير، حيث أثر التركيز على قدرات التفكير على أداء السياق الطويل. بالإضافة إلى ذلك، كانت بيانات تدريب APO محدودة بـ 24k رموز حيث كانت الغالبية العظمى من مجموعة بيانات التفكير لدينا تقع تحت هذا الطول.
للتخفيف من هذا الانخفاض في الأداء، استكشفنا دمج النماذج كحل.
دمج النماذج
دمج النماذج هو تقنية شائعة وقوية تسمح بدمج نقاط القوة لنماذج مختلفة دون الحاجة إلى عبء حسابي إضافي أو الحاجة إلى تدريب إضافي. استخدمنا مكتبة MergeKit لأداء دمج النماذج، حيث تتضمن عدة طرق للدمج، بما في ذلك الدمج الخطي وغير الخطي.
تتكون وصفتنا للدمج من خطوتين:
- أخذ كل نقطة تحقق APO وإنشاء "حساء" نموذج.
- دمج حساء النموذج مع نقطة تحقق تدريب وسطى تتمتع بأداء قوي في المحتوى الطويل. حقق الدمج الخطي بأوزان 0.9 و0.1 لنموذج APO وحساء نقطة التحقق التدريبية الوسطى، على التوالي، أفضل أداء. تمكنا من استعادة درجة RULER للنموذج الأساسي على سياقات تصل إلى 128k رموز.
النموذج الناتج هو نقطة التحقق التي نطلقها اليوم. يحافظ على الأداء عبر مجموعة واسعة من المهام. لذا دعونا ننتقل إلى نتيجة التقييم لكل من هذا النموذج وكذلك النموذج الأساسي.
التقييم
نقوم بتقييم النماذج الأساسية ونموذج التعليم في كل من وضع التفكير ووضع عدم التفكير. دعونا نغطي أولاً أداء النموذج الأساسي!
النموذج الأساسي
يوضح الرسم البياني أدناه معدل فوز SmolLM3 عبر 12 معيارًا شائعًا تقييم المعرفة، والتفكير، والرياضيات، والقدرات البرمجية. يتفوق SmolLM3 باستمرار على النماذج الأخرى ذات 3B ويحقق أداءً تنافسياً مع نماذج أكبر ذات 4B بما في ذلك Qwen3-4B وGemma3-4B.
معايير التقييم المستخدمة لمعدل الفوز تشمل: HellaSwag، ARC، Winogrande، CommonsenseQA، MMLU-CF، MMLU Pro CF، PIQA، OpenBookQA، GSM8K، MATH، HumanEval+، MBPP+

يحقق SmolLM3 المركز الأول أو الثاني في معايير المعرفة والتفكير (HellaSwag، ARC، BoolQ)، مما يُظهر أداءً قويًا في هذه القدرات الأساسية. أداء النموذج في الرياضيات والترميز تنافسي ضمن فئة 3B. كما يظهر الأداء في السياقات الطويلة على Ruler 64k أن النموذج قادر على التعامل مع تسلسلات ممتدة بشكل فعال.

يظهر النموذج أداءً قويًا متعدد اللغات عبر خمس لغات أوروبية رئيسية عند تقييمه على معايير متعددة اللغات بما في ذلك Global MMLU، MLMM HellaSwag، Flores-200، Belebele، حيث يتم اختبار المعرفة، والتفكير العام، وفهم النص، والترجمة. وهذا يُظهر أن SmolLM3 يحافظ على أداء متسق يتجاوز اللغة الإنجليزية.

باختصار، يُظهر النموذج الأساسي أداءً قويًا جدًا عبر العديد من المجالات. دعونا نرى كيف يترجم ذلك إلى أداء نموذج التعليمات.
نموذج التعليمات / التفكير المزدوج
نظرًا لأن SmolLM3 يمتلك وضع التعليمات ووضع التفكير، نحتاج إلى تقييم النموذج في كلا الوضعين ومقارنته بالنماذج ذات القدرات المماثلة.
تقييم التفكير غير الممتد
نقوم بتقييم SmolLM3 مقابل نماذج 3B غير التفكير ومقارنته بنماذج Qwen3 في وضع عدم التفكير عبر عدة معايير. كما هو موضح في مخطط الأداء، يتفوق SmolLM3 على نماذج 3B غير التفكير الأخرى بما في ذلك Llama3.2 3B Instruct وQwen2.5 3B Instruct، ويقع في نقطة كفاءة جيدة بين نماذج التفكير، متفوقًا بشكل كبير على Qwen3 1.7B بينما يقترب من أداء نموذج 4B بتكلفة حسابية أقل.

لذا، فإن نموذج التعليمات يقع في المقدمة من حيث الأداء والتكلفة. دعونا نرى كيف يعمل نموذج التفكير!
تقييم التفكير الممتد
عند تقييم قدرات التفكير في SmolLM3 مع تفعيل التفكير الممتد، يظهر النموذج تحسنًا كبيرًا عبر معظم المعايير مقارنة بنظيره غير التفكير. نلاحظ مكاسب ملحوظة في المهام الصعبة مثل AIME 2025 (36.7% مقابل 9.3%)، والبرمجة التنافسية على LiveCodeBench (30.0% مقابل 15.2%)، والتفكير على مستوى الدراسات العليا في GPQA Diamond (41.7% مقابل 35.7%).
بينما يحقق Qwen3 4B عمومًا أعلى الدرجات عبر كل من وضعي التفكير وعدم التفكير، يُظهر SmolLM3 أداءً تنافسيًا ضمن فئة 3B، مع تميز خاص في التفكير الرياضي ومهام حل المشكلات المعقدة. تتيح قدرة النموذج على العمل في وضعين للمستخدمين اختيار بين استنتاج أسرع بدون تفكير أو تحليل أكثر شمولاً مع التفكير الممتد.

لذا، السؤال الأخير هو: كيف يمكنك استخدام النموذج؟
كيفية التشغيل محليًا
كود النموذج لـ SmolLM3 متاح في transformers
v4.53.0، لذا تأكد من تحديث إصدار transformers لديك. يمكنك أيضًا تحميل النموذج مع أحدثvllmالذي يستخدم transformers كخلفية.pip install -U transformersfrom transformers import AutoModelForCausalLM, AutoTokenizer model_name = "HuggingFaceTB/SmolLM3-3B" device = "cuda" # لاستخدام GPU أو "cpu" لاستخدام وحدة المعالجة المركزية # تحميل المحول والنموذج tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained( model_name, ).to(device) # إعداد مدخلات النموذج prompt = "أعطني شرحًا موجزًا للجاذبية بعبارات بسيطة." messages_think = [ {"role": "user", "content": prompt} ] text = tokenizer.apply_chat_template( messages_think, tokenize=False, add_generation_prompt=True, ) model_inputs = tokenizer([text], return_tensors="pt").to(model.device) # توليد المخرجات generated_ids = model.generate(**model_inputs, max_new_tokens=32768) # الحصول على وفك تشفير المخرجات output_ids = generated_ids[0][len(model_inputs.input_ids[0]) :] print(tokenizer.decode(output_ids, skip_special_tokens=True))نوصي بتعيين
temperature=0.6وtop_p=0.95في معلمات العينة.تفعيل وتعطيل وضع التفكير الممتد
نقوم بتفعيل التفكير الممتد بشكل افتراضي، لذا فإن المثال أعلاه يولد المخرجات مع تتبع التفكير. لاختيار بين التفعيل، يمكنك توفير العلامات
/thinkو/no_thinkمن خلال موجه النظام كما هو موضح في الشيفرة أدناه لتعطيل التفكير الممتد. سيكون كود توليد الاستجابة مع التفكير الممتد هو نفسه باستثناء أن موجه النظام يجب أن يحتوي على/thinkبدلاً من/no_think.prompt = "أعطني شرحًا موجزًا للجاذبية بعبارات بسيطة." messages = [ {"role": "system", "content": "/no_think"}, {"role": "user", "content": prompt} ] text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True, )الاستخدام الوكلي
يدعم SmolLM3 استدعاء الأدوات! فقط مرر قائمة الأدوات الخاصة بك تحت الوسيطة
xml_tools(للاستدعاء القياسي للأدوات)، أوpython_tools(لاستدعاء أدوات مثل دوال بايثون في شيفرة<code>).from transformers import AutoModelForCausalLM, AutoTokenizer checkpoint = "HuggingFaceTB/SmolLM3-3B" tokenizer = AutoTokenizer.from_pretrained(checkpoint) model = AutoModelForCausalLM.from_pretrained(checkpoint) tools = [ { "name": "get_weather", "description": "احصل على الطقس في مدينة", "parameters": {"type": "object", "properties": {"city": {"type": "string", "description": "المدينة التي تريد الحصول على الطقس لها"}}}} ] messages = [ { "role": "user", "content": "مرحبًا! كيف هو الطقس اليوم في كوبنهاغن؟" } ] inputs = tokenizer.apply_chat_template( messages, enable_thinking=False, # صحيح، يمكنك الاختيار! xml_tools=tools, add_generation_prompt=True, tokenize=True, return_tensors="pt" ) outputs = model.generate(inputs) print(tokenizer.decode(outputs[0]))الخاتمة
نقدم SmolLM3، وهو نموذج صغير، طويل السياق، متعدد اللغات، ومفكر بقدرة تصل إلى 128k سياق. بالإضافة إلى نقطة تفتيش النموذج، نقدم وصفة التدريب الكاملة بما في ذلك التدريب المسبق، والتدريب المتوسط، والتدريب اللاحق، وتوليد البيانات الاصطناعية، بالإضافة إلى مجموعات البيانات (ستكون متاحة قريبًا). نأمل أن يكون هذا النموذج مفيدًا للمجتمع وأن تسمح الوصفة لمجموعات أخرى بتحسينه.
الموارد
- مجموعة النماذج مع نقاط تفتيش مضغوطة: الرابط
- مستودع SmolLM على GitHub مع تكوينات التدريب المسبق وكود التقييم: https://github.com/huggingface/smollm
- منظمتنا على HuggingFace: https://huggingface.co/HuggingFaceTB
الاقتباس
@misc{bakouch2025smollm3, title={{SmolLM3: smol, multilingual, long-context reasoner}}, author={Bakouch, Elie and Ben Allal, Loubna and Lozhkov, Anton and Tazi, Nouamane and Tunstall, Lewis and Patiño, Carlos Miguel and Beeching, Edward and Roucher, Aymeric and Reedi, Aksel Joonas and Gallouédec, Quentin and Rasul, Kashif and Habib, Nathan and Fourrier, Clémentine and Kydlicek, Hynek and Penedo, Guilherme and Larcher, Hugo and Morlon, Mathieu and Srivastav, Vaibhav and Lochner, Joshua and Nguyen, Xuan-Son and Raffel, Colin and von Werra, Leandro and Wolf, Thomas}, year={2025}, howpublished={\url{https://huggingface.co/blog/smollm3}} }مقالات أخرى من مدونتنا
llmnlpcommunitymmBERT: ModernBERT goes Multilingual
mmarone، وآخرون.


- +2
1339 سبتمبر 2025
llmnlpcommunityEttin Suite: SoTA Paired Encoders and Decoders
المجتمع
رائع!
77
16 يوليو 2025 orionweller وآخرون.تعليقات المجتمع
Bravo, bravo, bravo!
مذهل! شكراً لك.
هذا عمل رائع. سأضيفه بالتأكيد إلى قراءة عطلة نهاية الأسبوع..!
شكراً لمشاركتك.
عمل رائع! لدي سؤال/فضول. ما هي فائدة تقسيم النموذج عبر وحدتين معالجة رسومية أثناء التدريب؟ (تم ذكر أنك تستخدم توازي Tensor (TP) من 2، وتوازي البيانات (DP) من 4 على كل عقدة تحتوي على 8 وحدات معالجة رسومية). أعتقد أن النموذج يمكن أن يتناسب مع وحدة معالجة رسومية واحدة نظرًا لأنه صغير؟ كنت سأظن في مثل هذه الحالة أن التنفيذ الأكثر كفاءة سيكون باستخدام DP=8؟
يبدو أن النموذج لا يتناسب مع كل وحدة معالجة الرسوميات للتدريب (دون إعادة حساب الصفر/التفعيل) ولم يؤثر TP=2 كثيرًا على الإنتاجية، لذا اخترنا هذه الحلول.
يمكنك العثور على مزيد من المعلومات حول التدريب الموزع هنا: https://huggingface.co/spaces/nanotron/ultrascale-playbook
أرى، شكرًا جزيلاً!
لنقم بذلك باستخدام Muon.
رائع! عمل ممتاز!
واو، تقدم رائع وكتابة مذهلة!
شكرًا على المشاركة!!! قد أكون قد رصدت خطأً طفيفًا، هل يجب أن تكون "لضمان تغطية كاملة لجميع المجالات في مجموعة بيانات غير التفكير" حقًا "لضمان تغطية كاملة لجميع المجالات في مجموعة بيانات التفكير؟"
تظهر التعليقات المختلفة على التقرير أن هناك اهتمامًا كبيرًا بالتفاصيل الفنية للنموذج. كتب أحد المستخدمين، Rishiraj Acharya: "أحب قراءة تقارير النماذج المفصلة التي تناقش هذه الأمور التقنية مثل الهيكل والبيانات والمعلمات الدقيقة التي تعتبر مفيدة جدًا لمهندسي التعلم الآلي. أحببت التقرير أكثر من النموذج نفسه (الذي هو جيد أيضًا)."
تعليق آخر من Yihe Liu جاء فيه: "شكرًا لمشاركتك!! ربما سؤال غير ذي صلة، الرسم البياني يظهر أن Qwen3 1.7B لديه 2B من المعلمات. هل هذا صحيح؟"
رد Elie Bakouch على هذا التعليق موضحًا: "صفحة النموذج تظهر لماذا ارتكبنا هذا الخطأ. لكن ذلك بسبب حساب عدد معلمات التضمين مرتين، شكرًا على ملاحظتك (النموذج لديه تضمين مربوط إذا لم أكن مخطئًا)."
في تعليق آخر، تساءل Yihe Liu عن الرسم البياني الذي يظهر أن GQA لديه المزيد من رؤوس الاستعلام مقارنة برؤوس المفتاح والقيمة، مما يتعارض مع التصميم الأصلي. هل كان ذلك مقصودًا؟
رد Elie Bakouch على هذا السؤال موضحًا: "لا، ليس كذلك، نحن نستخدم GQA الكلاسيكي، إنها خطأ مطبعي، عذرًا على ذلك!"
أخيرًا، علق Tohir Saidzoda قائلاً: "العالم يحتاج إلى أبطال مثلك!!" وأعرب Andrea Gemelli عن إعجابه بالتقرير قائلاً: "مذهل 🚀".
تهانينا للفريق على إصدار SmolLM3! إنه عمل مثير للإعجاب حقًا، والتفاصيل الدقيقة حول GQA، NoPE، والتعديلات المعمارية الأخرى ذات قيمة كبيرة للمجتمع.
إن تركيزكم على دفع حدود أداء السياق الطويل مثير للاهتمام. لقد ذكرني ذلك بمقالة حديثة تتناول نفس التحدي من زاوية معمارية مختلفة تمامًا.
كنت أقرأ مؤخرًا عن ATLAS من أبحاث جوجل، التي تقترح استبدال آلية الانتباه القياسية بوحدة "ذاكرة طويلة الأمد" حديثة.
الفكرة الأساسية هي التغلب على قيود كل من Transformers و RNNs القديمة من خلال إنشاء ذاكرة تتعلم بوضوح "تذكر السياق" بدلاً من مجرد الرموز الفردية. يقدمون مفهومًا يسمى قاعدة أوميغا، التي تحدث الذاكرة بناءً على نافذة منزلقة من الماضي، بدلاً من التحديث "الآني" رمزًا تلو الآخر، الذي يمكن أن يؤدي إلى مشاكل مثل "الضياع في المنتصف".
النتائج التي يعرضونها مثيرة للإعجاب، خاصة قدرتها على التوسع بشكل فعال إلى طول سياق 10 ملايين على معيار BABILong.
من المثير رؤية نهجين قويين - ومختلفين جدًا - لتوسيع طول السياق. أحد المسارات هو تحسين بنية Transformer (مثل SmolLM3)، والآخر هو تصميم نماذج متكررة جديدة تركز على الذاكرة (مثل ATLAS).
أنا فضولي لمعرفة آرائكم حول مستقبل هذه المعمارية البديلة، وإذا كنتم تتصورون مستقبلًا حيث يمكن أن تجمع النماذج الهجينة بين أفضل ما في العالمين!
إليكم المقالة لمن يهتم:
لقد كنت أدرس نهج التدريب ذو الوضعين في SmolLM3 ولدي سؤال تقني حول اختيار تحسين التفضيلات المربوطة (APO) بدلاً من تحسين السياسة النسبية الجماعية (GRPO) للتعامل مع قدرات التفكير.
استنادًا إلى فهمي لكلا النهجين:
- APO (مثل DPO) يعمل بشكل جيد في اتباع التعليمات العامة ويمكنه التعامل مع مهام التفكير عند توفر بيانات تفضيل مناسبة، والتي تم إنشاؤها باستخدام نماذج Qwen.
- تم تصميم GRPO خصيصًا للتفكير الرياضي مع إشراف على العمليات ويقضي على الحاجة لنموذج القيمة، مما قد يوفر مزايا في الكفاءة الحسابية.
أفترض أن APO تم اختياره لأنه:
- قدم نهج موحد للتوافق بين وضعي التفكير وغير التفكير.
- عمل بشكل جيد مع خط إنتاج بيانات التفضيل الاصطناعية لديك.
- تتعامل مع التفكير كنوع متخصص من اتباع التعليمات بدلاً من كونه مهمة مختلفة تمامًا.
- قد لا تكون الفوائد الحسابية لـ GRPO قد تفوقت على تعقيد التنفيذ في إعداد التدريب الخاص بك.
هل يمكنك توضيح ما إذا كنت على المسار الصحيح في هذا الفهم؟ أنا مهتم بشكل خاص بما إذا كنت قد اعتبرت GRPO لتحسين التفكير وما هي العوامل التي أدت في النهاية إلى اختيار APO لكلا الوضعين.
شكرًا لمشاركتك هذه التفاصيل حول وصفة تدريب SmolLM3 - إن نهج الوضعين وخط أنابيب التدريب مثير للاهتمام حقًا!
في مرحلة التدريب المسبق الثالثة (المجموعات البيانية للتفكير)، ما الذي تم استخدامه كمدخلات؟ هل تم دمج موجه المستخدم مع استجابة النموذج واستخدامهما كمدخلات؟ هل تمت إضافة قالب محادثة للتوافق مع قالب ChatML؟
وهل هذا هو الحال نفسه بالنسبة للتدريب المتوسط وSFT؟
بالنسبة للتدريب المتوسط للتفكير، استخدمنا قالب ChatML (لذا لا يوجد موجه نظام)، ولـ SFT نستخدم قالب المحادثة النهائي لـ SmolLM3.
أما بالنسبة لمرحلة التدريب المسبق الثالثة، هل تم دمج الموجه مع استجابة النموذج فقط، أم تمت إضافة قالب محادثة بسيط إليهما؟ شكرًا لك!
بالضبط، في المرحلة الثالثة (الانحدار) قمنا فقط بدمج الموجهات والإجابات مفصولة بأسطر جديدة. ومع ذلك، لاحظ أنه في تمديد السياق الطويل، أضفنا مجموعة بيانات صغيرة تحتوي على بعض التعليمات والإجابات بتنسيق ChatML، بينما كانت بقية البيانات مجرد دمج (لم يكن لذلك أي تأثير على أداء النموذج الأساسي). انظر إلى هذا التكوين.
لم نضيف موجه نظام مخصص، بل قمنا فقط بتنسيق البيانات باستخدام قالب ChatML هذا:
{%- for message in messages -%} {{- "<|im_start|>" + message.role + "\n" + message.content + "<|im_end|>" + "\n" -}} {%- endfor -%} {%- if add_generation_prompt -%} {{- "<|im_start|>assistant\n" -}} {%- endif -%}لتلخيص الأمر، قالب المحادثة لـ:
- بيانات التعليمات خلال مرحلة التدريب المسبق الثالثة: فقط دمج الأسئلة والأجوبة بأسطر جديدة، بدون قالب.
- بيانات التعليمات لتمديد السياق الطويل: نفس الشيء مع بعض البيانات (~200k عينة) في ChatML.
- التدريب المتوسط للتفكير: جميع البيانات في ChatML.
- SFT + APO: جميع البيانات تستخدم قالب المحادثة النهائي لـ SmolLM3: رابط القالب.
- بيانات التعليم خلال مرحلة التدريب الثالثة: فقط قم بدمج الأسئلة والأجوبة مع فواصل جديدة، دون استخدام أي قالب.
- تمديد السياق الطويل لبيانات التعليم: نفس الشيء كما سبق مع بعض البيانات (~200 ألف عينة) في ChatML.
- التفكير أثناء التدريب: جميع البيانات في ChatML.
- SFT + APO: جميع البيانات تستخدم القالب النهائي لمحادثة SmolLM3: رابط القالب.
يمكنك العثور على أحدث تكوينات التدريب المسبق في هذا المجلد: رابط المجلد.
لم نقم بعمليات معالجة إضافية للبيانات (باستثناء تصفية عدد الرموز لمرحلة توسيع السياق وتنسيق بيانات الأسئلة والأجوبة والتعليمات للتدهور، كما هو موضح هنا). يمكنك العثور على مجموعات البيانات في هذه المجموعة.
- نستخدم FineWeb2-HQ لجميع اللغات أدناه باستثناء الهندية، التايلاندية، والكورية حيث نستخدم FineWeb2.
- لا نستخدم Stack-Edu في المرحلة الأولى للرمز (على الرغم من اسم دلو s3)، بل هو StarCoder2Data (stack v2).
لسنا متأكدين مما إذا كان بإمكاننا مشاركة دلاء s3 ولكن جميع مجموعات بيانات s3 قد تم تقسيمها بالفعل. إذا كان لديك أسئلة محددة حول بعض مجموعات البيانات، فنحن سعداء لتوضيحها.
@loubnabnl شكرًا لك على ردك، لقد كان مفيدًا للغاية.
أثناء مراجعة مصادر البيانات، واجهت بعض الأسئلة وأود أن أطلب التوضيح:
- بالنسبة لمجموعة بيانات
pes2o، لم أتمكن من العثور عليها في المجموعة المشتركة للتدريب المسبق. هل تشير إلى مجموعة بيانات allenai/peS2o؟ - استنادًا إلى التكوين، لاحظت ثلاث مجموعات بيانات:
pull-requests،jupyter-scripts، وgithub-issues. هل يمكنك توضيح المصادر لكل منها؟ - بالنسبة لمجموعة بيانات
kaggle، هل استخدمت مصدر HuggingFaceTB/issues-kaggle-notebooks؟ رأيت أن هناك مجموعتين فرعيتين،issuesوkaggle- هل استخدمت فقط مجموعة الكاجل الفرعية؟
شكرًا مرة أخرى!
1- استخدمنا مجموعة بيانات Olmo2 pes2o في allenai/olmo-mix-1124.
2- قضايا GitHub تأتي من HuggingFaceTB/issues-kaggle-notebooks. طلبات السحب ودفاتر Jupyter هي جزء من The Stack v2 والتي ستحتاج إلى اتفاقية Software Heritage. خلاف ذلك، يمكنك استخدام The Stack v1 jupyter scripts والتي تشبه قليلاً، باستثناء أننا نزيل أي رموز خاصة وننظف بعض بقايا Juytext (مثل البيانات الوصفية أو الأسطر# -و# +).
3 - نعم، دفاتر Kaggle تأتي من هناك.مرحبًا بفريق Hugging Face! لاحظت أنه لا توجد تفاصيل محددة حول تنفيذ المرمز لدعم اللغات المتعددة. هل يمكنك مشاركة بعض الرؤى حول نهجك في تقسيم الرموز للتعامل مع لغات متعددة؟ أنا فضولي بشأن ما إذا كنت قد استخدمت مرمز موحد أو مرمزات خاصة باللغة، وأي خوارزمية استخدمتها لتدريب المرمز، وإذا كانت هناك أي تقنيات خاصة متضمنة. شكرًا!
استخدمنا مُرمز LLama 3.2 كما هو (باستثناء إزالة
bos_token)، وهنا بعض التفاصيل حول كيفية بناء Meta للمُرمز (من ورقة Llama3).نستخدم مفردات تحتوي على 128 ألف رمز. تجمع مفردات الرموز لدينا 100 ألف رمز من مُرمز tiktoken3 مع 28 ألف رمز إضافي لدعم اللغات غير الإنجليزية بشكل أفضل. مقارنةً بمُرمز Llama 2، يحسن مُرمزنا الجديد معدلات الضغط على عينة من البيانات الإنجليزية من 3.17 إلى 3.94 حرف لكل رمز. وهذا يمكّن النموذج من "قراءة" نصوص أكثر بنفس كمية الحوسبة التدريبية. كما وجدنا أن إضافة 28 ألف رمز من لغات غير إنجليزية مختارة حسنت كل من نسب الضغط والأداء اللاحق، دون تأثير على ترميز اللغة الإنجليزية.
هل تخطط لمشاركة بقية مجموعات البيانات (خلال التدريب وبعده)؟
لقد أطلقناها في SmolTalk2. تحتوي مجموعة البيانات على مجموعات
MidوSFTوPreference.
يقول أن beta1 0.8 في الصورة ولكن في مكان ما من "التدريب المسبق" يقول "ومُحسّن AdamW (beta1: 0.9، beta2: 0.95) مع انحدار الوزن 0.1".
مرحبًا! تهانينا على العمل الرائع، حقًا أقدر رؤية مناقشات مثل هذه في العلن ✨
سؤال واحد فقط: في مرحلة تمديد السياق الطويل تذكر استخدام 100 مليار رمز إضافي - من أين تحصل عليها؟ هل هي من نفس المصادر التي تم استخدامها في التدريب المسبق، مع أوزان تكبير مختلفة؟
بشكل عام، سأكون ممتنًا إذا كان بإمكانك توجيهي إلى بعض الموارد/الإلهام بشأن البيانات التي يجب استخدامها لتمديد السياق الطويل!في تعليقات المجتمع حول SmolLM3، أعرب العديد من المستخدمين عن تقديرهم للمشروع. على سبيل المثال، كتب أحد المستخدمين: "شكرًا لـ SmolLM3! لقد قمت ببناء واجهة ويب محلية صغيرة تركز على الخصوصية حول SmolLM3-3B (نص) و SmolVLM2-2.2B (رؤية) مع اكتشاف تلقائي للأجهزة (CUDA/MPS/CPU)، وتنزيل تلقائي للنموذج، وواجهة Gradio نظيفة. إنها مفتوحة المصدر ومتعددة المنصات. أود تلقي تعليقات، أو مشاكل، أو طلبات سحب: GitHub.
حالات الاستخدام تشمل: مقتطفات كود، تفسيرات، كتابة متعددة اللغات، أسئلة وأجوبة بصرية + OCR خفيف. أي أفكار للإعدادات، أو تحسينات تجربة المستخدم، أو نماذج صغيرة إضافية مرحب بها!
في تعليق آخر، سأل مستخدم: "لا أستطيع العثور على مجموعة طلبات سحب StarCoder2 في مجموعة البيانات the-stack-v2. هل يمكنك من فضلك إظهار العنوان؟"
بينما أضاف مستخدم آخر: "مقال رائع وعمل مذهل! هل أنا محق في أن مثل هذه المجموعة الكبيرة من وحدات معالجة الرسوميات مطلوبة لإجراء نوع من بحث المعلمات الوراثية؟"
تظهر هذه التعليقات كيف أن SmolLM3 قد أثار اهتمامًا واسعًا بين المطورين والباحثين، مما يعكس الحاجة المتزايدة للأدوات المتقدمة في مجال الذكاء الاصطناعي.
النموذج لا يتناسب مع كل وحدة معالجة رسومية للتدريب (بدون إعادة حساب الصفر/التفعيل) ولم يؤثر TP=2 كثيرًا على الإنتاجية، لذا اخترنا هذا الحل.
يمكنك العثور على مزيد من المعلومات حول التدريب الموزع هنا: https://huggingface.co/spaces/nanotron/ultrascale-playbookمؤلف المقال
رائع ! ! !
شكرًا على المشاركة!!!
ربما لاحظت خطأ بسيطًا، هل يجب أن تكون "لضمان تغطية كاملة لجميع المجالات في مجموعة بيانات غير التفكير" حقًا "لضمان تغطية كاملة لجميع المجالات في مجموعة بيانات التفكير"؟أحب قراءة مثل هذه التقارير التفصيلية عن النماذج التي تناقش هذه الأمور التقنية مثل الهيكلية والبيانات والمعلمات الدقيقة التي تعتبر مفيدة جدًا لمهندسي التعلم الآلي. أحببت التقرير أكثر من النموذج (الذي هو جيد أيضًا، ضحك).
شكرًا على المشاركة!!
ربما سؤال غير ذي صلة، الرسم البياني يظهر أن Qwen3 1.7B لديه 2B من المعلمات. هل هذا صحيح؟هذا الرسم البياني يظهر أن GQA لديه المزيد من رؤوس الاستعلام مقارنة برؤوس المفتاح والقيمة، مما يتعارض مع التصميم الأصلي. هل هذا مقصود؟
لا، ليس كذلك، نحن نستخدم GQA الكلاسيكي، إنها خطأ مطبعي، آسف على ذلك!
العالم بحاجة إلى أبطال مثلك!
مبروك للفريق على إصدار SmolLM3! هذا عمل مثير للإعجاب حقًا، والتفاصيل الدقيقة حول GQA وNoPE والتعديلات المعمارية الأخرى ذات قيمة كبيرة للمجتمع.
تركيزكم على دفع حدود أداء السياقات الطويلة مثير للاهتمام. لقد ذكرني ذلك بمقال حديث يتناول نفس التحدي من زاوية معمارية مختلفة تمامًا.
كنت أقرأ مؤخرًا عن ATLAS من أبحاث جوجل، الذي يقترح استبدال آلية الانتباه القياسية بوحدة ذاكرة حديثة "طويلة الأمد".
الفكرة الأساسية هي التغلب على قيود كل من Transformers وRNNs القديمة من خلال إنشاء ذاكرة تتعلم بوضوح "تذكر السياق" بدلاً من مجرد تذكر الرموز الفردية. يقدمون مفهومًا يسمى قاعدة أوميغا، التي تحدث الذاكرة بناءً على نافذة متحركة من الماضي، بدلاً من التحديث "الآني" رمزًا تلو الآخر، مما قد يؤدي إلى مشكلات مثل "الضياع في المنتصف".
النتائج التي يعرضونها مثيرة للإعجاب، خاصة قدرتها على التوسع بشكل فعال إلى طول سياق يبلغ 10 مليون على معيار BABILong.
من المثير رؤية نهجين قويين - ومختلفين جداً - لتوسيع طول السياق. أحد المسارات هو تحسين بنية Transformer (مثل SmolLM3)، والآخر هو تصميم نماذج متكررة تركز على الذاكرة (مثل ATLAS).
أنا فضولي لمعرفة آرائكم حول مستقبل هذه المعماريات البديلة وما إذا كنتم تتصورون مستقبلًا حيث قد تجمع النماذج الهجينة بين أفضل ما في العالمين!
إليكم المقال لأي شخص مهتم:
لقد أطلقنا جميع مجموعات البيانات التي استخدمناها للتدريب في SmolTalk2. تفاصيل بطاقة مجموعة البيانات توضح أي مجموعات بيانات تم إنشاؤها باستخدام Qwen3-32B.
لقد كنت أدرس نهج التدريب المزدوج لـ SmolLM3 ولدي سؤال تقني حول اختيار تحسين التفضيل المثبت (APO) بدلاً من تحسين السياسة النسبية الجماعية (GRPO) للتعامل مع قدرات الاستدلال.
استنادًا إلى فهمي لكلا النهجين:
- APO (مثل DPO) يعمل بشكل جيد في اتباع التعليمات العامة ويمكنه التعامل مع مهام الاستدلال إذا تم توفير بيانات تفضيل مناسبة، والتي تم إنشاؤها باستخدام نماذج Qwen.
- تم تصميم GRPO خصيصًا للاستدلال الرياضي مع إشراف على العمليات ويقضي على الحاجة إلى نموذج قيمة، مما يوفر مزايا محتملة في الكفاءة الحسابية.
أفترض أن APO تم اختياره لأنه:
- قدّم نهج موحد للتوافق لكل من أوضاع الاستدلال وغير الاستدلال.
- عمل بشكل جيد مع خط أنابيب توليد بيانات التفضيل الاصطناعية الخاصة بكم.
- تتعاملون مع الاستدلال كنوع متخصص من اتباع التعليمات بدلاً من كونه مهمة مختلفة تمامًا.
- قد لا تكون الفوائد الحسابية لـ GRPO تفوق تعقيد التنفيذ لإعداد التدريب الخاص بكم.
هل يمكنك توضيح ما إذا كنت على المسار الصحيح مع هذا الفهم؟ أنا مهتم بشكل خاص بما إذا كنتم قد اعتبرتم GRPO لتحسين الاستدلال وما هي العوامل التي أدت في النهاية إلى اختيار APO لكلا الوضعين.
شكرًا لمشاركتكم هذه التفاصيل حول وصفة تدريب SmolLM3 - النهج المزدوج وخط أنابيب التدريب مثيران للاهتمام!
خلال مرحلة التدريب المسبق الثالثة (مجموعات بيانات الاستدلال)، ما الذي تم استخدامه كمدخلات؟ هل تم دمج طلب المستخدم مع استجابة النموذج واستخدامهما كمدخلات؟ هل تم إضافة قالب دردشة للتوافق مع قالب ChatML؟
وهل هذا هو الحال نفسه بالنسبة للتدريب المتوسط وSFT؟
بالنسبة للتدريب المتوسط للاستدلال، استخدمنا قالب ChatML (لذا لم يكن هناك طلب نظام)، أما بالنسبة لـ SFT، فنحن نستخدم قالب الدردشة النهائي لـ SmolLM3.
تم استخدام التضمينات المرتبطة فقط لأن Llama يستخدمها، أم كان هناك إلغاء؟
مرحبًا بفريق HF، لقد أثار هذا المنشور عن SmolLM3 فضولي حول سبب اختياركم لـ APO بدلاً من GRPO، لذا قمت بالغوص في مقارنة الأساليب عبر SmolLM3 وTulu3 وDeepSeek-R1. وانتهى بي الأمر بإنشاء دليل بصري لمساعدتي في التنقل في مشهد ما بعد التدريب على مساحة 🤗.
من المثير حقًا رؤية كيف تحل الفرق المختلفة مشاكل مشابهة باستخدام مجموعات تقنيات مختلفة!
مرحبًا بفريق HF، شكرًا مرة أخرى لمشاركة أبحاثكم الرائعة.
أحاول إعادة إنتاج SmolLM3، وكنت أتساءل - إذا كان ذلك ممكنًا ضمن سياسة المشاركة الخاصة بكم، هل يمكنكم مشاركة رابط wandb لجلسة التدريب؟ شكرًا مرة أخرى.
نعم، سجلات wandb هنا: https://wandb.ai/huggingface/SmolLM3-training-logs. تم إصدارها مع نقاط التحقق الوسيطة https://x.com/eliebakouch/status/1947314495103160458.
مرحبًا بفريق Hugging Face! لاحظت أنه لا توجد تفاصيل محددة حول تنفيذ المرمز لدعم متعدد اللغات. هل يمكنكم مشاركة بعض الرؤى حول نهجكم في الترميز للتعامل مع لغات متعددة؟ أنا فضولي بشأن ما إذا كنتم قد استخدمتم مرمز موحد أو مرموزات خاصة باللغات، وأي خوارزمية استخدمتموها لتدريب المرمز، وإذا كانت هناك أي تقنيات خاصة متضمنة. شكرًا!
استخدمنا مرمز LLama 3.2 كما هو (باستثناء إزالة
bos_token)، إليكم بعض التفاصيل حول كيفية بناء Meta للمرمز (من ورقة Llama3):نستخدم مفردات تحتوي على 128 ألف رمز. تجمع مفردتنا 100 ألف رمز من المرمز tiktoken3 مع 28 ألف رمز إضافي لدعم اللغات غير الإنجليزية بشكل أفضل. مقارنةً بمرمز Llama2، يحسن مرمزنا الجديد معدلات الضغط على عينة من البيانات الإنجليزية من 3.17 إلى 3.94 حرف لكل رمز. هذا يمكّن النموذج من "قراءة" المزيد من النصوص بنفس مقدار حساب التدريب. كما وجدنا أن إضافة 28 ألف رمز من لغات غير إنجليزية مختارة حسنت كلاً من نسب الضغط والأداء اللاحق، دون تأثير على ترميز اللغة الإنجليزية.
هل تخطط لمشاركة بقية مجموعات البيانات (أثناء التدريب وبعد التدريب)؟
لقد أطلقناها في SmolTalk2. تحتوي مجموعة البيانات على أجزاء
MidوSFTوPreference.شكرًا على SmolLM3! لقد قمت ببناء واجهة ويب محلية صغيرة تركز على الخصوصية حول SmolLM3-3B (نص) + SmolVLM2-2.2B (رؤية) مع اكتشاف تلقائي للأجهزة (CUDA/MPS/CPU)، وتنزيل تلقائي للنموذج، وواجهة Gradio نظيفة. إنها مفتوحة المصدر ومتعددة المنصات. سأكون سعيدًا بتلقي الملاحظات أو المشكلات أو طلبات السحب:
GitHub: https://github.com/mikecastrodemaria/SmolLM3-M2-Interface-Multimodale
حالات الاستخدام: مقتطفات من الشيفرة، تفسيرات، كتابة متعددة اللغات، أسئلة وأجوبة بصرية + OCR خفيف.
أي أفكار حول الإعدادات، تحسينات تجربة المستخدم، أو نماذج صغيرة إضافية مرحب بها!مرحبًا! تهانينا على العمل الرائع، أقدر حقًا رؤية مناقشات مثل هذه في العلن ✨
سؤال واحد فقط: في مرحلة تمديد السياق الطويل، تذكر أنك تستخدم 100 مليار رمز إضافي - من أين تحصل عليها؟ هل هي من نفس المصادر المستخدمة في التدريب الأولي، مع أوزان تصعيد مختلفة؟
بشكل عام، سأكون ممتنًا إذا كان بإمكانك توجيهي إلى بعض الموارد/الإلهام حول البيانات التي يجب استخدامها لتمديد السياق الطويل!لا أستطيع العثور على مجموعة طلبات السحب لـ StarCoder2 في مجموعة البيانات stack-v2. هل يمكنك من فضلك إظهار العنوان؟
مقال رائع وعمل مذهل حقًا! هل أنا محق في أن مثل هذه المجموعة الضخمة من وحدات معالجة الرسوميات مطلوبة لإجراء نوع من البحث عن المعلمات الوراثية؟
نصل هنا إلى نهاية مقالنا حول SmolLM3، النموذج متعدد اللغات الذي يتميز بقدرته على معالجة السياقات الطويلة. لقد استعرضنا في الأجزاء السابقة العديد من الجوانب المهمة لهذا النموذج، من تصميمه إلى تطبيقاته العملية.
نأمل أن تكون هذه السلسلة قد أعطتك نظرة شاملة حول إمكانيات SmolLM3 وكيف يمكن أن يؤثر على مجالات متعددة. إذا كان لديك أي استفسارات أو تعليقات، فلا تتردد في مشاركتها معنا.
شكرًا لك على متابعتك، ونتطلع إلى تقديم المزيد من المحتوى المفيد في المستقبل!
التعليقات 0
سجل دخولك لإضافة تعليق
لا توجد تعليقات بعد. كن أول من يعلق!