Model Weights
أوزان النموذج هي الأرقام المتعلّمة التي تحوّل مدخلات الشبكة إلى تنبؤات. تعرّف على كيفية تحديدها أثناء التدريب وملفات الأوزان وضغطها.
أوزان النموذج هي الأرقام القابلة للتعلّم داخل الشبكة العصبية التي تحوّل مدخلاتها إلى تنبؤات. يضرب كل وزن الإشارة المارة بين وحدتين في قيمة، أو يشكّل قيمة واحدة من مرشح الالتفاف، وتشفّر الأوزان مجتمعةً كل ما تعلّمه النموذج من بيانات التدريب. يُستخدم المصطلح غالبًا على نحو فضفاض للإشارة إلى جميع المعلمات التي تعلّمها النموذج، بما فيها الانحيازات وقيم التطبيع، كما في عبارتي «الأوزان المدرّبة مسبقًا» أو «النماذج مفتوحة الأوزان». تتفاوت أعداد الأوزان بمقادير رتبية: يضم ResNet-50 نحو 25.6 مليون معلمة، بينما تضم النماذج اللغوية الكبيرة مليارات المعلمات.
كيف يحدّد التدريب الأوزان#
تبدأ الشبكة الجديدة بأوزان عشوائية صغيرة تُسحب وفق أساليب مثل تهيئة He، التي تضبط مقاييس القيم العشوائية بما يناسب حجم كل طبقة، كي لا تتلاشى الإشارات ولا تتضخم أثناء مرورها عبر طبقات كثيرة. في هذه المرحلة، تكون تنبؤات النموذج مجرد ضوضاء. ثم يكرّر التدريب دورةً لكل دفعة من البيانات: تنتج التمريرة الأمامية تنبؤات، وتقيّم دالة الخسارة أخطاءها، وتحسب الانتشار العكسي مقدار مساهمة كل وزن في ذلك الخطأ، ثم يحرّك المحسِّن كل وزن قليلًا لتقليل الخطأ، مثل الانحدار التدرّجي العشوائي (SGD) أو محسّن Adam. بعد ملايين التحديثات الصغيرة هذه، تستقر الأوزان على قيم تنتج تنبؤات دقيقة، وتظل ثابتة أثناء الاستدلال.
الأوزان مقابل المصطلحات ذات الصلة#
- الانحيازات: في طبقة تحسب
y = Wx + b، تضرب الأوزانWالمدخلات، ويضيف الانحيازbإزاحةً، ما يتيح لدالة التنشيط في الوحدة تغيير عتبتها وإنتاج خرج غير صفري عندما تكون جميع المدخلات صفرًا. ويُتعلّم كلاهما أثناء التدريب. - المعلمات الفائقة: إعدادات مثل معدل التعلّم وحجم الدفعة، تُختار قبل التدريب وتتحكم في كيفية تعلّم الأوزان. لا يحدّثها الانحدار التدرّجي.
- التنشيطات: المخرجات الوسيطة التي تحسبها الشبكة لمدخل معيّن. تظل الأوزان كما هي لكل المدخلات، بينما يُعاد حساب التنشيطات لكل مدخل.
- Weights & Biases: منصة لتتبّع التجارب يستعير اسمها نوعَي المعلمات.
حفظ الأوزان وتحميلها#
تُحفَظ الأوزان المدرّبة في ملفات ليُعاد تحميلها للاستدلال أو مشاركتها أو استخدامها نقطةَ انطلاق للتعلّم بالنقل. في PyTorch، توجد أوزان النموذج في state_dict، وتُحفَظ عادةً في ملفات .pt. تستخدم هذه الملفات تنسيق pickle الخاص بـ Python، الذي قد ينفّذ تعليمات برمجية عند التحميل؛ لذلك، منذ PyTorch 2.6، يكون الإعداد الافتراضي لـ torch.load هو weights_only=True. يخزّن تنسيق safetensors الموترات الخام فقط، ما يمنع تنفيذ التعليمات البرمجية ويتيح تحميلًا سريعًا عبر ربط الذاكرة، وهو التنسيق القياسي على Hugging Face. تجمع ملفات ONNX الأوزان مع مخطط الحساب كي تتمكن بيئات التشغيل الأخرى من تنفيذ النموذج.
تخزّن نقاط التحقق .pt الخاصة بـ Ultralytics YOLO26 متوسطًا متحركًا أُسّيًا (EMA) للأوزان، ما يخفف الضوضاء من خطوة إلى أخرى، إلى جانب وسيطات التدريب والنتائج لكل حقبة، وتكتب كل عملية تدريب best.pt وlast.pt في مجلد weights. يوضّح تحميل البنية نفسها مع الأوزان المدرّبة ومن دونها موضع معارف النموذج:
from ultralytics import YOLO
# Same YOLO26n architecture with two different sets of weights
trained = YOLO("yolo26n.pt") # weights learned on COCO
untrained = YOLO("yolo26n.yaml") # randomly initialized weights
for name, model in [("trained", trained), ("untrained", untrained)]:
results = model("https://ultralytics.com/images/bus.jpg")
print(f"{name}: {len(results[0].boxes)} objects detected")تكتشف الأوزان المدرّبة الحافلة والأشخاص في الصورة، بينما لا يكتشف النموذج المطابق ذو التهيئة العشوائية أي شيء.
ضغط الأوزان للنشر#
تحدّد دقة الأوزان حجم ملف النموذج وبصمته في الذاكرة، وهو أمر مهم خصوصًا لأجهزة الذكاء الاصطناعي الطرفي. تخزّن مكمّمة النموذج الأوزان بدقة أقل، والانتقال من أعداد الفاصلة العائمة ذات 32 بت إلى الأعداد الصحيحة ذات 8 بت يجعلها أصغر بأربع مرات ويسرّع الاستدلال على الأجهزة الداعمة للأعداد الصحيحة. يزيل التقليم الأوزان ذات الإسهام الضئيل في المخرجات، بينما يدرّب تقطير المعرفة نموذجًا أصغر لمحاكاة نموذج أكبر. وللتوضيح، يحتاج نموذج لغوي يحوي 7 مليارات معلمة إلى نحو 28 GB لأوزانه بدقة 32 بت، و14 GB بدقة 16 بت، و3.5 GB بدقة 4 بت.










