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

Головне

  • Core ML — фреймворк Apple для on-device машинного навчання на всіх платформах екосистеми
  • 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 мс2018
A14 Bionic119 мс2020
M1 Max224 мс2021
M4 Ultra352 мс2025

Конвертація моделей у 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 мс залежно від моделі.

Для оптимізації часу запуску Core ML компілює модель при першому використанні. Попередня компіляція (precompiled model) скорочує холодний старт з 2–3 секунд до 100–200 мс. Рекомендується виконувати компіляцію моделі на етапі збірки в Xcode, а не при першому запуску додатка. Це особливо важливо для додатків з кількома ML-моделями — наприклад, детекція об'єктів + класифікація + NLP.

Core ML vs ML Kit

Core ML і ML Kit вирішують схожі завдання on-device 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 мс (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.

Часті запитання

Які мінімальні вимоги для роботи 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 для on-device ML на всіх платформах екосистеми з підтримкою Apple Neural Engine
  • .mlpackage — сучасний контейнерний формат, що об'єднує модель, метадані та ресурси в одному пакеті
  • Apple Neural Engine забезпечує апаратне прискорення нейромереж з продуктивністю до 35 TOPS на M4 Ultra
  • coremltools дозволяє конвертувати моделі з PyTorch, TensorFlow та ONNX у три кроки на Python
  • Інтеграція через Vision фреймворк потребує 5–10 рядків Swift-коду для запуску моделі на зображенні
  • Продуктивність інференсу становить 2–50 мс залежно від моделі та чипа
  • Приватність даних — всі обчислення суворо локальні, без надсилання даних на сервер

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також