Ultralytics YOLO27: انضم إلى قائمة الانتظار.
Get Started

تكامل Apple Core AI#

يتطلب التصدير إلى Core AI نظام macOS 26 أو أحدث على Apple silicon أو Linux بمعمارية x86_64

تنشر coreai-core حزمتَي wheels‏ macosx_26_0_arm64 وmanylinux_2_34_x86_64، لذا يعمل التصدير على أجهزة Mac المزودة بـ Apple silicon وعلى Linux بمعمارية x86_64 مع glibc 2.34 أو أحدث. يعمل .aimodel المُصدَّر على iOS 27 وmacOS 27. يحمّل Ultralytics iOS SDK (الإصدار 8.9.15 وما بعده) وإضافة Flutter (الإصدار 0.6.15 وما بعده) أصول .aimodel اختياريًا على أجهزة iOS 27؛ ويظل Core ML الخيار الافتراضي فيهما.

إن Core AI هو إطار عمل Apple الجديد لتشغيل الشبكات العصبية مباشرةً على Apple silicon. ويقدّم تنسيق النموذج .aimodel، وواجهة استدلال حديثة بلغة Swift، وأدوات تحويل قائمة على PyTorch، وترجمة مسبقة، وتخصيص النماذج، وأدوات مخصصة لتصحيح الأخطاء وتحليل الأداء.

تصف Apple إطار Core AI بأنه التطور التالي لتنفيذ الذكاء الاصطناعي على الجهاز، وإطار الاستدلال الذي يقوم عليه Apple Intelligence على الجهاز. وقد صُمم للبنى الحديثة للشبكات العصبية، بدءًا من نماذج الرؤية المدمجة وصولًا إلى النماذج التوليدية الكبيرة، ويمكنه جدولة العمل عبر CPU وGPU ومحرك Apple العصبي (ANE).

يمثل Core AI مسارًا جديدًا للنشر، وليس اسمًا جديدًا لـ Core ML. تستخدم أطر العمل تنسيقات نماذج وأدوات تحويل وواجهات برمجية لوقت التشغيل وأنماط تكامل التطبيقات مختلفة.

مقارنة Core AI وCore ML#

القدرةCore AICore ML
عنصر النموذج.aimodel.mlpackage أو .mlmodel
تصدير Ultralyticsمتاح مع format=coreaiمتاح مع format=coreml
واجهة برمجة وقت تشغيل AppleAIModel وInferenceFunction وNDArrayMLModel، وغالبًا عبر VNCoreMLModel وVNCoreMLRequest
سير عمل التحويلتحويل PyTorch‏ torch.export عبر coreai-torchتحويل TorchScript عبر coremltools
التركيز الأساسيالشبكات العصبية الحديثة والذكاء الاصطناعي التوليدينشر واسع النطاق لتعلّم الآلة، بما في ذلك النماذج العصبية وغير العصبية
تكامل الصورتُعدّ التطبيقات الموترات أو تستخدم واصفات الصور والمخازن المؤقتة في Core AIتكامل مباشر مع إطار عمل Vision لتحجيم الصور وتحديد اتجاهها وإرسال الطلبات
العتادCPU وGPU ومحرك Apple العصبيCPU وGPU ومحرك Apple العصبي
إعداد النموذجالتخصيص عند التثبيت أو أول استخدام، مع إمكانية الترجمة المسبقةترجمة النموذج باستخدام Xcode أو على الجهاز
العمليات المخصصةعمليات خفض مخصصة في Core AI ونوى Metalالطبقات المخصصة في Core ML وعمليات MIL المدعومة
توفر النشرجيل جديد من أنظمة تشغيل Apple؛ الإصدار حاليًا تجريبيدعم واسع عبر أنظمة تشغيل Apple الحالية
حزم SDK الخاصة بـ Ultralytics لـ iOS وFlutterاختياري على الأجهزة التي تعمل بنظام iOS 27 أو أحدثمدعوم بالكامل، وهو الخيار الافتراضي

يظل Core ML الخيار المناسب عندما يحتاج التطبيق إلى تغطية واسعة للأجهزة أو تكامل مع إطار عمل Vision أو أنواع نماذج مثل أشجار القرار ومسارات العمل الجدولية. وتواصل Apple دعم Core ML، وتوجّه المطورين الذين يستخدمون أنواعًا من النماذج غير العصبية إليه.

آلية عمل تنسيق Core AI#

يبدأ سير عمل التأليف في Core AI بنموذج PyTorch:

PyTorch model
    ↓ torch.export
ExportedProgram
    ↓ coreai-torch
Core AI program
    ↓ optimize and save
.aimodel
    ↓ specialize or compile ahead of time
Apple silicon executable

تحوّل حزمة coreai-torch من Apple عنصر torch.export.ExportedProgram عبر خفض عمليات PyTorch ATen إلى عمليات Core AI. ويمكن تنفيذ العمليات غير المدعومة بخفض مخصص أو نواة Metal مخصصة.

يكون .aimodel الناتج عنصر نموذج غير مخصص. وعندما يهيئ التطبيق النموذج، يخصصه Core AI للجهاز المستهدف. ويمكن للتطبيقات السماح بحدوث ذلك عند أول استخدام، أو طلب التخصيص مسبقًا، أو تضمين نموذج مترجم مسبقًا لتقليل وقت التحميل الأولي.

في Swift، تحمّل التطبيقات العنصر باستخدام إطار Core AI، وتختار دالة استدلال، وتوفر مدخلات NDArray ذات أنواع محددة، وتتلقى مخرجات مسماة. يختلف هذا عن تغليف نموذج Core ML في طلب Vision، لذا يتطلب اعتماد Core AI وقت تشغيل للتطبيق مصممًا لأصول .aimodel.

للاطلاع على تفاصيل التنفيذ، راجع وثائق Apple حول AIModel وتخصيص النماذج والتخزين المؤقت والترجمة المسبقة.

تصدير نماذج YOLO26 إلى Core AI#

مثال
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="coreai")  # ⁨ينشئ 'yolo26n.aimodel'⁩
model.export(format="coreai", quantize=16)  # FP16 asset

# ⁨شغّل النموذج المُصدَّر⁩
coreai_model = YOLO("yolo26n.aimodel")
results = coreai_model("https://ultralytics.com/images/bus.jpg")

للاطلاع على قائمة الوسيطات الكاملة، راجع وضع التصدير. الرسم البياني ثابت: إذ يُتتبَّع عند imgsz المُمرر إلى export، لذا أجرِ التنبؤ بالحجم نفسه. تنتقل بيانات Ultralytics الوصفية ضمن metadata.json الخاص بالأصل نفسه، لذا تُحفَظ أسماء الفئات والخطوة والمهمة خلال دورة التصدير والاستيراد.

اختيار الرأس#

عند استخدام nms=False، يصدّر YOLO26 رأسه الشامل، الذي يحدد الاكتشافات داخل الرسم البياني. لا يتضمن Core AI عملية بدائية top-k، لذا يتحول هذا التحديد إلى فرز كامل، وتُفرض له تكلفة ثابتة عند حدود تقسيم Apple Neural Engine — نحو 1.7 ms، بصرف النظر عن max_det. ويؤدي التصدير باستخدام nms=None إلى إخراج تنبؤات (1, 84, 8400) الخام بدلًا من ذلك، مع ترك كبت القيم غير القصوى للمُتنبئ:

yolo export model=yolo26n.pt format=coreai nms=None quantize=16

على iPhone 17 Pro يعمل بنظام iOS 27.0، يستغرق YOLO26n بحجم 640 مقدار 3.01 ms مع الرأس داخل الرسم البياني، و1.28 ms بدونه (FP16، مترجم مسبقًا، ثلاث مجموعات متداخلة من 50 تكرارًا). ويمر كلاهما عبر YOLO(...) ذهابًا وإيابًا للاستدلال. استخدم nms=False عندما يجب أن يعيد استدعاء واحد للرسم البياني اكتشافات نهائية، أو أبقِ nms=None الافتراضي لاستخدام NMS خارجي.

على iOS 27 أو macOS 27، يحمّل التطبيق بعد ذلك الأصل المُصدَّر ويشغّله عبر واجهة Swift API الخاصة بـ Core AI من Apple. تستخدم الأصول المُصدَّرة نقطة الدخول main، وتأخذ مدخلًا واحدًا images ذا شكل [batch, 3, imgsz, imgsz]، وتعيد output0 (كما تعيد نماذج تجزئة المثيلات output1 أيضًا):

import CoreAI

let modelURL = Bundle.main.url(forResource: "yolo26n", withExtension: "aimodel")!
let model = try await AIModel(contentsOf: modelURL)
guard let function = try model.loadFunction(named: "main") else {
    throw AppError.missingInferenceFunction
}

let outputs = try await function.run(inputs: ["images": imageTensor])

على خلاف سير عمل Core ML وVision الحالي، ينفذ مسار Core AI في Ultralytics iOS SDK المعالجة المسبقة letterbox وبناء NDArray بنفسه، ويقرأ بيانات Ultralytics الوصفية نفسها من metadata.json الخاص بالأصل، ويعيد استخدام مفككات ترميز مخرجات Core ML. ويُحمّل عند تمرير التطبيق مسار .aimodel أو عنوان URL من نوع .aimodel.zip. توفر Apple تفاصيل واجهة API الحالية في وثائق إطار عمل Core AI، وأمثلة عملية للنماذج في مستودع نماذج Core AI.

الأداء المقاس#

استدلال شامل لصورة واحدة باستخدام YOLO26n FP16 (quantize=16) بتصديري Core ML وCore AI مع الرأس الخام الافتراضي (nms=None)، على Mac mini مزود بشريحة Apple M4 (4 أنوية CPU للأداء و6 أنوية للكفاءة، وGPU بعشر أنوية، ومحرك عصبي بـ16 نواة)، وذاكرة 16 GB ونظام macOS 27.0، باستخدام ultralytics 8.4.168 وcoremltools 9.0 للاستدلال في Core ML وcoreai-torch 0.4.3 مع coreai-core 1.0.0b3 للاستدلال في Core AI على Python 3.13. تعرض كل خلية الوقت الإجمالي (المعالجة المسبقة + الاستدلال + المعالجة اللاحقة)، مع تفصيل المراحل أسفلها.

النموذجالمهمةالحجم
(بكسل)
Core ML‏ CPU
CPU_ONLY
(ms)
Core ML‏ CPU + ANE مفضّل
CPU_AND_NE
(ms)
Core AI‏ CPU
cpu_only()
(ms)
Core AI‏ CPU + ANE مفضّل
neural_engine()
(ms)
YOLO26nDetect64014.4
0.6 / 13.4 / 0.4
7.6
0.6 / 6.7 / 0.4
16.8
0.6 / 15.9 / 0.3
2.8
0.6 / 2.0 / 0.2
YOLO26n-segSegment64018.7
0.6 / 16.5 / 1.5
9.2
0.6 / 7.1 / 1.5
25.3
0.6 / 23.2 / 1.5
5.1
0.6 / 3.1 / 1.4
YOLO26n-semدلالي64033.9
1.3 / 32.2 / 0.4
73.7
1.4 / 71.9 / 0.4
47.1
1.2 / 38.5 / 7.4
18.7
1.2 / 11.1 / 6.4
YOLO26n-depthالعمق64036.8
0.8 / 35.5 / 0.5
12.1
0.9 / 10.7 / 0.5
40.2
0.8 / 39.0 / 0.5
7.5
0.7 / 6.3 / 0.5
YOLO26n-clsالتصنيف2243.8
1.9 / 1.8 / 0.0
3.3
1.9 / 1.4 / 0.0
3.0
1.9 / 1.0 / 0.0
2.4
1.9 / 0.6 / 0.0
YOLO26n-poseالوضعية64015.5
0.6 / 14.6 / 0.3
7.0
0.6 / 6.2 / 0.3
17.8
0.5 / 17.0 / 0.3
2.7
0.5 / 2.0 / 0.2
YOLO26n-obbOBB64032.7
1.3 / 31.1 / 0.2
16.9
1.5 / 15.2 / 0.2
37.2
1.1 / 35.9 / 0.2
5.7
1.3 / 4.3 / 0.1
  • قيم السرعة هي زمن الاستجابة لدفعة من صورة واحدة: متوسط 15 استدعاءً لـ predict بعد 3 استدعاءات للإحماء، على bus.jpg عبر واجهة Python البرمجية من Ultralytics، مع تشغيل كل نموذج ووحدة حسابية في عملية مستقلة. وتناوب ترتيب CPU والمسرّع بين المهام في دورة تنفيذ تسلسلية واحدة. تُحمَّل صفوف Core ML باستخدام coremltools.ComputeUnit.CPU_ONLY أو CPU_AND_NE؛ وتُخصَّص صفوف Core AI باستخدام SpecializationOptions.cpu_only() أو SpecializationOptions.from_preferred_compute_unit_kind(ComputeUnitKind.neural_engine())، بينما يتحكم كل إطار عمل في موضع تنفيذ العمليات النهائي.
  • أعادت مهام الكشف والتجزئة والتصنيف والوضعية وOBB التنبؤات نفسها بالتنسيقين على كل وحدة حسابية. يعمل نموذج الدلالات Core ML FP16 ببطء أكبر عند تفضيل Neural Engine مقارنةً باستخدام CPU فقط على جهاز Mac هذا، كما تستغرق المعالجة اللاحقة الدلالية في Core AI من 6.4 إلى 7.4 مللي ثانية، مقابل 0.4 مللي ثانية في Core ML.
  • قارن نتائج iPhone 17 Pro على الجهاز ضمن تكامل CoreML.

مزايا Core AI#

يوفر Core AI عدة مزايا واعدة لعمليات النشر المستقبلية من Ultralytics:

  • مسار تصدير حديث لـ PyTorch: يبدأ التحويل من torch.export، مع الحفاظ على مخطط PyTorch أكثر تعبيرًا مقارنةً بسير عمل التتبّع الذي تستخدمه كثير من أدوات التصدير الحالية.
  • تحكم دقيق في وقت التشغيل: يمكن للتطبيقات إدارة التخصيص وذاكرة التخزين المؤقت للنماذج المترجمة ودوال الاستدلال والذاكرة وموضع التنفيذ الحسابي.
  • دعم متقدم للنماذج: صُمم التنفيذ ذو الحالة والأشكال الديناميكية والدوال المتعددة في عنصر واحد ونوى Metal المخصصة لتلائم بُنى الرؤية الحديثة والبُنى التوليدية.
  • أدوات مخصصة للمطورين: يستطيع Core AI Debugger فحص المخططات وقيم الموترات وتتبعها إلى شيفرة Python المصدرية. وتوفر Xcode وInstruments إمكانية تحليل أداء وقت التشغيل.
  • إمكانات النسخ الصفري: يتيح Core AI التحكم في التخزين والمخازن المؤقتة بهدف تقليل النسخ بين الكاميرا والرسومات وأحمال الاستدلال.
  • تحسين لأجهزة Apple silicon: يتيح تخصيص الجهاز لشركة Apple تحسين النموذج لوحدات CPU وGPU وNeural Engine المتاحة على الجهاز المحدد.
  • ضغط مرن: تدعم أدوات Core AI Optimization من Apple التكميم وتحويل الأوزان إلى لوحة ألوان والتقليم، بما في ذلك تنسيقات الأوزان منخفضة البتات.

قد تكون هذه الإمكانات مفيدة خصوصًا لنماذج YOLO المستقبلية ذات التنفيذ الديناميكي أو المكونات متعددة الوسائط الأكبر أو العمليات المخصصة التي لا تتوافق بسلاسة مع عمليات Core ML الحالية.

العيوب والقيود الحالية#

لا يُعد Core AI حاليًا بديلًا لمسار Core ML المستخدم في بيئة الإنتاج:

  • الحاجة إلى أنظمة تشغيل جديدة: يستهدف الإطار العام جيل iOS 27 وmacOS 27، بينما يدعم Core ML قاعدة تثبيت أوسع بكثير.
  • برمجيات تجريبية: لا يزال إطار Core AI من Apple وأجزاء من سلسلة أدوات Python الخاصة به في مراحل أولية، وقد يتغيران قبل الإصدار المستقر.
  • بيئة تصدير أضيق نطاقًا: يتطلب coreai-torch حاليًا Python من الإصدار 3.11 إلى 3.14، بالإضافة إلى إصدارات حديثة من PyTorch، وهو نطاق أضيق بكثير من نطاق إصدارات Python وPyTorch التي تدعمها Ultralytics.
  • منصات تصدير محدودة: لا تنشر coreai-core سوى عجلات macosx_26_0_arm64 وmanylinux_2_34_x86_64، لذا يتطلب format=coreai جهاز Mac بمعمارية Apple silicon يعمل بنظام macOS 26 أو أحدث، أو نظام Linux بمعمارية x86_64 مع glibc 2.34 أو أحدث (مثل Ubuntu 22.04+). ويتطلب تشغيل .aimodel أجهزة Apple أيضًا.
  • التفعيل اختياري في حزم تطوير البرامج (SDKs) من Ultralytics وليس افتراضيًا: على iPhone 17 Pro، تُظهر المقارنة على الجهاز أن Core AI يعادل Core ML في مسار المعالجة الكامل، لا يتفوق عليه؛ إذ يكون الاستدلال الدلالي واستدلال العمق والاستدلال باستخدام CPU فقط أبطأ، كما أن أصول FP16 تبلغ نحو ضعفي حجم التنزيل. لذلك تُبقي حزمة iOS SDK وإضافة Flutter على Core ML بوصفه الخيار الافتراضي.
  • استخدم الرأس الخام مع حزم SDK: مع nms=False، يستغرق YOLO26n نحو ضعفي الوقت على Core AI مقارنةً بـ Core ML (3.06 مقابل 1.53 مللي ثانية في إحدى جولات المقارنة)، ولا يعيد نموذج الوضعية الشامل FP16 أي اكتشافات عند موضع Core AI الافتراضي على iOS 27.0 (apple/coreai-torch#115). يتجنب الرأس الخام (nms=None، وهو الخيار الافتراضي) المشكلتين، وتنفذ حزم SDK عملية NMS في Swift. راجع اختيار الرأس.
  • لا يتوفر وقت تشغيل لمحاكي iOS: لا تتضمن حزمة SDK لمحاكي iOS Core AI.
  • يلزم ترحيل التطبيق: لا يمكن استبدال .aimodel بـ .mlpackage؛ إذ يتطلب تحميل النموذج والمعالجة المسبقة واستدعاءات الاستدلال ومعالجة البيانات الوصفية وفك ترميز المخرجات تطبيقًا لـ Core AI خارج حزم SDK من Ultralytics، التي توفر هذا التطبيق.
  • أدلة محدودة للاستخدام في الإنتاج: يجب التحقق من الأداء واستهلاك الطاقة ومدة التخصيص عند التشغيل الأول والدقة والضغط عبر مصفوفة مهام YOLO والأجهزة المدعومة.
  • لا يوجد مسار لمعالجة NMS: يستطيع Core ML تضمين مرحلة NMS لنماذج كشف YOLO القديمة. ويصدر Core AI افتراضيًا تنبؤات خامًا واحدًا إلى متعدد؛ استخدم nms=False للرأس الخالي من NMS في YOLO26. لا يتوفر دعم لـ NMS المضمّن (nms=True) ولا لـ dynamic=True. ولا يوفر coreai-torch تحويلًا أدنى لـ torchvision::nms، لذا تبقى NMS على المضيف.
  • حجم إدخال ثابت: يُتتبَّع المخطط المُصدَّر عند قيمة واحدة لـ imgsz ولا يدعم الأشكال الديناميكية، لذا يجب إجراء التنبؤ بالحجم الذي صُدِّر به.
  • قد تتسبب أصول FP16 في إيقاف التطبيق عند التحميل: يتعذر على بعض أصول .aimodel من FP16 تحميل برنامج Apple Neural Engine، ويُصدر MPSGraph خطأ تأكيد فاشلًا، ما ينهي العملية بدلًا من الرجوع إلى خيار بديل. يحدث هذا داخل وقت تشغيل Apple، قبل تنفيذ أي شيفرة من Ultralytics، بينما يُحمَّل الأصل نفسه عند تخصيصه لـ CPU فقط. استخدم FP32 بديلًا إذا حدث ذلك لأحد الأصول؛ أما أصول FP16 الخاصة بحزمة SDK التي فُحصت على iPhone 17 Pro (كل نماذج nano، ومهمة الكشف بكل أحجامها، وأكبر نموذج لكل مهمة) فقد حُمِّلت دون إيقاف التطبيق.

أي تنسيق من Apple ينبغي استخدامه؟#

استخدم Core ML اليوم عندما تحتاج إلى:

  • النشر على أنظمة تشغيل Apple الحالية والقديمة
  • المسار الافتراضي لحزمة iOS SDK أو Flutter SDK من Ultralytics
  • معالجة الصور باستخدام إطار عمل Vision
  • نشر YOLO باستخدام FP16 وINT8 خضع للاختبار
  • تضمين NMS لنماذج الكشف القديمة المتوافقة

قيّم Core AI إذا كان بإمكانك اشتراط iOS 27 أو macOS 27 وكنت تحتاج إلى:

  • أحدث وقت تشغيل للشبكات العصبية على أجهزة Apple
  • إدارة صريحة للتخصيص وذاكرة التخزين المؤقت
  • تنفيذ متقدم للنماذج الديناميكية أو ذات الحالة
  • عمليات Core AI مخصصة أو نوى Metal
  • تصحيح مفصل لمخططات Core AI وتحليل أداء وقت التشغيل

من المتوقع أن يتعايش Core ML وCore AI خلال انتقال التطبيقات. ولا يلغي دعم Core AI الحاجة إلى Core ML فورًا، لأن أهداف النشر وعقود التطبيقات تختلف بينهما.

خارطة طريق Ultralytics#

اكتمل تنفيذ هدف التصدير المخصص coreai: يشمل التصدير والتحقق العددي نماذج مهام YOLO26 المدعومة، ويُنفَّذان باستمرار ضمن CI من Ultralytics على macOS 26، كما يُقاس زمن استجابة FP16 على الجهاز. وفيما يلي بقية خارطة الطريق قبل بلوغ Core AI مستوى التكافؤ مع مسار Core ML:

  1. سد الفجوة في زمن استجابة الرأس ضمن المسار الكامل على Apple Neural Engine (apple/coreai-torch#66)، ومعالجة مشكلات صحة Neural Engine (apple/coreai-torch#115، #116).
  2. أصول Core AI بتنسيقي INT8 والأوزان المحوَّلة إلى لوحة ألوان؛ أما أصول حزمة SDK فهي بتنسيق FP16، ويبلغ حجم تنزيلها نحو ضعفي حجم أصول Core ML بتنسيق INT8.
  3. إصدارات مستقرة من إطار عمل Apple وأدوات التحويل (جيل iOS 27 وmacOS 27 لا يزال في المرحلة التجريبية حاليًا).
  4. معايير قياس الذاكرة والطاقة والتخصيص عبر مصفوفة الأجهزة المدعومة.

تحمّل حزمة iOS SDK وإضافة Flutter من Ultralytics نماذج Core AI كخيار اختياري على iOS 27 والإصدارات الأحدث؛ ويبقى Core ML الخيار الافتراضي والموصى به للتوافق مع الإصدارات الأقدم من iOS 27. تابع خارطة طريق Ultralytics وملاحظات الإصدارات لمعرفة العناصر المتبقية.

موارد إضافية#

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

  • نعم. صدّر باستخدام model.export(format="coreai") أو yolo export format=coreai على جهاز Mac بمعمارية Apple silicon يعمل بنظام macOS 26 أو أحدث، أو على Linux بمعمارية x86_64 مع glibc 2.34 أو أحدث؛ ويعمل .aimodel المُصدَّر على iOS 27 وmacOS 27. تحمّله حزم iOS وFlutter SDK من Ultralytics كخيار اختياري على أجهزة iOS 27. أما للمسار الافتراضي وأنظمة التشغيل الأقدم من هذا الجيل، فصدّر ملفات Core ML .mlpackage باستخدام format="coreml".

  • ليس على الفور. Core AI هو المسار الأحدث من Apple للشبكات العصبية الحديثة، بينما يظل Core ML مدعومًا ويوفر توافقًا أوسع مع أنظمة التشغيل، وتكاملًا مع Vision، ودعمًا للنماذج غير العصبية.

  • لا. يحتوي التنسيقان على تمثيلين مختلفين للنموذج، ويحمّلهما إطارا عمل مختلفان. يجب أن يبدأ التحويل من النموذج المصدر باستخدام سلسلة أدوات Apple المناسبة.

  • من المتوقع أن يتعايش التكامل الأولي مع Core ML. وأي قرار مستقبلي باستبداله يعتمد على انتشار أنظمة التشغيل واستقرار الأدوات والأداء على الجهاز.

المساهمون

التعليقات