YOLO Vision 2026:

Интеграция Apple Core AI#

Для экспорта в Core AI требуется macOS 26 или новее на Apple silicon

coreai-core публикует только колёса macosx_26_0_arm64, поэтому экспорт выполняется на Mac с Apple silicon. Экспортированный .aimodel работает на iOS 27 и macOS 27. SDK Ultralytics для iOS и Flutter пока не загружают ресурсы .aimodel — для них используй Core ML.

Core AI — новый фреймворк Apple для непосредственного запуска нейронных сетей на Apple silicon. Он представляет формат моделей .aimodel, современный API инференса на Swift, инструменты конвертации на основе PyTorch, компиляцию заранее, специализацию моделей, а также специализированные инструменты отладки и профилирования.

Apple описывает Core AI как следующий этап развития выполнения AI на устройстве и инференс-фреймворк, лежащий в основе Apple Intelligence на устройстве. Он рассчитан на современные архитектуры нейронных сетей — от компактных моделей компьютерного зрения до больших генеративных моделей — и может распределять нагрузку между CPU, GPU и нейронным движком Apple (ANE).

Core AI — это новый путь развёртывания, а не новое название Core ML. Фреймворки используют разные форматы моделей, инструменты конвертации, runtime API и способы интеграции с приложениями.

Сравнение Core AI и Core ML#

ВозможностьCore AICore ML
Артефакт модели.aimodel.mlpackage или .mlmodel
Экспорт UltralyticsДоступен с format=coreaiДоступен с format=coreml
API runtime AppleAIModel, InferenceFunction и NDArrayMLModel, часто через VNCoreMLModel и VNCoreMLRequest
Процесс конвертацииPyTorch torch.export через coreai-torchКонвертация TorchScript через coremltools
Основной фокусСовременные нейронные сети и генеративный AIШирокое развёртывание моделей машинного обучения, включая нейронные и ненейронные модели
Интеграция с изображениямиПриложения подготавливают тензоры или используют дескрипторы и буферы изображений Core AIПрямая интеграция с фреймворком Vision для масштабирования и ориентации изображений, а также формирования запросов
Аппаратное обеспечениеCPU, GPU и нейронный движок AppleCPU, GPU и нейронный движок Apple
Подготовка моделиСпециализация при установке или первом использовании с опциональной компиляцией заранееКомпиляция модели в Xcode или на устройстве
Пользовательские операцииПользовательские понижения Core AI и ядра MetalПользовательские слои Core ML и поддерживаемые операции MIL
Доступность развёртыванияНовое поколение операционных систем Apple; в настоящее время бета-версияШирокая поддержка существующих операционных систем Apple
SDK Ultralytics для iOS и FlutterПока не поддерживаетсяПолностью поддерживается

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

Как работает формат Core AI#

Процесс создания моделей Core AI начинается с модели PyTorch:

PyTorch model
    ↓ torch.export
ExportedProgram
    ↓ coreai-torch
Core AI program
    ↓ optimize and save
.aimodel
    ↓ specialize or compile ahead of time
Apple silicon executable

Пакет Apple coreai-torch преобразует torch.export.ExportedProgram, понижая операции PyTorch ATen до операций Core AI. Неподдерживаемые операции можно реализовать с помощью пользовательского понижения или пользовательского ядра Metal.

Получившийся .aimodel — неспециализированный ресурс модели. Когда приложение подготавливает модель, Core AI специализирует её для целевого устройства. Приложение может выполнить это при первом использовании, запросить специализацию заранее или включить в поставку скомпилированную заранее модель, чтобы сократить начальное время загрузки.

В Swift приложения загружают ресурс с помощью фреймворка Core AI, выбирают функцию инференса, передают типизированные входы NDArray и получают именованные выходы. Это отличается от обёртывания модели Core ML в запрос Vision, поэтому для использования Core AI нужен runtime приложения, рассчитанный на ресурсы .aimodel.

Подробнее о реализации см. в документации Apple по AIModel, специализации и кэшированию моделей и компиляции заранее.

Экспорт моделей YOLO26 в Core AI#

Пример
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="coreai")  # creates 'yolo26n.aimodel'
model.export(format="coreai", quantize=16)  # FP16 asset

# Run the exported model
coreai_model = YOLO("yolo26n.aimodel")
results = coreai_model("https://ultralytics.com/images/bus.jpg")

Полный список аргументов см. в разделе Режим экспорта. Граф статичен: он трассируется при imgsz, переданном в export, поэтому выполняй предсказание для этого же размера. Метаданные Ultralytics хранятся внутри собственного metadata.json ресурса, поэтому имена классов, stride и задача сохраняются при обратном преобразовании.

Выбор головы#

С nms=False модель YOLO26 экспортирует свою сквозную голову, которая выбирает обнаружения внутри графа. В Core AI нет примитива top-k, поэтому этот выбор транслируется в полную сортировку и обходится в фиксированную стоимость на границе раздела Apple Neural Engine — около 1,7 мс, независимо от max_det. Экспорт с nms=None вместо этого выводит сырые предсказания (1, 84, 8400) и оставляет неглавное подавление предиктора:

yolo export model=yolo26n.pt format=coreai nms=None quantize=16

На iPhone 17 Pro под управлением iOS 27.0 модель YOLO26n в разрешении 640 показывает 3,01 мс с головой в графе и 1,28 мс без неё (FP16, предварительно скомпилированная, три чередующихся блока по 50 итераций). Обе проходят полный цикл через YOLO(...) для инференса. Используй nms=False, когда один вызов графа должен возвращать готовые обнаружения, или оставь значение по умолчанию nms=None для внешнего NMS.

На iOS 27 или macOS 27 приложение затем загрузит и запустит экспортированный ресурс через Swift API Core AI от Apple. Экспортированные ресурсы используют точку входа main, принимают один вход images с формой [batch, 3, imgsz, imgsz] и возвращают output0:

import CoreAI

let modelURL = Bundle.main.url(forResource: "yolo26n", withExtension: "aimodel")!
let model = try await AIModel(contentsOf: modelURL)
guard let function = try model.loadFunction(named: "main") else {
    throw AppError.missingInferenceFunction
}

let outputs = try await function.run(inputs: ["images": imageTensor])

В отличие от текущего процесса с Core ML и Vision, будущий путь Core AI потребует определить предобработку изображений, создание NDArray, метаданные модели и декодирование выходов в SDK Ultralytics для iOS. Актуальные сведения об API Apple предоставляет в документации фреймворка Core AI, а рабочие примеры моделей — в репозитории моделей Core AI.

Преимущества Core AI#

Core AI предлагает несколько перспективных преимуществ для будущего развёртывания Ultralytics:

  • Современный путь экспорта PyTorch: конвертация начинается с torch.export, сохраняя более выразительный граф PyTorch по сравнению с процессом трассировки, который используют многие существующие экспортёры.
  • Тонкий контроль runtime: приложения могут управлять специализацией, кэшами скомпилированных моделей, функциями инференса, памятью и размещением вычислений.
  • Расширенная поддержка моделей: выполнение с сохранением состояния, динамические формы, несколько функций в одном артефакте и пользовательские ядра Metal рассчитаны на современные архитектуры компьютерного зрения и генеративные архитектуры.
  • Специализированные инструменты разработчика: Core AI Debugger может проверять графы и значения тензоров, а также связывать их с исходным кодом на Python. Xcode и Instruments обеспечивают профилирование runtime.
  • Возможности zero-copy: Core AI предоставляет средства управления хранилищем и буферами, предназначенные для сокращения числа копирований между камерой, графикой и задачами инференса.
  • Оптимизация для Apple silicon: специализация на устройстве позволяет Apple оптимизировать модель для CPU, GPU и Neural Engine, доступных на конкретном устройстве.
  • Гибкое сжатие: инструменты Core AI Optimization от Apple поддерживают квантование, палетизацию и прореживание, включая форматы весов с малой разрядностью.

Эти возможности могут оказаться особенно полезными для будущих моделей YOLO с динамическим выполнением, более крупными мультимодальными компонентами или пользовательскими операциями, которые плохо отображаются на существующие операции Core ML.

Текущие недостатки и ограничения#

В настоящее время Core AI не является заменой производственного пути Core ML:

  • Требуются новые операционные системы: публичный фреймворк рассчитан на поколение iOS 27 и macOS 27, тогда как Core ML поддерживает гораздо более широкую установленную базу.
  • Бета-версия ПО: фреймворк Core AI от Apple и некоторые части его инструментальной цепочки Python всё ещё находятся на предварительном этапе и могут измениться до стабильного выпуска.
  • Более узкая среда экспорта: coreai-torch в настоящее время требует Python 3.11 или новее, но ниже 3.14, а также недавние версии PyTorch, что значительно уже поддерживаемого Ultralytics диапазона версий Python и PyTorch.
  • Экспорт выполняется только на macOS: coreai-core публикует только колёса macosx_26_0_arm64, поэтому для format=coreai нужен Mac с Apple silicon на macOS 26 или новее.
  • Пока нет runtime приложения Ultralytics: официальное приложение YOLO для iOS и плагин Flutter в настоящее время загружают ресурсы Core ML через MLModel и Vision.
  • Требуется миграция приложения: .aimodel нельзя заменить на .mlpackage; для этого нужна реализация Core AI, включающая загрузку модели, предобработку, вызовы инференса, обработку метаданных и декодирование выходов.
  • Ограниченные производственные данные: производительность, энергопотребление, время специализации при первом запуске, точность и сжатие необходимо проверить на всей матрице поддерживаемых задач YOLO и устройств.
  • Конвейер без NMS: Core ML может упаковывать стадию NMS для более старых моделей обнаружения YOLO. По умолчанию Core AI экспортирует сырые предсказания «один ко многим»; используй nms=False для головы YOLO26 без NMS. Встроенный NMS (nms=True) и dynamic=True не поддерживаются. У coreai-torch нет трансляции для torchvision::nms, поэтому NMS остаётся на хосте.
  • Фиксированный размер входа: экспортированный граф трассируется при одном значении imgsz и не поддерживает динамические формы, поэтому выполняй предсказание при размере, с которым он был экспортирован.
  • Ресурсы FP16 могут аварийно завершить работу при загрузке: некоторые ресурсы FP16 .aimodel не могут загрузить программу Apple Neural Engine, и MPSGraph вызывает ошибку утверждения, завершая процесс вместо отката. Это происходит внутри runtime Apple, до выполнения какого-либо кода Ultralytics, а тот же ресурс загружается со специализацией только для CPU. Пока проблема не исправлена в upstream, предпочитай FP32.

Какой формат Apple выбрать?#

Используй Core ML сегодня, если тебе нужны:

  • Развёртывание на текущих и более старых операционных системах Apple
  • Интеграция с SDK Ultralytics для iOS или Flutter
  • Обработка изображений через фреймворк Vision
  • Протестированное развёртывание YOLO в FP16 и INT8
  • Встроенный NMS для совместимых устаревших моделей детекции

Рассмотри Core AI, если можешь потребовать iOS 27 или macOS 27 и тебе нужны:

  • Новейший runtime нейронных сетей Apple на устройстве
  • Явное управление специализацией и кэшем
  • Расширенное выполнение динамических моделей или моделей с состоянием
  • Пользовательские операции Core AI или ядра Metal
  • Подробная отладка графов Core AI и профилирование runtime

Ожидается, что Core ML и Core AI будут сосуществовать в процессе перехода приложений. Поддержка Core AI не отменяет немедленную необходимость в Core ML, поскольку их целевые платформы и контракты интеграции с приложениями различаются.

Дорожная карта Ultralytics#

Выделенная цель экспорта coreai реализована: экспорт и численная валидация охватывают поддерживаемые модели задач YOLO26 и непрерывно выполняются в CI Ultralytics на macOS 26, а задержка FP16 измеряется на устройстве. Оставшиеся пункты дорожной карты до достижения Core AI паритета с путём Core ML:

  1. Загрузка моделей Core AI и предобработка в SDK Ultralytics для iOS.
  2. Интеграция с Flutter и стратегия совместимости для устройств ниже iOS 27.
  3. Стабильные выпуски фреймворка Apple и инструментов конвертации (поколение iOS 27 и macOS 27 в настоящее время находится на этапе бета-тестирования).
  4. Тесты памяти, энергопотребления и специализации на всей матрице поддерживаемых устройств.

Core ML по-прежнему остаётся рекомендуемой целью для приложений, которым нужен SDK Ultralytics для iOS или Flutter либо поддержка версий ниже iOS 27; следи за дорожной картой Ultralytics и примечаниями к выпускам, чтобы узнать об оставшихся пунктах.

Дополнительные ресурсы#

Часто задаваемые вопросы#

  • Да. Экспортируй с помощью model.export(format="coreai") или yolo export format=coreai на Mac с Apple silicon под управлением macOS 26 или более поздней версии; экспортированный .aimodel работает на iOS 27 и macOS 27. Для iOS- и Flutter SDK Ultralytics, а также для операционных систем более ранних поколений экспортируй файлы Core ML .mlpackage с помощью format="coreml".

  • Не сразу. Core AI — это новый путь Apple для современных нейронных сетей, а Core ML по-прежнему поддерживается и обеспечивает более широкую поддержку операционных систем, интеграцию с Vision и поддержку ненейронных моделей.

  • Нет. Они содержат разные представления модели и загружаются разными фреймворками. Преобразование необходимо начинать с исходной модели с помощью соответствующего набора инструментов Apple.

  • Ожидается, что первоначальная интеграция будет сосуществовать с Core ML. Любое решение о будущей замене будет зависеть от распространения операционных систем, стабильности инструментов, производительности, а также последующей поддержки iOS и Flutter.

Участники
GLglenn-jocher3DADaisuke Majima1

Комментарии