Avec Deeplearn.js, Google propose une bibliothèque d’accélération matérielle pour les traitements d’apprentissage machine. Disponible en open source, elle s’exécute dans un navigateur web, mais elle n’est pour l’instant supportée que sur la version desktop de Chrome. L’équipe du projet prépare le support d’autres environnements. Deeplearn.js permet d’entraîner des réseaux de neurones au sein du navigateur sans qu’il soit nécessaire d’installer de logiciel ni d’accéder à un back-end. « Une bibliothèque de machine learning côté-client peut constituer une plateforme pour des explications interactives, pour du prototypage rapide et de la visualisation et même pour des traitements hors connexion », expliquent dans un billet, Nikhil Thorat et Daniel Smilkov, les ingénieurs logiciels de Google qui travaillent dessus. Ils ajoutent que l’intérêt du navigateur est d’être l’une des plateformes de développement les plus courantes.
Comme TensorFire, Deeplearn.js recourt à WebGL
En utilisant l’API JavaScript WebGL conçue pour le graphisme en 2D et 3D, Deeplearn.js peut effectuer des calculs dans le GPU. Cela apporte des performances significatives qui permettent ainsi de dépasser les limitations de JavaScript en termes de rapidité, expliquent les chercheurs.
Google suggère aux développeurs d’explorer le potentiel de sa bibliothèque en entraînant un réseau de neurones convolutif à reconnaître des photos et des caractères manuscrits. Le tout s’exécutant entièrement dans le navigateur web, sans écrire une ligne de code, assure l’équipe d'ingénieurs travaillant sur le projet.
Deeplearn.js imite la structure de TensorFlow (la bibliothèque d’apprentissage machine mise en open source par Google et très largement utilisée) et de NumPy, un logiciel de traitement scientifique basé sur Python. « Nous avons aussi mis en oeuvre certaines des opérations TensorFlow les plus couramment utilisées », précise l’équipe de Google. « Avec la mise à disposition de Deeplearn.js, nous fournirons des outils pour exporter les weights (le poids de chaque neurone artificiel) depuis les points de contrôle Tensorflow, ce qui permettra aux auteurs de les importer dans des pages web pour réaliser l’inférence dans Deeplearn.js ». Bien que TypeScript de Microsoft soit le langage choisi, la bibliothèque peut être utilisée avec JavaScript. Des démonstrations de Deeplearn.js sont présentées sur la page d’accueil du projet.
Ce n’est pas le premier outil qui permet de faire du machine learning dans le navigateur web. Récemment présenté, TensorFire propose aussi d’exécuter des réseaux neuronaux dans une page web. Il existe aussi ML.js qui fournit des outils d’apprentissage machine et d’analyse numérique dans JavaScript pour Node.js.