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 за 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 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 срещу 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 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 за 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 ms в зависимост от модела и чипа
  • Поверителност на данните — всички изчисления са стриктно локални, без изпращане на данни до сървър

Ще разработим мобилно приложение под ключ

IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също