تعرف على كيفية تحسين الشبكات العصبية مثل Ultralytics من خلال إزالة المعلمات الزائدة عن الحاجة. استكشف الطرق المنظمة وغير المنظمة لـ Edge AI.
التقليم هو تقنية استراتيجية لتحسين النماذج تُستخدم لتقليل حجم وتعقيد حسابي الشبكات العصبية عن طريق إزالة المعلمات غير الضرورية. تمامًا مثلما يقوم البستاني بتقليم الأغصان الميتة أو المتضخمة لمساعدة الشجرة على النمو، فإن خوارزميات التقليم تحدد وتزيل weights and biases التي لا تساهم كثيرًا في القدرة التنبؤية للنموذج. الهدف الأساسي هو إنشاء نموذج مضغوط و"متفرق" يحافظ على دقة عالية مع استهلاك أقل بكثير للذاكرة والطاقة. هذا التخفيض ضروري لتحسين زمن الاستدلال، مما يسمح للبنى المتقدمة بالعمل بكفاءة على الأجهزة المحدودة الموارد مثل الهواتف المحمولة والأجهزة المدمجة.
غالبًا ما تكون نماذج التعلم العميق الحديثة مفرطة في المعلمات، مما يعني أنها تحتوي على روابط أكثر بكثير مما هو ضروري لحل مهمة معينة. يستغل التقليم هذا الأمر عن طريق إزالة الروابط التي لها قيم قريبة من الصفر، على افتراض أن تأثيرها على الناتج ضئيل . بعد إزالة المعلمات، يخضع النموذج عادةً لعملية ضبط دقيق، حيث يتم إعادة تدريبه لفترة وجيزة لضبط الأوزان المتبقية واستعادة أي أداء مفقود. يرتبط هذا المفهوم ارتباطًا وثيقًا بـ فرضية تذكرة اليانصيب، التي تشير إلى أن الشبكات الكبيرة تحتوي على شبكات فرعية أصغر حجمًا وعالية الكفاءة قادرة على الوصول إلى دقة مماثلة.
هناك فئتان أساسيتان من استراتيجيات التقليم:
التقليص أمر لا غنى عنه لتمكين الذكاء الاصطناعي الطرفي في مختلف الصناعات التي تكون فيها موارد الأجهزة محدودة:
في حين أن النماذج الحديثة مثل YOLO26 مصممة لتحقيق الكفاءة، يمكن للمطورين تطبيق التقليم لتحسين الطبقات بشكل أكبر باستخدام مكتبات مثل PyTorch. يوضح المثال التالي كيفية تطبيق التقليم غير المنظم على طبقة تلافيفية.
import torch
import torch.nn.utils.prune as prune
# Initialize a standard convolutional layer
layer = torch.nn.Conv2d(in_channels=3, out_channels=32, kernel_size=3)
# Apply L1 unstructured pruning to remove 30% of weights with the lowest magnitude
prune.l1_unstructured(layer, name="weight", amount=0.3)
# Verify sparsity (percentage of zero parameters)
sparsity = 100.0 * float(torch.sum(layer.weight == 0)) / layer.weight.nelement()
print(f"Sparsity achieved: {sparsity:.2f}%")
لتحسين نموذج بشكل فعال من أجل النشر، من المفيد التمييز بين التقليم والاستراتيجيات الأخرى:
لإدارة دورة الحياة الشاملة، بما في ذلك التدريب والتعليق ونشر النماذج المُحسّنة، يمكن للمستخدمين الاستفادة من Ultralytics . وهذا يبسط سير العمل من إدارة مجموعة البيانات إلى تصدير النماذج بتنسيقات متوافقة مع الأجهزة مثل ONNX أو TensorRT.