Apprentissage automatique en Swift : bibliothèques et outils pour iOS/macOS
Le développement pour l'écosystème Apple est traditionnellement associé au langage Swift. Bien que Python reste le leader incontesté dans le domaine de la Data Science, Swift le rattrape activement, en proposant des solutions natives optimisées pour le matériel Apple. Dans cet article, nous passerons en revue les bibliothèques et frameworks clés qui permettent d'intégrer l'apprentissage automatique (ML) dans les applications pour iOS, macOS, watchOS et tvOS, ainsi que d'entraîner des modèles directement sur l'appareil.
1. Core ML — le fondement de tout
Core ML n'est pas simplement une bibliothèque, mais un framework fondamental d'Apple qui sert d'environnement d'exécution pour les modèles de ML sur l'appareil. Il prend en charge les modèles entraînés en Python (scikit-learn, TensorFlow, PyTorch) et convertis au format .mlmodel ou .mlpackage à l'aide de Core ML Tools.
Fonctionnalités clés de Core ML :
- Optimisation pour Neural Engine, GPU et CPU (sélection automatique).
- Prise en charge des images, du texte, des séquences, des données tabulaires.
- Travail avec des modèles de classification, de détection d'objets (YOLO, SSD), de segmentation sémantique.
- Prise en charge des modèles de transformeurs (BERT, GPT-2) via Natural Language.
Exemple d'intégration d'un modèle Core ML pour la classification d'images (Swift) :
import CoreMLimport Vision
// 1. Chargement du modèle (par exemple, MobileNetV2)guard let model = try? VNCoreMLModel(for: MobileNetV2(configuration: MLModelConfiguration()).model) else { fatalError("Impossible de charger le modèle")}
// 2. Création d'une requête Visionlet request = VNCoreMLRequest(model: model) { request, error in guard let results = request.results as? [VNClassificationObservation], let topResult = results.first else { return } print("Reconnu : \\(topResult.identifier) avec une confiance de \\(topResult.confidence)")}
// 3. Exécution de la requête sur l'imageguard let image = UIImage(named: "cat.jpg"), let ciImage = CIImage(image: image) else { return }
let handler = VNImageRequestHandler(ciImage: ciImage, options: [:])try? handler.perform([request])2. Create ML — apprentissage sans code (et avec code)
Create ML est un outil Apple intégré à Xcode et Swift Playgrounds, permettant d'entraîner des modèles d'apprentissage automatique directement sur Mac, en utilisant Swift. Il est idéal pour le prototypage et la création de modèles personnalisés sans quitter l'écosystème.
Create ML prend en charge :
- Classification et régression (données tabulaires).
- Classification d'images et détection d'objets.
- Analyse de texte (sentiment, catégorisation).
- Systèmes de recommandation (basés sur le comportement de l'utilisateur).
- Classification sonore.
Exemple d'entraînement d'un classifieur de texte en Swift (macOS) :
import CreateMLimport Foundation
// 1. Chargement des données depuis un CSVlet data = try MLDataTable(contentsOf: URL(fileURLWithPath: "/Users/me/emails.csv"))
// 2. Division en train/testlet (trainingData, testingData) = data.randomSplit(by: 0.8, seed: 42)
// 3. Entraînement du classifieur de sentimentlet sentimentClassifier = try MLTextClassifier(trainingData: trainingData, textColumn: "text", labelColumn: "label")
// 4. Évaluation de la précisionlet evaluationMetrics = sentimentClassifier.evaluation(on: testingData)print("Précision : \\(evaluationMetrics.classificationError)")
// 5. Sauvegarde du modèlelet metadata = MLModelMetadata(author: "PythonLib", shortDescription: "Classifieur de sentiment des emails", version: "1.0")try sentimentClassifier.write(to: URL(fileURLW Aussi dans la bibliothèque
Envoi d'email en Swift : bibliothèques et exemples pour iOS/macOS
Bibliothèque standard PHP : aperçu complet des fonctions et classes
Travailler avec les dates en JavaScript (Node.js) : les meilleures bibliothèques
Client OAuth pour Go (Golang) : guide complet de la bibliothèque