Model Pruning
تعلّم كيف يقلّل تشذيب النماذج حجم الشبكات العصبية وتعقيدها للذكاء الاصطناعي الطرفي. استكشف استراتيجيات تحسين Ultralytics YOLO26 لاستدلال أسرع على الأجهزة المحمولة.
تقليم النموذج هو تقنية في تعلّم الآلة تُستخدم لتقليل حجم الشبكة العصبية وتعقيدها الحسابي من خلال إزالة المعلمات غير الضرورية بشكل منهجي. وكما يقلّم البستاني الفروع الميتة أو المتضخمة لتشجيع الشجرة على النمو، يقلّم المطوّرون الشبكات الاصطناعية لجعلها أسرع وأصغر وأكثر كفاءة في استهلاك الطاقة. وتُعد هذه العملية ضرورية لنشر بنيات التعلّم العميق الحديثة على الأجهزة محدودة الموارد، مثل الهواتف الذكية، والمستشعرات المضمّنة، وأجهزة الحوسبة الطرفية.
كيفية عمل تقليم النموذج#
تتمثل الفكرة الأساسية وراء التقليم في أن الشبكات العصبية العميقة تكون غالبًا «مفرطة المعلمات»، أي إنها تحتوي على عدد من [الأوزان والانحيازات](https://ultralytics-translation-0.invalid أكبر بكثير من العدد الضروري فعليًا لحل مشكلة محددة. أثناء عملية التدريب، يتعلم النموذج عددًا هائلًا من الوصلات، لكن ليست جميعها تسهم بالقدر نفسه في المخرج النهائي. تحلل خوارزميات التقليم النموذج المدرَّب لتحديد هذه الوصلات الزائدة أو غير المفيدة—وعادةً ما تكون تلك التي تقترب أوزانها من الصفر—ثم تزيلها.
يتبع سير حياة النموذج المُقلَّم عمومًا الخطوات التالية:
-
التدريب: يُدرَّب نموذج كبير حتى التقارب لالتقاط السمات المعقدة.
-
التقليم: تُضبط المعلمات منخفضة الأهمية على الصفر أو تُزال فعليًا من بنية الشبكة.
-
الضبط الدقيق: يخضع النموذج لجولة ثانية من الضبط الدقيق للسماح للمعلمات المتبقية بالتكيف واستعادة أي دقة فُقدت أثناء مرحلة التقليم.
غالبًا ما ترتبط هذه المنهجية بـفرضية تذكرة اليانصيب، التي تفترض أن الشبكات الكثيفة تحتوي على شبكات فرعية أصغر ومعزولة (التذاكر الفائزة) يمكنها تحقيق دقة مماثلة لدقة النموذج الأصلي إذا دُرِّبت بشكل مستقل.
أنواع استراتيجيات التقليم#
تُصنَّف أساليب التقليم عمومًا استنادًا إلى بنية المكونات التي تجري إزالتها.
- التقليم غير المنظم: يزيل هذا النهج الأوزان الفردية في أي موضع من النموذج استنادًا إلى عتبة معينة (مثل المقدار). وعلى الرغم من أن ذلك يقلل عدد المعلمات بفاعلية، فإنه ينتج مصفوفات متناثرة قد يصعب على الأجهزة القياسية معالجتها بكفاءة. وقد لا يحقق التقليم غير المنظم تحسينات كبيرة في السرعة دون استخدام برمجيات متخصصة أو مسرّعات عتادية.
- التقليم المنظم: تزيل هذه الطريقة بنيات هندسية كاملة، مثل القنوات أو المرشحات أو الطبقات داخل شبكة عصبية التفافية (CNN). ومن خلال الحفاظ على بنية المصفوفة الكثيفة، يظل النموذج المُقلَّم متوافقًا مع أجهزة GPU وCPU القياسية، مما يؤدي إلى تحسينات مباشرة في زمن استجابة الاستدلال ومعدل نقل البيانات.
التطبيقات الواقعية#
يُعد التقليم عاملًا تمكينيًا بالغ الأهمية لـالذكاء الاصطناعي الطرفي، إذ يتيح تشغيل النماذج المتقدمة في بيئات لا يتوفر فيها اتصال سحابي أو يكون بطيئًا للغاية.
- اكتشاف الأجسام على الأجهزة المحمولة: تستخدم التطبيقات على الأجهزة المحمولة، مثل الترجمة اللغوية الفورية أو الواقع المعزز، النماذج المُقلَّمة للحفاظ على عمر البطارية وتقليل استخدام الذاكرة. وغالبًا ما تُفضَّل البنيات المحسَّنة مثل YOLO26 كأساس لهذه المهام نظرًا إلى كفاءتها المتأصلة.
- السلامة في السيارات: تتطلب السيارات ذاتية القيادة والمركبات ذاتية القيادة اتخاذ قرارات في أجزاء من الثانية. وتتيح النماذج المُقلَّمة للحواسيب الموجودة على متن المركبة معالجة تدفقات الكاميرات عالية الدقة لاكتشاف المشاة، من دون زمن الاستجابة الناتج عن إرسال البيانات إلى خادم.
- إنترنت الأشياء الصناعي: تستخدم أنظمة الفحص البصري في خطوط التجميع، ضمن قطاع التصنيع، نماذج خفيفة الوزن لاكتشاف العيوب. ويضمن التقليم قدرة هذه الأنظمة على العمل على متحكمات دقيقة منخفضة التكلفة بدلًا من رفوف الخوادم باهظة الثمن.
التقليم في مقابل تقنيات التحسين ذات الصلة#
على الرغم من أن تقليم النموذج أداة قوية، فإنه غالبًا ما يُخلط بينه وبين تقنيات تحسين النموذج الأخرى أو يُستخدم معها.
- التقليم في مقابل التكميم: يقلل التقليم عدد المعلمات (الوصلات) في النموذج. وعلى النقيض، يقلل تكميم النموذج دقة تلك المعلمات، مثل تحويل أعداد الفاصلة العائمة ذات 32 بت إلى أعداد صحيحة ذات 8 بت. وغالبًا ما تُدمج الطريقتان لتعظيم الكفاءة من أجل نشر النموذج.
- التقليم في مقابل تقطير المعرفة: يعدّل التقليم النموذج الأصلي من خلال اقتطاع أجزاء منه. أما تقطير المعرفة فيتضمن تدريب نموذج «طالب» جديد وأصغر بالكامل لمحاكاة سلوك نموذج «معلّم» أكبر.
مثال على التنفيذ#
يوضح مثال Python التالي كيفية تطبيق التقليم غير المنظم على طبقة التفافية باستخدام PyTorch. وتُعد هذه خطوة شائعة قبل تصدير النماذج إلى تنسيقات محسّنة مثل ONNX.
import torch
import torch.nn as nn
import torch.nn.utils.prune as prune
# Initialize a standard convolutional layer
module = nn.Conv2d(in_channels=1, out_channels=20, kernel_size=3)
# Apply unstructured pruning to remove 30% of the connections
# This sets the weights with the lowest L1-norm to zero
prune.l1_unstructured(module, name="weight", amount=0.3)
# Calculate and print the sparsity (percentage of zero elements)
sparsity = 100.0 * float(torch.sum(module.weight == 0)) / module.weight.nelement()
print(f"Layer Sparsity: {sparsity:.2f}%")بالنسبة إلى المستخدمين الذين يرغبون في إدارة دورة الحياة الكاملة لمجموعات بياناتهم ونماذجهم—بما في ذلك التدريب والتقييم والنشر—توفر منصة Ultralytics واجهة مبسطة. وهي تسهّل عملية إنشاء نماذج محسّنة بدرجة عالية مثل YOLO26 وتصديرها إلى تنسيقات ملائمة للأجهزة مثل TensorRT أو CoreML.









