انتقل إلى المحتوى

تحسين OpenVINO الاستدلال على Ultralytics YOLO النماذج: دليل شامل

OpenVINO نظام بيئي

مقدمة

When deploying deep learning models, particularly those for object detection such as Ultralytics YOLO models, achieving optimal performance is crucial. This guide delves into leveraging Intel's OpenVINO toolkit to optimize inference, focusing on latency and throughput. Whether you're working on consumer-grade applications or large-scale deployments, understanding and applying these optimization strategies will ensure your models run efficiently on various devices.

التحسين من أجل زمن الانتقال

يعد تحسين زمن الانتقال أمرا حيويا للتطبيقات التي تتطلب استجابة فورية من نموذج واحد نظرا لإدخال واحد ، وهو أمر نموذجي في سيناريوهات المستهلك. الهدف هو تقليل التأخير بين نتيجة الإدخال والاستدلال. ومع ذلك ، فإن تحقيق زمن انتقال منخفض ينطوي على دراسة متأنية ، خاصة عند تشغيل الاستدلالات المتزامنة أو إدارة نماذج متعددة.

الاستراتيجيات الرئيسية لتحسين زمن الوصول:

  • استدلال واحد لكل جهاز: إن أبسط طريقة لتحقيق زمن انتقال منخفض هي الحد من استدلال واحد في كل مرة لكل جهاز. غالبا ما يؤدي التزامن الإضافي إلى زيادة زمن الوصول.
  • الاستفادة من الأجهزة الفرعية: يمكن للأجهزة مثل وحدات المعالجة المركزية متعددة المقابس أو وحدات معالجة الرسومات متعددة البلاط تنفيذ طلبات متعددة بأقل زيادة في زمن الوصول من خلال استخدام أجهزتها الفرعية الداخلية.
  • OpenVINO تلميحات الأداء: استخدام OpenVINO's ov::hint::PerformanceMode::LATENCY ل ov::hint::performance_mode تعمل الخاصية أثناء تجميع النموذج على تبسيط ضبط الأداء ، مما يوفر نهجا حياديا للجهاز ومقاوما للمستقبل.

إدارة زمن انتقال الاستدلال الأول:

  • نموذج التخزين المؤقت: للتخفيف من حمل النموذج وتجميع الأوقات التي تؤثر على زمن الوصول، استخدم التخزين المؤقت للنموذج حيثما أمكن ذلك. بالنسبة للسيناريوهات التي لا يكون فيها التخزين المؤقت قابلا للتطبيق ، توفر وحدات المعالجة المركزية بشكل عام أسرع أوقات تحميل للنموذج.
  • رسم خرائط النموذج مقابل القراءة: لتقليل أوقات التحميل ، OpenVINO استبدال قراءة النموذج برسم الخرائط. ومع ذلك ، إذا كان النموذج موجودا على محرك أقراص قابل للإزالة أو محرك أقراص شبكة ، ففكر في استخدام ov::enable_mmap(false) للعودة إلى القراءة.
  • اختيار الجهاز التلقائي: يبدأ هذا الوضع بالاستدلال على CPU ، ويتحول إلى مسرع بمجرد أن يصبح جاهزًا، مما يقلل بسلاسة من زمن انتقال الاستدلال الأول.

تحسين الإنتاجية

يعد تحسين الإنتاجية أمرا بالغ الأهمية للسيناريوهات التي تخدم العديد من طلبات الاستدلال في وقت واحد، مما يزيد من استخدام الموارد دون التضحية بشكل كبير بأداء الطلب الفردي.

طرق تحسين الإنتاجية:

  1. OpenVINO تلميحات الأداء: طريقة عالية المستوى ومواكبة للمستقبل لتحسين الإنتاجية عبر الأجهزة باستخدام تلميحات الأداء.

    import openvino.properties.hint as hints
    
    config = {hints.performance_mode: hints.PerformanceMode.THROUGHPUT}
    compiled_model = core.compile_model(model, "GPU", config)
    
  2. التجميع الصريح والتدفقات: نهج أكثر دقة يتضمن التجميع الصريح واستخدام التدفقات لضبط الأداء المتقدم.

تصميم التطبيقات الموجهة نحو الإنتاجية:

لزيادة الإنتاجية إلى أقصى حد ، يجب أن تكون التطبيقات:

  • معالجة المدخلات بالتوازي ، والاستفادة الكاملة من قدرات الجهاز.
  • تحليل تدفق البيانات إلى طلبات الاستدلال المتزامنة ، المجدولة للتنفيذ المتوازي.
  • استخدم واجهة برمجة تطبيقات Async مع عمليات الاسترجاعات للحفاظ على الكفاءة وتجنب تجويع الجهاز.

تنفيذ متعدد الأجهزة:

OpenVINOيعمل الوضع متعدد الأجهزة على تبسيط معدل نقل التحجيم عن طريق موازنة طلبات الاستدلال تلقائيا عبر الأجهزة دون الحاجة إلى إدارة الأجهزة على مستوى التطبيق.

استنتاج

تحسين Ultralytics YOLO نماذج لزمن الوصول والإنتاجية مع OpenVINO يمكن أن يعزز أداء التطبيق الخاص بك بشكل كبير. من خلال تطبيق الاستراتيجيات الموضحة في هذا الدليل بعناية، يمكن للمطورين ضمان تشغيل نماذجهم بكفاءة، وتلبية متطلبات سيناريوهات النشر المختلفة. تذكر أن الاختيار بين تحسين زمن الانتقال أو الإنتاجية يعتمد على احتياجات التطبيق المحددة وخصائص بيئة النشر.

للحصول على معلومات فنية أكثر تفصيلا وآخر التحديثات، يرجى الرجوع إلى OpenVINO الوثائق و Ultralytics YOLO مستودع. توفر هذه الموارد أدلة متعمقة وبرامج تعليمية ودعما مجتمعيا لمساعدتك في تحقيق أقصى استفادة من نماذج التعلم العميق الخاصة بك.


إن ضمان تحقيق نماذجك للأداء الأمثل لا يتعلق فقط بتعديل التكوينات. يتعلق الأمر بفهم احتياجات التطبيق الخاص بك واتخاذ قرارات مستنيرة. سواء كنت تقوم بالتحسين للاستجابات في الوقت الفعلي أو زيادة الإنتاجية إلى أقصى حد للمعالجة واسعة النطاق ، فإن الجمع بين Ultralytics YOLO النماذج و OpenVINO يقدم مجموعة أدوات قوية للمطورين لنشر حلول الذكاء الاصطناعي عالية الأداء.

الأسئلة المتداولة

كيف يمكنني تحسين النماذج Ultralytics YOLO من أجل زمن انتقال منخفض باستخدام OpenVINO ؟

ينطوي تحسين نماذج Ultralytics YOLO على عدة استراتيجيات رئيسية لتحسين نماذج من أجل زمن انتقال منخفض:

  1. استدلال واحد لكل جهاز: قصر الاستدلالات على استدلال واحد في كل جهاز لتقليل التأخير.
  2. الاستفادة من الأجهزة الفرعية: استفد من الأجهزة مثل وحدات المعالجة المركزية متعددة المقابس أو وحدات معالجة الرسومات متعددة البلاط التي يمكنها التعامل مع طلبات متعددة بأقل زيادة في زمن الاستجابة.
  3. 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 ؟

لتقليل زمن انتقال الاستدلال الأول، ضع في اعتبارك هذه الممارسات:

  1. تخزين النماذج مؤقتًا: استخدم التخزين المؤقت للنماذج لتقليل أوقات التحميل والتجميع.
  2. رسم خرائط النموذج مقابل القراءة: استخدام التعيين (ov::enable_mmap(true)) افتراضيًا ولكن قم بالتبديل إلى القراءة (ov::enable_mmap(false)) إذا كان النموذج على محرك أقراص قابل للإزالة أو على الشبكة.
  3. اختيار الجهاز التلقائي: استفد من الوضع التلقائي للبدء بالاستدلال CPU والانتقال إلى مسرع بسلاسة.

للاطلاع على الاستراتيجيات التفصيلية حول إدارة زمن انتقال الاستدلال الأول، راجع قسم إدارة زمن انتقال الاستدلال الأول.

كيف يمكنني تحقيق التوازن بين تحسين وقت الاستجابة والإنتاجية Ultralytics YOLO و OpenVINO ؟

يتطلب تحقيق التوازن بين زمن الاستجابة وتحسين الإنتاجية فهم احتياجات تطبيقك:

  • تحسين الكمون: مثالي للتطبيقات في الوقت الحقيقي التي تتطلب استجابات فورية (على سبيل المثال، التطبيقات على مستوى المستهلكين).
  • تحسين الإنتاجية: الأفضل للسيناريوهات التي تحتوي على العديد من الاستدلالات المتزامنة، وتعظيم استخدام الموارد (على سبيل المثال، عمليات النشر واسعة النطاق).

يمكن أن يساعدك استخدام تلميحات الأداء عالية المستوى OpenVINO وأوضاع الأجهزة المتعددة في تحقيق التوازن الصحيح. اختر تلميحات الأداءOpenVINO المناسبة بناءً على متطلباتك الخاصة.

هل يمكنني استخدام نماذج Ultralytics YOLO مع أطر عمل الذكاء الاصطناعي الأخرى إلى جانب OpenVINO ؟

نعم، نماذج Ultralytics YOLO متعددة الاستخدامات للغاية ويمكن دمجها مع مختلف أطر عمل الذكاء الاصطناعي. تشمل الخيارات:

استكشف المزيد من عمليات التكامل على الصفحةUltralytics عمليات التكامل.

📅 Created 7 months ago ✏️ Updated 1 month ago

التعليقات