11 votes

Former continuellement le modèle CoreML après la mise en service

En examinant la nouvelle API CoreML, je ne vois aucun moyen de continuer l'entraînement du modèle après avoir généré le fichier .mlmodel et l'avoir inclus dans votre application. Cela me fait penser que je ne pourrai pas effectuer d'apprentissage machine sur le contenu ou les actions de mes utilisateurs car le modèle doit être entièrement entraîné à l'avance.

Existe-t-il un moyen d'ajouter des données d'entraînement à mon modèle entraîné après sa publication ?

EDIT : Je viens de remarquer que vous pouvez initialiser une classe de modèle généré à partir d'une URL, donc peut-être que je peux envoyer de nouvelles données d'entraînement à mon serveur, régénérer le modèle entraîné et le télécharger dans l'application ? Cela semble fonctionner, mais cela contredit complètement l'aspect confidentialité qui permet d'utiliser l'apprentissage machine sans que les données de l'utilisateur ne quittent l'appareil.

9voto

Matthijs Hollemans Points 3178

Le fichier .mlmodel est compilé par Xcode en une structure .mlmodelc (qui est en réalité un dossier à l'intérieur de votre bundle d'application).

Votre application pourrait être capable de télécharger un nouveau .mlmodel à partir d'un serveur, mais je ne pense pas que vous puissiez exécuter le compilateur Core ML depuis votre application.

Il est peut-être possible pour votre application de télécharger les données compilées .mlmodelc depuis un serveur, de les copier dans le répertoire Documents de l'application, et d'instancier le modèle à partir de là. Essayez cela. ;-)

(Cela suppose que l'App Store ne réalise aucun traitement supplémentaire sur les données .mlmodelc avant d'emballer votre application et de l'envoyer à l'utilisateur.)

6voto

Shehroz Points 101

Apple a récemment ajouté une nouvelle API pour la compilation de modèles sur appareil. Maintenant, vous pouvez télécharger votre modèle et le compiler sur l'appareil

2voto

Alex Brown Points 15776

Core ML prend en charge l'inférence mais pas la formation sur l'appareil.


Vous pouvez mettre à jour le modèle en le remplaçant par un nouveau provenant d'un serveur, mais cela mérite sa propre question.

2voto

Satoshi Nakajima Points 111

Pour mettre à jour dynamiquement le modèle (sans mettre à jour toute l'application), vous devez utiliser MPS (Metal Performance Shader) directement au lieu de vous reposer sur .mlmodel, qui doit être inclus avec l'application.

Cela signifie que vous devez construire manuellement le réseau de neurones en écrivant du code Swift (au lieu d'utiliser coremltools pour convertir directement des modèles existants), et fournir divers poids pour chaque couche, ce qui demande un peu de travail, mais ce n'est pas de la rocket science.

Cette vidéo est intéressante à regarder si vous souhaitez en savoir plus sur MPS.

https://developer.apple.com/videos/play/wwdc2017/608/

2voto

michaelxing Points 26

Maintenant avec iOS11 beta4, vous pouvez compiler le modèle, télécharger depuis le serveur.

(Détails)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X