تحسين OpenVINO الاستدلال لنماذج Ultralytics YOLO : دليل شامل
مقدمة
عند نشر نماذج التعلم العميق، لا سيما تلك الخاصة باكتشاف الكائنات مثل نماذج Ultralytics YOLO ، فإن تحقيق الأداء الأمثل أمر بالغ الأهمية. يتعمق هذا الدليل في الاستفادة من مجموعة أدوات Intel' OpenVINO لتحسين الاستدلال، مع التركيز على زمن الاستجابة والإنتاجية. سواء كنت تعمل على تطبيقات على مستوى المستهلكين أو عمليات نشر واسعة النطاق، فإن فهم استراتيجيات التحسين هذه وتطبيقها سيضمن تشغيل نماذجك بكفاءة على مختلف الأجهزة.
تحسين الكمون
يعد تحسين الكمون أمرًا حيويًا للتطبيقات التي تتطلب استجابة فورية من نموذج واحد بالنظر إلى مدخل واحد، وهو أمر نموذجي في سيناريوهات المستهلكين. الهدف هو تقليل التأخير بين المدخلات ونتائج الاستدلال. ومع ذلك، فإن تحقيق زمن انتقال منخفض يتطلب دراسة متأنية، خاصةً عند إجراء استدلالات متزامنة أو إدارة نماذج متعددة.
الاستراتيجيات الرئيسية لتحسين زمن الاستجابة:
- استدلال واحد لكل جهاز: إن أبسط طريقة لتحقيق زمن انتقال منخفض هي الاقتصار على استدلال واحد في كل مرة لكل جهاز. غالبًا ما يؤدي التزامن الإضافي إلى زيادة زمن الاستجابة.
- الاستفادة من الأجهزة الفرعية: يمكن للأجهزة، مثل وحدات المعالجة المركزية متعددة المقابس أو وحدات معالجة الرسومات متعددة البلاط، تنفيذ طلبات متعددة بأقل زيادة في زمن الاستجابة من خلال الاستفادة من أجهزتها الفرعية الداخلية.
- OpenVINO تلميحات الأداء: استخدام OpenVINO
ov::hint::PerformanceMode::LATENCY
لـov::hint::performance_mode
تعمل الخاصية أثناء تجميع النماذج على تبسيط ضبط الأداء، مما يوفر نهجًا لا يعتمد على الجهاز ومقاومًا للمستقبل.
إدارة زمن التأخر في الاستدلال الأول:
- التخزين المؤقت للنماذج: للتخفيف من حمل النماذج وأوقات التجميع التي تؤثر على زمن الاستجابة، استخدم التخزين المؤقت للنماذج حيثما أمكن. بالنسبة للسيناريوهات التي لا يمكن فيها التخزين المؤقت، توفر وحدات المعالجة المركزية عمومًا أسرع أوقات تحميل النموذج.
- رسم الخرائط النموذجية مقابل القراءة: لتقليل أوقات التحميل، استبدل OpenVINO قراءة النموذج بالتعيين. ومع ذلك، إذا كان النموذج موجودًا على محرك أقراص قابل للإزالة أو على الشبكة، ففكر في استخدام
ov::enable_mmap(false)
للعودة إلى القراءة. - اختيار الجهاز التلقائي: يبدأ هذا الوضع في الاستدلال على CPU ، وينتقل إلى مسرع بمجرد أن يصبح جاهزًا، مما يقلل بسلاسة من زمن انتقال الاستدلال الأول.
تحسين الإنتاجية
يعد تحسين الإنتاجية أمرًا بالغ الأهمية للسيناريوهات التي تخدم العديد من طلبات الاستدلال في وقت واحد، مما يزيد من استخدام الموارد إلى أقصى حد دون التضحية بأداء الطلبات الفردية بشكل كبير.
مناهج تحسين الإنتاجية:
-
OpenVINO تلميحات الأداء: طريقة مستقبلية عالية المستوى لتحسين الإنتاجية عبر الأجهزة باستخدام تلميحات الأداء.
-
التجميع الصريح والتدفقات: نهج أكثر دقة يتضمن التجميع الصريح واستخدام التدفقات لضبط الأداء المتقدم.
تصميم تطبيقات موجهة نحو الإنتاجية:
لزيادة الإنتاجية إلى أقصى حد، يجب على التطبيقات
- معالجة المدخلات بالتوازي، مع الاستفادة الكاملة من إمكانيات الجهاز.
- تفكيك تدفق البيانات إلى طلبات استدلال متزامنة، مجدولة للتنفيذ المتوازي.
- استفد من واجهة برمجة التطبيقات غير المتزامنة مع عمليات الاستدعاء للحفاظ على الكفاءة وتجنب تجويع الجهاز.
تنفيذ متعدد الأجهزة:
OpenVINOيعمل وضع الأجهزة المتعددة على تبسيط عملية توسيع نطاق الإنتاجية من خلال موازنة طلبات الاستدلال تلقائيًا عبر الأجهزة دون الحاجة إلى إدارة الجهاز على مستوى التطبيق.
الخاتمة
يمكن أن يؤدي تحسين نماذج Ultralytics YOLO للكمون والإنتاجية باستخدام OpenVINO إلى تحسين أداء تطبيقك بشكل كبير. من خلال تطبيق الاستراتيجيات الموضحة في هذا الدليل بعناية، يمكن للمطورين ضمان تشغيل نماذجهم بكفاءة، وتلبية متطلبات سيناريوهات النشر المختلفة. تذكّر أن الاختيار بين تحسين زمن الاستجابة أو الإنتاجية يعتمد على احتياجات التطبيق الخاصة بك وخصائص بيئة النشر.
لمزيد من المعلومات الفنية التفصيلية وآخر التحديثات، راجع وثائقOpenVINO ومستودعUltralytics YOLO . توفر هذه الموارد أدلة متعمقة ودروسًا تعليمية ودعمًا مجتمعيًا لمساعدتك في تحقيق أقصى استفادة من نماذج التعلم العميق الخاصة بك.
إن ضمان تحقيق نماذجك للأداء الأمثل لا يتعلق فقط بتعديل التكوينات؛ بل يتعلق بفهم احتياجات تطبيقك واتخاذ قرارات مستنيرة. سواء كنت تعمل على تحسين الاستجابات في الوقت الحقيقي أو زيادة الإنتاجية للمعالجة على نطاق واسع، فإن الجمع بين نماذج Ultralytics YOLO و OpenVINO يوفر مجموعة أدوات قوية للمطورين لنشر حلول الذكاء الاصطناعي عالية الأداء.
الأسئلة الشائعة
كيف يمكنني تحسين النماذج Ultralytics YOLO من أجل زمن انتقال منخفض باستخدام OpenVINO ؟
ينطوي تحسين نماذج Ultralytics YOLO على عدة استراتيجيات رئيسية لتحسين نماذج من أجل زمن انتقال منخفض:
- استدلال واحد لكل جهاز: قصر الاستدلالات على استدلال واحد في كل جهاز لتقليل التأخير.
- الاستفادة من الأجهزة الفرعية: استفد من الأجهزة مثل وحدات المعالجة المركزية متعددة المقابس أو وحدات معالجة الرسومات متعددة البلاط التي يمكنها التعامل مع طلبات متعددة بأقل زيادة في زمن الاستجابة.
- OpenVINO تلميحات الأداء: استخدم OpenVINO
ov::hint::PerformanceMode::LATENCY
أثناء تجميع النماذج لضبط مبسط ومحدد الجهاز.
لمزيد من النصائح العملية حول تحسين زمن الاستجابة، راجع قسم تحسين زمن الاستجابة في دليلنا.
لماذا يجب أن أستخدم OpenVINO لتحسين الإنتاجية Ultralytics YOLO ؟
OpenVINO يعزز إنتاجية نموذج Ultralytics YOLO من خلال زيادة استخدام موارد الجهاز إلى أقصى حد دون التضحية بالأداء. تشمل المزايا الرئيسية ما يلي:
- تلميحات الأداء: ضبط بسيط وعالي المستوى للأداء عبر الأجهزة.
- التجميع الصريح والتدفقات: الضبط الدقيق للأداء المتقدم.
- تنفيذ متعدد الأجهزة: موازنة الأحمال الاستدلالية الآلية، وتسهيل الإدارة على مستوى التطبيق.
مثال على التكوين:
import openvino.properties.hint as hints
config = {hints.performance_mode: hints.PerformanceMode.THROUGHPUT}
compiled_model = core.compile_model(model, "GPU", config)
تعرف على المزيد حول تحسين الإنتاجية في قسم تحسين الإنتاجية في دليلنا التفصيلي.
ما هي أفضل الممارسات لتقليل زمن انتقال الاستدلال الأول في OpenVINO ؟
لتقليل زمن انتقال الاستدلال الأول، ضع في اعتبارك هذه الممارسات:
- تخزين النماذج مؤقتًا: استخدم التخزين المؤقت للنماذج لتقليل أوقات التحميل والتجميع.
- رسم الخرائط النموذجية مقابل القراءة: استخدام التعيين (
ov::enable_mmap(true)
) افتراضيًا ولكن قم بالتبديل إلى القراءة (ov::enable_mmap(false)
) إذا كان النموذج على محرك أقراص قابل للإزالة أو على الشبكة. - اختيار الجهاز التلقائي: استفد من الوضع التلقائي للبدء بالاستدلال CPU والانتقال إلى مسرع بسلاسة.
للاطلاع على الاستراتيجيات التفصيلية حول إدارة زمن انتقال الاستدلال الأول، راجع قسم إدارة زمن انتقال الاستدلال الأول.
كيف يمكنني تحقيق التوازن بين تحسين وقت الاستجابة والإنتاجية Ultralytics YOLO و OpenVINO ؟
يتطلب تحقيق التوازن بين زمن الاستجابة وتحسين الإنتاجية فهم احتياجات تطبيقك:
- تحسين الكمون: مثالي للتطبيقات في الوقت الحقيقي التي تتطلب استجابات فورية (مثل التطبيقات على مستوى المستهلكين).
- تحسين الإنتاجية: الأفضل للسيناريوهات التي تحتوي على العديد من الاستدلالات المتزامنة، وتعظيم استخدام الموارد (على سبيل المثال، عمليات النشر على نطاق واسع).
يمكن أن يساعدك استخدام تلميحات الأداء عالية المستوى OpenVINO وأوضاع الأجهزة المتعددة في تحقيق التوازن الصحيح. اختر تلميحات الأداءOpenVINO المناسبة بناءً على متطلباتك الخاصة.
هل يمكنني استخدام نماذج Ultralytics YOLO مع أطر عمل الذكاء الاصطناعي الأخرى إلى جانب OpenVINO ؟
نعم، نماذج Ultralytics YOLO متعددة الاستخدامات للغاية ويمكن دمجها مع مختلف أطر عمل الذكاء الاصطناعي. تشمل الخيارات:
- TensorRT: للحصول على NVIDIA GPU الأمثل، اتبع دليل التكاملTensorRT .
- CoreML: بالنسبة لأجهزة Apple، ارجع إلى إرشادات التصديرCoreML .
- TensorFlow.js: لتطبيقات الويب وتطبيقات Node.js، راجع دليل التحويلTF.js.
استكشف المزيد من عمليات التكامل على الصفحةUltralytics عمليات التكامل.