Ultralytics YOLO27:

تصدير Axelera AI والنشر#

تتعاون Ultralytics مع Axelera AI لتمكين الاستدلال عالي الأداء والكفاءة في استهلاك الطاقة على أجهزة Edge AI. صدّر وانشر نماذج Ultralytics YOLO مباشرةً إلى Metis® AIPU باستخدام Voyager SDK.

منظومة النشر الطرفي من Axelera AI لـ YOLO

توفر Axelera AI تسريعًا مخصصًا للأجهزة من أجل الرؤية الحاسوبية على الحافة، باستخدام بنية تدفق بيانات خاصة والحوسبة داخل الذاكرة لتقديم ما يصل إلى 856 TOPS مع استهلاك منخفض للطاقة.

اختيار الأجهزة المناسبة#

توفر Axelera AI عوامل شكل متنوعة لتلبية قيود النشر المختلفة. يساعد المخطط أدناه في تحديد الأجهزة المثلى لنشر Ultralytics YOLO.

graph TD
    A[Start: Select Deployment Target]:::start --> B{Device Type?}:::decide
    B -->|Edge Server / Workstation| C{Throughput Needs?}:::decide
    B -->|Embedded / Robotics| D{Space Constraints?}:::decide
    B -->|Standalone / R&D| E[Dev Kits & Systems]:::proc

    C -->|Max Density <br> 30+ Streams| F[**Metis PCIe x4**<br>856 TOPS]:::out
    C -->|Standard PC <br> Low Profile| G[**Metis PCIe x1**<br>214 TOPS]:::out

    D -->|Drones & Handhelds| H[**Metis M.2**<br>2280 M-Key]:::out
    D -->|High Performance Embedded| I[**Metis M.2 MAX**<br>Extended Thermal]:::out

    E -->|ARM-based All-in-One| J[**Metis Compute Board**<br>RK3588 + AIPU]:::out
    E -->|Prototyping| K[**Arduino Portenta x8**<br>Integration Kit]:::out

    click F "https://store.axelera.ai/"
    click G "https://store.axelera.ai/"
    click H "https://store.axelera.ai/"
    click J "https://store.axelera.ai/"

    classDef start fill:#4CAF50,color:#fff
    classDef proc fill:#2196F3,color:#fff
    classDef decide fill:#FF9800,color:#fff
    classDef out fill:#9C27B0,color:#fff

مجموعة الأجهزة#

صُممت مجموعة أجهزة Axelera لتشغيل Ultralytics YOLO26 والإصدارات السابقة بكفاءة عالية من حيث عدد FPS لكل واط.

بطاقات التسريع#

تتيح هذه البطاقات تسريع الذكاء الاصطناعي على الأجهزة المضيفة الحالية، ما يسهّل عمليات النشر في البيئات القائمة.

المنتجعامل الشكلالحوسبةالأداء (INT8)التطبيق المستهدف
Metis PCIe x4PCIe Gen3 x164x من Metis AIPU856 TOPSتحليلات الفيديو عالية الكثافة، والمدن الذكية
Metis PCIe x1PCIe Gen3 x11x من Metis AIPU214 TOPSأجهزة الكمبيوتر الصناعية، وإدارة الطوابير في قطاع البيع بالتجزئة
Metis M.2M.2 2280 M-Key1x من Metis AIPU214 TOPSالطائرات المسيّرة، والروبوتات، والأجهزة الطبية المحمولة
Metis M.2 MAXM.2 22801x من Metis AIPU214 TOPSالبيئات التي تتطلب إدارة حرارية متقدمة

الأنظمة المتكاملة#

بالنسبة إلى الحلول الجاهزة، تتعاون Axelera مع الشركات المصنّعة لتوفير أنظمة تم التحقق منها مسبقًا للعمل مع Metis AIPU.

  • Metis Compute Board: جهاز طرفي مستقل يقرن Metis AIPU بوحدة المعالجة المركزية ARM من نوع Rockchip RK3588.
  • محطات العمل: أبراج مخصصة للمؤسسات من Dell (Precision 3460XE) وLenovo (ThinkStation P360 Ultra).
  • أجهزة الكمبيوتر الصناعية: أنظمة متينة من Advantech وAetina مصممة من أجل أتمتة التصنيع.

المهام المدعومة#

تقدير العمق غير مدعوم: يُصدر رأس العمق عوامل تشغيل لا يمكن لمُجمِّع Metis AIPU خفض مستواها. كما أن تجزئة المثيلات لـ YOLO26 غير مدعومة بواسطة Ultralytics export أيضاً، ولكن لا يزال من الممكن نشرها من خلال حزمة أدوات التطوير Voyager SDK كما هو موضح أدناه. تجزئة الدلالات لـ YOLO26 مدعومة.

المهمةYOLOv8YOLO11YOLO26
الكشف
التجزئة
الدلالي
العمق
التصنيف
الوضعية
OBB
ملاحظة

تجزئة المثيلات لـ YOLO26 غير مدعومة حتى الآن عبر أمر Ultralytics export. يمكن للمستخدمين الذين يحتاجون إلى yolo26-seg النشر عبر Voyager SDK باستخدام deploy.py، والذي يوفر حلماً بديلًا في مساحة المستخدم. ستتم إضافة دعم المُجمِّع الأصلي في إصدار قادم.

التثبيت#

متطلبات المنصة

يتطلب التصدير إلى تنسيق Axelera ما يلي:

  • نظام التشغيل: Linux فقط (يوصى باستخدام Ubuntu 22.04/24.04)
  • الأجهزة: مُسرّع Axelera AI (أجهزة Metis)
  • Python: الإصدارات 3.10 و3.11 و3.12 و3.13
  • PyTorch: torch>=2.8,<2.13
  • Voyager SDK: 1.8.0؛ يقوم التصدير بتثبيت إصدار حزمة أدوات التطوير هذا ويقوم الاستدلال بتثبيت إصدار وقت التشغيل هذا
  • برنامج تشغيل نواة Metis: metis-dkms 1.6.2 أو أحدث، يتم تثبيته بشكل منفصل عن pip
  • تبعية النظام: sudo apt install libgl1 (مطلوبة من OpenCV، ولا تُضمَّن عبر pip)

تثبيت Ultralytics#

pip install ultralytics

للحصول على تعليمات مفصلة، راجع دليل تثبيت Ultralytics. وإذا واجهت صعوبات، فراجع دليل المشكلات الشائعة.

تثبيت برنامج تشغيل Axelera#

  1. أضف مفتاح مستودع Axelera:

    sudo sh -c "curl -fsSL https://software.axelera.ai/artifactory/api/security/keypair/axelera/public | gpg --dearmor -o /etc/apt/keyrings/axelera.gpg"
  2. أضف المستودع إلى apt:

    اختر المقتطف المناسب أدناه ليتوافق مع نظام التشغيل المستخدم.

    # Ubuntu 22.04
    sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu22 main' > /etc/apt/sources.list.d/axelera.list"
    # Ubuntu 24.04
    sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu24 main' > /etc/apt/sources.list.d/axelera.list"
  3. قم بتثبيت برنامج التشغيل وتحميله. تحتاج حزمة أدوات التطوير SDK الإصدار 1.8 إلى metis-dkms 1.6.2 أو أحدث، لذا يتم تثبيت الأحدث هنا:

    sudo apt update
    sudo apt install -y metis-dkms
    sudo modprobe metis
حافظ على تزامن برنامج تشغيل النواة مع SDK

يتم تثبيت برنامج تشغيل النواة بشكل منفصل عن حزم Python SDK، لذا بعد ترقية حزمة أدوات التطوير SDK، يجب عليك أيضاً تحديث برنامج التشغيل ليصل إلى الحد الأدنى لحزمة أدوات التطوير SDK هذه - وهو 1.6.2 لحزمة أدوات التطوير SDK 1.8. لا يوجد شيء يتحقق من ذلك وقت التثبيت، ويترك برنامج التشغيل الأقل من الحد الأدنى الجهاز غير متوفر: يُبلغ axdevice عن الإصدار المطلوب وفشل في فتح الجهاز.

[libaxldev.c:285] Found kernel driver version 1.5.5, but at least version 1.6.2 is required. Please update the kernel driver
ERROR: AXR_ERROR_CONNECTION_ERROR: Failed to open device metis-0:4:0

انظر أيضاً الخطوة 3: تثبيت برنامج تشغيل نواة Metis. إذا كنت تقوم بالفعل بتشغيل حزمة أدوات تطوير SDK سابقة على Ubuntu، فقم بتحديث برنامج التشغيل وإعادة تحميل وحدة النواة (لا يلزم إعادة التشغيل):

sudo apt update
sudo apt install -y metis-dkms
sudo rmmod metis
sudo modprobe metis

ثم أعد تشغيل axdevice للتأكد من اكتشاف الجهاز.

يُنزّل SDK تلقائيًا عند التشغيل الأول

سيعمل أول yolo export format=axelera أو yolo predict باستخدام نموذج Axelera على تنزيل حزم Axelera SDK وتثبيتها تلقائيًا. وقد يستغرق ذلك عدة دقائق وفقًا لسرعة اتصالك، ولن يظهر أي تقدم أثناء التنزيل. للتثبيت يدويًا مسبقًا:

pip install axelera-devkit==1.8.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
pip install axelera-rt==1.8.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
تؤدي ترقية حزمة أدوات التطوير SDK إلى إبطال نماذج التصدير الحالية

ترفع حزمة أدوات التطوير SDK 1.8 إصدار تنسيق نموذج .axm المجمَّع، لذلك يتم رفض أدلة _axelera_model التي تنتجها حزمة أدوات تطوير SDK سابقة وقت التحميل. أعد تصصدير كل نموذج بعد الترقيـة:

Error: Unsupported model version: 4.0, expected at least 5.0
Please re-deploy or re-download the model.

تصدير نماذج YOLO إلى Axelera#

يدعم تنسيق Axelera أوضاع التصدير والتنبؤ والتحقق. يُجرى الاستدلال والتحقق على أجهزة Axelera Metis AIPU. صدّر نموذجك، ثم حمّل النموذج المُصدَّر لإجراء الاستدلال أو التحقق من دقته.

التصدير
from ultralytics import YOLO

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

# Export the model to Axelera format
model.export(format="axelera")  # creates 'yolo26n_axelera_model'
التنبؤ
from ultralytics import YOLO

# Load the exported Axelera model
model = YOLO("yolo26n_axelera_model")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
التحقق
from ultralytics import YOLO

# Load the exported Axelera model
model = YOLO("yolo26n_axelera_model")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

وسائط التصدير#

الوسيطةالنوعالافتراضيالوصف
formatstr'axelera'التنسيق المستهدف لأجهزة Metis AIPU من Axelera.
imgszint أو tuple640حجم الصورة المُدخلة إلى النموذج.
batch*int1يحدد حجم الدفعة للاستدلال في نموذج التصدير أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المُصدَّر بالتزامن في وضع predict.
quantizeint أو str8/autoدقة التكميم. يلزم استخدام 8 (INT8)، ويُفعَّل تلقائيًا لـ Axelera AIPU. ويستبدل العلامتين المهجورتين half/int8. راجع تكميم INT8.
datastrNoneملف YAML لمجموعة بيانات المعايرة؛ أما التصنيف فيتطلب دليل مجموعة بيانات أو اسم مجموعة بيانات مضمّنة. إذا لم تُحدَّد، تختار Ultralytics مجموعة بيانات معايرة خاصة بالمهمة.
fractionfloat أو int أو list1.0مجموعة المعايرة الفرعية كنسبة أو عدد صور أو نسب/أعداد [train, val, test]. تُبقي القوائم ذات العنصرين test كاملة، بينما تتخطى 0 (يوصى باستخدام 100-400 صورة).
devicestrNoneجهاز التصدير: GPU (device=0) أو CPU (device=cpu).

* يتطلب الاستدلال باستخدام batch>1 حزمة أدوات التطوير Voyager SDK 1.8.0 أو أحدث؛ يتم تجميع النماذج لصورة واحدة.

للاطلاع على جميع خيارات التصدير، راجع وثائق وضع التصدير.

بنية المخرجات#

yolo26n_axelera_model/
├── yolo26n.axm                  # Axelera model file
├── compiler_config_final.toml  # Compiler configuration used for the build
└── metadata.yaml               # Model metadata (classes, image size, etc.)

معايير Axelera AI#

يعمل Metis AIPU على زيادة معدل الإنتاجية إلى أقصى حد مع تقليل استهلاك الطاقة.

النموذجFPS لبطاقة Metis PCIe (إطار في الثانية)FPS لجهاز Metis M.2 (إطار في الثانية)
YOLOv8n847771
YOLO11n746574
YOLO26n648.6484.9

تستند المعايير إلى بيانات Axelera AI. يعتمد FPS الفعلي على حجم النموذج، وحجم الدفعة، ودقة الإدخال.

هذه هي أرقام الإنتاجية للمضيف، والتي تم قياسها بواسطة معرض النماذج باستخدام خط أنابيب التدفق لـ Voyager SDK عبر ملف فيديو بجودة 720p. يُبلغ استدعاء predict الفردي عن زمن الانتقال لكل صورة بدلاً من ذلك، وهي كمية مختلفة.

التطبيقات الواقعية#

يتيح Ultralytics YOLO على أجهزة Axelera حلولًا متقدمة للحوسبة الطرفية:

سير العمل الموصى به#

  1. درّب نموذجك باستخدام وضع التدريب في Ultralytics
  2. صدّر النموذج إلى تنسيق Axelera باستخدام model.export(format="axelera")
  3. تحقق من الدقة باستخدام yolo val للتحقق من ضآلة فقدان التكميم
  4. تنبأ باستخدام yolo predict لإجراء تحقق نوعي
  5. انشر النموذج في مسار متكامل عالي الأداء من دون تبعية PyTorch — راجع أمثلة YOLO على Voyager SDK لمسارات Python قابلة للتركيب باستخدام axelera-rt

فحص حالة الجهاز#

تحقق من أن جهاز Axelera يعمل بصورة صحيحة:

# if axdevice cannot be found, please run at least one inference (see above) to ensure the required packages are installed
axdevice

للاطلاع على التشخيصات المفصلة، راجع وثائق AxDevice.

الأداء الأقصى#

يتم تجميع النماذج لصورة واحدة. يؤدي تمرير عدة صور إلى Predict إلى توجيهها عبر مُجدول Axelera (حزمة أدوات التطوير Voyager SDK 1.8 أو أحدث)، لذلك يعمل batch>1 بشكل صحيح، على الرغم من قياسه من البداية إلى النهاية على جهاز واحد، فهو ليس أسرع من batch=1:

yolo predict model=yolo26n_axelera_model source=path/to/images batch=8

بالنسبة للإنتاج الذي يتطلب أقصى إنتاجية، توفر حزمة أدوات التطوير Axelera Voyager SDK ما يلي:

  • خطوط أنابيب استدلال البث التي تحافظ على عدة إطارات قيد المعالجة
  • تجميع نموذج واحد عبر عدة نوى
  • الاستدلال الموزّع على مربعات للكاميرات ذات الدقة الأعلى

راجع model-zoo للاطلاع على معايير FPS، أو تواصل مع Axelera للحصول على دعم الإنتاج.

المشكلات المعروفة#

القيود المعروفة
  • قيود الطاقة في M.2: قد تواجه النماذج الكبيرة أو الكبيرة جدًا أخطاءً أثناء التشغيل على مسرّعات M.2 بسبب قيود مصدر الطاقة.

للحصول على الدعم، تفضّل بزيارة مجتمع Axelera.

الأسئلة الشائعة#

  • يدعم Voyager SDK تصدير نماذج YOLOv8 وYOLO11 وYOLO26. راجع المهام المدعومة لمعرفة مدى توفر المهام لكل نموذج.

  • نعم. يمكن تصدير أي نموذج تم تدريبه باستخدام وضع تدريب Ultralytics إلى تنسيق Axelera، شريطة أن يستخدم طبقات وعمليات مدعومة.

  • يُجري Voyager SDK من Axelera مَكْمَمة تلقائية للنماذج بما يتناسب مع بنية AIPU ذات الدقة المختلطة. وفي معظم مهام اكتشاف الأجسام، تفوق مكاسب الأداء (FPS أعلى واستهلاك طاقة أقل) بكثير التأثير الطفيف في mAP. تستغرق المَكْمَمة من بضع ثوانٍ إلى عدة ساعات، تبعًا لحجم النموذج. شغّل yolo val بعد التصدير للتحقق من الدقة.

  • نوصي باستخدام 100 إلى 400 صورة. لا يوفّر استخدام أكثر من 400 صورة أي فائدة إضافية، كما يزيد مدة المَكْمَمة. جرّب استخدام 100 و200 و400 صورة للعثور على التوازن الأمثل.

  • يتوفر SDK وبرامج التشغيل وأدوات المصرّف عبر بوابة مطوّري Axelera.

التعليقات