Core ML: τι είναι, αρχιτεκτονική πλαισίου και ενσωμάτωση μοντέλων

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-07-17 Χρόνος ανάγνωσης: 10 λεπ

Core ML — είναι πλαίσιο μηχανικής μάθησης από Apple, που επιτρέπει ενσωματώσει προεκπαιδευμένων εκπαιδευμένα μοντέλου ML απευθείας σε iOS, iPadOS, macOS, watchOS και tvOS εφαρμογές. Το πλαίσιο υποστηρίζει νευρωνικά δίκτυα, δέντρα αποφάσεων, γραμμικές παλινδρομήσεις και συνόλου μεθόδους, και επίσης μετατροπή μοντέλων από TensorFlow, PyTorch, Keras και ONNX σε ιδιόκτητη μορφή Apple. Σύμφωνα με την Apple Machine Learning Research (2025), το Core ML εκτελεί συμπερασμό πλήρως στη συσκευή, εξασφαλίζοντας εμπιστευτικότητα δεδομένων και καθυστέρηση μικρότερη από 10 χιλιοστά του δευτερολέπτου για τα περισσότερα μοντέλα.

Κυριότερα σημεία

  • Core ML — ιδιόκτητο πλαίσιο Apple για εκτέλεσης ML-μοντέλων σε συσκευή χωρίς από διακομιστή επεξεργασίας.
  • Υποστηρίζει μετατροπή μοντέλων από 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) ή προσαρμοσμένες λύσεις για εκτέλεσης ML-μοντέλων σε συσκευή. Core ML παρείχε ενιαία ενοποιημένη διεπαφή για όλες τύπους μοντέλων — από κλασικών παλινδρομήσεων έως βαθιά νευρωνικών δικτύων — και ανέλαβε σε του χαμηλού επιπέδου βελτιστοποίηση για συγκεκριμένο συσκευή.

Ιστορία ανάπτυξης

Η πρώτη έκδοση Core ML (2017) υποστήριζε μόνο στατικά μοντέλα με σταθερό μέγεθος εισόδου. Core ML 2 (2018) πρόσθεσε υποστήριξη batch prediction και ενημερώσεις μοντέλων "σε πτήσει". Core ML 3 (2019) έφερε on-device εκπαίδευση και υποστήριξη δεκάδων νέων επιπέδων νευρωνικών δικτύων. Core ML 4 (2021) εισήγαγε υποστήριξη μοντέλων με πολλαπλές εξόδους και βελτιωμένη επεξεργασία εικόνων. Core ML 5 (2024) πρόσθεσε υποστήριξη δυναμικών νευρωνικών δικτύων και ελεγχόμενης μάθησης στη συσκευή με χρήση νέων επιπέδων ML.

On-Device ML: πλεονεκτήματα

Η εκτέλεση μηχανικής μάθησης στη συσκευή προσφέρει τρία βασικά πλεονεκτήματα: εμπιστευτικότητα — τα δεδομένα δεν εγκαταλείπουν τη συσκευή (ικανοποιεί τις απαιτήσεις GDPR και HIPAA), ταχύτητα — ο συμπερασμός εκτελείται σε χιλιοστά δευτερολέπτου χωρίς καθυστέρηση μετάδοσης μέσω δικτύου, διαθεσιμότητα εκτός σύνδεσης — το μοντέλο λειτουργεί χωρίς σύνδεση στο διαδίκτυο. Σύμφωνα με την Apple Privacy Report (2025), πάνω από 90% των συμπερασμών ML σε πλατφόρμες 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 (7-πύρηνος A17 GPU ή 40-πύρηνος M4 Ultra GPU). Αυτόματες βελτιστοποίησης MPSGraph περιλαμβάνουν συγχώνευση επιπέδων, εξάλειψη περιττών λειτουργιών και επιλογή βέλτιστου μορφής δεδομένων.

Υποστηριζόμενοι τύποι μοντέλων και μορφές

Το Core ML υποστηρίζει όλους τους βασικούς τύπους μοντέλων μηχανικής μάθησης, χωρισμένους σε τρεις κατηγορίες: νευρωνικά δίκτυα (συνελικτικά CNN, αναδρομικά RNN/LSTM, μετασχηματιστές), μοντέλα συνόλου (Random Forest, Gradient Boosting, XGBoost, Decision Trees) και μοντέλα παλινδρόμησης (γραμμική παλινδρόμηση, SVM, CRF). Κάθε τύπος μοντέλου έχει το δικό του υποπρωτόκολλο MLModelType, και το Core ML επιλέγει αυτόματα το αντίστοιχο υπόβαθρο και μορφή εκτέλεσης.

Υποστηριζόμενα επίπεδα νευρωνικών δικτύων

Το Core ML υποστηρίζει πάνω από 150 τύπους νευρωνικών επιπέδων: Convolution (1D/2D/3D), BatchNormalization, Pooling (Max/Average), Activation (ReLU, Sigmoid, Tanh, LeakyReLU, PReLU), Recurrent (LSTM/GRU/SimpleRNN), Transformers (MultiHeadAttention, LayerNorm), επίπεδα ειδικά για Metal. Για μη υποστηριζόμενες επιπέδων Core ML παρέχει μηχανισμό custom layer — δυνατότητα γράψετε υλοποίηση επιπέδου σε 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, traced/scripted μοντέλου), Keras (H5), ONNX και που δημιουργήθηκαν με βοήθεια Create ML. Το τυπικό pipeline μετατροπής περιλαμβάνει τρία βήματα: φόρτωση μοντέλου στην αρχική μορφή, μετατροπή σε 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() για αυτόματης σύγκρισης. Αν η απόκλιση υπερβαίνει το κανονικό, πιθανώς υπάρχει πρόβλημα με μη υποστηριζόμενες λειτουργίες — πρέπει να αντικατασταθούν με custom layers ή να απλοποιηθεί το μοντέλο.

Βελτιστοποίηση απόδοσης Core ML

Η βελτιστοποίηση μοντέλου Core ML — είναι διαδικασία μείωσης μεγέθους μοντέλου και αύξησης ταχύτητας συμπερασμού χωρίς σημαντική απώλεια ακρίβειας. Η Apple παρέχει αρκετά εργαλεία βελτιστοποίησης ενσωματωμένα στα coremltools και Xcode: κβαντισμό (μείωση ακρίβειας βαρών), αποκοπή συνάψεων (αφαίρεση μη σημαντικών νευρώνων), παλαιοντολογία (αφαίρεση περιττών επιπέδων) και συγχώνευση επιπέδων (fusion) για μείωση υπολογιστικού γράφου.

Κβαντισμός σε 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])

Διαχείριση σφαλμάτων και fallback

Κατά ενσωμάτωση Core ML πρέπει να προβλέψετε διαχείριση σφαλμάτων: μοντέλο μπορεί δεν φορτωθεί από-για ασυμβατότητας με συσκευή (πολύ παλιά έκδοση iOS), ανεπάρκειας μνήμης ή ζημιάς αρχείου μοντέλου. Συνιστάται υλοποίηση λογικής fallback: αν μοντέλο δεν φορτώθηκε σε κβαντισμένη μορφή Int8, φορτώστε έκδοση Float16, και αν ούτε αυτή φορτωθεί — Float32. Με δεδομένα Apple Crash Analytics, πάνω από 5% σφαλμάτων ML-εφαρμογών οφείλονται εσφαλμένη φόρτωση μοντέλου.

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 (δημιουργεί)
ΚώδικαςSwift / Objective-C APIUI (Xcode) ή Swift API
ΧρήστηςΠρογραμματιστής εφαρμογήςΠρογραμματιστής / Data Scientist

Συχνές ερωτήσεις

Τι είναι το Core ML;

Core ML — είναι πλαίσιο μηχανικής μάθησης από Apple για εκτέλεσης προεκπαιδευμένων εκπαιδευμένων ML-μοντέλων σε συσκευές 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 για όλες 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 για on-device μηχανική μάθηση, που λειτουργεί σε όλες πλατφόρμες οικοσυστήματος.
  • Υποστηρίζει μετατροπή από 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. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης