Core ML — framework strojového učení od Apple, optimalizovaný pro spouštění ML modelů přímo na zařízeních iOS, macOS, watchOS a tvOS. Na rozdíl od cloudových ML služeb Core ML využívá hardwarové akcelerátory Apple: Neural Engine, GPU a CPU, což zajišťuje minimální latenci při zpracování dat. Podle Apple Core ML Documentation (2026) framework podporuje modely PyTorch, TensorFlow a Create ML v jednotném formátu .mlpackage s průměrnou dobou inference 5–50 ms.
Hlavní body
Core ML — je framework strojového učení představený Apple na WWDC 2017 jako součást vývojového ekosystému pro iPhone, iPad, Mac, Apple Watch a Apple TV. Core ML poskytuje běhové prostředí pro spouštění ML modelů na zařízení, čímž abstrahuje vývojáře od detailů hardwarové optimalizace. Framework automaticky vybírá nejlepší výpočetní engine — Neural Engine na čipech A12+, GPU nebo CPU — pro každou operaci modelu.
Klíčová výhoda Core ML — hluboká integrace s Apple Silicon. Operace neuronových sítí jsou prováděny na vyhrazeném Neural Engine, který nezatěžuje hlavní jádra procesoru. Podle Apple (WWDC 2025) pracují modely Core ML 6krát rychleji ve srovnání s TensorFlow Lite na podobných zařízeních Android.
Core ML podporuje širokou škálu úloh strojového učení: klasifikaci obrázků, detekci objektů, sémantickou segmentaci, zpracování přirozeného jazyka, analýzu zvuku a tabulková data. Framework pracuje s modely různých typů: neuronové sítě (konvoluční, rekurentní, transformery), soubory stromů, lineární regrese a Gaussovy procesy.
Core ML přijímá na vstupu natrénovaný model ve formátu .mlpackage, zkompiluje jej do optimalizovaného strojového kódu pro konkrétní zařízení a spouští inferenci prostřednictvím jednotného API. Celá pipeline — od načtení modelu po získání výsledku — vyžaduje 3–5 řádků kódu ve Swift.
.mlpackage — je kontejnerový formát zavedený Apple v roce 2020 jako náhrada za zastaralý .mlmodel. Balíček představuje adresář s JSON manifestem, souborem modelu v binárním formátu MLProgram, metadaty (autor, verze, popis) a zdroji, jako jsou štítky tříd. Podle Apple .mlpackage zmenšuje velikost modelu o 30–50% ve srovnání s .mlmodel díky optimalizaci vah.
Apple Neural Engine (ANE) — vyhrazený neuroprocesor integrovaný do čipů Apple od A12 Bionic (2018). ANE zpracovává maticové operace desítkykrát efektivněji než CPU při stejné spotřebě energie. Výkon ANE vzrostl z 5 TOPS na A12 na 35 TOPS na M4 Ultra (2025), což umožňuje spouštět modely s miliardami parametrů. ANE je používán automaticky pro všechny modely Core ML s architekturou neuronové sítě.
Důležitá vlastnost Core ML — podpora kvantizace modelů na FP16 a INT8 bez ztráty přesnosti. Kvantizace zmenšuje velikost modelu 2–4krát a zrychluje inferenci o 40–60% na ANE. Apple poskytuje nástroj Xcode Model Quantization pro automatický výběr optimální přesnosti: vývojář nahraje model, zadá povolenou ztrátu kvality (obvykle 0.1–0.5%) a Xcode vybere nejlepší formát reprezentace vah.
| Čip | TOPS (ANE) | Inference ResNet-50 | Rok |
|---|---|---|---|
| A12 Bionic | 5 | 18 ms | 2018 |
| A14 Bionic | 11 | 9 ms | 2020 |
| M1 Max | 22 | 4 ms | 2021 |
| M4 Ultra | 35 | 2 ms | 2025 |
Většina ML modelů je vytvářena v PyTorch nebo TensorFlow a vyžaduje převod do formátu .mlpackage pro použití v Core ML. Apple poskytuje nástroj coremltools — balíček Python pro konverzi, optimalizaci a validaci modelů.
coremltools — je oficiální nástroj Apple pro konverzi ML modelů. Podporuje import z PyTorch (přes torch.onnx nebo přímo), TensorFlow (SavedModel, H5, Frozen Graph) a ONNX. Po konverzi lze aktivovat FP16 nebo INT8 kvantizaci, která zmenšuje velikost modelu 2–4krát bez výrazné ztráty přesnosti.
Podívejme se na konverzi natrénovaného modelu PyTorch do formátu Core ML pomocí coremltools verze 8.0. Proces vyžaduje 2–3 kroky v Pythonu.
import torch
import coremltools as ct
# Načtení natrénovaného modelu PyTorch
model = torch.load('model.pth')
model.eval()
# Trasování modelu se vzorovým vstupem
example_input = torch.randn(1, 3, 224, 224)
traced_model = torch.jit.trace(model, example_input)
# Převod do Core ML .mlpackage
mlmodel = ct.convert(
traced_model,
convert_to='mlprogram',
inputs=[ct.TensorType(shape=(1, 3, 224, 224))]
)
mlmodel.save('Model.mlpackage')
Kód načte natrénovaný model PyTorch, provede JIT-tracing se vzorovým vstupem a převede jej do formátu mlprogram (binární formát Core ML). Výsledný .mlpackage lze přetáhnout do Xcode a okamžitě použít v kódu Swift.
Po konverzi modelu probíhá jeho integrace do iOS aplikace ve Swift v několika řádcích. Xcode automaticky vygeneruje třídu Swift pro model na základě metadat .mlpackage.
Podívejme se na příklad klasifikace obrázku pomocí Core ML a frameworku Vision. Vision automaticky převede obrázek na požadovanou velikost a formát pixelů.
import CoreML
import Vision
// Načtení modelu Core ML
guard let model = try? VNCoreMLModel(
for: MobileNetV2.configuration.model
) else { return }
// Vytvoření VNCoreMLRequest
let request = VNCoreMLRequest(model: model) { request, error in
guard let results = request.results
as? [VNClassificationObservation]
else { return }
// Výstup top-3 predikcí
for result in results.prefix(3) {
print("\(result.identifier):
\(result.confidence)")
}
}
// Spuštění zpracování obrázku
let handler = VNImageRequestHandler(
url: imageURL
)
try? handler.perform([request])
Kód Swift načte model MobileNetV2 přes framework Vision, vytvoří požadavek na klasifikaci a zpracuje výsledek — pole objektů VNClassificationObservation se štítky tříd a spolehlivostí v procentech. Celá pipeline od načtení po výsledek trvá 5–50 ms v závislosti na modelu.
Pro optimalizaci doby spouštění Core ML kompiluje model při prvním použití. Předkompilace (precompiled model) zkracuje studený start z 2–3 sekund na 100–200 ms. Doporučuje se provádět kompilaci modelu ve fázi sestavení v Xcode, nikoli při prvním spuštění aplikace. To je zvláště důležité pro aplikace s několika ML modely — například detekce objektů + klasifikace + NLP.
Core ML a ML Kit řeší podobné úlohy on-device ML, ale jsou zaměřeny na různé ekosystémy. Core ML je hluboce integrován s Apple Silicon a podporuje pouze platformy Apple. ML Kit od Google je multiplatformní řešení pro Android a iOS.
| Vlastnost | Core ML | ML Kit |
|---|---|---|
| Platformy | iOS, macOS, watchOS, tvOS | Android, iOS |
| Hotová API | Přes Vision, Natural Language | 15+ vestavěných API |
| Vlastní modely | .mlpackage (PyTorch, TF) | TFLite (přes adaptér) |
| Hardwarová akcelerace | ANE, GPU, CPU | GPU (Android), CPU |
| Snadnost startu | Vyžaduje konverzi modelu | Hotová API bez Data Science |
| Výkon | 2–50 ms (ANE) | 80–200 ms (CPU/GPU) |
Zvolte Core ML, pokud je váš ekosystém výhradně Apple a potřebujete maximální výkon přes ANE. Pokud je vyžadována multiplatformnost nebo hotová API bez konverze — ML Kit bude praktičtější.
V praxi mnoho projektů používá oba frameworky: na iOS Core ML pro vysoký výkon, a na Androidu — ML Kit nebo TensorFlow Lite. Jeden model PyTorch se převádí do .mlpackage pro Apple a do .tflite pro Android, což umožňuje udržovat stejnou kvalitu ML funkcí na obou platformách. Tento přístup vyžaduje o něco více úsilí v DevOps, ale poskytuje maximální pokrytí publika.
Při výběru mezi Core ML a alternativami zvažte náklady na vývoj: Core ML vyžaduje méně kódu pro integraci (3–5 řádků Swift oproti 15–20 řádkům s TFLite), ale vyžaduje Mac a Xcode pro sestavení. ML Kit naopak funguje na jakékoli platformě, ale poskytuje nižší výkon na iOS kvůli chybějícímu přístupu k Apple Neural Engine.
Často kladené otázky
iOS 11+ pro základní modely, iOS 14+ pro formát .mlpackage. Pro provoz Apple Neural Engine je vyžadován čip A12 Bionic a novější. Core ML podporuje všechny iPhone, iPad a Mac od roku 2017.
Ano, prostřednictvím nástroje coremltools. Modely TensorFlow se převádějí do .mlpackage s zachováním přesnosti. Podporovány jsou formáty TensorFlow 2.x, SavedModel, H5 a Frozen Graph.
.mlpackage — moderní kontejnerový formát, představující adresář s metadaty, binárním souborem MLProgram a zdroji. Je 2–3krát kompaktnější než starý .mlmodel a podporuje kvantizaci.
Všechny výpočty jsou prováděny striktně na zařízení. Core ML neodesílá data na server Apple. Framework pracuje v režimu letadla a nevyžaduje připojení k internetu pro inferenci.
Swift — hlavní jazyk pro integraci Core ML v aplikacích iOS/macOS. Python se používá pro konverzi modelů přes coremltools. Objective-C je také podporován pro zpětnou kompatibilitu.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také