Core ML : Le Guide Complet du Machine Learning On-Device

Publié le · 1 h 9 min

Wlad
Wlad
Fondateur & CEO

Maîtrisez Core ML de A à Z : architecture, Create ML, conversion de modèles PyTorch/TensorFlow, intégration Vision et Natural Language, optimisation performance, et cas d'usage avancés pour iOS 26.

Core ML - Guide complet du Machine Learning On-Device
Le Machine Learning on-device avec Core ML, Vision et Foundation Models

Environnement de test

Cet article a été rédigé et validé avec l'environnement suivant :

    • Xcode 26
    • Swift 6.2
    • iOS 26.2 sur iPhone 15 Pro
    • macOS Tahoe 26 sur MacBook Pro M4 Max

Introduction au Machine Learning On-Device

Le Machine Learning on-device représente une révolution dans la façon dont nous concevons les applications mobiles. Plutôt que d'envoyer des données vers des serveurs distants pour traitement, les modèles s'exécutent directement sur l'appareil de l'utilisateur.

Pourquoi le ML On-Device ?

Quatre avantages majeurs justifient cette approche :

Privacy by Design : Les données ne quittent jamais l'appareil. Pour des applications manipulant des informations sensibles (santé, finances, données biométriques), c'est un argument décisif. Aucune donnée ne transite par des serveurs tiers, éliminant les risques de fuite.

Latence minimale : Sans aller-retour réseau, l'inférence s'exécute en quelques millisecondes. Pour des applications temps réel comme la détection d'objets en réalité augmentée ou l'analyse vocale, cette réactivité est cruciale.

Fonctionnement offline : L'application reste pleinement fonctionnelle sans connexion internet. Que l'utilisateur soit dans un avion, un tunnel ou une zone blanche, le ML continue de fonctionner.

Réduction des coûts : Pas de serveurs d'inférence à maintenir, pas de bande passante à payer. Le coût marginal par utilisateur devient quasi nul une fois l'application déployée.

L'avantage des puces Apple Silicon

Apple a conçu son hardware pour le ML on-device. Chaque appareil moderne dispose de trois unités de calcul optimisées :

Le Neural Engine (ANE) est le composant clé. Sur les puces M4, il atteint 38 TOPS (trillions d'opérations par seconde). Pour les modèles optimisés, l'ANE offre le meilleur ratio performance/consommation énergétique.

Le GPU excelle pour les opérations matricielles massives et les modèles très larges. Il reste pertinent pour les LLM et les modèles de diffusion comme Stable Diffusion.

Le CPU sert de fallback universel et gère efficacement les petits modèles ou les opérations non supportées par l'ANE.

Architecture Core ML - Neural Engine, GPU, CPU
Core ML distribue automatiquement les calculs entre Neural Engine, GPU et CPU

Écosystème Apple : CoreML vs Foundation Models vs Create ML

Apple propose plusieurs frameworks complémentaires. Voici comment choisir :

FrameworkUsage principalQuand l'utiliser

Core ML

Exécution de modèles ML

Modèles custom, vision, son, prédiction

Foundation Models

LLM on-device d'Apple

Génération de texte, résumé, analyse sémantique

Create ML

Entraînement de modèles

Création de classifieurs, détecteurs sans code Python

Vision

Analyse d'images

Détection visages, texte, objets, poses

Natural Language

Analyse de texte

Sentiment, entités, classification texte

Speech

Reconnaissance vocale

Transcription, commandes vocales

Arbre de décision : quel framework choisir ?

Arbre de décision - Quel framework ML choisir
Guide visuel pour choisir le bon framework ML selon votre cas d'usage

Architecture Core ML

Core ML est le moteur d'inférence unifié d'Apple. Il abstrait la complexité du hardware et optimise automatiquement l'exécution des modèles.

Structure d'un modèle Core ML

Un modèle Core ML existe sous deux formats :

.mlmodel : Format legacy, compilation à l'exécution. Encore supporté mais déprécié pour les nouveaux projets.

.mlpackage : Format moderne (iOS 15+). Package contenant le modèle optimisé, les métadonnées, et les assets. Compilation anticipée possible.

MLModel : le cœur du framework

MLModel encapsule toutes les informations et fonctionnalités du modèle :

MLFeatureProvider : gestion des entrées/sorties

Les données transitent via le protocole MLFeatureProvider. Vous pouvez utiliser les implémentations standard ou créer la vôtre :

MLPredictionOptions : contrôle fin de l'inférence

Compute Units et stratégies de déploiement

Le choix des compute units impacte directement les performances :

Nouveautés iOS 26 pour Core ML

iOS 26 apporte plusieurs améliorations significatives :

MLTensor : Nouveau type pour simplifier le code de "stitching" entre modèles. Plus besoin de manipuler manuellement les MLMultiArray.

Stateful Models : Support amélioré pour les modèles avec état interne (KV-cache pour LLM).

Performance optimizations : Améliorations automatiques sur iOS 26, sans modification de code.

Create ML : entraînement sans code Python

Create ML est l'outil Apple pour créer des modèles Core ML sans écrire de code Python. Disponible comme application macOS et comme framework Swift.

Create ML App : l'interface graphique

L'application Create ML (incluse avec Xcode) permet d'entraîner visuellement :

    • Ouvrez Create ML depuis Xcode → Open Developer Tool → Create ML
    • Créez un nouveau projet selon le type de tâche
    • Importez vos données d'entraînement
    • Entraînez et évaluez le modèle
    • Exportez au format .mlmodel ou .mlpackage

Types de tâches supportées

Create ML couvre un large spectre de tâches ML :

TâcheDescriptionDonnées requises

Image Classification

Catégoriser des images

Dossiers d'images par classe

Object Detection

Détecter et localiser des objets

Images + annotations JSON

Style Transfer

Appliquer un style artistique

Image de style + images de contenu

Text Classification

Catégoriser du texte

Fichier CSV/JSON texte + label

Word Tagging

Annoter des mots

Texte + annotations par mot

Tabular Classification

Classifier des données tabulaires

CSV avec features + label

Tabular Regression

Prédire une valeur numérique

CSV avec features + target

Recommendation

Suggérer des items

Interactions utilisateur-item

Sound Classification

Classifier des sons

Fichiers audio par classe

Activity Classification

Classifier des mouvements

Données capteurs + labels

Entraînement programmatique avec CreateML framework

Pour plus de contrôle, utilisez le framework CreateML :

Classification de texte

Détection d'objets

Conseils pour l'entraînement sur M4 Max

L'Apple Silicon M4 Max est idéal pour l'entraînement local :

    • Mémoire unifiée : Les 128 Go de RAM partagés entre CPU et GPU permettent d'entraîner des modèles volumineux sans pagination.
    • Neural Engine : Utilisé pour l'inférence durant la validation, accélérant le feedback loop.
    • Optimisation thermique : Pour les entraînements longs, surveillez la température avec :
    • Batch size : Sur M4 Max avec 128 Go, vous pouvez augmenter le batch size pour accélérer l'entraînement :

Import de modèles externes

La plupart des modèles ML sont entraînés en Python avec PyTorch ou TensorFlow. Core ML Tools permet de les convertir au format Core ML.

Installation de coremltools

Conversion depuis PyTorch

PyTorch est le framework le plus utilisé. La conversion s'effectue en deux étapes : traçage du modèle puis conversion.

Conversion depuis TensorFlow/Keras

“Note de compatibilité : coremltools 9.0 est officiellement testé avec TensorFlow 2.12. Les versions récentes (2.15+) présentent des incompatibilités. Recommandation : privilégiez PyTorch ou passez par ONNX pour les modèles TensorFlow récents.”

Alternative via ONNX (pour TensorFlow 2.15+) :

Conversion depuis ONNX

ONNX (Open Neural Network Exchange) est un format intermédiaire supporté par de nombreux frameworks.

Exemple avec un modèle Hugging Face

Convertissons un modèle populaire de classification d'images depuis Hugging Face :

Bonnes pratiques et pièges courants

1. Toujours mettre le modèle en mode évaluation

2. Gérer les sorties multiples (dictionnaires)

3. Attention aux opérations non supportées

Certaines opérations PyTorch n'ont pas d'équivalent Core ML. Utilisez les composite ops :

4. Vérifier la précision après conversion

Vision Framework + Core ML

Le framework Vision simplifie l'utilisation de Core ML pour l'analyse d'images. Il gère automatiquement le preprocessing et le postprocessing.

VNImageRequestHandler et VNCoreMLRequest

Détection d'objets avec Vision

Reconnaissance de texte (OCR) intégrée

Vision inclut un puissant moteur OCR sans nécessiter de modèle externe :

Détection de visages et points de repère

“Note privacy : Cette détection de visages peut être combinée avec CryptoKit pour anonymiser automatiquement les zones sensibles avant tout traitement ML. Les coordonnées sont hashées et les zones floutées, garantissant la conformité RGPD.”
Pipeline d'anonymisation Privacy-First avec Core ML et CryptoKit
Pipeline ML conforme RGPD : détection Vision → anonymisation CryptoKit → analyse Core ML

Natural Language + Core ML

Le framework Natural Language offre des capacités NLP avancées, utilisables seules ou avec des modèles Core ML custom.

NLModel pour classification de texte

Analyse de sentiment native

Named Entity Recognition (NER)

Tokenisation et analyse linguistique

Speech + Core ML

Le framework Speech permet la reconnaissance vocale on-device, combinable avec Core ML pour des pipelines avancés.

Reconnaissance vocale on-device

Combinaison Speech + Natural Language

Un exemple pratique : transcrire puis analyser le sentiment d'un message vocal.

Optimisation et performance

L'optimisation des modèles Core ML est cruciale pour offrir une expérience utilisateur fluide tout en préservant la batterie.

Quantization : réduire la taille du modèle

La quantization réduit la précision des poids du modèle, diminuant drastiquement la taille et accélérant l'inférence.

Palettization : compression avancée

La palettization (iOS 17+) remplace les poids par des index vers une table de couleurs, similaire à la compression d'images.

Pruning : élagage des poids

Le pruning met à zéro les poids peu significatifs, permettant une compression supplémentaire.

Combinaison des techniques (iOS 18+)

iOS 18 permet de combiner pruning et quantization/palettization pour une compression maximale :

Benchmarking avec Instruments

Xcode Instruments permet de profiler précisément l'exécution des modèles Core ML.

Profiling sur device vs simulateur

Le simulateur ne représente pas fidèlement les performances réelles :

Trade-off : taille vs précision vs latence

Voici un guide pour choisir la bonne stratégie d'optimisation :

PrioritéTechnique recommandéeImpact

Taille minimale

Quantization 4-bit + Pruning 50%

-90% taille, -15% précision

Latence minimale

Quantization 8-bit + Neural Engine

-5% précision, 2-3x plus rapide

Précision maximale

FP16 uniquement

-50% taille, précision identique

Équilibré

Quantization 8-bit

-75% taille, -2% précision

On-device training

Core ML permet d'entraîner et personnaliser des modèles directement sur l'appareil, sans envoyer de données vers le cloud.

MLUpdateTask : personnalisation sans cloud

Exemple : personnalisation d'un classifieur

Limites et considérations

L'entraînement on-device a des contraintes importantes :

1. Modèles supportés : Seuls les modèles marqués comme "updatable" lors de la conversion peuvent être entraînés.

2. Données limitées : L'entraînement on-device est conçu pour le fine-tuning avec peu de données (dizaines à centaines d'exemples), pas pour l'entraînement from scratch.

3. Durée de la batterie : L'entraînement consomme beaucoup d'énergie. Privilégiez les moments où l'appareil est en charge.

4. Vie privée : Les données restent sur l'appareil, mais le modèle mis à jour peut potentiellement encoder des informations sur les données d'entraînement.

Cas d'usage avancés

Santé : classification d'images médicales

L'analyse d'images médicales on-device offre une confidentialité totale des données patient.

Anonymisation de données confidentielles

Pipeline combinant Core ML (détection PII) et CryptoKit (chiffrement) pour sécuriser les logs applicatifs.

Pipeline hybride : Core ML + Foundation Models

Combinaison de Vision (OCR) et Foundation Models (iOS 26) pour analyser et résumer des documents.

Pipeline hybride Vision OCR + Foundation Models
Extraction de texte avec Vision OCR puis résumé intelligent avec Foundation Models
“Pour aller plus loin avec Foundation Models : consultez notre article dédié Foundation Models API : Le Guide Complet pour approfondir l'utilisation des LLM on-device d'Apple.”

Pour aller plus loin

Documentation officielle Apple

Ressources de conversion

Sessions WWDC recommandées

Hugging Face + Core ML

Articles Atelier Socle connexes

Conclusion

Core ML est le pilier du machine learning on-device dans l'écosystème Apple. Avec iOS 26, les possibilités s'étendent encore :

    • Performance : Le Neural Engine M4 et les optimisations iOS 26 offrent des performances inégalées
    • Privacy : Les données restent sur l'appareil, conformément aux exigences RGPD les plus strictes
    • Intégration : Vision, Natural Language et Speech s'intègrent parfaitement avec vos modèles custom
    • Évolutivité : L'on-device training permet une personnalisation continue sans cloud

Que vous convertissiez un modèle PyTorch existant ou que vous entraîniez directement avec Create ML, Core ML simplifie le déploiement du ML dans vos applications iOS.

La combinaison avec Foundation Models (iOS 26) ouvre de nouvelles perspectives pour des pipelines hybrides alliant vision, texte et génération. L'avenir du ML est résolument on-device.