حسّن نماذج الذكاء الاصطناعي باستخدام التقليم - قلل التعقيد، وعزز الكفاءة، وانشر بشكل أسرع على الأجهزة الطرفية دون التضحية بالأداء.
يعد التقليم تقنية مهمة في يهدف إلى تقليل الحجم و والتعقيد الحسابي للشبكة الشبكة العصبية (NN) عن طريق إزالة المعلمات غير الضرورية غير ضرورية. يشبه إلى حد كبير تشذيب الأغصان الميتة من الشجرة لتشجيع النمو السليم، حيث يحدد تشذيب النموذج ويزيل أوزان النموذج أو الوصلات التي التي تساهم بالحد الأدنى في مخرجات النظام. الهدف الأساسي هو إنشاء نموذج متناثر يحافظ على دقة عالية دقة عالية مع تقليل استخدام الذاكرة بشكل كبير وتحسين زمن الاستنتاج. هذه العملية ضرورية لنشر البنى المعقدة، مثل Ultralytics YOLO11على أجهزة محدودة الموارد حيث تكون حيث تكون طاقة التخزين والمعالجة محدودة.
تبدأ العملية عادةً بنموذج مدرب مسبقاً. تقوم الخوارزميات بتحليل الشبكة للعثور على المعلمات - غالباً ما تكون على شكل موتر - لها قيم قريبة من الصفر أو ذات تأثير محدود على التنبؤ النهائي. ثم يتم ثم يتم إزالتها أو "تصفيرها". نظرًا لأن إزالة الاتصالات يمكن أن يقلل من الأداء مؤقتًا، فإن النموذج عادةً ما يخضع النموذج لعملية تسمى الضبط الدقيق، حيث يتم يتم إعادة تدريبه لبضع حقب زمنية للسماح للأوزان المتبقية المتبقية لضبط واستعادة الدقة المفقودة.
هناك فئتان رئيسيتان للتقليم:
من المهم التمييز بين التقليم من استراتيجيات عن استراتيجيات تحسين النموذج الأخرى, على الرغم من أنها غالبًا ما تُستخدم جنبًا إلى جنب:
يلعب التقليم دورًا حيويًا في تمكين الذكاء الاصطناعي المتطور عبر مختلف الصناعات:
في حين أن Ultralytics YOLO مُحسَّنة للغاية خارج الصندوق, يمكن للمطورين تجربة التقليم باستخدام أدوات PyTorch المساعدة القياسية. يوضح المثال التالي كيفية تطبيق التقليم غير المهيكل على طبقة التلافيف القياسية الموجودة في نماذج الرؤية الحاسوبية.
import torch
import torch.nn.utils.prune as prune
from ultralytics.nn.modules import Conv
# Initialize a standard convolutional block used in YOLO models
layer = Conv(c1=64, c2=128)
# Apply L1 unstructured pruning to remove 30% of the lowest magnitude weights
prune.l1_unstructured(layer.conv, name="weight", amount=0.3)
# Verify the sparsity (percentage of zero weights)
sparsity = float(torch.sum(layer.conv.weight == 0)) / layer.conv.weight.nelement()
print(f"Layer sparsity achieved: {sparsity:.2%}")
تهدف التطورات المستقبلية في الهندسة المعمارية الفعالة، مثل YOLO26 القادم، إلى دمج هذه مبادئ التحسين هذه في الأصل، مما يؤدي إلى إنشاء نماذج أصغر وأسرع وأكثر دقة حسب التصميم.