Core ML — Apple-ов оквир за машинско учење, оптимизован за покретање ML модела директно на iOS, macOS, watchOS и tvOS уређајима. За разлику од облачних ML услуга, Core ML користи Apple-ове хардверске акцелераторе: Neural Engine, GPU и CPU, обезбеђујући минимално кашњење при обради података. Према Apple Core ML Documentation (2026), оквир подржава PyTorch, TensorFlow и Create ML моделе у јединственом .mlpackage формату са просечним временом инференције 5–50 ms.
Главне тачке
Core ML — је оквир за машинско учење представљен од стране Apple-а на WWDC 2017 као део развојног екосистема за iPhone, iPad, Mac, Apple Watch и Apple TV. Core ML обезбеђује извршно окружење за покретање ML модела на уређају, апстрахујући програмера од детаља хардверске оптимизације. Оквир аутоматски бира најбољи рачунски погон — Neural Engine на A12+ чиповима, GPU или CPU — за сваку операцију модела.
Кључна предност Core ML-а — дубока интеграција са Apple Silicon-ом. Операције неуронских мрежа се извршавају на наменском Neural Engine-у, који не оптерећује главна језгра процесора. Према Apple-у (WWDC 2025), Core ML модели раде 6 пута брже у поређењу са TensorFlow Lite-ом на сличним Android уређајима.
Core ML подржава широк спектар задатака машинског учења: класификацију слика, детекцију објеката, семантичку сегментацију, обраду природног језика, анализу звука и табеларне податке. Оквир ради са моделима различитих типова: неуронске мреже (конволуционе, рекурентне, трансформери), ансамбли стабала, линеарне регресије и Гаусови процеси.
Core ML прима на улазу обучен модел у .mlpackage формату, компајлира га у оптимизовани машински код за одређени уређај и покреће инференцију кроз јединствени API. Цео цевовод — од учитавања модела до добијања резултата — захтева 3–5 линија кода у Swift-у.
.mlpackage — је контејнерски формат, уведен од стране Apple-а 2020. године као замена за застарели .mlmodel. Пакет представља директоријум са JSON манифестом, датотеком модела у бинарном MLProgram формату, метаподацима (аутор, верзија, опис) и ресурсима, као што су ознаке класа. Према Apple-у, .mlpackage смањује величину модела за 30–50% у поређењу са .mlmodel захваљујући оптимизацији тежина.
Apple Neural Engine (ANE) — наменски неуропроцесор уграђен у Apple чипове почевши од A12 Bionic (2018). ANE обрађује матричне операције десетинама пута ефикасније од CPU-а при истој потрошњи енергије. Перформанса ANE-а је порасла са 5 TOPS на A12 на 35 TOPS на M4 Ultra (2025), што омогућава покретање модела са милијардама параметара. ANE се користи аутоматски за све Core ML моделе са неуронском архитектуром.
Важна карактеристика Core ML-а — подршка за квантизацију модела на FP16 и INT8 без губитка прецизности. Квантизација смањује величину модела 2–4 пута и убрзава инференцију за 40–60% на ANE-у. Apple пружа алат Xcode Model Quantization за аутоматски избор оптималне прецизности: програмер учитава модел, наводи дозвољени губитак квалитета (обично 0.1–0.5%), а Xcode бира најбољи формат представљања тежина.
| Чип | TOPS (ANE) | Инференција ResNet-50 | Година |
|---|---|---|---|
| A12 Bionic | 5 | 18 ms | 2018 |
| A14 Bionic | 11 | 9 ms | 2020 |
| M1 Max | 22 | 4 ms | 2021 |
| M4 Ultra | 35 | 2 ms | 2025 |
Већина ML модела се креира у PyTorch-у или TensorFlow-у и захтева конверзију у .mlpackage формат за употребу у Core ML-у. Apple пружа алат coremltools — Python пакет за конверзију, оптимизацију и валидацију модела.
coremltools — је званични Apple-ов алат за конверзију ML модела. Подржава увоз из PyTorch-а (путем torch.onnx или директно), TensorFlow-а (SavedModel, H5, Frozen Graph) и ONNX-а. Након конверзије може се активирати FP16 или INT8 квантизација, што смањује величину модела 2–4 пута без значајног губитка прецизности.
Размотримо конверзију обученог PyTorch модела у Core ML формат користећи coremltools верзију 8.0. Процес захтева 2–3 корака у Python-у.
import torch
import coremltools as ct
# Учитавање обученог PyTorch модела
model = torch.load('model.pth')
model.eval()
# Праћење модела са примерним улазом
example_input = torch.randn(1, 3, 224, 224)
traced_model = torch.jit.trace(model, example_input)
# Конверзија у Core ML .mlpackage
mlmodel = ct.convert(
traced_model,
convert_to='mlprogram',
inputs=[ct.TensorType(shape=(1, 3, 224, 224))]
)
mlmodel.save('Model.mlpackage')
Код учитава обучени PyTorch модел, врши JIT-праћење са примерним улазом и конвертује га у mlprogram формат (бинарни Core ML формат). Добијени .mlpackage се може превући у Xcode и одмах користити у Swift коду.
Након конверзије модела, његова интеграција у iOS апликацију у Swift-у се врши у неколико линија. Xcode аутоматски генерише Swift класу за модел на основу метаподатака .mlpackage-а.
Размотримо пример класификације слике помоћу Core ML-а и Vision оквира. Vision аутоматски претвара слику у потребну величину и формат пиксела.
import CoreML
import Vision
// Учитавање Core ML модела
guard let model = try? VNCoreMLModel(
for: MobileNetV2.configuration.model
) else { return }
// Креирање VNCoreMLRequest
let request = VNCoreMLRequest(model: model) { request, error in
guard let results = request.results
as? [VNClassificationObservation]
else { return }
// Испис топ-3 предвиђања
for result in results.prefix(3) {
print("\(result.identifier):
\(result.confidence)")
}
}
// Покретање обраде слике
let handler = VNImageRequestHandler(
url: imageURL
)
try? handler.perform([request])
Swift код учитава модел MobileNetV2 кроз Vision оквир, креира захтев за класификацију и обрађује резултат — низ VNClassificationObservation објеката са ознакама класа и сигурношћу у процентима. Цео цевовод од учитавања до добијања резултата траје 5–50 ms у зависности од модела.
За оптимизацију времена покретања, Core ML компајлира модел при првој употреби. Претходна компилација (precompiled model) смањује хладно покретање са 2–3 секунде на 100–200 ms. Препоручује се извођење компилације модела у фази изградње у Xcode-у, а не при првом покретању апликације. Ово је посебно важно за апликације са више ML модела — на пример, детекција објеката + класификација + NLP.
Core ML и ML Kit решавају сличне задатке ML-а на уређају, али су усмерени на различите екосистеме. Core ML је дубоко интегрисан са Apple Silicon-ом и подржава само Apple платформе. ML Kit од Google-а је вишеплатформско решење за Android и iOS.
| Карактеристика | Core ML | ML Kit |
|---|---|---|
| Платформе | iOS, macOS, watchOS, tvOS | Android, iOS |
| Готови API | Путем Vision, Natural Language | 15+ уграђених API |
| Прилагођени модели | .mlpackage (PyTorch, TF) | TFLite (путем адаптера) |
| Хардверско убрзање | ANE, GPU, CPU | GPU (Android), CPU |
| Лакоћа почетка | Захтева конверзију модела | Готови API без Data Science-а |
| Перформансе | 2–50 ms (ANE) | 80–200 ms (CPU/GPU) |
Изаберите Core ML ако је ваш екосистем искључиво Apple и потребне су вам максималне перформансе кроз ANE. Ако је потребна вишеплатформност или готови API без конверзије — ML Kit ће бити практичнији.
У пракси многи пројекти користе оба оквира: на iOS Core ML за високе перформансе, а на Android-у — ML Kit или TensorFlow Lite. Јединствени PyTorch модел се конвертује у .mlpackage за Apple и у .tflite за Android, што омогућава одржавање истог квалитета ML функција на обе платформе. Овај приступ захтева мало више труда у DevOps-у, али даје максималну покривеност публике.
При избору између Core ML-а и алтернатива узмите у обзир трошкове развоја: Core ML захтева мање кода за интеграцију (3–5 линија Swift-а наспрам 15–20 линија са TFLite-ом), али захтева Mac и Xcode за изградњу. ML Kit, напротив, ради на свакој платформи, али даје мање перформансе на iOS-у због недостатка приступа Apple Neural Engine-у.
Често постављана питања
iOS 11+ за основне моделе, iOS 14+ за .mlpackage формат. За рад Apple Neural Engine-а потребан је чип A12 Bionic и новији. Core ML подржава све iPhone, iPad и Mac од 2017. године.
Да, путем алата coremltools. TensorFlow модели се конвертују у .mlpackage уз очување прецизности. Подржани су TensorFlow 2.x, SavedModel, H5 и Frozen Graph формати.
.mlpackage — модеран контејнерски формат, који представља директоријум са метаподацима, бинарном MLProgram датотеком и ресурсима. 2–3 пута је компактнији од старог .mlmodel-а и подржава квантизацију.
Сва израчунавања се извршавају стриктно на уређају. Core ML не шаље податке на Apple сервер. Оквир ради у авионском режиму и не захтева интернет везу за инференцију.
Swift — главни језик за интеграцију Core ML-а у iOS/macOS апликације. Python се користи за конверзију модела путем coremltools-а. Objective-C је такође подржан за уназадну компатибилност.
Резиме
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође