Inference Engine
اكتشف كيف يحسّن محرّك الاستدلال نماذج تعلّم الآلة مثل Ultralytics YOLO26 للنشر في الوقت الفعلي. استكشف نصائح الأداء للذكاء الاصطناعي الطرفي اليوم.
محرك الاستدلال هو مكوّن برمجي متخصص مصمم لتنفيذ نماذج التعلم الآلي المدرَّبة وإنشاء تنبؤات من البيانات الجديدة. وعلى خلاف مرحلة التدريب، التي تركز على تعلّم الأنماط من خلال عمليات كثيفة حسابيًا مثل الانتشار العكسي، يُحسَّن محرك الاستدلال حصريًا للمرحلة التشغيلية المعروفة باسم نشر النموذج. ويتمثل هدفه الأساسي في تنفيذ العمليات الحسابية بأعلى كفاءة ممكنة، مع تقليل زمن استدلال إلى أدنى حد وزيادة معدل النقل إلى أقصى حد على الأجهزة المستهدفة، سواء كان ذلك خادمًا سحابيًا قابلًا للتوسع أو جهاز الذكاء الاصطناعي الطرفي يعمل بالبطارية. ومن خلال إزالة الأعباء اللازمة للتدريب، تتيح هذه المحركات للشبكات العصبية المعقدة العمل في التطبيقات الفورية.
كيفية تحسين محركات الاستدلال للأداء#
ينطوي الانتقال من بيئة التدريب إلى محرك الاستدلال عادةً على عدة خطوات لتحسين بنية النموذج وتبسيطها. وبما أن النموذج لم يعد بحاجة إلى التعلم، يمكن للمحرك التخلص من البيانات المطلوبة لتحديث التدرجات، مما يؤدي فعليًا إلى تثبيت أوزان النموذج. وتشمل التقنيات الشائعة التي تستخدمها محركات الاستدلال دمج الطبقات، حيث تُجمع عمليات متعددة في خطوة واحدة لتقليل الوصول إلى الذاكرة، وتكميم النموذج، الذي يحوّل الأوزان من تنسيقات الفاصلة العائمة عالية الدقة إلى أعداد صحيحة منخفضة الدقة (مثل INT8).
تتيح هذه التحسينات لبنى متقدمة مثل Ultralytics YOLO26 العمل بسرعات عالية للغاية من دون فقدان كبير في الدقة. وغالبًا ما تُخصَّص المحركات المختلفة لأنظمة بيئية محددة للأجهزة لتحقيق أقصى أداء:
- NVIDIA TensorRT: يوفّر استدلالًا عالي الأداء على GPUs من NVIDIA من خلال استخدام نوى خاصة بالأجهزة وتحسين الرسم البياني للشبكة.
- Intel OpenVINO: يحسّن أداء التعلم العميق على بنيات Intel، بما في ذلك [CPUs](https://ultralytics-translation-2.invalid والرسوميات المدمجة، مما يجعله مثاليًا للحوسبة الطرفية.
- ONNX Runtime: مسرّع متعدد المنصات يدعم النماذج بتنسيق ONNX، ويوفّر جسرًا بين أطر العمل المختلفة والواجهات الخلفية للأجهزة.
التطبيقات الواقعية#
تُعد محركات الاستدلال المحرّكات غير المرئية وراء العديد من وسائل الراحة الحديثة في الذكاء الاصطناعي، إذ تمكّن أنظمة الرؤية الحاسوبية من الاستجابة لبيئتها فورًا.
-
المركبات ذاتية القيادة: في السيارات ذاتية القيادة، يجب أن تحدد نماذج اكتشاف الأجسام المشاة وإشارات المرور والمركبات الأخرى خلال أجزاء من الألف من الثانية. ويضمن تشغيل محرك استدلال محلي على أجهزة السيارة إجراء هذه المعالجة بسرعات الاستدلال في الوقت الفعلي، إذ إن الاعتماد على اتصال سحابي قد يتسبب في تأخيرات خطيرة.
-
التصنيع الذكي: تستخدم المصانع كاميرات [إنترنت الأشياء الصناعي](https://ultralytics-translation-0.invalid لفحص المنتجات على خطوط التجميع. ويعالج محرك الاستدلال تدفقات الفيديو لتنفيذ اكتشاف الحالات الشاذة، مع وضع علامات فورية على العيوب. وتقلل هذه الأتمتة الهدر وتضمن رقابة صارمة على الجودة من دون إبطاء الإنتاج.
محرك الاستدلال مقابل إطار التدريب#
من المفيد التمييز بين البرامج المستخدمة لإنشاء النموذج والمحرك المستخدم لتشغيله. إذ يوفّر إطار التدريب (مثل PyTorch أو TensorFlow) أدوات تصميم البنى، وحساب الخسارة، وتحديث المعلمات عبر التعلم الخاضع للإشراف. وهو يعطي الأولوية للمرونة وإمكانات تصحيح الأخطاء.
في المقابل، يأخذ محرك الاستدلال الناتج النهائي من إطار التدريب ويعطي الأولوية لسرعة التنفيذ وكفاءة الذاكرة. وعلى الرغم من إمكانية تشغيل الاستدلال داخل إطار تدريب، فإنه نادرًا ما يكون بالكفاءة نفسها التي يحققها استخدام محرك مخصص، ولا سيما عند النشر على الهواتف المحمولة أو الأجهزة المضمنة باستخدام أدوات مثل TensorFlow Lite أو Apple Core ML.
استخدام محرك استدلال مع Ultralytics YOLO26#
تجرّد حزمة ultralytics الكثير من تعقيدات محركات الاستدلال، مما يتيح للمستخدمين تشغيل التنبؤات بسلاسة. وهي تتولى داخليًا المعالجة المسبقة للصور وتنفيذ النموذج. وبالنسبة إلى المستخدمين الذين يرغبون في التوسع، تعمل منصة Ultralytics على تبسيط عملية تدريب النماذج وتصديرها إلى تنسيقات محسّنة متوافقة مع محركات الاستدلال المختلفة.
يوضح المثال التالي كيفية تحميل نموذج YOLO26 مدرَّب مسبقًا وتشغيل الاستدلال على صورة:
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Run inference on an image from a URL
# The 'predict' method acts as the interface to the inference process
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()








