تعرف على YOLO26: جيل جديد من ذكاء الرؤية الاصطناعي.
Ultralytics
التكاملات

انشر Ultralytics YOLOv5 باستخدام DeepSparse من Neural Magic للحصول على أداء فئة GPU على وحدات المعالجة المركزية

عزز تدريب ونشر نموذج Ultralytics YOLOv5 باستخدام DeepSparse من Neural Magic للحصول على أداء فئة GPU على وحدات المعالجة المركزية (CPUs). حقق عمليات نشر أسرع وقابلة للتوسع لنموذج YOLOv5.

NUNuvola Ladi5 min read
نشر Ultralytics YOLOv5 باستخدام DeepSparse من Neural Magic على وحدات المعالجة المركزية

هل ترغب في تسريع تدريب ونشر نماذج YOLOv5 الخاصة بك؟ نحن نوفر لك ما تحتاجه! نقدم لكم أحدث شركائنا، Neural Magic. نظرًا لأن Neural Magic توفر أدوات برمجية تركز على ذروة أداء النموذج وبساطة سير العمل، فمن الطبيعي أن نتعاون معًا لتقديم حل يجعل عملية نشر YOLOv5 أفضل.

DeepSparse هو وقت تشغيل الاستدلال (inference runtime) لوحدات المعالجة المركزية من Neural Magic، والذي يستفيد من التناثر (sparsity) والحسابات منخفضة الدقة داخل الشبكات العصبية لتقديم أداء استثنائي على الأجهزة العادية. على سبيل المثال، مقارنةً بأساس ONNX Runtime، يوفر DeepSparse سرعة أعلى بمقدار 5.8 ضعف لنموذج YOLOv5s عند تشغيله على نفس الجهاز!

مقارنة إنتاجية YOLOv5 مع DeepSparse

لأول مرة، يمكن لأعباء عمل التعلم العميق الخاصة بك تلبية متطلبات الأداء في بيئة الإنتاج دون تعقيدات وتكاليف مسرعات الأجهزة. ببساطة، يمنحك DeepSparse أداء وحدات معالجة الرسومات وبساطة البرمجيات:

  1. عمليات نشر مرنة: تشغيل متسق عبر السحابة ومراكز البيانات والحافة (edge) مع أي مزود للأجهزة
  2. قابلية توسع لا نهائية: توسع أفقيًا باستخدام Kubernetes القياسي، أو رأسيًا ليصل إلى مئات النوى، أو بشكل مجرد تمامًا باستخدام الحوسبة بدون خادم (serverless)
  3. تكامل سهل: استخدم واجهات برمجة تطبيقات نظيفة لدمج نموذجك في تطبيق ومراقبته في بيئة الإنتاج

Link to this sectionحقق أداءً يضاهي وحدات معالجة الرسومات على وحدات المعالجة المركزية العادية#

يستفيد DeepSparse من تناثر النموذج (model sparsity) لتحقيق تسريع في الأداء.

يسمح التقليل من الكثافة (Sparsification) من خلال التقليم (pruning) والكمية (quantization) بإجراء تخفيضات كبيرة في الحجم والحسابات اللازمة لتنفيذ الشبكة مع الحفاظ على دقة عالية. يتميز DeepSparse بالوعي بالتناثر، حيث يتخطى عمليات الضرب والجمع بالأصفار ويقلص حجم الحسابات في التمرير الأمامي (forward pass). ونظرًا لأن الحسابات المتناثرة مرتبطة بالذاكرة، فإن DeepSparse ينفذ الشبكة بعمق، مقسمًا المشكلة إلى أعمدة موتر (Tensor Columns)، وهي أشرطة حسابية عمودية تتناسب مع ذاكرة الكاش.

شبكة DeepSparse و Ultralytics YOLOv5

الشبكات المتناثرة ذات الحسابات المضغوطة، التي يتم تنفيذها بعمق داخل ذاكرة الكاش، تسمح لـ DeepSparse بتقديم أداء يضاهي وحدات معالجة الرسومات على وحدات المعالجة المركزية!

Link to this sectionأنشئ نسخة متناثرة من YOLOv5 مدربة على بيانات مخصصة#

يحتوي مستودع النماذج مفتوح المصدر التابع لـ Neural Magic، المسمى SparseZoo، على نقاط فحص (checkpoints) متناثرة مسبقًا لكل نموذج YOLOv5. باستخدام SparseML، الذي يتكامل مع Ultralytics، يمكنك ضبط نقطة فحص متناثرة على بياناتك باستخدام أمر CLI واحد.

Link to this sectionانشر YOLOv5 باستخدام DeepSparse#

Link to this sectionتثبيت DeepSparse#

قم بتشغيل ما يلي لتثبيت DeepSparse. نوصي باستخدام بيئة افتراضية مع Python.

pip install deepsparse[server,yolo,onnxruntime]

Link to this sectionالحصول على ملف ONNX#

يقبل DeepSparse النموذج بتنسيق ONNX، والذي يتم تمريره إما كـ:

  • مسار محلي لنموذج ONNX
  • مؤشر (stub) من SparseZoo يحدد نموذجًا داخل SparseZoo

سنقارن بين نموذج YOLOv5s الكثيف القياسي ونموذج YOLOv5s المقلم والمكمم (pruned-quantized)، والمحدد بواسطة مؤشرات SparseZoo التالية:

zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none
zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none

Link to this sectionنشر نموذج#

يوفر DeepSparse واجهات برمجة تطبيقات مريحة لدمج نموذجك في تطبيق.

لتجربة أمثلة النشر أدناه، قم بسحب صورة عينة للمثال واحفظها باسم basilica.jpg باستخدام الأمر التالي:

wget -O basilica.jpg https://raw.githubusercontent.com/neuralmagic/deepsparse/main/src/deepsparse/yolo/sample_images/basilica.jpg

Link to this sectionواجهة برمجة تطبيقات Python#

تغلف خطوط المعالجة (Pipelines) عمليات المعالجة الأولية والمخرجات اللاحقة حول وقت التشغيل، مما يوفر واجهة نظيفة لإضافة DeepSparse إلى التطبيق. يتضمن تكامل DeepSparse-Ultralytics خط معالجة جاهزًا للاستخدام يقبل الصور الخام ويخرج مربعات الإحاطة (bounding boxes).

أنشئ خط معالجة (Pipeline) وقم بتشغيل الاستدلال:

from deepsparse import Pipeline

# list of images in local filesystem
images = ["basilica.jpg"]

# create Pipeline
model_stub = "zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none"
yolo_pipeline = Pipeline.create(
    task="yolo",
    model_path=model_stub,
)

# run inference on images, receive bounding boxes + classes
pipeline_outputs = yolo_pipeline(images=images, iou_thres=0.6, conf_thres=0.001)
print(pipeline_outputs)

إذا كنت تعمل في السحابة، فقد تحصل على خطأ يفيد بأن open-cv لا يمكنه العثور على libGL.so.1. تشغيل ما يلي على Ubuntu سيقوم بتثبيته:

apt-get install libgl1-mesa-glx

Link to this sectionخادم HTTP#

يعمل خادم DeepSparse فوق إطار عمل الويب الشهير FastAPI وخادم الويب Uvicorn. باستخدام أمر CLI واحد فقط، يمكنك بسهولة إعداد نقطة نهاية لخدمة النموذج باستخدام DeepSparse. يدعم الخادم أي خط معالجة من DeepSparse، بما في ذلك اكتشاف الكائنات باستخدام YOLOv5، مما يتيح لك إرسال صور خام إلى نقطة النهاية واستلام مربعات الإحاطة.

قم بتشغيل الخادم باستخدام نموذج YOLOv5s المقلم والمكمم:

deepsparse.server \
  --task yolo \
  --model_path zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none

طلب مثال، باستخدام حزمة requests في Python:

import requests, json

# list of images for inference (local files on client side)
path = ['basilica.jpg']
files = [('request', open(img, 'rb')) for img in path]

# send request over HTTP to /predict/from_files endpoint
url = 'http://0.0.0.0:5543/predict/from_files'
resp = requests.post(url=url, files=files)

# response is returned in JSON
annotations = json.loads(resp.text)  # dictionary of annotation results
bounding_boxes = annotations["boxes"]
labels = annotations["labels"]

Link to this sectionتعليق توضيحي (Annotate) عبر CLI#

يمكنك أيضًا استخدام أمر annotate لجعل المحرك يحفظ صورة مع التعليقات التوضيحية على القرص. جرب --source 0 للتعليق على بث كاميرا الويب المباشر الخاص بك!

deepsparse.object_detection.annotate --model_filepath zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none --source basilica.jpg

سيؤدي تشغيل الأمر أعلاه إلى إنشاء مجلد annotation-results وحفظ الصورة المرفقة بالتعليقات بالداخل.

كاتدرائية مشروحة باستخدام YOLOv5

Link to this sectionأداء قياس الأداء (Benchmark Performance)#

باستخدام برنامج قياس الأداء الخاص بـ DeepSparse، سنقارن إنتاجية DeepSparse بإنتاجية ONNX Runtime على YOLOv5s.

تم تشغيل معايير الأداء على مثيل AWS c6i.8xlarge (16 نواة).

Link to this sectionمقارنة أداء الدفعة (Batch) 32#

Link to this sectionأساس ONNX Runtime#

عند الدفعة 32، يحقق ONNX Runtime 42 صورة/ثانية مع نموذج YOLOv5s الكثيف القياسي:

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 32 -nstreams 1 -e onnxruntime

مسار النموذج الأصلي: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none حجم الدفعة: 32 السيناريو: sync الإنتاجية (عنصر/ثانية): 41.9025

Link to this sectionأداء DeepSparse الكثيف#

بينما يقدم DeepSparse أفضل أداء له مع النماذج المتناثرة المحسنة، فإنه يؤدي أيضًا بشكل جيد مع نموذج YOLOv5s الكثيف القياسي.

عند الدفعة 32، يحقق DeepSparse 70 صورة/ثانية مع نموذج YOLOv5s الكثيف القياسي—تحسن في الأداء بمقدار 1.7 ضعف مقارنة بـ ORT!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 32 -nstreams 1

مسار النموذج الأصلي: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none حجم الدفعة: 32 السيناريو: sync الإنتاجية (عنصر/ثانية): 69.5546

Link to this sectionأداء DeepSparse المتناثر#

عند تطبيق التناثر على النموذج، تكون مكاسب أداء DeepSparse مقارنة بـ ONNX Runtime أقوى.

عند الدفعة 32، يحقق DeepSparse 241 صورة/ثانية مع نموذج YOLOv5s المقلم والمكمم—تحسن في الأداء بمقدار 5.8 ضعف مقارنة بـ ORT!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none -s sync -b 32 -nstreams 1

مسار النموذج الأصلي: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none حجم الدفعة: 32 السيناريو: sync الإنتاجية (عنصر/ثانية): 241.2452

Link to this sectionمقارنة أداء الدفعة 1#

يستطيع DeepSparse أيضًا الحصول على تسريع مقارنة بـ ONNX Runtime لسيناريو الدفعة 1 الحساس لزمن الانتقال.

Link to this sectionأساس ONNX Runtime#

عند الدفعة 1، يحقق ONNX Runtime 48 صورة/ثانية مع نموذج YOLOv5s القياسي الكثيف.

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 1 -nstreams 1 -e onnxruntime

مسار النموذج الأصلي: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none حجم الدفعة: 1 السيناريو: sync الإنتاجية (عنصر/ثانية): 48.0921

Link to this sectionأداء DeepSparse المتناثر#

عند تطبيق التناثر على النموذج، تكون مكاسب أداء DeepSparse مقارنة بـ ONNX Runtime أقوى.

عند الدفعة 1، يحقق DeepSparse 135 صورة/ثانية مع نموذج YOLOv5s المقلم والمكمم—تحسن في الأداء بمقدار 2.8 ضعف مقارنة بـ ONNX Runtime!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none -s sync -b 1 -nstreams 1

مسار النموذج الأصلي: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none حجم الدفعة: 1 السيناريو: sync الإنتاجية (عنصر/ثانية): 134.9468

نظرًا لأن مثيلات c6i.8xlarge تحتوي على تعليمات VNNI، يمكن دفع إنتاجية DeepSparse بشكل أكبر إذا تم تقليم الأوزان في كتل من 4.

عند الدفعة 1، يحقق DeepSparse 180 عنصر/ثانية مع نموذج YOLOv5s المقلم والمكمم بكتل من 4—مكسب في الأداء بمقدار 3.7 ضعف مقارنة بـ ONNX Runtime!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned35_quant-none-vnni -s sync -b 1 -nstreams 1

مسار النموذج الأصلي: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned35_quant-none-vnni حجم الدفعة: 1 السيناريو: sync الإنتاجية (عنصر/ثانية): 179.7375

وها قد انتهينا! أنت مستعد لتحسين نشر YOLOv5 الخاص بك باستخدام DeepSparse.

Link to this sectionابدأ مع YOLOv5 و DeepSparse#

للتواصل معنا، انضم إلى مجتمعنا واترك لنا أسئلتك وتعليقاتك. ألقِ نظرة على مستودع Ultralytics YOLOv5 ووثائق Neural Magic الكاملة لنشر YOLOv5.

في Ultralytics، نحن نتشارك تجاريًا مع شركات ناشئة أخرى لمساعدتنا في تمويل أبحاث وتطوير أدواتنا مفتوحة المصدر الرائعة، مثل YOLOv5، للحفاظ عليها مجانية للجميع. قد تحتوي هذه المقالة على روابط تابعة لهؤلاء الشركاء.

Explore solutions

Real-time AI that works with your team

الذكاء الاصطناعي في الروبوتات

شغّل آلات أكثر ذكاءً باستخدام نماذج Ultralytics YOLO. يدفع الذكاء الاصطناعي للرؤية في الروبوتات الملاحة الذاتية، والإدراك، وتتبع الكائنات، والتحكم في الوقت الفعلي.
اعرف المزيد
Real-time AI that works with your team

الذكاء الاصطناعي في الخدمات اللوجستية

بسّط العمليات اللوجستية باستخدام نماذج Ultralytics YOLO. تُمكّن الرؤية بالذكاء الاصطناعي فحص الطرود، والفرز، وتتبع المركبات، ومراقبة السلامة في المستودعات في الوقت الفعلي.
اعرف المزيد
Real-time AI that works with your team

الذكاء الاصطناعي في التجزئة

أعد تصور تجارة التجزئة مع نماذج Ultralytics YOLO. تعزز الرؤية بالذكاء الاصطناعي تتبع المخزون، ومراقبة الأرفف، وإدارة الطوابير، ورؤى أكثر ذكاءً للعملاء.
اعرف المزيد
Real-time AI that works with your team

الذكاء الاصطناعي في الرعاية الصحية

قم ببناء حلول الرعاية الصحية مع نماذج Ultralytics YOLO. يعمل الذكاء الاصطناعي البصري في الرعاية الصحية على تعزيز سرعة التصوير الطبي، والتشخيص الأكثر ذكاءً، ومراقبة المرضى.
اعرف المزيد
Real-time AI that works with your team

الذكاء الاصطناعي في التصنيع

حسّن عمليات التصنيع باستخدام نماذج Ultralytics YOLO. تقود الرؤية بالذكاء الاصطناعي مراقبة الجودة، واكتشاف العيوب، والامتثال لمعدات الوقاية الشخصية (PPE)، وأتمتة خطوط التجميع.
اعرف المزيد
Real-time AI that works with your operation

الذكاء الاصطناعي في مجال السيارات

طبق رؤية الحاسوب في مجال السيارات مع نماذج Ultralytics YOLO. يعمل الذكاء الاصطناعي البصري على تعزيز السلامة على الطرق، ومساعدة السائق، وأتمتة المركبات من أجل طرق أكثر ذكاءً.
اعرف المزيد
Real-time AI tailored to your operation

الذكاء الاصطناعي في الزراعة

ادمج الذكاء الاصطناعي البصري في الزراعة الذكية باستخدام نماذج Ultralytics YOLO. عزز مراقبة المحاصيل، وتتبع الماشية، والزراعة الدقيقة للحصول على إنتاجية أعلى وأكثر ذكاءً.
اعرف المزيد
Real-time AI that works with your team

الذكاء الاصطناعي في الروبوتات

شغّل آلات أكثر ذكاءً باستخدام نماذج Ultralytics YOLO. يدفع الذكاء الاصطناعي للرؤية في الروبوتات الملاحة الذاتية، والإدراك، وتتبع الكائنات، والتحكم في الوقت الفعلي.
اعرف المزيد
Real-time AI that works with your team

الذكاء الاصطناعي في الخدمات اللوجستية

بسّط العمليات اللوجستية باستخدام نماذج Ultralytics YOLO. تُمكّن الرؤية بالذكاء الاصطناعي فحص الطرود، والفرز، وتتبع المركبات، ومراقبة السلامة في المستودعات في الوقت الفعلي.
اعرف المزيد
Real-time AI that works with your team

الذكاء الاصطناعي في التجزئة

أعد تصور تجارة التجزئة مع نماذج Ultralytics YOLO. تعزز الرؤية بالذكاء الاصطناعي تتبع المخزون، ومراقبة الأرفف، وإدارة الطوابير، ورؤى أكثر ذكاءً للعملاء.
اعرف المزيد
Real-time AI that works with your team

الذكاء الاصطناعي في الرعاية الصحية

قم ببناء حلول الرعاية الصحية مع نماذج Ultralytics YOLO. يعمل الذكاء الاصطناعي البصري في الرعاية الصحية على تعزيز سرعة التصوير الطبي، والتشخيص الأكثر ذكاءً، ومراقبة المرضى.
اعرف المزيد
Real-time AI that works with your team

الذكاء الاصطناعي في التصنيع

حسّن عمليات التصنيع باستخدام نماذج Ultralytics YOLO. تقود الرؤية بالذكاء الاصطناعي مراقبة الجودة، واكتشاف العيوب، والامتثال لمعدات الوقاية الشخصية (PPE)، وأتمتة خطوط التجميع.
اعرف المزيد
Real-time AI that works with your operation

الذكاء الاصطناعي في مجال السيارات

طبق رؤية الحاسوب في مجال السيارات مع نماذج Ultralytics YOLO. يعمل الذكاء الاصطناعي البصري على تعزيز السلامة على الطرق، ومساعدة السائق، وأتمتة المركبات من أجل طرق أكثر ذكاءً.
اعرف المزيد
Real-time AI tailored to your operation

الذكاء الاصطناعي في الزراعة

ادمج الذكاء الاصطناعي البصري في الزراعة الذكية باستخدام نماذج Ultralytics YOLO. عزز مراقبة المحاصيل، وتتبع الماشية، والزراعة الدقيقة للحصول على إنتاجية أعلى وأكثر ذكاءً.
اعرف المزيد
Real-time AI that works with your team

الذكاء الاصطناعي في الروبوتات

شغّل آلات أكثر ذكاءً باستخدام نماذج Ultralytics YOLO. يدفع الذكاء الاصطناعي للرؤية في الروبوتات الملاحة الذاتية، والإدراك، وتتبع الكائنات، والتحكم في الوقت الفعلي.
اعرف المزيد
Real-time AI that works with your team

الذكاء الاصطناعي في الخدمات اللوجستية

بسّط العمليات اللوجستية باستخدام نماذج Ultralytics YOLO. تُمكّن الرؤية بالذكاء الاصطناعي فحص الطرود، والفرز، وتتبع المركبات، ومراقبة السلامة في المستودعات في الوقت الفعلي.
اعرف المزيد
Real-time AI that works with your team

الذكاء الاصطناعي في التجزئة

أعد تصور تجارة التجزئة مع نماذج Ultralytics YOLO. تعزز الرؤية بالذكاء الاصطناعي تتبع المخزون، ومراقبة الأرفف، وإدارة الطوابير، ورؤى أكثر ذكاءً للعملاء.
اعرف المزيد
Real-time AI that works with your team

الذكاء الاصطناعي في الرعاية الصحية

قم ببناء حلول الرعاية الصحية مع نماذج Ultralytics YOLO. يعمل الذكاء الاصطناعي البصري في الرعاية الصحية على تعزيز سرعة التصوير الطبي، والتشخيص الأكثر ذكاءً، ومراقبة المرضى.
اعرف المزيد
Real-time AI that works with your team

الذكاء الاصطناعي في التصنيع

حسّن عمليات التصنيع باستخدام نماذج Ultralytics YOLO. تقود الرؤية بالذكاء الاصطناعي مراقبة الجودة، واكتشاف العيوب، والامتثال لمعدات الوقاية الشخصية (PPE)، وأتمتة خطوط التجميع.
اعرف المزيد
Real-time AI that works with your operation

الذكاء الاصطناعي في مجال السيارات

طبق رؤية الحاسوب في مجال السيارات مع نماذج Ultralytics YOLO. يعمل الذكاء الاصطناعي البصري على تعزيز السلامة على الطرق، ومساعدة السائق، وأتمتة المركبات من أجل طرق أكثر ذكاءً.
اعرف المزيد
Real-time AI tailored to your operation

الذكاء الاصطناعي في الزراعة

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

لنبنِ مستقبل الذكاء الاصطناعي معاً!

ابدأ رحلتك مع مستقبل تعلم الآلة