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 мс.
Головне
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 мс | 2018 |
| A14 Bionic | 11 | 9 мс | 2020 |
| M1 Max | 22 | 4 мс | 2021 |
| M4 Ultra | 35 | 2 мс | 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 мс залежно від моделі.
Для оптимізації часу запуску Core ML компілює модель при першому використанні. Попередня компіляція (precompiled model) скорочує холодний старт з 2–3 секунд до 100–200 мс. Рекомендується виконувати компіляцію моделі на етапі збірки в Xcode, а не при першому запуску додатка. Це особливо важливо для додатків з кількома ML-моделями — наприклад, детекція об'єктів + класифікація + NLP.
Core ML і ML Kit вирішують схожі завдання on-device 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 мс (ANE) | 80–200 мс (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 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також