Core ML — τι είναι, μοντέλο μηχανικής μάθησης και λειτουργία στο iOS

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

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 για on-device μηχανική μάθηση σε όλες τις πλατφόρμες του οικοσυστήματος
  • Apple Neural Engine (ANE) παρέχει επιτάχυνση υλικού νευρωνικών δικτύων με απόδοση έως 11 TOPS
  • Η μορφή .mlpackage συνδυάζει μοντέλο, μεταδεδομένα και διαμόρφωση σε ένα βολικό δοχείο
  • Μετατροπή μοντέλων από PyTorch και TensorFlow γίνεται μέσω του εργαλείου Python coremltools
  • Ενσωμάτωση με Vision και Natural Language επιτρέπει τη δημιουργία σύνθετων αγωγών ML

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

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

Core ML δέχεται ως είσοδο ένα εκπαιδευμένο μοντέλο σε μορφή .mlpackage, το μεταγλωττίζει σε βελτιστοποιημένο κώδικα μηχανής για τη συγκεκριμένη συσκευή και εκτελεί τον συμπερασμό μέσω ενός ενοποιημένου API. Ολόκληρος ο αγωγός — από τη φόρτωση του μοντέλου έως τη λήψη του αποτελέσματος — απαιτεί 3–5 γραμμές κώδικα σε Swift.

Μορφή μοντέλου .mlpackage

.mlpackage — είναι μια μορφή δοχείου, που εισήχθη από την Apple το 2020 για να αντικαταστήσει το ξεπερασμένο .mlmodel. Το πακέτο αποτελεί έναν κατάλογο με JSON δήλωση, αρχείο μοντέλου σε δυαδική μορφή MLProgram, μεταδεδομένα (συγγραφέας, έκδοση, περιγραφή) και πόρους, όπως ετικέτες κλάσεων. Σύμφωνα με την Apple, το .mlpackage μειώνει το μέγεθος του μοντέλου κατά 30–50% σε σύγκριση με το .mlmodel χάρη στη βελτιστοποίηση βαρών.

Apple Neural Engine

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 επιλέγει την καλύτερη μορφή αναπαράστασης βαρών.

Σύγκριση απόδοσης Core ML

ΤσιπTOPS (ANE)Συμπερασμός ResNet-50Έτος
A12 Bionic518 ms2018
A14 Bionic119 ms2020
M1 Max224 ms2021
M4 Ultra352 ms2025

Μετατροπή μοντέλων σε Core ML

Τα περισσότερα μοντέλα ML δημιουργούνται σε PyTorch ή TensorFlow και απαιτούν μετατροπή σε μορφή .mlpackage για χρήση στο Core ML. Η Apple παρέχει το εργαλείο coremltools — ένα πακέτο Python για μετατροπή, βελτιστοποίηση και επικύρωση μοντέλων.

Εργαλείο coremltools

coremltools — είναι το επίσημο εργαλείο της Apple για μετατροπή μοντέλων ML. Υποστηρίζει εισαγωγή από PyTorch (μέσω torch.onnx ή απευθείας), TensorFlow (SavedModel, H5, Frozen Graph) και ONNX. Μετά τη μετατροπή μπορεί να ενεργοποιηθεί κβάντιση FP16 ή INT8, η οποία μειώνει το μέγεθος του μοντέλου 2–4 φορές χωρίς σημαντική απώλεια ακρίβειας.

Παράδειγμα μετατροπής από PyTorch

Ας εξετάσουμε τη μετατροπή ενός εκπαιδευμένου μοντέλου PyTorch σε μορφή Core ML χρησιμοποιώντας coremltools έκδοση 8.0. Η διαδικασία απαιτεί 2–3 βήματα στην Python.

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.

Ενσωμάτωση Core ML σε εφαρμογή iOS

Μετά τη μετατροπή του μοντέλου, η ενσωμάτωσή του σε εφαρμογή iOS σε Swift γίνεται σε λίγες γραμμές. Το Xcode δημιουργεί αυτόματα μια κλάση Swift για το μοντέλο βάσει των μεταδεδομένων .mlpackage.

Παράδειγμα κώδικα Swift

Ας εξετάσουμε ένα παράδειγμα ταξινόμησης εικόνας χρησιμοποιώντας Core ML και το πλαίσιο Vision. Το Vision μετατρέπει αυτόματα την εικόνα στο απαιτούμενο μέγεθος και μορφή εικονοστοιχείων.

swift
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 vs ML Kit

Core ML και ML Kit λύνουν παρόμοιες εργασίες on-device ML, αλλά απευθύνονται σε διαφορετικά οικοσυστήματα. Το Core ML είναι βαθιά ενσωματωμένο με το Apple Silicon και υποστηρίζει μόνο πλατφόρμες Apple. Το ML Kit από την Google είναι μια cross-platform λύση για Android και iOS.

ΧαρακτηριστικόCore MLML Kit
ΠλατφόρμεςiOS, macOS, watchOS, tvOSAndroid, iOS
Έτοιμα APIΜέσω Vision, Natural Language15+ ενσωματωμένα API
Προσαρμοσμένα μοντέλα.mlpackage (PyTorch, TF)TFLite (μέσω προσαρμογέα)
Επιτάχυνση υλικούANE, GPU, CPUGPU (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.

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

Ποιες είναι οι ελάχιστες απαιτήσεις για τη λειτουργία του Core ML;

iOS 11+ για βασικά μοντέλα, iOS 14+ για μορφή .mlpackage. Για τη λειτουργία του Apple Neural Engine απαιτείται τσιπ A12 Bionic και νεότερο. Το Core ML υποστηρίζει όλες τις συσκευές iPhone, iPad και Mac από το 2017.

Μπορεί να χρησιμοποιηθεί το Core ML με TensorFlow;

Ναι, μέσω του εργαλείου coremltools. Τα μοντέλα TensorFlow μετατρέπονται σε .mlpackage με διατήρηση ακρίβειας. Υποστηρίζονται οι μορφές TensorFlow 2.x, SavedModel, H5 και Frozen Graph.

Σε τι διαφέρει το .mlpackage από το .mlmodel;

.mlpackage — μια σύγχρονη μορφή δοχείου, που αποτελεί κατάλογο με μεταδεδομένα, δυαδικό αρχείο MLProgram και πόρους. Είναι 2–3 φορές πιο συμπαγές από το παλιό .mlmodel και υποστηρίζει κβάντιση.

Πώς χειρίζεται το Core ML το απόρρητο δεδομένων;

Όλοι οι υπολογισμοί εκτελούνται αυστηρά στη συσκευή. Το Core ML δεν στέλνει δεδομένα στον διακομιστή της Apple. Το πλαίσιο λειτουργεί σε λειτουργία πτήσης και δεν απαιτεί σύνδεση στο διαδίκτυο για συμπερασμό.

Ποιες γλώσσες προγραμματισμού υποστηρίζει το Core ML;

Swift — η κύρια γλώσσα για ενσωμάτωση Core ML σε εφαρμογές iOS/macOS. Python χρησιμοποιείται για μετατροπή μοντέλων μέσω coremltools. Objective-C υποστηρίζεται επίσης για συμβατότητα προς τα πίσω.

Σύνοψη

  • Core ML — πλαίσιο της Apple για on-device ML σε όλες τις πλατφόρμες του οικοσυστήματος με υποστήριξη Apple Neural Engine
  • .mlpackage — σύγχρονη μορφή δοχείου που συνδυάζει μοντέλο, μεταδεδομένα και πόρους σε ένα πακέτο
  • Apple Neural Engine παρέχει επιτάχυνση υλικού νευρωνικών δικτύων με απόδοση έως 35 TOPS στο M4 Ultra
  • coremltools επιτρέπει τη μετατροπή μοντέλων από PyTorch, TensorFlow και ONNX σε τρία βήματα στην Python
  • Ενσωμάτωση μέσω του πλαισίου Vision απαιτεί 5–10 γραμμές κώδικα Swift για εκτέλεση του μοντέλου σε εικόνα
  • Απόδοση συμπερασμού είναι 2–50 ms ανάλογα με το μοντέλο και το τσιπ
  • Απόρρητο δεδομένων — όλοι οι υπολογισμοί είναι αυστηρά τοπικοί, χωρίς αποστολή δεδομένων σε διακομιστή

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

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

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