Core ML — co to jest, model uczenia maszynowego i działanie w iOS

Autor: IT Sectr Opublikowano: 2026-03-26 Czas czytania: 8 min

Core ML — framework uczenia maszynowego od Apple, zoptymalizowany do uruchamiania modeli ML bezpośrednio na urządzeniach iOS, macOS, watchOS i tvOS. W przeciwieństwie do chmurowych serwisów ML, Core ML wykorzystuje sprzętowe akceleratory Apple: Neural Engine, GPU i CPU, zapewniając minimalne opóźnienie podczas przetwarzania danych. Według Apple Core ML Documentation (2026), framework wspiera modele PyTorch, TensorFlow i Create ML w jednolitym formacie .mlpackage ze średnim czasem inferencji 5–50 ms.

Najważniejsze

  • Core ML — framework Apple do on-device uczenia maszynowego na wszystkich platformach ekosystemu
  • Apple Neural Engine (ANE) zapewnia sprzętowe przyspieszenie sieci neuronowych z wydajnością do 11 TOPS
  • Format .mlpackage łączy model, metadane i konfigurację w jednym wygodnym kontenerze
  • Konwersja modeli z PyTorch i TensorFlow odbywa się przez Pythonowe narzędzie coremltools
  • Integracja z Vision i Natural Language pozwala tworzyć złożone potoki ML

Czym jest Core ML?

Core ML — to framework uczenia maszynowego, przedstawiony przez Apple na WWDC 2017 jako część ekosystemu deweloperskiego dla iPhone, iPad, Mac, Apple Watch i Apple TV. Core ML zapewnia środowisko uruchomieniowe do wykonywania modeli ML na urządzeniu, abstrahując dewelopera od szczegółów optymalizacji sprzętowej. Framework automatycznie wybiera najlepszy silnik obliczeniowy — Neural Engine na chipach A12+, GPU lub CPU — dla każdej operacji modelu.

Kluczowa zaleta Core ML — głęboka integracja z Apple Silicon. Operacje sieci neuronowych są wykonywane na dedykowanym Neural Engine, który nie obciąża głównych rdzeni procesora. Według Apple (WWDC 2025), modele Core ML działają 6 razy szybciej w porównaniu z TensorFlow Lite na podobnych urządzeniach Android.

Główne możliwości

Core ML wspiera szeroki zakres zadań uczenia maszynowego: klasyfikację obrazów, wykrywanie obiektów, segmentację semantyczną, przetwarzanie języka naturalnego, analizę dźwięku i dane tabelaryczne. Framework współpracuje z modelami różnych typów: sieci neuronowe (konwolucyjne, rekurencyjne, transformery), zespoły drzew, regresje liniowe i procesy gaussowskie.

Jak działa Core ML

Core ML przyjmuje na wejściu wytrenowany model w formacie .mlpackage, kompiluje go do zoptymalizowanego kodu maszynowego dla konkretnego urządzenia i uruchamia inferencję przez jednolity API. Cały pipeline — od załadowania modelu do uzyskania wyniku — zajmuje 3–5 linii kodu w Swift.

Format modelu .mlpackage

.mlpackage — to format kontenerowy, wprowadzony przez Apple w 2020 roku jako zamiennik przestarzałego .mlmodel. Pakiet stanowi katalog z manifestem JSON, plikiem modelu w binarnym formacie MLProgram, metadanymi (autor, wersja, opis) i zasobami, takimi jak etykiety klas. Według Apple, .mlpackage zmniejsza rozmiar modelu o 30–50% w porównaniu z .mlmodel dzięki optymalizacji wag.

Apple Neural Engine

Apple Neural Engine (ANE) — dedykowany neuroprocesor wbudowany w chipy Apple począwszy od A12 Bionic (2018). ANE przetwarza operacje macierzowe dziesiątki razy wydajniej niż CPU przy tym samym poborze mocy. Wydajność ANE wzrosła z 5 TOPS w A12 do 35 TOPS w M4 Ultra (2025), co pozwala uruchamiać modele z miliardami parametrów. ANE jest używany automatycznie dla wszystkich modeli Core ML z architekturą sieci neuronowej.

Ważna cecha Core ML — wsparcie kwantyzacji modeli do FP16 i INT8 bez utraty dokładności. Kwantyzacja zmniejsza rozmiar modelu 2–4 razy i przyspiesza inferencję o 40–60% na ANE. Apple udostępnia narzędzie Xcode Model Quantization do automatycznego doboru optymalnej precyzji: deweloper ładuje model, określa dopuszczalną utratę jakości (zwykle 0.1–0.5%), a Xcode dobiera najlepszy format reprezentacji wag.

Porównanie wydajności Core ML

ChipTOPS (ANE)Inferencja ResNet-50Rok
A12 Bionic518 ms2018
A14 Bionic119 ms2020
M1 Max224 ms2021
M4 Ultra352 ms2025

Konwersja modeli do Core ML

Większość modeli ML jest tworzona w PyTorch lub TensorFlow i wymaga konwersji do formatu .mlpackage do użycia w Core ML. Apple udostępnia narzędzie coremltools — pakiet Python do konwersji, optymalizacji i walidacji modeli.

Narzędzie coremltools

coremltools — to oficjalne narzędzie Apple do konwersji modeli ML. Wspiera import z PyTorch (przez torch.onnx lub bezpośrednio), TensorFlow (SavedModel, H5, Frozen Graph) i ONNX. Po konwersji można włączyć kwantyzację FP16 lub INT8, co zmniejsza rozmiar modelu 2–4 razy bez znaczącej utraty dokładności.

Przykład konwersji z PyTorch

Rozpatrzmy konwersję wytrenowanego modelu PyTorch do formatu Core ML z użyciem coremltools wersji 8.0. Proces zajmuje 2–3 kroki w Pythonie.

python
import torch
import coremltools as ct

# Wczytywanie wytrenowanego modelu PyTorch
model = torch.load('model.pth')
model.eval()

# Śledzenie modelu z przykładowym wejściem
example_input = torch.randn(1, 3, 224, 224)
traced_model = torch.jit.trace(model, example_input)

# Konwersja do Core ML .mlpackage
mlmodel = ct.convert(
    traced_model,
    convert_to='mlprogram',
    inputs=[ct.TensorType(shape=(1, 3, 224, 224))]
)
mlmodel.save('Model.mlpackage')

Kod ładuje wytrenowany model PyTorch, wykonuje JIT-tracing z przykładowym wejściem i konwertuje go do formatu mlprogram (binarny format Core ML). Otrzymany .mlpackage można przeciągnąć do Xcode i od razu użyć w kodzie Swift.

Integracja Core ML w aplikacji iOS

Po konwersji modelu jego integracja w aplikacji iOS w Swift odbywa się w kilku linijkach. Xcode automatycznie generuje klasę Swift dla modelu na podstawie metadanych .mlpackage.

Przykład kodu w Swift

Rozpatrzmy przykład klasyfikacji obrazu za pomocą Core ML i frameworku Vision. Vision automatycznie przekształca obraz do wymaganego rozmiaru i formatu pikseli.

swift
import CoreML
import Vision

// Wczytywanie modelu Core ML
guard let model = try? VNCoreMLModel(
    for: MobileNetV2.configuration.model
) else { return }

// Tworzenie VNCoreMLRequest
let request = VNCoreMLRequest(model: model) { request, error in
    guard let results = request.results
        as? [VNClassificationObservation]
    else { return }

    // Wypisanie top-3 przewidywań
    for result in results.prefix(3) {
        print("\(result.identifier):
              \(result.confidence)")
    }
}

// Uruchomienie przetwarzania obrazu
let handler = VNImageRequestHandler(
    url: imageURL
)
try? handler.perform([request])

Kod Swift ładuje model MobileNetV2 przez framework Vision, tworzy żądanie klasyfikacji i przetwarza wynik — tablicę obiektów VNClassificationObservation z etykietami klas i pewnością w procentach. Cały pipeline od załadowania do uzyskania wyniku zajmuje 5–50 ms w zależności od modelu.

W celu optymalizacji czasu uruchamiania Core ML kompiluje model przy pierwszym użyciu. Wstępna kompilacja (precompiled model) skraca zimny start z 2–3 sekund do 100–200 ms. Zaleca się wykonywanie kompilacji modelu na etapie budowania w Xcode, a nie przy pierwszym uruchomieniu aplikacji. Jest to szczególnie ważne dla aplikacji z wieloma modelami ML — na przykład detekcja obiektów + klasyfikacja + NLP.

Core ML vs ML Kit

Core ML i ML Kit rozwiązują podobne zadania on-device ML, ale są ukierunkowane na różne ekosystemy. Core ML jest głęboko zintegrowany z Apple Silicon i wspiera tylko platformy Apple. ML Kit od Google to wieloplatformowe rozwiązanie dla Android i iOS.

CechaCore MLML Kit
PlatformyiOS, macOS, watchOS, tvOSAndroid, iOS
Gotowe APIPrzez Vision, Natural Language15+ wbudowanych API
Niestandardowe modele.mlpackage (PyTorch, TF)TFLite (przez adapter)
Przyspieszenie sprzętoweANE, GPU, CPUGPU (Android), CPU
Łatwość startuWymaga konwersji modeluGotowe API bez Data Science
Wydajność2–50 ms (ANE)80–200 ms (CPU/GPU)

Wybierz Core ML, jeśli Twój ekosystem to wyłącznie Apple i potrzebujesz maksymalnej wydajności przez ANE. Jeśli wymagana jest wieloplatformowość lub gotowe API bez konwersji — ML Kit będzie bardziej praktyczny.

W praktyce wiele projektów używa obu frameworków: na iOS Core ML dla wysokiej wydajności, a na Android — ML Kit lub TensorFlow Lite. Jeden model PyTorch jest konwertowany do .mlpackage dla Apple i do .tflite dla Android, co pozwala utrzymać tę samą jakość funkcji ML na obu platformach. Takie podejście wymaga nieco więcej wysiłku w DevOps, ale daje maksymalne pokrycie odbiorców.

Przy wyborze między Core ML a alternatywami uwzględnij koszt rozwoju: Core ML wymaga mniej kodu do integracji (3–5 linii Swift wobec 15–20 linii w TFLite), ale wymaga Mac i Xcode do budowania. ML Kit, przeciwnie, działa na każdej platformie, ale daje mniejszą wydajność na iOS z powodu braku dostępu do Apple Neural Engine.

Często zadawane pytania

Jakie są minimalne wymagania do działania Core ML?

iOS 11+ dla podstawowych modeli, iOS 14+ dla formatu .mlpackage. Do działania Apple Neural Engine wymagany jest chip A12 Bionic i nowsze. Core ML obsługuje wszystkie iPhone, iPad i Mac od 2017 roku.

Czy można używać Core ML z TensorFlow?

Tak, przez narzędzie coremltools. Modele TensorFlow są konwertowane do .mlpackage z zachowaniem dokładności. Obsługiwane są formaty TensorFlow 2.x, SavedModel, H5 i Frozen Graph.

Czym .mlpackage różni się od .mlmodel?

.mlpackage — nowoczesny format kontenerowy, stanowiący katalog z metadanymi, binarnym plikiem MLProgram i zasobami. Jest 2–3 razy bardziej kompaktowy niż stary .mlmodel i obsługuje kwantyzację.

Jak Core ML przetwarza prywatność danych?

Wszystkie obliczenia są wykonywane wyłącznie na urządzeniu. Core ML nie wysyła danych na serwer Apple. Framework działa w trybie lotniczym i nie wymaga połączenia z internetem do inferencji.

Jakie języki programowania obsługuje Core ML?

Swift — główny język do integracji Core ML w aplikacjach iOS/macOS. Python jest używany do konwersji modeli przez coremltools. Objective-C również jest obsługiwany dla wstecznej kompatybilności.

Podsumowanie

  • Core ML — framework Apple do on-device ML na wszystkich platformach ekosystemu z obsługą Apple Neural Engine
  • .mlpackage — nowoczesny format kontenerowy łączący model, metadane i zasoby w jednym pakiecie
  • Apple Neural Engine zapewnia sprzętowe przyspieszenie sieci neuronowych z wydajnością do 35 TOPS na M4 Ultra
  • coremltools pozwala konwertować modele z PyTorch, TensorFlow i ONNX w trzech krokach w Pythonie
  • Integracja przez framework Vision wymaga 5–10 linii kodu Swift do uruchomienia modelu na obrazie
  • Wydajność inferencji wynosi 2–50 ms w zależności od modelu i chipu
  • Prywatność danych — wszystkie obliczenia są ściśle lokalne, bez wysyłania danych na serwer

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również