Kapitel 1

🧭Überblick & Architektur

Core ML ist Apples Framework, um trainierte Modelle auf dem Gerät auszuführen – seit iOS 11 und macOS 10.13. Es liefert eine einheitliche Modelldarstellung, verteilt die Arbeit auf CPU, GPU und Neural Engine und ist Grundlage für Vision, Natural Language, Speech und Sound Analysis. 📎 Core ML (Framework-Übersicht)

🏗️Wo Core ML sitzt

Schichtenmodell nach der Apple-Doku. Kästen anklicken; unten die Recheneinheiten umschalten.
Werkzeuge (Mac)
⟶ liefern ein Modell (.mlpackage/.mlmodel) an Core ML
MLModelConfiguration.computeUnits
Das System wählt die beste Recheneinheit – inklusive Neural Engine, falls vorhanden. Standard. Python: ct.ComputeUnit.ALL · ab iOS 12 · macOS 10.14
Ausgewählt

Core ML

Einheitliche Modelldarstellung, Laden, Kompilieren, Vorhersagen, On-Device-Training. Seit iOS 11 / macOS 10.13.

Tipp: Kästen im Diagramm anklicken.

📦Drei Dateiformate – und wie sie zusammenhängen

  coremltools / Create ML                        Xcode-Build  oder  MLModel.compileModel(at:)
           │                                                    │
           ▼                                                    ▼
 ┌──────────────────────┐     ┌─────────────────────────┐    ┌──────────────────────────────┐
 │ .mlmodel  (Protobuf) │ ──▶ │ .mlpackage  (Verzeichnis)│ ─▶ │ .mlmodelc  (kompiliert)       │
 │ NeuralNetwork, Bäume │     │ ML Program: MIL + weights│    │ model.mil · weights/ · JSON   │
 │ ab iOS 11            │     │ ab iOS 15 / macOS 12     │    │ das lädt die App zur Laufzeit │
 └──────────────────────┘     └─────────────────────────┘    └──────────────────────────────┘
        „Update to Model Package“ in Xcode
.mlmodel

Eine Protobuf-Datei – Architektur und Gewichte zusammen. Klassischer Typ „NeuralNetwork“ (Schichten).

.mlpackage

Ein Verzeichnis (Paket) – Programm und Gewichte getrennt, Metadaten bearbeitbar. Pflicht für ML Programs (MIL).

.mlmodelc

Das kompilierte, gerätetaugliche Modell (Verzeichnis). Das lädt Core ML zur Laufzeit wirklich.

🔬Blick in ein echtes .mlpackage

So sieht das konvertierte Lehrmodell (FP16) auf der Platte aus – Größen in Bytes aus der echten Konvertierung.
✔ echte coremltools-Ausgabe
DateiBytesInhalt
DigitMLP_fp16.mlpackage/Manifest.json617Verzeichnis der Paket-Einträge
DigitMLP_fp16.mlpackage/Data/com.apple.CoreML/model.mlmodel3.105Programm (MIL als Protobuf) + Beschreibung
DigitMLP_fp16.mlpackage/Data/com.apple.CoreML/weights/weight.bin5.140alle Gewichte (FP16)

FP32-Variante: weight.bin 9.984 B, ganzes Paket 12.956 B · FP16: 5.140 B bzw. 8.862 B.

Shell

Kompilieren und model.mil ansehen

xcrun coremlcompiler compile DigitMLP.mlpackage .
cat DigitMLP.mlmodelc/model.mil      # Textform des ML Programs

🆚NeuralNetwork vs. ML Program

NeuralNetworkML Program
DarstellungSchichten eines RechengraphenOperationen in Programmform (MIL), Funktion main mit Blöcken
Gewichtein den Schichten, im Protobufgetrennt serialisiert (weight.bin)
Zwischentypenimplizitexplizit typisiert (fp16/fp32 je Tensor)
GPU-Genauigkeitnur FP16FP16 und FP32 (Metal Performance Shaders Graph)
Mindest-OSiOS 11 · macOS 10.13iOS 15 · macOS 12
Weiterentwicklungeingefroren, nur Wartungalle neuen Features und Performance-Arbeit
On-Device-Updateja (MLUpdateTask)nicht unterstützt
💡
Ausblick: Core AI (iOS/macOS 27)
Apple dokumentiert seit iOS 27 / macOS 27 zusätzlich das Framework Core AI für aktuelle Modellarchitekturen – mit eigenem Format .aimodel und dem Konverter coreai-torch. Für andere Modelltypen (z. B. Entscheidungsbäume, tabellarische Merkmale) verweist Apple dort weiter auf Core ML. Diese App behandelt ausschließlich Core ML und coremltools. 📎 Core AI (neues Framework)