Rejoignez Transform 2021 du 12 au 16 juillet. Inscrivez-vous pourr l’événement IA de l’année.
Au cours des dernières années, Python est devenu le langage de programmation préféré pour l’apprentissage automatique et l’apprentissage profond. Les plus livres et cours en ligne sur l’apprentissage automatique et l’apprentissage profond, soit utilisent exclusivement Python, soit avec R. Python est devenu très populaire en raison de sa riche liste de bibliothèques d’apprentissage automatique et d’apprentissage en profondeur, de sa mise en œuvre optimisée, de son évolutivité et de ses fonctionnalités polyvalentes.
Mais Python n’est pas la seule option pour la programmation d’applications d’apprentissage automatique. Il existe une communauté croissante de développeurs qui utilisent JavaScript pour exécuter des modèles d’apprentissage automatique.
Bien que JavaScript ne remplace pas (encore) le riche paysage d’apprentissage automatique de Python, il existe plusieurs bonnes raisons d’avoir des compétences en apprentissage automatique en JavaScript. En voici quatre.
Apprentissage automatique privé
Les plus apprentissage automatique les applications reposent sur des architectures client-serveur. Les utilisateurs doivent envoyer leurs données là où les modèles de machine learning sont exécutés. L’architecture client-serveur présente des avantages évidents. Les développeurs peuvent exécuter leurs modèles sur des serveurs et les mettre à disposition des applications utilisateur via des API Web. Cela permet aux développeurs d’utiliser de très grands les réseaux de neurones qui ne peuvent pas fonctionner sur les appareils des utilisateurs.
Dans de nombreux cas, cependant, il est préférable d’effectuer l’inférence de machine learning sur l’appareil de l’utilisateur. Par exemple, en raison de problèmes de confidentialité, les utilisateurs peuvent ne pas souhaiter envoyer leurs photos, messages de discussion privés et e-mails au serveur sur lequel le modèle d’apprentissage automatique est en cours d’exécution.
Heureusement, toutes les applications d’apprentissage automatique ne nécessitent pas de serveurs coûteux. De nombreux modèles peuvent être compressés pour s’exécuter sur les machines utilisateur. Et les fabricants d’appareils mobiles équipent leurs appareils de puces pour prendre en charge les l’apprentissage en profondeur inférence.
Mais le problème est que l’apprentissage automatique Python n’est pas pris en charge par défaut sur de nombreuses machines utilisateur. MacOS et la plupart des versions de Linux sont livrés avec Python préinstallé, mais vous devez toujours installer les bibliothèques d’apprentissage automatique séparément. Les utilisateurs Windows doivent installer Python manuellement. Et les systèmes d’exploitation mobiles prennent très mal en charge les interpréteurs Python.
JavaScript, en revanche, est pris en charge nativement par tous les navigateurs mobiles et de bureau modernes. Cela signifie que les applications de machine learning JavaScript sont garanties de fonctionner sur la plupart des ordinateurs de bureau et des appareils mobiles. Par conséquent, si votre modèle d’apprentissage automatique s’exécute sur du code JavaScript dans le navigateur, vous pouvez être assuré qu’il sera accessible à presque tous les utilisateurs.
Il existe déjà plusieurs bibliothèques de machine learning JavaScript. Un exemple est TensorFlow.js, la version JavaScript de la célèbre bibliothèque d’apprentissage automatique et d’apprentissage en profondeur TensorFlow de Google. Si vous vous dirigez vers le Page de démonstration de TensorFlow.js avec votre smartphone, tablette ou ordinateur de bureau, vous trouverez de nombreux exemples prêts à l’emploi utilisant le machine learning JavaScript. Ils exécuteront les modèles d’apprentissage automatique sur votre appareil sans envoyer de données dans le cloud. Et vous n’avez pas besoin d’installer de logiciel supplémentaire. Parmi les autres bibliothèques d’apprentissage automatique JavaScript puissantes, citons ML5.js, Synaptique, et Brain.js.
Modèles ML rapides et personnalisés
La confidentialité n’est pas le seul avantage de l’apprentissage automatique sur appareil. Dans certaines applications, l’aller-retour de l’envoi de données de l’appareil au serveur peut entraîner un retard qui entravera l’expérience utilisateur. Dans d’autres paramètres, les utilisateurs peuvent souhaiter pouvoir exécuter leurs modèles de machine learning même s’ils ne disposent pas d’une connexion Internet. Dans ces cas, disposer de modèles de machine learning JavaScript qui s’exécutent sur l’appareil de l’utilisateur peut s’avérer très utile.
La personnalisation du modèle est une autre utilisation importante de l’apprentissage automatique JavaScript. Par exemple, supposons que vous souhaitiez développer un modèle d’apprentissage automatique de génération de texte qui s’adapte aux préférences linguistiques de chaque utilisateur. Une solution consisterait à stocker un modèle par utilisateur sur le serveur et à le former sur les données de l’utilisateur. Cela alourdirait la charge de vos serveurs à mesure que vos utilisateurs grandiraient et vous obligerait également à stocker des données potentiellement sensibles dans le cloud.
Une alternative serait de créer un modèle de base sur votre serveur, de créer une copie sur l’appareil de l’utilisateur et d’affiner le modèle avec les données de l’utilisateur à l’aide de bibliothèques de machine learning JavaScript.
D’une part, cela conserverait les données sur les appareils des utilisateurs et éviterait de les envoyer au serveur. D’un autre côté, cela libérerait les ressources du serveur en évitant d’envoyer des charges supplémentaires d’inférence et de formation au cloud. Et les utilisateurs pourront toujours utiliser leurs capacités d’apprentissage automatique même lorsqu’ils sont déconnectés de vos serveurs.
Intégration facile de l’apprentissage automatique dans les applications Web et mobiles
Un autre avantage de l’apprentissage automatique JavaScript est l’intégration facile avec les applications mobiles. La prise en charge de Python dans les systèmes d’exploitation mobiles en est encore aux étapes préliminaires. Mais il existe déjà un riche ensemble d’outils de développement d’applications mobiles JavaScript multiplateformes tels que Cordova et Ionic.
Ces outils sont devenus très populaires car ils vous permettent d’écrire votre code une fois et de le déployer pour les appareils iOS et Android. Pour rendre le code compatible entre différents systèmes d’exploitation, les outils de développement multiplateformes lancent une «vue Web», un objet navigateur qui peut exécuter du code JavaScript et peut être intégré dans une application native du système d’exploitation cible. Ces objets de navigateur prennent en charge les bibliothèques de machine learning JavaScript.
Une exception est React Native, un framework de développement d’applications mobiles multiplateforme populaire qui ne repose pas sur la vue Web pour exécuter des applications. Cependant, étant donné la popularité des applications mobiles d’apprentissage automatique, Google a publié une version spéciale de TensorFlow.js pour React Native.
Si vous avez écrit votre application mobile en code natif et que vous souhaitez intégrer votre code de machine learning JavaScript, vous pouvez ajouter votre propre objet navigateur intégré (par exemple, WKWebView dans iOS) à votre application.
Il existe d’autres bibliothèques d’apprentissage automatique pour les applications mobiles, telles que TensorFlow Lite et ML de base. Cependant, ils nécessitent un codage natif sur la plate-forme mobile pour laquelle vous développez votre application. L’apprentissage automatique JavaScript, en revanche, est très polyvalent. Si vous avez déjà implémenté une version de votre application d’apprentissage automatique pour le navigateur, vous pouvez facilement la porter sur votre application mobile avec peu ou pas de modifications.
Machine learning JavaScript sur serveur
L’un des principaux défis de l’apprentissage automatique est la formation des modèles. Cela est particulièrement vrai pour l’apprentissage en profondeur, où l’apprentissage nécessite des calculs de rétropropagation coûteux sur plusieurs époques. Bien que vous puissiez entraîner des modèles d’apprentissage en profondeur sur les appareils des utilisateurs, cela peut prendre des semaines ou des mois si le réseau neuronal est volumineux.
Python est mieux adapté à la formation côté serveur des modèles d’apprentissage automatique. Il peut faire évoluer et répartir sa charge sur des clusters de serveurs pour accélérer le processus de formation. Une fois que le modèle est formé, vous pouvez le compresser et le diffuser sur les appareils des utilisateurs pour l’inférence. Heureusement, les bibliothèques d’apprentissage automatique écrites dans différentes langues sont hautement compatibles. Par exemple, si vous entraînez votre modèle d’apprentissage en profondeur avec TensorFlow ou Keras pour Python, vous pouvez l’enregistrer dans l’un des nombreux formats indépendants du langage tels que JSON ou HDF5. Vous pouvez ensuite envoyer le modèle enregistré sur l’appareil de l’utilisateur et le charger avec TensorFlow.js ou une autre bibliothèque d’apprentissage en profondeur JavaScript.
Mais il convient de noter que l’apprentissage automatique JavaScript côté serveur est également en train de mûrir. Vous pouvez exécuter des bibliothèques de machine learning JavaScript sur Node.js, le moteur de serveur d’applications JavaScript. TensorFlow.js a une version spéciale qui convient aux serveurs exécutant Node.js. Le code JavaScript que vous utilisez pour interagir avec TensorFlow.js est le même que vous utiliseriez pour les applications exécutées dans le navigateur. Mais en arrière-plan, la bibliothèque utilise le matériel spécial de votre serveur pour accélérer la formation et l’inférence. PyTorch, une autre bibliothèque d’apprentissage automatique Python populaire, n’a pas encore d’implémentation JavaScript officielle, mais la communauté open source a développé des liaisons JavaScript pour la bibliothèque.
L’apprentissage automatique avec Node.js est relativement nouveau, mais il évolue rapidement car il existe un intérêt croissant pour l’ajout de capacités d’apprentissage automatique aux applications Web et mobiles. Alors que la communauté d’apprentissage automatique JavaScript continue de croître et que les outils continuent de mûrir, cela pourrait devenir une option incontournable pour de nombreux développeurs Web qui souhaitent ajouter l’apprentissage automatique à leurs compétences.
Ben Dickson est ingénieur logiciel et fondateur de TechTalks, un blog qui explore les façons dont la technologie résout et crée des problèmes.
Cette histoire est apparue à l’origine sur Bdtechtalks.com. Droits d’auteur 2021
VentureBeat
La mission de VentureBeat est d’être une place de ville numérique permettant aux décideurs techniques d’acquérir des connaissances sur la technologie transformatrice et d’effectuer des transactions.
Notre site fournit des informations essentielles sur les technologies de données et les stratégies pour vous guider dans la conduite de vos organisations. Nous vous invitons à devenir membre de notre communauté, pour accéder:
- des informations à jour sur les sujets qui vous intéressent
- nos newsletters
- contenu de leader d’opinion fermé et accès à prix réduit à nos événements prisés, tels que Transformer 2021: Apprendre encore plus
- fonctionnalités de mise en réseau, et plus