Core ML — إطار عمل للتعلم الآلي من Apple، محسّن لتشغيل نماذج ML مباشرة على أجهزة iOS و macOS و watchOS و tvOS. على عكس خدمات ML السحابية، يستخدم Core ML مسرعات الأجهزة من Apple: Neural Engine و GPU و CPU، مما يضمن زمن وصول ضئيل عند معالجة البيانات. وفقًا لوثائق Apple Core ML (2026)، يدعم الإطار نماذج PyTorch و TensorFlow و Create ML بتنسيق .mlpackage الموحد بمتوسط وقت استدلال يتراوح بين 5 و 50 مللي ثانية.
أهم النقاط
Core ML هو إطار عمل للتعلم الآلي قدمته Apple في WWDC 2017 كجزء من النظام البيئي للتطوير لأجهزة iPhone و iPad و Mac و Apple Watch و Apple TV. يوفر Core ML بيئة تشغيل لتنفيذ نماذج ML على الجهاز، مما يجرد المطور من تفاصيل تحسين الأجهزة. يختار الإطار تلقائيًا أفضل محرك حوسبة — Neural Engine على رقائق A12+ أو GPU أو CPU — لكل عملية نموذج.
الميزة الرئيسية لـ Core ML هي التكامل العميق مع Apple Silicon. يتم تشغيل عمليات الشبكات العصبية على Neural Engine المخصص، الذي لا يحمّل النوى الرئيسية للمعالج. وفقًا لـ Apple (WWDC 2025)، تعمل نماذج Core ML أسرع بست مرات مقارنة بـ TensorFlow Lite على أجهزة Android المماثلة.
Core ML يدعم مجموعة واسعة من مهام التعلم الآلي: تصنيف الصور، اكتشاف الأشياء، التقسيم الدلالي، معالجة اللغة الطبيعية، تحليل الصوت والبيانات الجدولية. يعمل الإطار مع أنواع مختلفة من النماذج: الشبكات العصبية (التلافيفية والمتكررة والمحولات) ومجموعات الأشجار والانحدارات الخطية والعمليات الغاوسية.
Core ML يستقبل نموذجًا مدربًا بتنسيق .mlpackage، ويجمعه في كود آلة محسّن للجهاز المحدد، ويشغل الاستدلال عبر واجهة برمجة تطبيقات موحدة. خط الأنابيب بالكامل — من تحميل النموذج إلى الحصول على النتيجة — يتطلب 3–5 أسطر من كود Swift.
.mlpackage هو تنسيق حاوية قدمته Apple في 2020 لاستبدال .mlmodel القديم. الحزمة هي دليل يحتوي على بيان JSON وملف نموذج بتنسيق MLProgram الثنائي وبيانات وصفية (المؤلف والإصدار والوصف) وموارد مثل تسميات الفئات. وفقًا لـ Apple، يقلل .mlpackage حجم النموذج بنسبة 30–50% مقارنة بـ .mlmodel من خلال تحسين الأوزان.
Apple Neural Engine (ANE) هو معالج عصبي مخصص مدمج في رقائق Apple بدءًا من A12 Bionic (2018). يعالج ANE عمليات المصفوفات بكفاءة أكبر بعشرات المرات من CPU بنفس استهلاك الطاقة. نما أداء ANE من 5 TOPS على A12 إلى 35 TOPS على M4 Ultra (2025)، مما يتيح تشغيل نماذج بمليارات المعاملات. يُستخدم ANE تلقائيًا لجميع نماذج Core ML ذات البنية العصبية.
ميزة مهمة في Core ML هي دعم التكميم للنماذج إلى FP16 و INT8 دون فقدان الدقة. يقلل التكميم حجم النموذج بمقدار 2–4 مرات ويسرّع الاستدلال بنسبة 40–60% على ANE. توفر Apple أداة Xcode Model Quantization للاختيار التلقائي للدقة المثلى: يقوم المطور بتحميل نموذج، وتحديد فقدان الجودة المقبول (عادةً 0.1–0.5%)، ويختار Xcode أفضل تنسيق لتمثيل الأوزان.
| الرقاقة | TOPS (ANE) | استدلال ResNet-50 | السنة |
|---|---|---|---|
| A12 Bionic | 5 | 18 مللي ث | 2018 |
| A14 Bionic | 11 | 9 مللي ث | 2020 |
| M1 Max | 22 | 4 مللي ث | 2021 |
| M4 Ultra | 35 | 2 مللي ث | 2025 |
معظم نماذج ML تُنشأ في PyTorch أو TensorFlow وتتطلب تحويلاً إلى تنسيق .mlpackage للاستخدام في Core ML. توفر Apple أداة coremltools — حزمة Python لتحويل النماذج وتحسينها والتحقق من صحتها.
coremltools هي الأداة الرسمية من Apple لتحويل نماذج ML. تدعم الاستيراد من PyTorch (عبر torch.onnx أو مباشرة) و TensorFlow (SavedModel و H5 و Frozen Graph) و ONNX. بعد التحويل، يمكن تفعيل التكميم FP16 أو INT8، مما يقلل حجم النموذج بمقدار 2–4 مرات دون فقدان كبير في الدقة.
لننظر في تحويل نموذج PyTorch مدرب إلى تنسيق Core ML باستخدام coremltools الإصدار 8.0. تستغرق العملية 2–3 خطوات في Python.
import torch
import coremltools as ct
# جارٍ تحميل نموذج PyTorch المدرب
model = torch.load('model.pth')
model.eval()
# جارٍ تتبع النموذج مع إدخال عينة
example_input = torch.randn(1, 3, 224, 224)
traced_model = torch.jit.trace(model, example_input)
# جارٍ التحويل إلى Core ML .mlpackage
mlmodel = ct.convert(
traced_model,
convert_to='mlprogram',
inputs=[ct.TensorType(shape=(1, 3, 224, 224))]
)
mlmodel.save('Model.mlpackage')
يقوم الكود بتحميل نموذج PyTorch المدرب، وإجراء تتبع JIT مع إدخال عينة، وتحويله إلى تنسيق mlprogram (تنسيق Core ML الثنائي). يمكن سحب .mlpackage الناتج إلى Xcode واستخدامه فورًا في كود Swift.
بعد تحويل النموذج، يتم دمجه في تطبيق iOS بلغة Swift في بضعة أسطر. يقوم Xcode تلقائيًا بإنشاء فئة Swift للنموذج بناءً على البيانات الوصفية لـ .mlpackage.
لننظر في مثال لتصنيف الصور باستخدام Core ML وإطار Vision. يقوم Vision تلقائيًا بتحويل الصورة إلى الحجم المطلوب وتنسيق البكسل.
import CoreML
import Vision
// جارٍ تحميل نموذج Core ML
guard let model = try? VNCoreMLModel(
for: MobileNetV2.configuration.model
) else { return }
// جارٍ إنشاء VNCoreMLRequest
let request = VNCoreMLRequest(model: model) { request, error in
guard let results = request.results
as? [VNClassificationObservation]
else { return }
// إخراج أفضل 3 توقعات
for result in results.prefix(3) {
print("\(result.identifier):
\(result.confidence)")
}
}
// جارٍ بدء معالجة الصورة
let handler = VNImageRequestHandler(
url: imageURL
)
try? handler.perform([request])
يقوم كود Swift بتحميل نموذج MobileNetV2 عبر إطار Vision، وإنشاء طلب تصنيف، ومعالجة النتيجة — مصفوفة من كائنات VNClassificationObservation مع تسميات الفئات ونسب الثقة. خط الأنابيب بالكامل من التحميل إلى إخراج النتيجة يستغرق 5–50 مللي ثانية حسب النموذج.
لتحسين وقت البدء، يقوم Core ML بتجميع النموذج عند أول استخدام. التجميع المسبق يقلل وقت التشغيل البارد من 2–3 ثوانٍ إلى 100–200 مللي ثانية. يُوصى بتجميع النموذج في وقت البناء في Xcode، وليس عند أول تشغيل للتطبيق. هذا مهم بشكل خاص للتطبيقات التي تحتوي على نماذج ML متعددة — على سبيل المثال، اكتشاف الأشياء + التصنيف + NLP.
Core ML و ML Kit يحلان مهام ML مماثلة على الجهاز لكنهما موجهان لأنظمة بيئية مختلفة. Core ML متكامل بعمق مع Apple Silicon ويدعم منصات Apple فقط. ML Kit من Google هو حل متعدد المنصات لأندرويد و iOS.
| الميزة | Core ML | ML Kit |
|---|---|---|
| المنصات | iOS, macOS, watchOS, tvOS | Android, iOS |
| واجهات برمجة مدمجة | عبر Vision, Natural Language | 15+ واجهة برمجة مدمجة |
| نماذج مخصصة | .mlpackage (PyTorch, TF) | TFLite (عبر محول) |
| تسريع الأجهزة | ANE, GPU, CPU | GPU (Android), CPU |
| سهولة البداية | يتطلب تحويل النموذج | واجهات برمجة جاهزة بدون Data Science |
| الأداء | 2–50 مللي ث (ANE) | 80–200 مللي ث (CPU/GPU) |
اختر Core ML إذا كان نظامك البيئي هو Apple حصريًا وتحتاج أقصى أداء عبر ANE. إذا كنت بحاجة إلى تعدد المنصات أو واجهات برمجة جاهزة بدون تحويل، فسيكون ML Kit أكثر عملية.
من الناحية العملية، تستخدم العديد من المشاريع كلا الإطارين: iOS Core ML للأداء العالي، و ML Kit أو TensorFlow Lite على Android. يتم تحويل نموذج PyTorch الموحد إلى .mlpackage لـ Apple وإلى .tflite لـ Android، مما يسمح بالحفاظ على جودة ميزات ML متسقة على كلا المنصتين. يتطلب هذا النهج جهدًا إضافيًا طفيفًا في DevOps لكنه يوفر أقصى تغطية للجمهور.
عند الاختيار بين Core ML والبدائل، ضع في اعتبارك تكلفة التطوير: Core ML يتطلب كود تكامل أقل (3–5 أسطر Swift مقابل 15–20 سطرًا مع TFLite)، لكنه يتطلب Mac و Xcode للبناء. ML Kit، من ناحية أخرى، يعمل على أي منصة لكنه يعطي أداءً أقل على iOS بسبب عدم الوصول إلى Apple Neural Engine.
الأسئلة الشائعة
iOS 11+ للنماذج الأساسية، iOS 14+ لتنسيق .mlpackage. يتطلب Apple Neural Engine رقاقة A12 Bionic أو أحدث. يدعم Core ML جميع أجهزة iPhone و iPad و Mac منذ 2017.
نعم، عبر أداة coremltools. يتم تحويل نماذج TensorFlow إلى .mlpackage مع الحفاظ على الدقة. التنسيقات المدعومة تشمل TensorFlow 2.x و SavedModel و H5 و Frozen Graph.
.mlpackage هو تنسيق حاوية حديث، منظم كدليل يحتوي على بيانات وصفية وملف MLProgram ثنائي وموارد. إنه أكثر إحكامًا بمقدار 2–3 مرات من .mlmodel القديم ويدعم التكميم.
جميع الحسابات تتم بشكل صارم على الجهاز. لا يرسل Core ML البيانات إلى خوادم Apple. يعمل الإطار في وضع الطيران ولا يتطلب اتصالاً بالإنترنت للاستدلال.
Swift هي اللغة الرئيسية لدمج Core ML في تطبيقات iOS/macOS. Python يُستخدم لتحويل النماذج عبر coremltools. Objective-C مدعوم أيضًا للتوافق مع الإصدارات السابقة.
الخلاصة
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.
اقرأ أيضًا