Core ML: ما هو، معمارية الإطار ودمج النماذج

المؤلف: IT Sectr نُشر: 2026-07-17 وقت القراءة: 10 دق

Core ML هو إطار التعلم الآلي من Apple الذي يسمح لك بدمج نماذج التعلم الآلي المدربة مسبقًا مباشرة في تطبيقات iOS، iPadOS، macOS، watchOS و tvOS. يدعم الإطار الشبكات العصبية، أشجار القرار، الانحدارات الخطية وطرق المجموعات، بالإضافة إلى تحويل النماذج من TensorFlow، PyTorch، Keras و ONNX إلى تنسيق Apple الخاص. وفقًا لأبحاث Apple Machine Learning Research (2025)، ينفذ Core ML الاستنتاج بالكامل على الجهاز، مما يضمن خصوصية البيانات وزمن استجابة أقل من 10 ميلي ثانية لمعظم النماذج.

النقاط الرئيسية

  • Core ML هو إطار Apple الخاص لتشغيل نماذج التعلم الآلي على الجهاز دون معالجة خادمية.
  • يدعم تحويل النماذج من TensorFlow، PyTorch، Keras، ONNX وتنسيقات أخرى شائعة.
  • يتم تنفيذ الاستنتاج على Neural Engine، GPU أو CPU مع اختيار تلقائي لأفضل بيئة حسابية.
  • يتضمن الإطار تحسينات: الكمم (Float16، Int8)، التقليم، دمج الطبقات للتسريع.
  • Core ML 5 (2024) أضاف دعم حزم .mlpackage، الشبكات العصبية الديناميكية والتعلم الموجه على الجهاز.

ما هو Core ML؟

Core ML هو مكون رئيسي في نظام Apple البيئي للتعلم الآلي، تم تقديمه في WWDC 2017. قبل Core ML، كان مطورو iOS يستخدمون مكتبات خارجية (TensorFlow Mobile، Caffe2) أو حلولاً مخصصة لتشغيل نماذج التعلم الآلي على الجهاز. وفر Core ML واجهة موحدة واحدة لجميع أنواع النماذج — من الانحدارات الكلاسيكية إلى الشبكات العصبية العميقة — وتولى التحسين المنخفض المستوى للجهاز المحدد.

تاريخ التطوير

النسخة الأولى من Core ML (2017) كانت تدعم فقط النماذج الثابتة بأحجام مدخلات ثابتة. Core ML 2 (2018) أضاف دعم التنبؤ بالدفعة وتحديثات النموذج أثناء التشغيل. Core ML 3 (2019) جلب التدريب على الجهاز ودعم عشرات الطبقات الجديدة للشبكات العصبية. Core ML 4 (2021) قدم دعم النماذج متعددة المخرجات ومعالجة الصور المحسنة. Core ML 5 (2024) أضاف دعم الشبكات العصبية الديناميكية والتعلم الموجه على الجهاز باستخدام طبقات ML جديدة.

التعلم الآلي على الجهاز: المزايا

يوفر تشغيل التعلم الآلي على الجهاز ثلاث مزايا رئيسية: الخصوصية — لا تغادر البيانات الجهاز (تلبي متطلبات GDPR و HIPAA)، السرعة — يكتمل الاستنتاج خلال ميلي ثانية دون تأخير الشبكة، التوافر بدون اتصال — يعمل النموذج دون اتصال بالإنترنت. وفقًا لتقرير Apple Privacy Report (2025)، أكثر من 90% من عمليات استنتاج التعلم الآلي على منصات Apple تتم على الجهاز بفضل Core ML.

معمارية Core ML وبيئات الحساب

معمارية Core ML مبنية على مبدأ متعدد الطبقات: في المستوى العلوي — API للمطور (MLModel، MLFeatureProvider، MLPredictionOptions)، في المستوى الأوسط — النموذج بتنسيق .mlpackage، في المستوى الأدنى — بيئات الحساب: Apple Neural Engine (ANE)، GPU (Metal Shaders)، CPU (BNNS، Accelerate framework). يختار Core ML تلقائيًا أفضل بيئة حسابية حسب النموذج وجهاز الجهاز.

البيئةالأجهزةالأداء
Neural EngineiPhone Xs+، iPad A12+، Mac M1+أقصى (TOPS)
GPU (Metal)جميع أجهزة Appleعالي (حساب متوازي)
CPU (BNNS)جميع أجهزة Appleأساسي (توافق)

Apple Neural Engine

Neural Engine (ANE) هو معالج عصبي متخصص مضمن في رقائق Apple A12+ و M1+. ANE محسن لتنفيذ عمليات الشبكات العصبية التلفيفية (CNN) ومضاعفات المصفوفات بأداء يصل إلى 15.8 TOPS على A17 Pro و 38 TOPS على M4. يحدد Core ML تلقائيًا ما إذا كان النموذج يمكن أن يعمل على ANE، وإذا كان كذلك، يقوم بتحميله هناك. إذا كان النموذج يحتوي على عمليات غير مدعومة من ANE، يقوم Core ML بتوزيع الحساب بين GPU و CPU.

Metal Performance Shaders

للحسابات على GPU، يستخدم Core ML Metal Performance Shaders Graph (MPSGraph)، وهو إطار لبناء وتنفيذ الرسوم البيانية على GPU. يأخذ MPSGraph رسم الشبكة العصبية من Core ML ويجمعه في Metal Shaders محسنة لهندسة GPU المحددة (GPU A17 بـ 7 نواة أو GPU M4 Ultra بـ 40 نواة). تشمل التحسينات التلقائية لـ MPSGraph دمج الطبقات، إزالة العمليات الزائدة واختيار تنسيق البيانات الأمثل.

أنواع النماذج والتنسيقات المدعومة

يدعم Core ML جميع الأنواع الرئيسية لنماذج التعلم الآلي، مقسمة إلى ثلاث فئات: الشبكات العصبية (CNN تلفيفية، RNN/LSTM متكررة، محولات)، نماذج المجموعات (Random Forest، Gradient Boosting، XGBoost، أشجار القرار) و نماذج الانحدار (انحدار خطي، SVM، CRF). كل نوع نموذج له بروتوكوله الفرعي MLModelType، ويختار Core ML تلقائيًا البيئة المناسبة وتنسيق التنفيذ.

الطبقات العصبية المدعومة

يدعم Core ML أكثر من 150 نوعًا من طبقات الشبكات العصبية: التلفيف (1D/2D/3D)، BatchNormalization، Pooling (Max/Average)، التنشيط (ReLU، Sigmoid، Tanh، LeakyReLU، PReLU)، المتكررة (LSTM/GRU/SimpleRNN)، المحولات (MultiHeadAttention، LayerNorm)، طبقات خاصة بـ Metal. للطبقات غير المدعومة، يوفر Core ML آلية الطبقة المخصصة — القدرة على كتابة تنفيذ طبقة بلغة Metal Shading Language أو Swift.

swift
let model = try MLModel(contentsOf: modelURL)
let input = try MLMultiArray(shape: [1, 224, 224, 3], dataType: .float32)
let prediction = try model.prediction(from: input)

تنسيقات ملف النموذج

قبل عام 2021، كان Core ML يستخدم تنسيق .mlmodel — ملف ثنائي يحتوي على جميع أوزان النموذج وبياناته الوصفية. بدءًا من Xcode 13 و Core ML 4، قدمت Apple تنسيق .mlpackage الجديد — هيكل حزمة يعتمد على دليل يحتوي على النموذج، البيانات الوصفية، أوصاف المدخلات/المخرجات وملفات المعالجة السابقة/اللاحقة بتنسيق JSON. يدعم mlpackage إدارة الإصدارات git، مما يبسط التطوير الفريقي. يتم التحويل من .mlmodel إلى .mlpackage باستخدام أداة Xcode Model Compiler أو سكريبت coremltools في Python.

تحويل النماذج إلى Core ML

التحويل للنماذج من الأطر الخارجية إلى Core ML يتم باستخدام مكتبة coremltools في Python. تدعم coremltools استيراد النماذج من TensorFlow 1.x/2.x (SavedModel، PB، HDF5)، PyTorch (TorchScript، نماذج متعقبة/مبرمجة)، Keras (H5)، ONNX وتلك المنشأة باستخدام Create ML. يتكون خط أنابيب التحويل القياسي من ثلاث خطوات: تحميل النموذج بتنسيقه الأصلي، التحويل إلى MIL (Model Intermediate Language) — التمثيل الداخلي لـ Core ML، والتصدير إلى .mlpackage.

python
import coremltools as ct

model = ct.converters.pytorch.convert(
    source = "model.pt",
    inputs = [ct.TensorType(shape=(1, 3, 224, 224))]
)
model.author = "IT Sectr"
model.short_description = "Image classifier"
model.save("MyModel.mlpackage")

التحقق من النموذج بعد التحويل

بعد التحويل، يجب التحقق من دقة النموذج مقارنة تنبؤات النموذج الأصلي ونموذج Core ML المحول على بيانات متطابقة. الانحراف المقبول لا يتجاوز 1e-3 (0.1%) لـ Float32 و 1e-2 (1%) لـ Float16/Int8. توفر coremltools أداة ct.utils.compare_models() للمقارنة التلقائية. إذا تجاوز الانحراف المعيار، فقد يكون هناك مشكلة في عمليات غير مدعومة — يجب استبدالها بطبقات مخصصة أو تبسيط النموذج.

تحسين أداء Core ML

تحسين نموذج Core ML هو عملية تقليل حجم النموذج وزيادة سرعة الاستنتاج دون فقدان كبير في الدقة. توفر Apple عدة أدوات تحسين مضمنة في coremltools و Xcode: الكمم (تقليل دقة الأوزان)، التقليم (إزالة الخلايا العصبية غير المهمة)، إزالة الطبقات الزائدة ودمج الطبقات لتقليل الرسم البياني الحسابي.

الكمم إلى Float16 و Int8

الكمم يقلل حجم النموذج بتقريب 2 مرات (Float16) أو 4 مرات (Int8) مقارنة بـ Float32. يدعم Core ML ثلاثة أوضاع للكمم: الكمم بعد التدريب (PTQ) مع مجموعة بيانات معايرة، أثناء التحويل عبر coremltools والتدريب مراعي الكمم (QAT). لمعظم نماذج رؤية الكمبيوتر، يؤدي PTQ إلى Float16 إلى فقدان دقة أقل من 0.5% مع مضاعفة سرعة الاستنتاج.

تحليل النموذج في Xcode

يوفر Xcode أداة Core ML Model Profiler، التي تسمح لك بقياس أداء النموذج على أجهزة مختلفة في المحاكي أو على جهاز حقيقي. يظهر المحلل وقت تنفيذ كل طبقة، حمل البيئة (ANE/GPU/CPU)، ذروة استخدام الذاكرة واخناقات النموذج. وفقًا لدليل Apple Performance Optimization Guide، أكثر من 80% من النماذج لديها طبقة واحدة على الأقل تعمل بشكل أبطأ كبير من باقي الطبقات (شذوذ الطبقة)، ويمكن تحسينها بالاستبدال أو الدمج.

مثال عملي لدمج Core ML

لننظر إلى دمج نموذج Core ML مدرب في تطبيق iOS باستخدام Swift. بعد إضافة ملف .mlpackage إلى مشروع Xcode (عن طريق السحب أو عبر Swift Package Manager)، يقوم Xcode بتوليد فئة نموذج Swift تلقائيًا مع مدخلات ومخرجات محددة الأنواع. لا يحتاج المطور إلى تحليل بيانات الإدخال يدويًا — الفئة المولدة تقبل UIImage، MLMultiArray، String أو أنواع أخرى حسب بيانات النموذج الوصفية.

swift
import CoreML
import Vision

guard let model = try? VNCoreMLModel(
    for: MyImageClassifier().model
) else { return }

let request = VNCoreMLRequest(model: model) { request, error in
    guard let results = request.results
        as? [VNClassificationObservation]
    else { return }

    if let topResult = results.first {
        print("Class: \(topResult.identifier)")
        print("Confidence: \(topResult.confidence)")
    }
}

let handler = VNImageRequestHandler(
    cgImage: image.cgImage!,
    options: [:]
)
try handler.perform([request])

معالجة الأخطاء والحل البديل

عند دمج Core ML، يجب تنفيذ معالجة الأخطاء: قد لا يتم تحميل النموذج بسبب عدم التوافق مع الجهاز (إصدار iOS قديم جدًا)، عدم كفاية الذاكرة أو تلف ملف النموذج. يوصى بتنفيذ منطق الحل البديل: إذا فشل تحميل النموذج بتنسيق Int8 المكمم، قم بتحميل نسخة Float16، وإذا فشلت أيضًا — Float32. وفقًا لتحليلات Apple Crash Analytics، أكثر من 5% من أعطال تطبيقات التعلم الآلي ناجمة عن تحميل غير صحيح للنموذج.

Core ML مقابل Create ML: ما الفرق

Core ML و Create ML هما أداتان متكاملتان في نظام Apple ML البيئي. Core ML يتولى تنفيذ النماذج على الجهاز (الاستنتاج)، بينما Create ML يتولى تدريب النماذج. تم تصدير النماذج المنشأة في Create ML خصيصًا بتنسيق Core ML (.mlpackage) لدمجها لاحقًا في التطبيقات. بمصطلحات تطوير الويب، Core ML هو المتصفح (تنفيذ)، و Create ML هو IDE لكتابة الكود (تدريب).

المعلمةCore MLCreate ML
الغرضتنفيذ النماذج (الاستنتاج)تدريب النماذج
المنصةiOS، iPadOS، macOS، watchOS، tvOSmacOS (فقط)
التنسيق.mlpackage (يستهلك).mlpackage (ينشئ)
الكودAPI Swift / Objective-Cواجهة Xcode أو API Swift
المستخدممطور التطبيقمطور / عالم بيانات

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

ما هو Core ML؟

Core ML هو إطار التعلم الآلي من Apple لتشغيل نماذج التعلم الآلي المدربة مسبقًا على أجهزة iOS، iPadOS، macOS، watchOS و tvOS. يدعم الشبكات العصبية وأشجار القرار والانحدارات، مختارًا تلقائيًا أفضل بيئة حسابية (Neural Engine، GPU أو CPU).

ما الفرق بين Core ML و TensorFlow؟

TensorFlow هو إطار عالمي لتدريب وتنفيذ النماذج على الخوادم والأجهزة المحمولة. Core ML هو محرك متخصص لتنفيذ (ليس التدريب) النماذج حصريًا على أجهزة Apple بأقصى أداء من خلال التحسين الموجه للعتاد (ANE، GPU، Metal). TensorFlow Mobile غير مدعوم بعد على iOS — توصي Apple باستخدام Core ML لجميع مهام التعلم الآلي على منصاتها.

كيف تحويل نموذج PyTorch إلى Core ML؟

يتم التحويل باستخدام مكتبة coremltools في Python: قم بتصدير نموذج PyTorch إلى TorchScript (torch.jit.trace)، ثم استخدم ct.converters.pytorch.convert() لإنشاء .mlpackage. coremltools تقوم تلقائيًا بتعيين طبقات PyTorch إلى طبقات Core ML المدعومة وتحسين الرسم البياني لـ ANE.

هل يعمل Core ML على جميع أجهزة iPhone؟

Core ML يعمل على جميع أجهزة iPhone مع iOS 11 وأحدث. ولكن الأداء يعتمد على العتاد: iPhone 5s/6 — CPU فقط (استنتاج بطيء)، iPhone 8/X — GPU (Metal)، iPhone Xs وأحدث — Neural Engine (أداء قصوى يصل إلى 15.8 TOPS على A17 Pro). للحصول على أفضل أداء، يوصى بتعيين إصدار iOS 12+ كحد أدنى.

ما هو تنسيق نماذج Core ML؟

التنسيق الحديث هو .mlpackage (دليل يحتوي على النموذج والبيانات الوصفية وأوصاف المدخلات/المخرجات). التنسيق القديم هو .mlmodel (ملف ثنائي واحد). يقوم Xcode بتحويل .mlmodel إلى .mlpackage تلقائيًا أثناء البناء، ولكن للمشاريع الجديدة يوصى باستخدام .mlpackage مباشرة.

الملخص

  • Core ML هو إطار Apple القياسي للتعلم الآلي على الجهاز، يعمل عبر جميع منصات النظام البيئي.
  • يدعم التحويل من TensorFlow، PyTorch، Keras و ONNX عبر مكتبة coremltools في Python.
  • يتم الاستنتاج على Neural Engine (iPhone Xs+)، GPU (Metal) أو CPU مع اختيار تلقائي للبيئة.
  • الكمم إلى Float16 و Int8 يقلل حجم النموذج بنسبة 2-4 مرات مع فقدان أدنى للدقة.
  • Create ML ينشئ نماذج لـ Core ML، بينما Core ML ينفذها فقط — هما أدوات مختلفة.
  • استبدل تنسيق .mlpackage تنسيق .mlmodel القديم، موفرًا إدارة الإصدارات والبيانات الوصفية في JSON.
  • يساعد محلل Core ML في Xcode في تحديد الاخناقات وتحسينها باستبدال الطبقات.

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا