Core ML — шта је то, модел машинског учења и рад у iOS-у

Аутор: IT Sectr Објављено: 2026-03-26 Време читања: 8 мин

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-ов оквир за машинско учење на уређају на свим платформама екосистема
  • Apple Neural Engine (ANE) обезбеђује хардверско убрзање неуронских мрежа са перформансом до 11 TOPS
  • .mlpackage формат обједињује модел, метаподатке и конфигурацију у једном згодном контејнеру
  • Конверзија модела из PyTorch-а и TensorFlow-а врши се путем Python алата coremltools
  • Интеграција са Vision и Natural Language омогућава стварање сложених ML цевовода

Шта је Core ML?

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

Core ML прима на улазу обучен модел у .mlpackage формату, компајлира га у оптимизовани машински код за одређени уређај и покреће инференцију кроз јединствени API. Цео цевовод — од учитавања модела до добијања резултата — захтева 3–5 линија кода у Swift-у.

Формат модела .mlpackage

.mlpackage — је контејнерски формат, уведен од стране Apple-а 2020. године као замена за застарели .mlmodel. Пакет представља директоријум са JSON манифестом, датотеком модела у бинарном MLProgram формату, метаподацима (аутор, верзија, опис) и ресурсима, као што су ознаке класа. Према Apple-у, .mlpackage смањује величину модела за 30–50% у поређењу са .mlmodel захваљујући оптимизацији тежина.

Apple Neural Engine

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 бира најбољи формат представљања тежина.

Поређење перформанси Core ML-а

ЧипTOPS (ANE)Инференција ResNet-50Година
A12 Bionic518 ms2018
A14 Bionic119 ms2020
M1 Max224 ms2021
M4 Ultra352 ms2025

Конверзија модела у Core ML

Већина ML модела се креира у PyTorch-у или TensorFlow-у и захтева конверзију у .mlpackage формат за употребу у Core ML-у. Apple пружа алат coremltools — Python пакет за конверзију, оптимизацију и валидацију модела.

Алат coremltools

coremltools — је званични Apple-ов алат за конверзију ML модела. Подржава увоз из PyTorch-а (путем torch.onnx или директно), TensorFlow-а (SavedModel, H5, Frozen Graph) и ONNX-а. Након конверзије може се активирати FP16 или INT8 квантизација, што смањује величину модела 2–4 пута без значајног губитка прецизности.

Пример конверзије из PyTorch-а

Размотримо конверзију обученог PyTorch модела у Core ML формат користећи coremltools верзију 8.0. Процес захтева 2–3 корака у Python-у.

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 коду.

Интеграција Core ML-а у iOS апликацију

Након конверзије модела, његова интеграција у iOS апликацију у Swift-у се врши у неколико линија. Xcode аутоматски генерише Swift класу за модел на основу метаподатака .mlpackage-а.

Пример кода у Swift-у

Размотримо пример класификације слике помоћу Core ML-а и Vision оквира. Vision аутоматски претвара слику у потребну величину и формат пиксела.

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

Core ML и ML Kit решавају сличне задатке ML-а на уређају, али су усмерени на различите екосистеме. Core ML је дубоко интегрисан са Apple Silicon-ом и подржава само Apple платформе. ML Kit од Google-а је вишеплатформско решење за Android и iOS.

КарактеристикаCore MLML Kit
ПлатформеiOS, macOS, watchOS, tvOSAndroid, iOS
Готови APIПутем Vision, Natural Language15+ уграђених API
Прилагођени модели.mlpackage (PyTorch, TF)TFLite (путем адаптера)
Хардверско убрзањеANE, GPU, CPUGPU (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-у.

Често постављана питања

Који су минимални захтеви за рад Core ML-а?

iOS 11+ за основне моделе, iOS 14+ за .mlpackage формат. За рад Apple Neural Engine-а потребан је чип A12 Bionic и новији. Core ML подржава све iPhone, iPad и Mac од 2017. године.

Може ли се Core ML користити са TensorFlow-ом?

Да, путем алата coremltools. TensorFlow модели се конвертују у .mlpackage уз очување прецизности. Подржани су TensorFlow 2.x, SavedModel, H5 и Frozen Graph формати.

Чиме се .mlpackage разликује од .mlmodel-а?

.mlpackage — модеран контејнерски формат, који представља директоријум са метаподацима, бинарном MLProgram датотеком и ресурсима. 2–3 пута је компактнији од старог .mlmodel-а и подржава квантизацију.

Како Core ML обрађује приватност података?

Сва израчунавања се извршавају стриктно на уређају. Core ML не шаље податке на Apple сервер. Оквир ради у авионском режиму и не захтева интернет везу за инференцију.

Које програмске језике подржава Core ML?

Swift — главни језик за интеграцију Core ML-а у iOS/macOS апликације. Python се користи за конверзију модела путем coremltools-а. Objective-C је такође подржан за уназадну компатибилност.

Резиме

  • Core ML — Apple-ов оквир за ML на уређају на свим платформама екосистема са подршком за Apple Neural Engine
  • .mlpackage — модеран контејнерски формат који обједињује модел, метаподатке и ресурсе у једном пакету
  • Apple Neural Engine обезбеђује хардверско убрзање неуронских мрежа са перформансом до 35 TOPS на M4 Ultra
  • coremltools омогућава конверзију модела из PyTorch-а, TensorFlow-а и ONNX-а у три корака у Python-у
  • Интеграција кроз Vision оквир захтева 5–10 линија Swift кода за покретање модела на слици
  • Перформансе инференције износе 2–50 ms у зависности од модела и чипа
  • Приватност података — сва израчунавања су строго локална, без слања података на сервер

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође