Core ML — πλαίσιο μηχανικής μάθησης από την Apple, βελτιστοποιημένο για εκτέλεση μοντέλων ML απευθείας σε συσκευές iOS, macOS, watchOS και tvOS. Σε αντίθεση με τις cloud υπηρεσίες ML, το Core ML χρησιμοποιεί τους επιταχυντές υλικού της Apple: Neural Engine, GPU και CPU, εξασφαλίζοντας ελάχιστη καθυστέρηση κατά την επεξεργασία δεδομένων. Σύμφωνα με το Apple Core ML Documentation (2026), το πλαίσιο υποστηρίζει μοντέλα PyTorch, TensorFlow και Create ML σε ενιαία μορφή .mlpackage με μέσο χρόνο συμπερασμού 5–50 ms.
Κύρια σημεία
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 λειτουργούν 6 φορές ταχύτερα σε σύγκριση με το TensorFlow Lite σε παρόμοιες συσκευές Android.
Core ML υποστηρίζει ένα ευρύ φάσμα εργασιών μηχανικής μάθησης: ταξινόμηση εικόνων, ανίχνευση αντικειμένων, σημασιολογική τμηματοποίηση, επεξεργασία φυσικής γλώσσας, ανάλυση ήχου και δεδομένα πινάκων. Το πλαίσιο λειτουργεί με μοντέλα διαφόρων τύπων: νευρωνικά δίκτυα (συνελικτικά, επαναλαμβανόμενα, μετασχηματιστές), σύνολα δέντρων, γραμμικές παλινδρομήσεις και διαδικασίες Gauss.
Core ML δέχεται ως είσοδο ένα εκπαιδευμένο μοντέλο σε μορφή .mlpackage, το μεταγλωττίζει σε βελτιστοποιημένο κώδικα μηχανής για τη συγκεκριμένη συσκευή και εκτελεί τον συμπερασμό μέσω ενός ενοποιημένου API. Ολόκληρος ο αγωγός — από τη φόρτωση του μοντέλου έως τη λήψη του αποτελέσματος — απαιτεί 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 ms | 2018 |
| A14 Bionic | 11 | 9 ms | 2020 |
| M1 Max | 22 | 4 ms | 2021 |
| M4 Ultra | 35 | 2 ms | 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 }
// Εξαγωγή top-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 ms ανάλογα με το μοντέλο.
Για βελτιστοποίηση του χρόνου εκκίνησης, το Core ML μεταγλωττίζει το μοντέλο κατά την πρώτη χρήση. Η προμεταγλώττιση (precompiled model) μειώνει την ψυχρή εκκίνηση από 2–3 δευτερόλεπτα σε 100–200 ms. Συνιστάται η μεταγλώττιση του μοντέλου να γίνεται στο στάδιο δημιουργίας στο Xcode, όχι κατά την πρώτη εκτέλεση της εφαρμογής. Αυτό είναι ιδιαίτερα σημαντικό για εφαρμογές με πολλά μοντέλα ML — για παράδειγμα, ανίχνευση αντικειμένων + ταξινόμηση + NLP.
Core ML και ML Kit λύνουν παρόμοιες εργασίες on-device ML, αλλά απευθύνονται σε διαφορετικά οικοσυστήματα. Το Core ML είναι βαθιά ενσωματωμένο με το Apple Silicon και υποστηρίζει μόνο πλατφόρμες Apple. Το ML Kit από την Google είναι μια cross-platform λύση για Android και iOS.
| Χαρακτηριστικό | Core ML | ML Kit |
|---|---|---|
| Πλατφόρμες | iOS, macOS, watchOS, tvOS | Android, iOS |
| Έτοιμα API | Μέσω Vision, Natural Language | 15+ ενσωματωμένα API |
| Προσαρμοσμένα μοντέλα | .mlpackage (PyTorch, TF) | TFLite (μέσω προσαρμογέα) |
| Επιτάχυνση υλικού | ANE, GPU, CPU | GPU (Android), CPU |
| Ευκολία έναρξης | Απαιτεί μετατροπή μοντέλου | Έτοιμα API χωρίς Data Science |
| Απόδοση | 2–50 ms (ANE) | 80–200 ms (CPU/GPU) |
Επιλέξτε Core ML εάν το οικοσύστημά σας είναι αποκλειστικά Apple και χρειάζεστε μέγιστη απόδοση μέσω ANE. Εάν απαιτείται cross-platform ή έτοιμα API χωρίς μετατροπή — το ML Kit θα είναι πιο πρακτικό.
Στην πράξη, πολλά έργα χρησιμοποιούν και τα δύο πλαίσια: σε iOS Core ML για υψηλή απόδοση, και σε Android — ML Kit ή TensorFlow Lite. Ένα ενιαίο μοντέλο 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. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης