Plus tôt cette semaine, Apple a dévoilé son framework logiciel Core ML qui permet aux développeurs de déployer et de travailler avec des modèles d'apprentissage machine qualifiés sur toutes les plateformes d’Apple, iOS, MacOS, TvOS et WatchOS. Avec Core ML, les développeurs n’auront plus besoin de construire eux-mêmes la tuyauterie dont ils ont besoin pour déployer leur modèle au niveau de la plate-forme, élaborer les prédictions et prendre en charge les évènements exceptionnels qui pourraient survenir. Cependant, pour l’instant, les fonctionnalités du produit, en version bêta, sont encore très limitées. Core ML comporte trois frameworks de base pour les prévisions : Foundation, qui fournit des types de données et des fonctionnalités courantes utilisées par les applications Core ML ; Vision, pour les images et GameplayKit, pour gérer la logique et le comportement des jeux.

Chaque framework utilise des objets de haut niveau, implémentés en tant que classes dans Swift. Ces objets couvrent à la fois des cas d’usages spécifiques et des services de prédiction plus ouverts. Par exemple, le framework Vision fournit des classes pour la détection des visages, des codes à barres, la détection de texte et d'horizon, mais aussi des classes plus générales pour effectuer des tâches comme le suivi d'objets et l'alignement d'images. Apple compte sur le fait que la plupart des travaux de développement Core ML soient réalisés dans ces classes de haut niveau. « Dans la plupart des cas, le développeur n'interagit qu'avec l'interface dynamiquement générée par son modèle », indique la documentation d'Apple, « laquelle est créée automatiquement par Xcode quand vous ajoutez un modèle à votre projet Xcode ». Cependant, Apple précise aussi que dans le cas de « workflows personnalisés et dans les situations d’usage avancé », il existe une API de niveau inférieur qui permet une manipulation plus granulaire des modèles et des prédictions.

Des modèles à transformer pour les exploiter finement

Parce que Core ML est destiné à servir les prédictions à partir de modèles et non à entrainer les modèles eux-mêmes, les développeurs ont besoin d’avoir des modèles déjà préparés. Apple fournit plusieurs exemples de modèles d'apprentissage machine, dont certains sont immédiatement utilisables, comme le modèle ResNet50 qui permet d’identifier des objets communs (des voitures, des animaux, des personnes) dans les images. Mais les applications les plus utiles de Core ML utiliseront des modèles formés et fournis par les développeurs eux-mêmes. C'est dans ce domaine que les adopteurs précoces devraient être confrontés aux obstacles les plus importants, puisqu’ils devront transformer les modèles au format modèle de Core ML avant de pouvoir les déployer.

Apple a fourni des outils à cette fin, principalement un pack Coremltools pour Python, capable de convertir un certain nombre de formats de modèles tiers populaires. Sauf que, actuellement, Coremltools ne prend en charge que les versions antérieures de certains de ces modèles. C’est le cas par exemple de la version 1.2.2 de la librairie open source de réseau neural Keras, aujourd’hui en version 2.0. Néanmoins, et c’est une bonne nouvelle, cette boîte à outils est open source (licence BSD), ce qui signifie que les contributeurs devraient pouvoir la mettre jour facilement.

Des lacunes  au niveau de l'interaction

Core ML présente d’autres limites. Par exemple, il n'existe pas dans Core ML de dispositions pour ré-entrainer le modèle ou pour fédérer l'apprentissage, c’est-à-dire utiliser les données collectées pour améliorer la précision du modèle. Les développeurs pourraient implémenter cette fonction manuellement, en demandant aux utilisateurs de l'application d’accepter la collecte de données et en utilisant ces données pour ré-entraîner le modèle de l’app en vue d’une future édition. Il est tout à fait possible de voir apparaître ce genre de fonctionnalités dans de futures révisions de Core ML, une fois que les développeurs se seront habitués au fonctionnement du workflow de base et qu’ils seront plus à l’aise avec les métaphores de Core ML.

Sans doute, cette méthodologie standard pour utiliser des modèles d'apprentissage machine qualifiés dans des applications Apple représente une bonne entrée en matière pour les développeurs, mais Core ML sera sans doute plus attractif quand ils pourront transformer plus facilement en intelligence les interactions que les utilisateurs pourront avoir avec leurs modèles.