Real-time Inference
استكشف قوة الاستدلال في الوقت الفعلي للحصول على تنبؤات فورية بالذكاء الاصطناعي. تعلّم كيف يقدم Ultralytics YOLO26 نتائج منخفضة زمن الاستجابة للأجهزة الطرفية والروبوتات.
يشير الاستدلال الآني إلى العملية التي يقبل فيها نموذج التعلم الآلي (ML) المدرَّب بيانات إدخال حية ويولّد تنبؤات شبه فورية. وعلى خلاف المعالجة غير المتصلة، حيث تُجمع البيانات وتُحلَّل دفعةً واحدة في وقت لاحق، يحدث الاستدلال الآني أثناء التشغيل، مما يتيح للأنظمة التفاعل مع بيئتها بسرعة ومرونة. وتُعد هذه الإمكانية نبض تطبيقات الذكاء الاصطناعي (AI) الحديثة، إذ تسمح للأجهزة بإدراك البيانات وتفسيرها والتصرف بناءً عليها خلال أجزاء من الألف من الثانية.
أهمية زمن الاستجابة المنخفض#
المقياس الأساسي لتقييم الأداء الآني هو زمن استجابة الاستدلال. ويقيس هذا المقياس التأخير الزمني بين لحظة إدخال البيانات إلى النموذج—مثل إطار من كاميرا فيديو—ولحظة إنتاج النموذج مخرجًا، مثل صندوق إحاطة أو تصنيف. ولكي يُعد التطبيق «آنيًا»، يجب أن يكون زمن الاستجابة منخفضًا بما يكفي لمجاراة سرعة تدفق البيانات الواردة.
على سبيل المثال، في مهام فهم الفيديو التي تعمل بمعدل 30 إطارًا في الثانية (FPS)، يمتلك النظام ميزانية زمنية صارمة تبلغ نحو 33 مللي ثانية لمعالجة كل إطار. وإذا استغرق الاستدلال وقتًا أطول، يُدخل النظام تأخيرًا قد يؤدي إلى إسقاط إطارات أو تأخر الاستجابات. وغالبًا ما يتطلب تحقيق ذلك تسريعًا عتاديًا باستخدام وحدات GPU أو أجهزة الذكاء الاصطناعي الطرفي المتخصصة مثل NVIDIA Jetson.
الاستدلال الآني مقابل الاستدلال على دفعات#
من المفيد التمييز بين سير العمل الآني والمعالجة على دفعات. فعلى الرغم من أن كليهما يتضمن توليد التنبؤات، فإن أهدافهما وبنيتيهما تختلفان اختلافًا كبيرًا:
- الاستدلال الآني: يعطي الأولوية لزمن الاستجابة المنخفض. ويعالج نقاط البيانات المفردة (أو الدفعات الصغيرة جدًا) فور وصولها. وهذا أمر ضروري للتطبيقات التفاعلية مثل المركبات ذاتية القيادة، حيث يجب على السيارة اكتشاف أحد المشاة فورًا حتى تتمكن من الكبح في الوقت المناسب.
- الاستدلال على دفعات: يعطي الأولوية لمعدل الإنتاجية المرتفع. ويجمع كمية كبيرة من البيانات ويعالجها دفعة واحدة. وهذا مناسب للمهام غير العاجلة، مثل إنشاء تقارير المخزون الليلية أو تحليل اتجاهات البيانات الضخمة التاريخية.
التطبيقات الواقعية#
لقد أدى اتخاذ القرارات في أجزاء من الثانية إلى إحداث تحول في مختلف الصناعات من خلال تمكين الأتمتة في البيئات الديناميكية.
- التصنيع الذكي: في الذكاء الاصطناعي في التصنيع، تستخدم الكاميرات الموضوعة فوق سيور النقل الاستدلال الآني لإجراء مراقبة آلية للجودة. ويمكن لنموذج اكتشاف الأجسام تحديد العيوب أو الأجسام الغريبة في المنتجات التي تتحرك بسرعات عالية فورًا. وعند اكتشاف حالة شاذة، يشغّل النظام ذراعًا آلية لإزالة العنصر على الفور، مما يضمن وصول المنتجات عالية الجودة فقط إلى مرحلة التغليف.
- المراقبة والأمن: تعتمد أنظمة الأمن الحديثة على الرؤية الحاسوبية لمراقبة المحيطات. وبدلًا من تسجيل اللقطات فحسب، تشغّل هذه الكاميرات اكتشاف الأشخاص أو التعرّف على الوجوه آنيًا لتنبيه أفراد الأمن إلى الوصول غير المصرح به لحظة حدوثه.
- الروبوتات: في مجال الذكاء الاصطناعي في الروبوتات، تستخدم الروبوتات تقدير الوضعية للتنقل في المساحات المادية المعقدة. ويجب على روبوت المستودع استنتاج مواقع العوائق والعاملين البشريين باستمرار لتخطيط مساره بأمان وكفاءة.
التحسين والنشر#
غالبًا ما يتطلب نشر النماذج للتطبيقات الآنية تحسينها لضمان تشغيلها بكفاءة على الأجهزة المستهدفة. وتعمل تقنيات مثل تكميم النموذج على تقليل دقة أوزان النموذج (مثل الانتقال من float32 إلى int8) لخفض استخدام الذاكرة وزيادة سرعة الاستدلال مع أقل تأثير ممكن في الدقة.
يمكن للمطورين استخدام منصة Ultralytics لتبسيط هذه العملية. وتبسّط المنصة التدريب، كما تتيح للمستخدمين تصدير النماذج إلى تنسيقات محسّنة مثل TensorRT لوحدات GPU من NVIDIA، وOpenVINO لوحدات CPU من Intel، أو TFLite للنشر على الأجهزة المحمولة.
مثال على التعليمات البرمجية#
يوضح مقتطف Python التالي كيفية تشغيل الاستدلال الآني على بث كاميرا الويب باستخدام مكتبة ultralytics. ويستخدم نموذج YOLO26 Nano، المصمم خصيصًا لتحقيق أداء عالي السرعة على الأجهزة الطرفية.
from ultralytics import YOLO
# Load the YOLO26 Nano model, optimized for speed and real-time tasks
model = YOLO("yolo26n.pt")
# Run inference on the default webcam (source="0")
# 'stream=True' returns a generator for memory-efficient processing
# 'show=True' displays the video feed with bounding boxes in real-time
results = model.predict(source="0", stream=True, show=True)
# Iterate through the generator to process frames as they arrive
for result in results:
# Example: Print the number of objects detected in the current frame
print(f"Detected {len(result.boxes)} objects")








