Intégration d’Apple Core AI#
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 AI | Core ML |
|---|---|---|
| Artefact du modèle | .aimodel | .mlpackage ou .mlmodel |
| Export Ultralytics | Disponible avec format=coreai | Disponible avec format=coreml |
| API d’exécution Apple | AIModel, InferenceFunction et NDArray | MLModel, souvent via VNCoreMLModel et VNCoreMLRequest |
| Workflow de conversion | PyTorch torch.export vers coreai-torch | Conversion TorchScript via coremltools |
| Domaine principal | Réseaux neuronaux modernes et IA générative | Déploiement général de modèles de machine learning, y compris les modèles neuronaux et non neuronaux |
| Intégration des images | Les applications préparent des tenseurs ou utilisent les descripteurs et buffers d’images de Core AI | Intégration directe avec le framework Vision pour la mise à l’échelle, l’orientation et les requêtes d’images |
| Matériel | CPU, GPU et Neural Engine Apple | CPU, GPU et Neural Engine Apple |
| Préparation du modèle | Spécialisation lors de l’installation ou de la première utilisation, avec compilation ahead-of-time facultative | Compilation du modèle avec Xcode ou sur l’appareil |
| Opérations personnalisées | Lowerings Core AI personnalisés et kernels Metal | Couches personnalisées Core ML et opérations MIL prises en charge |
| Disponibilité pour le déploiement | Nouvelle génération de systèmes d’exploitation Apple ; actuellement en bêta | Prise en charge étendue sur les systèmes d’exploitation Apple existants |
| SDK iOS et Flutter d’Ultralytics | Pas encore pris en charge | Entiè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 executableLe 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#
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=16Sur 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-torchné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-corepublie uniquement des wheelsmacosx_26_0_arm64, doncformat=coreainé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
MLModelet Vision. - Migration de l’application nécessaire : un
.aimodelne 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=Falsepour la tête sans NMS de YOLO26. La NMS intégrée (nms=True) etdynamic=Truene sont pas prises en charge.coreai-torchne comporte aucune conversion pourtorchvision::nms, de sorte que la NMS reste sur l'hôte. - Taille d’entrée fixe : le graphe exporté est tracé à une seule valeur
imgszet 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
.aimodelne 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 :
- Chargement des modèles Core AI et prétraitement dans le SDK iOS Ultralytics.
- Intégration Flutter et stratégie de compatibilité pour les appareils utilisant une version antérieure à iOS 27.
- Versions stables du framework Apple et des outils de conversion (la génération iOS 27 et macOS 27 est actuellement en bêta).
- 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#
- Présentation d’Apple Core AI
- Documentation du framework Core AI
- Extensions Core AI pour PyTorch
- Core AI Optimization
- Dépôt de modèles Apple Core AI
- Intégration Ultralytics Core ML
FAQ#
Oui. Exporte avec
model.export(format="coreai")ouyolo export format=coreaisur un Mac Apple Silicon exécutant macOS 26 ou une version ultérieure ; le.aimodelexporté 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.mlpackageavecformat="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.