Core ML — co to je, model strojového učení a fungování v iOS

Autor: IT Sectr Publikováno: 2026-03-26 Doba čtení: 8 min

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 — framework Apple pro on-device strojové učení na všech platformách ekosystému
  • Apple Neural Engine (ANE) poskytuje hardwarovou akceleraci neuronových sítí s výkonem až 11 TOPS
  • Formát .mlpackage spojuje model, metadata a konfiguraci do jednoho pohodlného kontejneru
  • Konverze modelů z PyTorch a TensorFlow se provádí pomocí nástroje Python coremltools
  • Integrace s Vision a Natural Language umožňuje vytvářet komplexní ML pipeline

Co je Core ML?

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.

Hlavní možnosti

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.

Jak funguje Core ML

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.

Formát modelu .mlpackage

.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

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.

Srovnání výkonu Core ML

ČipTOPS (ANE)Inference ResNet-50Rok
A12 Bionic518 ms2018
A14 Bionic119 ms2020
M1 Max224 ms2021
M4 Ultra352 ms2025

Převod modelů do Core ML

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ů.

Nástroj coremltools

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.

Příklad konverze z PyTorch

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.

python
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.

Integrace Core ML do iOS aplikace

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.

Příklad kódu Swift

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ů.

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

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.

VlastnostCore MLML Kit
PlatformyiOS, macOS, watchOS, tvOSAndroid, iOS
Hotová APIPřes Vision, Natural Language15+ vestavěných API
Vlastní modely.mlpackage (PyTorch, TF)TFLite (přes adaptér)
Hardwarová akceleraceANE, GPU, CPUGPU (Android), CPU
Snadnost startuVyžaduje konverzi modeluHotová API bez Data Science
Výkon2–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

Jaké jsou minimální požadavky pro provoz Core ML?

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.

Lze Core ML použít s TensorFlow?

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.

Čím se .mlpackage liší od .mlmodel?

.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.

Jak Core ML nakládá s ochranou soukromí dat?

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.

Jaké programovací jazyky podporuje Core ML?

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í

  • Core ML — framework Apple pro on-device ML na všech platformách ekosystému s podporou Apple Neural Engine
  • .mlpackage — moderní kontejnerový formát spojující model, metadata a zdroje v jednom balíčku
  • Apple Neural Engine poskytuje hardwarovou akceleraci neuronových sítí s výkonem až 35 TOPS na M4 Ultra
  • coremltools umožňuje převod modelů z PyTorch, TensorFlow a ONNX ve třech krocích v Pythonu
  • Integrace přes framework Vision vyžaduje 5–10 řádků Swift kódu pro spuštění modelu na obrázku
  • Výkon inference je 2–50 ms v závislosti na modelu a čipu
  • Ochrana soukromí dat — všechny výpočty jsou striktně lokální, bez odesílání dat na server

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í.

Prodiskutovat projekt

Přečtěte si také