Meet YOLO26: next-gen vision AI.

Link to this sectionتحسين الاستدلال باستخدام OpenVINO لنماذج YOLO#

OpenVINO Ecosystem

Link to this sectionمقدمة#

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

Link to this sectionالتحسين من أجل زمن الوصول#

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

Link to this sectionاستراتيجيات رئيسية لتحسين زمن الوصول:#

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

Link to this sectionإدارة زمن وصول الاستدلال الأول:#

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

Link to this sectionالتحسين من أجل الإنتاجية#

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

Link to this sectionنهج تحسين الإنتاجية:#

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

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

Link to this sectionتصميم تطبيقات موجهة نحو الإنتاجية:#

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

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

Link to this sectionالتنفيذ متعدد الأجهزة:#

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

Link to this sectionمكاسب الأداء في العالم الحقيقي#

يمكن أن يؤدي تنفيذ تحسينات OpenVINO مع نماذج Ultralytics YOLO إلى تحسينات كبيرة في الأداء. كما هو موضح في المعايير، يمكن للمستخدمين تجربة سرعات استدلال أسرع تصل إلى 3 أضعاف على وحدات المعالجة المركزية (CPU) من Intel، مع إمكانية تحقيق تسارعات أكبر عبر مجموعة أجهزة Intel بما في ذلك وحدات معالجة الرسومات المدمجة، ووحدات معالجة الرسومات المخصصة، وVPUs.

على سبيل المثال، عند تشغيل نماذج YOLO26 على وحدات المعالجة المركزية Intel Xeon، تتفوق الإصدارات المحسنة بـ OpenVINO باستمرار على نظيراتها في PyTorch من حيث وقت الاستدلال لكل صورة، دون المساس بـ الدقة.

Link to this sectionالتنفيذ العملي#

لتصدير وتحسين نموذج Ultralytics YOLO الخاص بك لـ OpenVINO، يمكنك استخدام وظيفة التصدير:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")

# Export the model to OpenVINO format
model.export(format="openvino", quantize=16)  # Export with FP16 precision

بعد التصدير، يمكنك تشغيل الاستدلال باستخدام النموذج المحسن:

# Load the OpenVINO model
ov_model = YOLO("yolo26n_openvino_model/")

# Run inference (Ultralytics auto-selects OpenVINO LATENCY mode for batch=1)
results = ov_model("https://ultralytics.com/images/bus.jpg", verbose=True)

Link to this sectionالخلاصة#

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

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


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

Link to this sectionالأسئلة الشائعة#

Link to this sectionكيف يمكنني تحسين نماذج Ultralytics YOLO لزمن وصول منخفض باستخدام OpenVINO؟#

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

  1. استدلال واحد لكل جهاز: قصر الاستدلالات على واحد في كل مرة لكل جهاز لتقليل التأخير.
  2. الاستفادة من الأجهزة الفرعية: استخدم أجهزة مثل وحدات المعالجة المركزية (CPU) متعددة المقابس أو وحدات معالجة الرسومات (GPU) متعددة الأجزاء التي يمكنها التعامل مع طلبات متعددة مع حد أدنى من الزيادة في زمن الوصول.
  3. تلميحات أداء OpenVINO: استخدم ov::LATENCY من OpenVINO أثناء تجميع النموذج لضبط مبسط ومحايد تجاه الجهاز.

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

Link to this sectionلماذا يجب أن أستخدم 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)

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

Link to this sectionما هي أفضل الممارسات لتقليل زمن وصول الاستدلال الأول في OpenVINO؟#

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

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

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

Link to this sectionكيف يمكنني الموازنة بين تحسين زمن الوصول والإنتاجية باستخدام Ultralytics YOLO وOpenVINO؟#

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

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

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

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

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

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

التعليقات