Открыть сервис

Core ML

Core ML — это фреймворк машинного обучения, разработанный компанией Apple Inc. (организация признана нежелательной и запрещена в РФ) для интеграции моделей машинного обучения в приложения, работающие под управлением операционных систем iOS, macOS, watchOS и tvOS. Core ML предоставляет разработчикам инструменты для внедрения обученных моделей непосредственно в приложения, обеспечивая выполнение вычислений на устройстве без необходимости обращения к удалённым серверам. Это позволяет повысить скорость обработки данных, обеспечить конфиденциальность пользовательской информации и снизить зависимость от интернет-соединения.

История

Развитие Core ML связано с общим трендом на внедрение технологий искусственного интеллекта в мобильные и настольные платформы. До появления Core ML разработчики использовали сторонние библиотеки, такие как TensorFlow или PyTorch, которые требовали сложной интеграции и часто не были оптимизированы для работы на устройствах Apple.

Первый публичный анонс Core ML состоялся на Всемирной конференции разработчиков Apple (WWDC) в июне 2017 года. Фреймворк был представлен как часть операционной системы iOS 11. Вместе с ним были анонсированы инструменты для преобразования моделей из других фреймворков (например, Core ML Tools) и библиотека Vision для работы с изображениями.

В последующих версиях операционных систем Apple расширяла возможности Core ML. В iOS 12 появилась поддержка моделей с плавающей запятой половинной точности (Float16), что позволило уменьшить размер моделей и ускорить их выполнение. В iOS 13 была добавлена поддержка нейронных сетей с несколькими выходами и возможность обучения моделей непосредственно на устройстве (on-device training). В iOS 14 и macOS Big Sur появилась поддержка моделей, использующих архитектуру Transformer, а также улучшенная интеграция с Neural Engine — специализированным аппаратным блоком для ускорения вычислений, встроенным в процессоры Apple A12 и более новые, а также в чипы серии M.

Архитектура и принцип работы

Core ML работает как слой абстракции между обученной моделью машинного обучения и аппаратным обеспечением устройства. Основные компоненты архитектуры включают:

  • Модель Core ML — файл с расширением .mlmodel (или скомпилированный .mlmodelc), содержащий описание архитектуры нейронной сети, обученные веса и метаданные.
  • Core ML Runtime — среда выполнения, которая загружает модель, интерпретирует её структуру и выполняет вычисления.
  • Аппаратные ускорители — Central Processing Unit (CPU), Graphics Processing Unit (GPU) и Neural Engine. Core ML автоматически выбирает наиболее подходящий вычислительный блок в зависимости от типа модели и доступного оборудования.

Процесс работы включает следующие этапы:

  1. Подготовка модели — модель, обученная в стороннем фреймворке (например, TensorFlow, PyTorch, scikit-learn), конвертируется в формат Core ML с помощью утилиты coremltools.
  2. Интеграция — разработчик добавляет файл .mlmodel в проект Xcode. Xcode автоматически компилирует модель в бинарный формат .mlmodelc и генерирует интерфейс для взаимодействия с ней на языке Swift или Objective-C.
  3. Выполнение — при запуске приложения модель загружается в память. Входные данные (изображения, текст, числовые массивы) преобразуются в формат MLMultiArray или CVPixelBuffer и передаются в модель. Core ML выполняет прямой проход (inference) и возвращает результат.

Классификация моделей

Core ML поддерживает широкий спектр типов моделей машинного обучения, которые можно разделить на несколько категорий:

Инструменты для конвертации

Для преобразования моделей из других фреймворков в формат Core ML используется библиотека coremltools, написанная на Python. Она поддерживает импорт из:

  • TensorFlow (включая TensorFlow Lite)
  • PyTorch
  • scikit-learn
  • Keras
  • ONNX (Open Neural Network Exchange)
  • MXNet

Процесс конвертации включает оптимизацию модели: квантование весов (например, до Float16 или Int8), обрезку (pruning) и слияние слоёв для уменьшения размера и ускорения вычислений. После конвертации модель можно протестировать на точность и, при необходимости, доработать.

Применение

Core ML используется в различных категориях приложений для iOS, macOS, watchOS и tvOS. Основные области применения включают:

Преимущества и ограничения

Преимущества

  • Конфиденциальность — все вычисления выполняются на устройстве, данные не передаются на сервер.
  • Скорость — отсутствие задержек на передачу данных по сети; использование аппаратных ускорителей (Neural Engine) обеспечивает высокую производительность.
  • Автономность — приложение может работать без интернет-соединения.
  • Простота интеграции — автоматическая генерация кода в Xcode, минимальное количество ручной настройки.
  • Оптимизация — модели автоматически адаптируются под конкретное устройство и его вычислительные возможности.

Ограничения

  • Размер модели — большие модели (сотни мегабайт и более) могут негативно влиять на размер приложения и время загрузки.
  • Ограниченная поддержка архитектур — не все современные архитектуры нейронных сетей могут быть конвертированы в Core ML без потери точности или производительности.
  • Обучение на устройстве — возможности для обучения моделей непосредственно на устройстве ограничены по сравнению с серверными решениями.
  • Зависимость от экосистемы Apple — модели Core ML не могут быть напрямую использованы на платформах Android или Windows.

Интересные факты

  • Core ML является частью более широкой экосистемы машинного обучения Apple, включающей также фреймворки Create ML (для обучения моделей без написания кода), Turi Create (для создания моделей на Python) и ML Compute (для низкоуровневых вычислений).
  • Neural Engine, впервые представленный в процессоре A11 Bionic (2017 год), изначально был разработан для ускорения работы Face ID, но впоследствии стал ключевым компонентом для выполнения моделей Core ML.
  • В 2020 году Apple представила технологию Core ML 3, которая позволила выполнять несколько моделей одновременно на одном устройстве, что открыло возможности для более сложных сценариев, таких как анализ видео в реальном времени.

Источники

  • Документация Apple Developer: Core ML Framework
  • WWDC 2017: Introducing Core ML
  • WWDC 2019: Core ML 3 Framework
  • WWDC 2020: Core ML 4 and Model Deployment
  • Apple Machine Learning Research: On-Device Machine Learning
  • coremltools — официальная документация библиотеки

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →