Core ML — définition, modèle d'apprentissage automatique et fonctionnement sous iOS

Auteur : IT Sectr Publié le : 2026-03-26 Temps de lecture : 8 min

Core ML — un framework d'apprentissage automatique d'Apple, optimisé pour exécuter des modèles ML directement sur les appareils iOS, macOS, watchOS et tvOS. Contrairement aux services ML cloud, Core ML utilise les accélérateurs matériels d'Apple : Neural Engine, GPU et CPU, garantissant une latence minimale lors du traitement des données. Selon Apple Core ML Documentation (2026), le framework prend en charge les modèles PyTorch, TensorFlow et Create ML au format unifié .mlpackage avec un temps d'inférence moyen de 5–50 ms.

Points Clés

  • Core ML — le framework d'Apple pour l'apprentissage automatique sur appareil sur toutes les plateformes de l'écosystème
  • Apple Neural Engine (ANE) fournit une accélération matérielle pour les réseaux de neurones avec des performances allant jusqu'à 11 TOPS
  • Le format .mlpackage combine modèle, métadonnées et configuration dans un conteneur pratique
  • La conversion de modèles depuis PyTorch et TensorFlow s'effectue via l'outil Python coremltools
  • L'intégration avec Vision et Natural Language permet de créer des pipelines ML complexes

Qu'est-ce que Core ML ?

Core ML est un framework d'apprentissage automatique présenté par Apple à la WWDC 2017 dans le cadre de l'écosystème de développement pour iPhone, iPad, Mac, Apple Watch et Apple TV. Core ML fournit un environnement d'exécution pour exécuter des modèles ML sur l'appareil, en abstraisant le développeur des détails d'optimisation matérielle. Le framework sélectionne automatiquement le meilleur moteur de calcul — Neural Engine sur les puces A12+, GPU ou CPU — pour chaque opération du modèle.

L'avantage clé de Core ML est l'intégration profonde avec Apple Silicon. Les opérations de réseaux de neurones sont exécutées sur le Neural Engine dédié, qui ne sollicite pas les cœurs principaux du processeur. Selon Apple (WWDC 2025), les modèles Core ML fonctionnent 6 fois plus rapidement que TensorFlow Lite sur des appareils Android similaires.

Fonctionnalités principales

Core ML prend en charge un large éventail de tâches d'apprentissage automatique : classification d'images, détection d'objets, segmentation sémantique, traitement du langage naturel, analyse audio et données tabulaires. Le framework fonctionne avec différents types de modèles : réseaux de neurones (convolutifs, récurrents, transformeurs), ensembles d'arbres, régressions linéaires et processus gaussiens.

Comment fonctionne Core ML

Core ML prend un modèle entraîné au format .mlpackage, le compile en code machine optimisé pour l'appareil spécifique et exécute l'inférence via une API unifiée. L'ensemble du pipeline — du chargement du modèle à l'obtention du résultat — nécessite 3–5 lignes de code Swift.

Format de modèle .mlpackage

.mlpackage est un format conteneur introduit par Apple en 2020 pour remplacer l'ancien .mlmodel. Le paquet est un répertoire contenant un manifeste JSON, un fichier de modèle au format binaire MLProgram, des métadonnées (auteur, version, description) et des ressources comme les étiquettes de classes. Selon Apple, .mlpackage réduit la taille du modèle de 30–50% par rapport à .mlmodel grâce à l'optimisation des poids.

Apple Neural Engine

Apple Neural Engine (ANE) est un neuroprocesseur dédié intégré aux puces Apple depuis l'A12 Bionic (2018). L'ANE traite les opérations matricielles des dizaines de fois plus efficacement que le CPU avec la même consommation d'énergie. Les performances de l'ANE sont passées de 5 TOPS sur l'A12 à 35 TOPS sur le M4 Ultra (2025), permettant d'exécuter des modèles avec des milliards de paramètres. L'ANE est utilisé automatiquement pour tous les modèles Core ML avec une architecture de réseaux de neurones.

Une fonctionnalité importante de Core ML est la prise en charge de la quantification des modèles en FP16 et INT8 sans perte de précision. La quantification réduit la taille du modèle de 2 à 4 fois et accélère l'inférence de 40 à 60% sur l'ANE. Apple fournit l'outil Xcode Model Quantization pour la sélection automatique de la précision optimale : le développeur charge un modèle, spécifie la perte de qualité acceptable (généralement 0.1–0.5%), et Xcode sélectionne le meilleur format de représentation des poids.

Comparaison des performances de Core ML

PuceTOPS (ANE)Inférence ResNet-50Année
A12 Bionic518 ms2018
A14 Bionic119 ms2020
M1 Max224 ms2021
M4 Ultra352 ms2025

Convertir des modèles en Core ML

La plupart des modèles ML sont créés dans PyTorch ou TensorFlow et nécessitent une conversion au format .mlpackage pour être utilisés dans Core ML. Apple fournit l'utilitaire coremltools — un paquet Python pour convertir, optimiser et valider les modèles.

Outil coremltools

coremltools est l'utilitaire officiel d'Apple pour convertir les modèles ML. Il prend en charge l'importation depuis PyTorch (via torch.onnx ou directement), TensorFlow (SavedModel, H5, Frozen Graph) et ONNX. Après conversion, la quantification FP16 ou INT8 peut être activée, réduisant la taille du modèle de 2 à 4 fois sans perte significative de précision.

Exemple de conversion depuis PyTorch

Examinons la conversion d'un modèle PyTorch entraîné au format Core ML en utilisant coremltools version 8.0. Le processus nécessite 2–3 étapes en Python.

python
import torch
import coremltools as ct

# Chargement du modèle PyTorch entraîné
model = torch.load('model.pth')
model.eval()

# Tracing du modèle avec une entrée exemple
example_input = torch.randn(1, 3, 224, 224)
traced_model = torch.jit.trace(model, example_input)

# Conversion en Core ML .mlpackage
mlmodel = ct.convert(
    traced_model,
    convert_to='mlprogram',
    inputs=[ct.TensorType(shape=(1, 3, 224, 224))]
)
mlmodel.save('Model.mlpackage')

Le code charge le modèle PyTorch entraîné, effectue le tracing JIT avec une entrée exemple et le convertit au format mlprogram (format binaire Core ML). Le .mlpackage résultant peut être glissé dans Xcode et utilisé immédiatement dans du code Swift.

Intégrer Core ML dans une app iOS

Après la conversion du modèle, son intégration dans une app iOS en Swift se fait en quelques lignes. Xcode génère automatiquement une classe Swift pour le modèle basée sur les métadonnées .mlpackage.

Exemple de code Swift

Examinons un exemple de classification d'images en utilisant Core ML et le framework Vision. Vision transforme automatiquement l'image à la taille et au format de pixels requis.

swift
import CoreML
import Vision

// Chargement du modèle Core ML
guard let model = try? VNCoreMLModel(
    for: MobileNetV2.configuration.model
) else { return }

// Création de VNCoreMLRequest
let request = VNCoreMLRequest(model: model) { request, error in
    guard let results = request.results
        as? [VNClassificationObservation]
    else { return }

    // Affichage des top-3 prédictions
    for result in results.prefix(3) {
        print("\(result.identifier):
              \(result.confidence)")
    }
}

// Démarrage du traitement d'image
let handler = VNImageRequestHandler(
    url: imageURL
)
try? handler.perform([request])

Le code Swift charge le modèle MobileNetV2 via le framework Vision, crée une requête de classification et traite le résultat — un tableau d'objets VNClassificationObservation avec des étiquettes de classe et des pourcentages de confiance. L'ensemble du pipeline, du chargement à la sortie du résultat, prend 5–50 ms selon le modèle.

Pour optimiser le temps de démarrage, Core ML compile le modèle lors de la première utilisation. La précompilation réduit le démarrage à froid de 2–3 secondes à 100–200 ms. Il est recommandé de compiler le modèle au moment de la construction dans Xcode, plutôt qu'au premier lancement de l'application. Ceci est particulièrement important pour les applications avec plusieurs modèles ML — par exemple, détection d'objets + classification + NLP.

Core ML vs ML Kit

Core ML et ML Kit résolvent des tâches ML similaires sur appareil, mais ciblent des écosystèmes différents. Core ML est profondément intégré à Apple Silicon et ne prend en charge que les plateformes Apple. ML Kit de Google est une solution multiplateforme pour Android et iOS.

CaractéristiqueCore MLML Kit
PlateformesiOS, macOS, watchOS, tvOSAndroid, iOS
API intégréesVia Vision, Natural Language15+ API intégrées
Modèles personnalisés.mlpackage (PyTorch, TF)TFLite (via adaptateur)
Accélération matérielleANE, GPU, CPUGPU (Android), CPU
Facilité de démarrageNécessite conversion du modèleAPI prêtes sans Data Science
Performances2–50 ms (ANE)80–200 ms (CPU/GPU)

Choisissez Core ML si votre écosystème est exclusivement Apple et que vous avez besoin de performances maximales via l'ANE. Si vous avez besoin de compatibilité multiplateforme ou d'API prêtes à l'emploi sans conversion, ML Kit sera plus pratique.

Dans la pratique, de nombreux projets utilisent les deux frameworks : iOS Core ML pour des performances élevées, et ML Kit ou TensorFlow Lite sur Android. Un modèle PyTorch unifié est converti en .mlpackage pour Apple et en .tflite pour Android, ce qui permet de maintenir la même qualité de fonctionnalités ML sur les deux plateformes. Cette approche nécessite un peu plus d'efforts DevOps mais offre une couverture maximale de l'audience.

Lors du choix entre Core ML et les alternatives, tenez compte du coût de développement : Core ML nécessite moins de code d'intégration (3–5 lignes de Swift contre 15–20 lignes avec TFLite), mais nécessite un Mac et Xcode pour la compilation. ML Kit, en revanche, fonctionne sur n'importe quelle plateforme mais offre des performances moindres sur iOS en raison de l'absence d'accès à l'Apple Neural Engine.

Foire aux questions

Quelles sont les exigences minimales pour Core ML ?

iOS 11+ pour les modèles de base, iOS 14+ pour le format .mlpackage. Apple Neural Engine nécessite une puce A12 Bionic ou plus récente. Core ML prend en charge tous les iPhone, iPad et Mac depuis 2017.

Puis-je utiliser Core ML avec TensorFlow ?

Oui, via l'outil coremltools. Les modèles TensorFlow sont convertis en .mlpackage avec une précision préservée. Les formats pris en charge incluent TensorFlow 2.x, SavedModel, H5 et Frozen Graph.

En quoi .mlpackage diffère-t-il de .mlmodel ?

.mlpackage est un format conteneur moderne, structuré comme un répertoire avec des métadonnées, un fichier binaire MLProgram et des ressources. Il est 2 à 3 fois plus compact que l'ancien .mlmodel et prend en charge la quantification.

Comment Core ML gère-t-il la confidentialité des données ?

Tous les calculs sont effectués strictement sur l'appareil. Core ML n'envoie pas de données aux serveurs Apple. Le framework fonctionne en mode avion et ne nécessite pas de connexion Internet pour l'inférence.

Quels langages de programmation Core ML prend-il en charge ?

Swift est le langage principal pour intégrer Core ML dans les apps iOS/macOS. Python est utilisé pour la conversion de modèles via coremltools. Objective-C est également pris en charge pour la rétrocompatibilité.

Résumé

  • Core ML — le framework d'Apple pour le ML sur appareil sur toutes les plateformes de l'écosystème avec prise en charge d'Apple Neural Engine
  • .mlpackage — un format conteneur moderne combinant modèle, métadonnées et ressources dans un seul paquet
  • Apple Neural Engine fournit une accélération matérielle pour les réseaux de neurones avec des performances allant jusqu'à 35 TOPS sur M4 Ultra
  • coremltools permet la conversion de modèles depuis PyTorch, TensorFlow et ONNX en trois étapes avec Python
  • L'intégration via le framework Vision nécessite 5–10 lignes de code Swift pour exécuter un modèle sur une image
  • Les performances d'inférence varient de 2 à 50 ms selon le modèle et la puce
  • Confidentialité des données — tous les calculs sont strictement locaux, sans envoi de données aux serveurs

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi