قم بتحسين نماذج الذكاء الاصطناعي للأجهزة الطرفية باستخدام التدريب المدرك للتكميم (QAT)، مما يضمن دقة وكفاءة عالية في البيئات محدودة الموارد.
التدريب المدرك للتكمية (QAT) هو استراتيجية متقدمة لتحسين النماذج تُستخدم لإعداد نماذج التعلم العميق للنشر على أجهزة ذات قدرة حسابية محدودة. في سيناريوهات التدريب القياسية، تستخدم الشبكات العصبية عادةً أرقامًا عالية الدقة بعدية 32 بت (FP32) لتمثيل الأوزان والتفعيلات، مما يضمن أقصى دقة أثناء عملية التعلم. ومع ذلك، تعمل العديد من أجهزة الذكاء الاصطناعي المتطورة ، مثل الهواتف الذكية وأجهزة استشعار إنترنت الأشياء، بكفاءة أكبر باستخدام أعداد صحيحة 8 بت (INT8) أقل دقة. غالبًا ما يؤدي تحويل النموذج من FP32 إلى INT8 بعد التدريب إلى فقدان جودة التنبؤ. يحل QAT هذه المشكلة من خلال محاكاة آثار هذا الانخفاض في الدقة أثناء مرحلة التدريب نفسها، مما يسمح للشبكة بتكييف معلماتها لتقليل فقدان الدقة إلى الحد الأدنى.
المبدأ الأساسي وراء التدريب المدرك للتكمية هو إدخال عقد تكمية "وهمية" في بنية النموذج أثناء عملية التعلم. هذه العقد تنمذج أخطاء التقريب والتثبيت التي تحدث حتماً عند تقليل الدقة. أثناء التمرير الأمامي، يحسب النموذج التنبؤات كما لو كان مكانتزًا إلى INT8، بينما يقوم التمرير الخلفي — المدفوع بـ الانتشار العكسي— بتحديث أوزان النموذج بدقة عالية لتصحيح الأخطاء التي أدخلتها المحاكاة.
هذا النهج الاستباقي يقوم بشكل أساسي بضبط النموذج ليكون قويًا ضد ضوضاء التكمية. الأطر الرائدة مثل PyTorch و TensorFlow تقدم واجهات برمجة تطبيقات متخصصة لتنفيذ QAT. من خلال مراعاة قيود الأجهزة في مرحلة مبكرة من دورة الحياة، يضمن المطورون أن نشر النموذج النهائي على منصات مثل الأنظمة المدمجة يحافظ على أحدث مستويات الأداء.
من الضروري التمييز بين QAT ونظيره الأبسط، التكمية بعد التدريب (PTQ)، حيث إنهما يخدمان أغراضًا متشابهة بوسائل مختلفة:
تعد تقنية QAT لا غنى عنها في الصناعات التي لا يمكن التنازل فيها عن زمن الاستدلال وكفاءة الطاقة .
بينما يتضمن QAT مسار تدريب محددًا، فإن الهدف النهائي هو إنتاج نموذج جاهز للاستدلال الفعال . تعمل Ultralytics على تبسيط عملية التصدير، وتجهيز النماذج بشكل فعال لـ أوقات تشغيل ملائمة للتكمية مثل TFLite أو TensorRT.
يوضح المثال التالي كيفية تصدير YOLO11 مع تمكين تكمية INT8، باستخدام مجموعة بيانات المعايرة لتعيين النطاق الديناميكي:
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Export to TFLite format with INT8 quantization
# The 'data' argument is used for calibration during the export
model.export(format="tflite", int8=True, data="coco8.yaml")
تم تصميم النماذج المحسّنة عبر تقنيات التكمية لتعمل على محركات استدلال متخصصة. غالبًا ما يتم نشر النماذج المدربة على QAT باستخدام ONNX من أجل التوافق عبر الأنظمة الأساسية أو OpenVINO للتحسين على Intel . وهذا يضمن أن النموذج يعمل بأعلى كفاءة وسرعة ممكنة، سواء كان الهدف هو [Raspberry Pi](https://www.raspberrypi.com/documentation/ computers/processors.html) أو Edge TPU مخصص.