Core ML ist das Machine-Learning-Framework von Apple, mit dem Sie vortrainierte ML-Modelle direkt in iOS-, iPadOS-, macOS-, watchOS- und tvOS-Anwendungen integrieren können. Das Framework unterstützt neuronale Netze, Entscheidungsbäume, lineare Regressionen und Ensemble-Methoden sowie die Konvertierung von Modellen aus TensorFlow, PyTorch, Keras und ONNX in Apples eigenes Format. Laut Apple Machine Learning Research (2025) führt Core ML die Inferenz vollständig auf dem Gerät durch, gewährleistet Datenschutz und eine Latenz von unter 10 Millisekunden für die meisten Modelle.
Wichtigste Punkte
Core ML ist eine Schlüsselkomponente des Machine-Learning-Ökosystems von Apple, das auf der WWDC 2017 vorgestellt wurde. Vor Core ML verwendeten iOS-Entwickler Drittanbieter-Bibliotheken (TensorFlow Mobile, Caffe2) oder benutzerdefinierte Lösungen, um ML-Modelle auf dem Gerät auszuführen. Core ML bot eine einheitliche Schnittstelle für alle Modelltypen — von klassischen Regressionen bis zu tiefen neuronalen Netzen — und übernahm die Low-Level-Optimierung für das jeweilige Gerät.
Die erste Version von Core ML (2017) unterstützte nur statische Modelle mit festen Eingabegrößen. Core ML 2 (2018) fügte Unterstützung für Batch-Vorhersage und Live-Modellaktualisierungen hinzu. Core ML 3 (2019) brachte On-Device-Training und Unterstützung für Dutzende neuer neuronaler Netzschichten. Core ML 4 (2021) führte Unterstützung für Modelle mit mehreren Ausgaben und verbesserte Bildverarbeitung ein. Core ML 5 (2024) fügte Unterstützung für dynamische neuronale Netze und überwachtes Lernen auf dem Gerät mit neuen ML-Schichten hinzu.
Die Ausführung von maschinellem Lernen auf dem Gerät bietet drei Hauptvorteile: Datenschutz — Daten verlassen niemals das Gerät (erfüllt GDPR- und HIPAA-Anforderungen), Geschwindigkeit — Inferenz wird in Millisekunden ohne Netzwerklatenz abgeschlossen, Offline-Verfügbarkeit — das Modell funktioniert ohne Internetverbindung. Laut Apple Privacy Report (2025) werden über 90% der ML-Inferenzen auf Apple-Plattformen dank Core ML auf dem Gerät durchgeführt.
Die Core ML Architektur basiert auf einem mehrschichtigen Prinzip: auf der obersten Ebene — die Entwickler-API (MLModel, MLFeatureProvider, MLPredictionOptions), auf der mittleren Ebene — das Modell im .mlpackage-Format, auf der unteren Ebene — die Compute-Backends: Apple Neural Engine (ANE), GPU (Metal Shaders) und CPU (BNNS, Accelerate Framework). Core ML wählt automatisch das beste Backend in Abhängigkeit vom Modell und der Gerätehardware aus.
| Backend | Geräte | Leistung |
|---|---|---|
| Neural Engine | iPhone Xs+, iPad A12+, Mac M1+ | Maximal (TOPS) |
| GPU (Metal) | Alle Apple-Geräte | Hoch (paralleles Rechnen) |
| CPU (BNNS) | Alle Apple-Geräte | Basis (Kompatibilität) |
Neural Engine (ANE) ist ein spezialisierter Neuroprozessor, der in Apple A12+- und M1+-Chips integriert ist. ANE ist für Faltungs-Neuronale-Netzwerk-Operationen (CNN) und Matrixmultiplikationen mit einer Leistung von bis zu 15,8 TOPS auf dem A17 Pro und 38 TOPS auf dem M4 optimiert. Core ML ermittelt automatisch, ob das Modell auf ANE ausgeführt werden kann, und lädt es gegebenenfalls dorthin. Enthält das Modell nicht von ANE unterstützte Operationen, verteilt Core ML die Berechnung zwischen GPU und CPU.
Für Berechnungen auf der GPU verwendet Core ML Metal Performance Shaders Graph (MPSGraph), ein Framework zum Erstellen und Ausführen von Berechnungsgraphen auf der GPU. MPSGraph nimmt den neuronalen Netzgraph von Core ML und kompiliert ihn in Metal Shaders, die für die jeweilige GPU-Architektur optimiert sind (7-Kern A17 GPU oder 40-Kern M4 Ultra GPU). Zu den automatischen Optimierungen von MPSGraph gehören Layer-Fusion, Eliminierung redundanter Operationen und Auswahl des optimalen Datenformats.
Core ML unterstützt alle wichtigen Typen von maschinellen Lernmodellen, eingeteilt in drei Kategorien: neuronale Netze (Convolutional CNN, rekurrente RNN/LSTM, Transformatoren), Ensemble-Modelle (Random Forest, Gradient Boosting, XGBoost, Entscheidungsbäume) und Regressionsmodelle (lineare Regression, SVM, CRF). Jeder Modelltyp hat sein eigenes MLModelType-Subprotokoll, und Core ML wählt automatisch das geeignete Backend und Ausführungsformat aus.
Core ML unterstützt über 150 Arten von neuronalen Netzschichten: Convolution (1D/2D/3D), BatchNormalization, Pooling (Max/Average), Activation (ReLU, Sigmoid, Tanh, LeakyReLU, PReLU), Recurrent (LSTM/GRU/SimpleRNN), Transformers (MultiHeadAttention, LayerNorm), Metal-spezifische Schichten. Für nicht unterstützte Schichten bietet Core ML einen Mechanismus für benutzerdefinierte Schichten — die Möglichkeit, eine Schichtimplementierung in Metal Shading Language oder Swift zu schreiben.
let model = try MLModel(contentsOf: modelURL)
let input = try MLMultiArray(shape: [1, 224, 224, 3], dataType: .float32)
let prediction = try model.prediction(from: input)
Vor 2021 verwendete Core ML das .mlmodel-Format — eine Binärdatei, die alle Modellgewichte und Metadaten enthielt. Ab Xcode 13 und Core ML 4 führte Apple das neue .mlpackage-Format ein — eine verzeichnisbasierte Paketstruktur, die das Modell, Metadaten, Ein-/Ausgabebeschreibungen und Vor-/Nachverarbeitungsdateien im JSON-Format enthält. mlpackage unterstützt Git-Versionierung, was die Teamarbeit vereinfacht. Die Konvertierung von .mlmodel nach .mlpackage erfolgt mit dem Xcode Model Compiler oder dem coremltools Python-Skript.
Die Konvertierung von Modellen aus Drittanbieter-Frameworks in Core ML erfolgt mit der coremltools-Bibliothek in Python. coremltools unterstützt den Import von Modellen aus TensorFlow 1.x/2.x (SavedModel, PB, HDF5), PyTorch (TorchScript, getraced/gescriptete Modelle), Keras (H5), ONNX und mit Create ML erstellten Modellen. Die Standard-Konvertierungspipeline umfasst drei Schritte: Laden des Modells im Originalformat, Konvertieren in MIL (Model Intermediate Language) — die interne Darstellung von Core ML — und Exportieren nach .mlpackage.
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")
Nach der Konvertierung müssen Sie die Modellgenauigkeit überprüfen, indem Sie die Vorhersagen des Originalmodells und des konvertierten Core ML-Modells mit denselben Daten vergleichen. Die zulässige Abweichung beträgt nicht mehr als 1e-3 (0,1%) für Float32 und 1e-2 (1%) für Float16/Int8. coremltools bietet das Dienstprogramm ct.utils.compare_models() für den automatischen Vergleich. Übersteigt die Abweichung die Norm, liegt möglicherweise ein Problem mit nicht unterstützten Operationen vor — diese müssen durch benutzerdefinierte Schichten ersetzt oder das Modell vereinfacht werden.
Die Optimierung eines Core ML-Modells ist der Prozess der Reduzierung der Modellgröße und Erhöhung der Inferenzgeschwindigkeit ohne signifikanten Genauigkeitsverlust. Apple bietet mehrere in coremltools und Xcode integrierte Optimierungswerkzeuge: Quantisierung (Reduzierung der Gewichtspräzision), Pruning (Entfernen unbedeutender Neuronen), Entfernen redundanter Schichten und Layer-Fusion zur Reduzierung des Berechnungsgraphen.
Quantisierung reduziert die Modellgröße um etwa das Zweifache (Float16) oder Vierfache (Int8) im Vergleich zu Float32. Core ML unterstützt drei Quantisierungsmodi: Post-Training-Quantisierung (PTQ) mit einem Kalibrierungsdatensatz, während der Konvertierung über coremltools und quantisierungsbewusstes Training (QAT). Für die meisten Computervision-Modelle führt PTQ auf Float16 zu einem Genauigkeitsverlust von weniger als 0,5% bei gleichzeitiger Verdopplung der Inferenzgeschwindigkeit.
Xcode bietet das Core ML Model Profiler-Tool, mit dem Sie die Modellleistung auf verschiedenen Geräten im Simulator oder auf einem echten Gerät messen können. Der Profiler zeigt die Ausführungszeit jeder Schicht, die Backend-Last (ANE/GPU/CPU), den Spitzenspeicherverbrauch und Modell-Engpässe an. Laut Apple Performance Optimization Guide haben über 80% der Modelle mindestens eine Schicht, die deutlich langsamer arbeitet als die anderen (Schichtanomalie), die durch Austausch oder Fusion optimiert werden kann.
Betrachten wir die Integration eines trainierten Core ML-Modells in eine iOS-App mit Swift. Nach dem Hinzufügen der .mlpackage-Datei zum Xcode-Projekt (durch Ziehen oder über Swift Package Manager) generiert Xcode automatisch eine Swift-Modellklasse mit typisierten Ein- und Ausgaben. Der Entwickler muss die Eingabedaten nicht manuell parsen — die generierte Klasse akzeptiert UIImage, MLMultiArray, String oder andere Typen je nach Modellmetadaten.
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])
Bei der Integration von Core ML müssen Sie die Fehlerbehandlung implementieren: Das Modell kann aufgrund von Geräteinkompatibilität (zu alte iOS-Version), unzureichendem Speicher oder Beschädigung der Modelldatei nicht geladen werden. Es wird empfohlen, eine Fallback-Logik zu implementieren: Wenn das Modell im quantisierten Int8-Format nicht geladen werden kann, laden Sie die Float16-Version, und wenn auch diese fehlschlägt — Float32. Laut Apple Crash Analytics werden über 5% der ML-App-Abstürze durch falsches Modellladen verursacht.
Core ML und Create ML sind zwei sich ergänzende Werkzeuge des Apple ML-Ökosystems. Core ML ist für die Modellausführung auf dem Gerät (Inferenz) zuständig, während Create ML für das Modelltraining zuständig ist. In Create ML erstellte Modelle werden speziell in das Core ML-Format (.mlpackage) exportiert, um später in Anwendungen integriert zu werden. In Webentwicklungs-Begriffen ist Core ML der Browser (Ausführung) und Create ML die IDE zum Schreiben von Code (Training).
| Parameter | Core ML | Create ML |
|---|---|---|
| Zweck | Modellausführung (Inferenz) | Modelltraining |
| Plattform | iOS, iPadOS, macOS, watchOS, tvOS | macOS (nur) |
| Format | .mlpackage (verbraucht) | .mlpackage (erstellt) |
| Code | Swift / Objective-C API | Xcode-UI oder Swift API |
| Benutzer | App-Entwickler | Entwickler / Datenwissenschaftler |
Häufig gestellte Fragen
Core ML ist Apples Machine-Learning-Framework zur Ausführung vortrainierter ML-Modelle auf iOS-, iPadOS-, macOS-, watchOS- und tvOS-Geräten. Es unterstützt neuronale Netze, Entscheidungsbäume und Regressionen und wählt automatisch das optimale Compute-Backend (Neural Engine, GPU oder CPU).
TensorFlow ist ein universelles Framework zum Trainieren und Ausführen von Modellen auf Servern und mobilen Geräten. Core ML ist eine spezialisierte Engine zur Ausführung (nicht zum Training) von Modellen ausschließlich auf Apple-Geräten mit maximaler Leistung durch hardware-spezifische Optimierung (ANE, GPU, Metal). TensorFlow Mobile wird auf iOS nicht mehr unterstützt — Apple empfiehlt Core ML für alle ML-Aufgaben auf seinen Plattformen.
Die Konvertierung erfolgt mit der coremltools-Bibliothek in Python: Exportieren Sie das PyTorch-Modell nach TorchScript (torch.jit.trace) und verwenden Sie dann ct.converters.pytorch.convert(), um .mlpackage zu erstellen. coremltools ordnet PyTorch-Schichten automatisch unterstützten Core ML-Schichten zu und optimiert den Graphen für ANE.
Core ML funktioniert auf allen iPhones mit iOS 11 und neuer. Die Leistung hängt jedoch von der Hardware ab: iPhone 5s/6 — nur CPU (langsame Inferenz), iPhone 8/X — GPU (Metal), iPhone Xs und neuer — Neural Engine (maximale Leistung bis zu 15,8 TOPS auf A17 Pro). Für beste Leistung wird empfohlen, ein Minimum von iOS 12+ festzulegen.
Das moderne Format ist .mlpackage (ein Verzeichnis, das Modell, Metadaten und Ein-/Ausgabebeschreibungen enthält). Das Legacy-Format ist .mlmodel (eine einzelne Binärdatei). Xcode konvertiert .mlmodel während des Builds automatisch in .mlpackage, aber für neue Projekte wird die direkte Verwendung von .mlpackage empfohlen.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch