Model Pruning
تعرف على كيفية تقليل تقليم النموذج (model pruning) لحجم الشبكة العصبية وتعقيدها من أجل الذكاء الاصطناعي على الحافة. استكشف استراتيجيات تحسين Ultralytics YOLO26 لاستدلال أسرع على الأجهزة المحمولة.
تقليم النموذج هو تقنية في التعلم الآلي تُستخدم لتقليل حجم وتعقيد الحوسبة لـ neural network من خلال إزالة المعلمات غير الضرورية بشكل منهجي. تماماً مثلما يُشذب البستاني الفروع الميتة أو المكتظة لتشجيع الشجرة على الازدهار، يقوم المطورون بتقليم الشبكات الاصطناعية لجعلها أسرع وأصغر وأكثر كفاءة في استهلاك الطاقة. تُعد هذه العملية ضرورية لنشر بنيات deep learning الحديثة على الأجهزة ذات الموارد المحدودة، مثل الهواتف الذكية، والمستشعرات المدمجة، وأجهزة الحوسبة الطرفية.
كيف يعمل تقليم النموذج#
الفكرة الأساسية وراء التقليم هي أن شبكات العصبية العميقة غالباً ما تكون "مفرطة المعلمات"، مما يعني أنها تحتوي على weights and biases أكثر بكثير مما هو مطلوب بصرامة لحل مشكلة محددة. خلال عملية التدريب، يتعلم النموذج عدداً هائلاً من الاتصالات، ولكن لا تساهم كلها بالتساوي في النخبة النهائية. تحلل خوارزميات التقليم النموذج المدرب لتحديد هذه الاتصالات الزائدة عن الحاجة أو غير المعلوماتية - وعادة ما تكون تلك التي تكون أوزانها قريبة من الصفر - وتزيلها.
تتبع دورة حياة النموذج المقلم عادةً هذه الخطوات:
-
التدريب: يتم تدريب نموذج كبير حتى التقارب لالتقاط الميزات المعقدة.
-
التقليم: يتم ضبط المعلمات ذات الأهمية المنخفضة على صفر أو إزالتها فعلياً من هيكل الشبكة.
-
الضبط الدقيق: يخضع النموذج لجولة ثانوية من fine-tuning للسماح للمعلمات المتبقية بالتكيف واستعادة أي accuracy مفقودة أثناء مرحلة التقليم.
غالباً ما ترتبط هذه المنهجيّة بـ Lottery Ticket Hypothesis، والتي تشير إلى أن الشبكات الكثيفة تحتوي على شبكات فرعية أصغر ومعزولة (تذاكر رابحة) يمكنها تحقيق دقة قابلة للمقارنة بالنموذج الأصلي إذا تم تدريبها بشكل معزول.
أنواع استراتيجيات التقليم#
يتم تصنيف طرق التقليم عموماً بناءً على هيكل المكونات التي يتم إزالتها.
- التقليم غير المهيكل: يزيل هذا النهج الأوزان الفردية في أي مكان في النموذج بناءً على عتبة (مثل المقدار). وفي حين أن هذا يقلل بشكل فعال من عدد المعلمات، فإنه يؤدي إلى sparse matrices التي قد يكون من الصعب على الأجهزة القياسية معالجتها بكفاءة. بدون برامج متخصصة أو مسرعات أجهزة، قد لا يؤدي التقليم غير المهيكل إلى تحسينات كبيرة في السرعة.
- التقليم المهيكل: يزيل هذا الأسلوب الهياكل الهندسية بأكملها، مثل القنوات، أو المرشحات، أو الطبقات داخل convolutional neural network (CNN). من خلال الحفاظ على هيكل المصفوفة الكثيفة، يظل النموذج المقلم متوافقاً مع أجهزة GPU والوحدة المركزية (CPU) القياسية، مما يؤدي إلى تحسينات مباشرة في inference latency والإنتاجية.
تطبيقات العالم الحقيقي#
يُعد التقليم تمكيناً حاسماً لـ Edge AI، مما يسمح للنماذج المتطورة بالتشغيل في بيئات يكون فيها الاتصال السحابي غير متوفر أو بطيئاً للغاية.
- اكتشاف الكائنات على الأجهزة المحمولة: تستخدم التطبيقات على الأجهزة المحمولة، مثل الترجمة الفورية للغة أو الواقع المعزز، النماذج المقلمة للحفاظ على عمر البطارية وتقليل memory usage. غالباً ما تُفضل البنيات المحسنة مثل YOLO26 كأساُس لهذه المهام نظراً لكفاءتها المובّرة.
- سلامة السيارات: تتطلب السيارات ذاتية القيادة و autonomous vehicles اتخاذ قرار في جزء من الثانية. تتيح النماذج المقلمة لأجهزة الكمبيوتر الموجودة على متن الطائرة معالجة تغذيات الكاميرا عالية الدقة للكشف عن المشاة دون التأخير الناتج عن نقل البيانات إلى الخادم.
- إنترنت الأشياء الصناعي: في التصنيع، تستخدم أنظمة الفحص البصري على خطوط التجميع نماذج خفيفة الوزن للكشف عن العيوب. يضمن التقليم أن هذه الأنظمة يمكن أن تعمل على وحدات تحكم دقيقة فعالة من حيث التكلفة بدلاً من أرفف الخوادم باهظة الثمن.
التقليم مقابل تقنيات التحسين ذات الصلة#
في حين أن تقليم النموذج هو أداة قوية، إلا أنه غالباً ما يتم الخلط بينه وبين تقنيات model optimization الأخرى أو استخدامه إلى جانبها.
- التقليم مقابل الكمّنة: يقلل التقليم من عدد المعلمات (الارتباطات) في النموذج. في المقابل، يقلل model quantization من دقة تلك المعلمات، على سبيل المثال، عن طريق تحويل أعداد الفاصل العائم 32 بت إلى أعداد صحيحة 8 بت. غالباً ما يتم الجمع بين الاثنين لتحقيق أقصى قدر من الكفاءة لـ model deployment.
- التقليم مقابل تقطير المعرفة: يعَدل التقليم النموذج الأصلي عن طريق قطع الأجزاء. يتضمن Knowledge distillation تدريب نموذج "طالب" جديد تماماً وأصغر حجماً لتقليد سلوك نموذج "معلم" أكبر.
مثال على التنفيذ#
يوضح مثال 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 Platform واجهة مبسطة. وهي تبسط عملية إنشاء نماذج محسنة للغاية مثل YOLO26 وتصديرها إلى تنسيقات ملائمة للأجهزة مثل TensorRT أو CoreML.






