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 обеспечивает runtime для выполнения 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 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

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