Meet YOLO26: next-gen vision AI.

Link to this sectionنشر YOLO26 على الأجهزة المحمولة وأجهزة الحافة باستخدام ExecuTorch#

يتطلب نشر نماذج الرؤية الحاسوبية على أجهزة الحافة مثل الهواتف الذكية والأجهزة اللوحية والأنظمة المضمنة وقت تشغيل محسّن يوازن بين الأداء وقيود الموارد. توفر ExecuTorch، وهي حل PyTorch لحوسبة الحافة، استدلالاً فعالاً على الجهاز لنماذج Ultralytics YOLO.

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

Link to this sectionلماذا التصدير إلى ExecuTorch؟#

PyTorch ExecuTorch mobile inference framework

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

Link to this sectionالميزات الرئيسية لـ ExecuTorch#

توفر ExecuTorch العديد من الميزات القوية لنشر نماذج Ultralytics YOLO على أجهزة الحافة:

  • تنسيق نموذج محمول: تستخدم ExecuTorch تنسيق .pte (PyTorch ExecuTorch)، والذي تم تحسينه من حيث الحجم وسرعة التحميل على الأجهزة ذات الموارد المحدودة.

  • خلفية XNNPACK: يوفر التكامل الافتراضي مع XNNPACK استدلالاً محسّناً للغاية على وحدات المعالجة المركزية للهواتف المحمولة، مما يوفر أداءً ممتازاً دون الحاجة إلى أجهزة متخصصة.

  • جاهز للتكميم: يدعم نظام ExecuTorch تقنيات التكميم لتقليل حجم النموذج وتحسين سرعة الاستدلال؛ تقوم Ultralytics حالياً بتصدير نماذج FP32 عبر خلفية XNNPACK.

  • كفاءة الذاكرة: يقلل إدارة الذاكرة المحسّنة من بصمة ذاكرة وقت التشغيل، مما يجعله مناسباً للأجهزة ذات ذاكرة وصول عشوائي (RAM) محدودة.

  • بيانات وصفية للنموذج: تتضمن النماذج المصدرة بيانات وصفية (حجم الصورة، أسماء الفئات، إلخ) في ملف YAML منفصل لسهولة التكامل.

Link to this sectionخيارات النشر مع ExecuTorch#

يمكن نشر نماذج ExecuTorch عبر منصات مختلفة للحافة والأجهزة المحمولة:

  • تطبيقات الهاتف المحمول: النشر على تطبيقات iOS و Android بأداء أصلي، مما يتيح اكتشاف الكائنات في الوقت الفعلي في تطبيقات الهاتف المحمول.

  • الأنظمة المضمنة: التشغيل على أجهزة Linux المضمنة مثل Raspberry Pi و NVIDIA Jetson وغيرها من الأنظمة القائمة على ARM بأداء محسّن.

  • أجهزة الذكاء الاصطناعي على الحافة: النشر على أجهزة ذكاء اصطناعي متخصصة على الحافة مع مندوبين مخصصين للاستدلال المتسارع.

  • أجهزة إنترنت الأشياء (IoT): التكامل في أجهزة IoT للاستدلال على الجهاز دون متطلبات اتصال سحابي.

Link to this sectionتصدير نماذج Ultralytics YOLO26 إلى ExecuTorch#

تتيح عملية تحويل نماذج Ultralytics YOLO26 إلى تنسيق ExecuTorch نشراً فعالاً على الأجهزة المحمولة وأجهزة الحافة.

Link to this sectionالتثبيت#

يتطلب تصدير ExecuTorch استخدام Python 3.10-3.13 و PyTorch >= 2.9.0 بالإضافة إلى حزمة executorch:

التثبيت
# Install Ultralytics package
pip install ultralytics

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

Link to this sectionالاستخدام#

تصدير نماذج YOLO26 إلى ExecuTorch أمر مباشر:

يدعم تنسيق ExecuTorch أوضاع التصدير و التنبؤ و التحقق. قم بتصدير نموذجك، ثم قم بتحميل النموذج المصدر لتشغيل الاستدلال أو التحقق من دقته.

التصدير
from ultralytics import YOLO

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

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

# Load the exported ExecuTorch model
model = YOLO("yolo26n_executorch_model")

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

# Load the exported ExecuTorch model
model = YOLO("yolo26n_executorch_model")

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

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

Link to this sectionوسائط التصدير#

عند التصدير إلى تنسيق ExecuTorch، يمكنك تحديد الوسائط التالية:

الوسيطالنوعالافتراضيالوصف
formatstr'executorch'التنسيق المستهدف للنموذج المصدر، والذي يحدد التوافق مع بيئات النشر المختلفة.
imgszint أو tuple640Desired image size for the model input. Can be an integer for square images or a tuple (height, width) for specific dimensions.
batchint1يحدد حجم استدلال دفعة النموذج المصدر أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المصدر في وقت واحد في وضع predict.
devicestrNoneيحدد الجهاز للتصدير: GPU (device=0)، CPU (device=cpu)، أو MPS لأجهزة Apple silicon (device=mps).

Link to this sectionهيكل المخرجات#

ينشئ تصدير ExecuTorch دليلاً يحتوي على النموذج والبيانات الوصفية:

yolo26n_executorch_model/
├── model.pte               # ExecuTorch model file
└── metadata.yaml           # Model metadata (classes, image size, etc.)

Link to this sectionاستخدام نماذج ExecuTorch المصدرة#

بعد تصدير نموذجك، ستحتاج إلى دمجه في تطبيقك المستهدف باستخدام وقت تشغيل ExecuTorch.

Link to this sectionتكامل الهاتف المحمول#

لتطبيقات الهاتف المحمول (iOS/Android)، ستحتاج إلى:

  1. إضافة وقت تشغيل ExecuTorch: تضمين مكتبة وقت تشغيل ExecuTorch في مشروع هاتفك المحمول
  2. تحميل النموذج: تحميل ملف .pte في تطبيقك
  3. تشغيل الاستدلال: معالجة الصور والحصول على التنبؤات

مثال على تكامل iOS (Objective-C/C++):

// iOS uses C++ APIs for model loading and inference
// See https://pytorch.org/executorch/stable/using-executorch-ios.html for complete examples

#include <executorch/extension/module/module.h>

using namespace ::executorch::extension;

// Load the model
Module module("/path/to/model.pte");

// Create input tensor
float input[1 * 3 * 640 * 640];
auto tensor = from_blob(input, {1, 3, 640, 640});

// Run inference
const auto result = module.forward(tensor);

مثال على تكامل Android (Kotlin):

import org.pytorch.executorch.EValue
import org.pytorch.executorch.Module
import org.pytorch.executorch.Tensor

// Load the model
val module = Module.load("/path/to/model.pte")

// Prepare input tensor
val inputTensor = Tensor.fromBlob(floatData, longArrayOf(1, 3, 640, 640))
val inputEValue = EValue.from(inputTensor)

// Run inference
val outputs = module.forward(inputEValue)
val scores = outputs[0].toTensor().dataAsFloatArray

Link to this sectionEmbedded Linux#

بالنسبة لأنظمة Linux المضمنة، استخدم واجهة برمجة تطبيقات C++ لـ ExecuTorch:

#include <executorch/extension/module/module.h>
#include <executorch/extension/tensor/tensor.h>

using namespace ::executorch::extension;

// Load model
Module module("model.pte");

// Prepare input
std::vector<float> input_data = preprocessImage(image);
auto input_tensor = from_blob(input_data.data(), {1, 3, 640, 640});

// Run inference
const auto outputs = module.forward(input_tensor);

لمزيد من التفاصيل حول دمج ExecuTorch في تطبيقاتك، قم بزيارة وثائق ExecuTorch.

Link to this sectionتحسين الأداء#

Link to this sectionتحسين حجم النموذج#

لتقليل حجم النموذج للنشر:

  • استخدام نماذج أصغر: ابدأ بـ YOLO26n (نانو) للحصول على أصغر بصمة
  • تقليل دقة المدخلات: استخدام أحجام صور أصغر (مثلاً imgsz=320 أو imgsz=416)
  • التكميم: تطبيق تقنيات التكميم (مدعومة في إصدارات ExecuTorch المستقبلية)

Link to this sectionتحسين سرعة الاستدلال#

لاستدلال أسرع:

  • خلفية XNNPACK: توفر خلفية XNNPACK الافتراضية استدلالاً محسّناً لوحدة المعالجة المركزية
  • تسريع الأجهزة: استخدام مندوبين خاصين بالمنصة (مثل CoreML لنظام iOS)
  • معالجة الدفعات: معالجة صور متعددة عندما يكون ذلك ممكناً

Link to this sectionالمقارنات المعيارية#

قام فريق Ultralytics بقياس أداء نماذج YOLO26، مقارناً السرعة والدقة بين PyTorch و ExecuTorch.

الأداء
النموذجالتنسيقالحالةالحجم (MB)metrics/mAP50-95(B)وقت الاستدلال (ms/im)
YOLO26nPyTorch5.30.4790314.80
YOLO26nExecuTorch9.40.4800142
YOLO26sPyTorch19.50.5730930.90
YOLO26sExecuTorch36.50.5780376.1
ملاحظة

وقت الاستدلال لا يشمل المعالجة المسبقة أو اللاحقة.

Link to this sectionاستكشاف الأخطاء وإصلاحها#

Link to this sectionالمشكلات الشائعة#

Issue: Python version error

حل: تتطلب ExecuTorch إصدار Python 3.10 أو أعلى. قم بترقية تثبيت Python الخاص بك:

# Using conda
conda create -n executorch python=3.10
conda activate executorch

Issue: Export fails during first run

حل: تأكد من تثبيت أحدث حزمة executorch مسبقة البناء:

pip install --upgrade executorch

Issue: Import errors for ExecuTorch modules

حل: تأكد من تثبيت ExecuTorch بشكل صحيح:

pip install executorch --force-reinstall

لمزيد من المساعدة في استكشاف الأخطاء وإصلاحها، قم بزيارة مشكلات Ultralytics على GitHub أو وثائق ExecuTorch.

Link to this sectionملخص#

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

أبرز النقاط:

  • توفر ExecuTorch نشراً أصلياً للحافة عبر PyTorch مع أداء ممتاز
  • التصدير بسيط باستخدام المعامل format='executorch'
  • النماذج محسّنة لوحدات المعالجة المركزية للهواتف المحمولة عبر خلفية XNNPACK
  • تدعم منصات iOS و Android و Linux المضمنة
  • تتطلب Python 3.10-3.13 و PyTorch >= 2.9.0

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

Link to this sectionكيف أقوم بتصدير نموذج YOLO26 إلى تنسيق ExecuTorch؟#

قم بتصدير نموذج YOLO26 إلى ExecuTorch باستخدام Python أو CLI:

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="executorch")

أو

yolo export model=yolo26n.pt format=executorch

Link to this sectionما هي متطلبات النظام لتصدير ExecuTorch؟#

يتطلب تصدير ExecuTorch ما يلي:

  • إصدار Python 3.10 أو أعلى
  • حزمة executorch (يتم تثبيتها عبر pip install executorch)
  • PyTorch (يتم تثبيتها تلقائياً مع ultralytics)

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

Link to this sectionهل يمكنني تشغيل الاستدلال بنماذج ExecuTorch مباشرة في Python؟#

يمكن تحميل نماذج ExecuTorch مباشرة باستخدام YOLO() للاستدلال والتحقق في Python (انظر أمثلة التنبؤ/التحقق أعلاه)، كما يمكن أيضاً نشرها على الأجهزة المحمولة وأجهزة الحافة باستخدام مكتبات وقت تشغيل ExecuTorch.

Link to this sectionما هي المنصات التي يدعمها ExecuTorch؟#

يدعم ExecuTorch ما يلي:

  • Mobile: iOS و Android
  • Embedded Linux: Raspberry Pi و NVIDIA Jetson وأجهزة ARM الأخرى
  • Desktop: Linux و macOS و Windows (لأغراض التطوير)

Link to this sectionكيف يقارن ExecuTorch مع TFLite للنشر على الأجهزة المحمولة؟#

كلا من ExecuTorch و TFLite ممتازان للنشر على الأجهزة المحمولة:

  • ExecuTorch: تكامل أفضل مع PyTorch، سير عمل PyTorch أصلي، ونظام بيئي متنامٍ
  • TFLite: أكثر نضجًا، دعم أوسع للأجهزة، والمزيد من أمثلة النشر

اختر ExecuTorch إذا كنت تستخدم PyTorch بالفعل وترغب في مسار نشر أصلي. اختر TFLite لتحقيق أقصى قدر من التوافق والأدوات الناضجة.

Link to this sectionهل يمكنني استخدام نماذج ExecuTorch مع تسريع GPU؟#

نعم! يدعم ExecuTorch تسريع الأجهزة من خلال العديد من الخلفيات (Backends):

  • Mobile GPU: عبر مفوضات Vulkan أو Metal أو OpenCL
  • NPU/DSP: عبر مفوضات خاصة بالمنصة
  • Default: XNNPACK للاستدلال المحسّن على CPU

راجع ExecuTorch Documentation لمعرفة الإعدادات الخاصة بكل خلفية.

التعليقات