YOLO Vision 2026 :

Intégration d’Apple Core AI#

L’export Core AI nécessite macOS 26 ou version ultérieure sur Apple silicon

coreai-core publie uniquement des wheels macosx_26_0_arm64, l’export s’exécute donc sur les Mac Apple silicon. Le .aimodel exporté s’exécute sur iOS 27 et macOS 27. Les SDK iOS et Flutter d’Ultralytics ne chargent pas encore les ressources .aimodel — utilise Core ML pour ces plateformes.

Core AI est le nouveau framework d’Apple pour exécuter directement des réseaux neuronaux sur Apple silicon. Il introduit le format de modèle .aimodel, une API d’inférence Swift moderne, des outils de conversion basés sur PyTorch, la compilation ahead-of-time, la spécialisation des modèles, ainsi que des outils dédiés de débogage et de profilage.

Apple décrit Core AI comme la prochaine évolution de l’exécution de l’IA sur l’appareil et comme le framework d’inférence utilisé par Apple Intelligence sur l’appareil. Il est conçu pour les architectures de réseaux neuronaux actuelles, des modèles de vision compacts aux grands modèles génératifs, et peut répartir les tâches entre le CPU, le GPU et le Neural Engine Apple (ANE).

Core AI est une nouvelle voie de déploiement, et non un nouveau nom pour Core ML. Les frameworks utilisent des formats de modèles, des outils de conversion, des API d’exécution et des schémas d’intégration aux applications différents.

Comparaison entre Core AI et Core ML#

CapacitéCore AICore ML
Artefact du modèle.aimodel.mlpackage ou .mlmodel
Export UltralyticsDisponible avec format=coreaiDisponible avec format=coreml
API d’exécution AppleAIModel, InferenceFunction et NDArrayMLModel, souvent via VNCoreMLModel et VNCoreMLRequest
Workflow de conversionPyTorch torch.export vers coreai-torchConversion TorchScript via coremltools
Domaine principalRéseaux neuronaux modernes et IA générativeDéploiement général de modèles de machine learning, y compris les modèles neuronaux et non neuronaux
Intégration des imagesLes applications préparent des tenseurs ou utilisent les descripteurs et buffers d’images de Core AIIntégration directe avec le framework Vision pour la mise à l’échelle, l’orientation et les requêtes d’images
MatérielCPU, GPU et Neural Engine AppleCPU, GPU et Neural Engine Apple
Préparation du modèleSpécialisation lors de l’installation ou de la première utilisation, avec compilation ahead-of-time facultativeCompilation du modèle avec Xcode ou sur l’appareil
Opérations personnaliséesLowerings Core AI personnalisés et kernels MetalCouches personnalisées Core ML et opérations MIL prises en charge
Disponibilité pour le déploiementNouvelle génération de systèmes d’exploitation Apple ; actuellement en bêtaPrise en charge étendue sur les systèmes d’exploitation Apple existants
SDK iOS et Flutter d’UltralyticsPas encore pris en chargeEntièrement pris en charge

Core ML reste le choix approprié lorsqu’une application a besoin d’une large couverture d’appareils, de l’intégration au framework Vision ou de types de modèles tels que les arbres de décision et les pipelines tabulaires. Apple continue de prendre en charge Core ML et y oriente les développeurs utilisant des types de modèles non neuronaux.

Fonctionnement du format Core AI#

Le workflow de création Core AI commence avec un modèle PyTorch :

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

Le package coreai-torch d’Apple convertit un torch.export.ExportedProgram en abaissant les opérations PyTorch ATen vers des opérations Core AI. Les opérations non prises en charge peuvent être implémentées avec un lowering personnalisé ou un kernel Metal personnalisé.

Le .aimodel obtenu est un artefact de modèle non spécialisé. Lorsqu’une application prépare le modèle, Core AI le spécialise pour l’appareil cible. Les applications peuvent laisser cette opération se produire lors de la première utilisation, demander la spécialisation plus tôt ou distribuer un modèle compilé ahead-of-time afin de réduire le temps de chargement initial.

En Swift, les applications chargent l’artefact avec le framework Core AI, sélectionnent une fonction d’inférence, fournissent des entrées NDArray typées et reçoivent des sorties nommées. Cette approche diffère de l encapsulation d’un modèle Core ML dans une requête Vision ; adopter Core AI nécessite donc un runtime applicatif conçu pour les artefacts .aimodel.

Pour les détails d’implémentation, consulte la documentation Apple consacrée à AIModel, à la spécialisation et à la mise en cache des modèles, ainsi qu’à la compilation ahead-of-time.

Exporter des modèles YOLO26 vers Core AI#

Exemple
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")

Pour voir la liste complète des arguments, consulte le mode Export. Le graphe est statique : il est tracé à la taille imgsz fournie à export, alors effectue les prédictions avec cette même taille. Les métadonnées Ultralytics sont intégrées dans le propre metadata.json de l’artefact ; les noms de classes, le stride et la tâche sont donc conservés lors de l’aller-retour.

Choix de la tête#

Avec nms=False, YOLO26 exporte sa tête de bout en bout, qui sélectionne les détections dans le graphe. Core AI ne possède aucune primitive top-k, de sorte que cette sélection se traduit par un tri complet et se voit facturer un coût fixe à la frontière de la partition Neural Engine d'Apple — environ 1,7 ms, indépendamment de max_det. L'exportation avec nms=None émet plutôt les prédictions brutes (1, 84, 8400) et laisse la suppression des non-maximums au prédicteur :

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

Sur un iPhone 17 Pro exécutant iOS 27.0, YOLO26n à 640 mesure 3,01 ms avec la tête dans le graphe et 1,28 ms sans elle (FP16, compilé en amont, trois blocs entrelacés de 50 itérations). Les deux effectuent un aller-retour via YOLO(...) pour l'inférence. Utilise nms=False lorsqu'un seul appel de graphe doit renvoyer des détections terminées, ou conserve la valeur par défaut nms=None pour une NMS externe.

Sur iOS 27 ou macOS 27, une application chargerait et exécuterait ensuite l’artefact exporté via l’API Swift Core AI d’Apple. Les artefacts exportés utilisent le point d’entrée main, acceptent une seule entrée images de forme [batch, 3, imgsz, imgsz] et renvoient 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])

Contrairement au workflow Core ML et Vision actuel, la future voie Core AI devra définir le prétraitement des images, la construction de NDArray, les métadonnées du modèle et le décodage des sorties dans le SDK iOS Ultralytics. Apple fournit les détails actuels de l’API dans la documentation du framework Core AI et des exemples de modèles fonctionnels dans le dépôt de modèles Core AI.

Avantages de Core AI#

Core AI offre plusieurs avantages prometteurs pour les futurs déploiements Ultralytics :

  • Voie d’export PyTorch moderne : la conversion commence à partir de torch.export, ce qui préserve un graphe PyTorch plus expressif que le workflow de traçage utilisé par de nombreux exportateurs existants.
  • Contrôle précis du runtime : les applications peuvent gérer la spécialisation, les caches de modèles compilés, les fonctions d’inférence, la mémoire et le placement des calculs.
  • Prise en charge avancée des modèles : l’exécution avec état, les formes dynamiques, plusieurs fonctions dans un même artefact et les kernels Metal personnalisés sont conçus pour les architectures modernes de vision et les architectures génératives.
  • Outils dédiés aux développeurs : le Core AI Debugger peut inspecter les graphes et les valeurs des tenseurs, puis les faire remonter jusqu’au code Python d’origine. Xcode et Instruments fournissent le profilage du runtime.
  • Possibilités de copie nulle : Core AI expose des contrôles du stockage et des buffers destinés à réduire les copies entre les flux de la caméra, des graphismes et de l’inférence.
  • Optimisation pour Apple silicon : la spécialisation de l’appareil permet à Apple d’optimiser un modèle pour le CPU, le GPU et le Neural Engine disponibles sur l’appareil concerné.
  • Compression flexible : les outils Core AI Optimization d’Apple prennent en charge la quantification, la palettisation et l’élagage, y compris les formats de poids à faible nombre de bits.

Ces fonctionnalités pourraient être particulièrement utiles pour les futurs modèles YOLO dotés d’une exécution dynamique, de composants multimodaux plus importants ou d’opérations personnalisées qui ne correspondent pas correctement aux opérations Core ML existantes.

Inconvénients et limites actuels#

Core AI ne remplace pas actuellement la voie Core ML destinée à la production :

  • Nouveaux systèmes d’exploitation requis : le framework public cible la génération iOS 27 et macOS 27, tandis que Core ML prend en charge une base installée bien plus large.
  • Logiciel en bêta : le framework Core AI d’Apple et certaines parties de sa chaîne d’outils Python sont encore préliminaires et peuvent changer avant leurs versions stables.
  • Environnement d’export plus limité : coreai-torch nécessite actuellement Python 3.11 ou une version ultérieure, mais antérieure à 3.14, ainsi que des versions récentes de PyTorch, ce qui est bien plus restrictif que la plage de versions Python et PyTorch prise en charge par Ultralytics.
  • L’export s’exécute uniquement sur macOS : coreai-core publie uniquement des wheels macosx_26_0_arm64, donc format=coreai nécessite un Mac Apple silicon sous macOS 26 ou version ultérieure.
  • Pas encore de runtime applicatif Ultralytics : l’application YOLO iOS officielle et le plugin Flutter chargent actuellement les artefacts Core ML via MLModel et Vision.
  • Migration de l’application nécessaire : un .aimodel ne peut pas remplacer un .mlpackage ; le chargement du modèle, le prétraitement, les appels d’inférence, la gestion des métadonnées et le décodage des sorties nécessitent une implémentation Core AI.
  • Peu de données en production : les performances, la consommation d’énergie, le temps de spécialisation lors de la première exécution, la précision et la compression doivent être validés sur la matrice de tâches YOLO et d’appareils prise en charge.
  • Pipeline sans NMS : Core ML peut empaqueter une étape NMS pour les anciens modèles de détection YOLO. Core AI exporte par défaut des prédictions brutes one-to-many ; utilise nms=False pour la tête sans NMS de YOLO26. La NMS intégrée (nms=True) et dynamic=True ne sont pas prises en charge. coreai-torch ne comporte aucune conversion pour torchvision::nms, de sorte que la NMS reste sur l'hôte.
  • Taille d’entrée fixe : le graphe exporté est tracé à une seule valeur imgsz et ne possède pas de formes dynamiques ; effectue donc les prédictions avec la taille utilisée pour l’export.
  • Les artefacts FP16 peuvent échouer au chargement : certains artefacts FP16 .aimodel ne parviennent pas à charger leur programme Neural Engine Apple et MPSGraph déclenche une assertion échouée, ce qui met fin au processus au lieu d’effectuer une solution de repli. Cela se produit dans le runtime d’Apple, avant l’exécution de tout code Ultralytics, et le même artefact se charge avec une spécialisation limitée au CPU. Préfère FP32 jusqu’à la correction du problème en amont.

Quel format Apple dois-tu utiliser ?#

Utilise Core ML aujourd’hui lorsque tu as besoin des éléments suivants :

  • Déploiement sur les systèmes d’exploitation Apple actuels et plus anciens
  • Intégration avec le SDK iOS ou Flutter d’Ultralytics
  • Gestion des images avec le framework Vision
  • Déploiement YOLO FP16 et INT8 testé
  • Suppression non maximale intégrée pour les anciens modèles de détection compatibles

Évalue Core AI lorsque tu peux exiger iOS 27 ou macOS 27 et que tu as besoin des éléments suivants :

  • Le runtime de réseaux neuronaux Apple sur appareil le plus récent
  • D’une spécialisation et d’une gestion explicites des caches
  • D’une exécution avancée de modèles dynamiques ou avec état
  • D’opérations Core AI personnalisées ou de kernels Metal
  • D’un débogage détaillé des graphes Core AI et d’un profilage du runtime

Core ML et Core AI devraient coexister pendant la transition des applications. Prendre en charge Core AI ne supprime pas immédiatement le besoin de Core ML, car leurs cibles de déploiement et leurs contrats applicatifs diffèrent.

Feuille de route Ultralytics#

La cible d’export dédiée coreai est implémentée : l’export et la validation numérique couvrent les modèles de tâches YOLO26 pris en charge et s’exécutent en continu dans la CI Ultralytics sur macOS 26 ; la latence FP16 est mesurée sur l’appareil. Voici les éléments restants de la feuille de route avant que Core AI n’atteigne la parité avec la voie Core ML :

  1. Chargement des modèles Core AI et prétraitement dans le SDK iOS Ultralytics.
  2. Intégration Flutter et stratégie de compatibilité pour les appareils utilisant une version antérieure à iOS 27.
  3. Versions stables du framework Apple et des outils de conversion (la génération iOS 27 et macOS 27 est actuellement en bêta).
  4. Benchmarks de mémoire, de consommation d’énergie et de spécialisation sur la matrice d’appareils prise en charge.

Core ML reste la cible recommandée pour les applications qui nécessitent le SDK iOS ou Flutter d’Ultralytics, ou une prise en charge antérieure à iOS 27 ; consulte la feuille de route Ultralytics et les notes de version pour suivre les éléments restants.

Ressources supplémentaires#

FAQ#

  • Oui. Exporte avec model.export(format="coreai") ou yolo export format=coreai sur un Mac Apple Silicon exécutant macOS 26 ou une version ultérieure ; le .aimodel exporté s’exécute sur iOS 27 et macOS 27. Pour les SDK iOS et Flutter d’Ultralytics, ainsi que pour les systèmes d’exploitation antérieurs à cette génération, exporte des fichiers Core ML .mlpackage avec format="coreml".

  • Pas immédiatement. Core AI est la nouvelle voie d’Apple pour les réseaux neuronaux modernes, tandis que Core ML reste pris en charge et offre une compatibilité plus étendue avec les systèmes d’exploitation, une intégration avec Vision et la prise en charge des modèles non neuronaux.

  • Non. Ils contiennent des représentations de modèles différentes et sont chargés par des frameworks différents. La conversion doit commencer à partir du modèle source via la chaîne d’outils Apple appropriée.

  • L’intégration initiale devrait coexister avec Core ML. Toute décision future de remplacement dépendra de l’adoption par les systèmes d’exploitation, de la stabilité des outils, des performances et de la prise en charge ultérieure d’iOS et de Flutter.

Contributeurs
GLglenn-jocher3DADaisuke Majima1

Commentaires