En 2015, Google rendait open source TensorFlow, sa bibliothèque d’apprentissage automatique. La firme a également lancé en open source, en décembre 2016, le projet DeepMind Lab qui utilise le Deep Reinforcing Learning ou DeepRL, et s’adresse à la communauté de développeurs spécialisés dans la création de jeux vidéo et intégrant l’intelligence artificielle. DeepMind, filiale de Google, se veut également très active et développe notamment une API open source pour la recherche sur StarCraft II.
Début avril, DeepMind a annoncé sur son blog que c’était au tour de Sonnet de passer en open source. Un partage important puisque comme l’indique la firme:
« la bibliothèque utilise une approche orientée objet, similaire à Torch / NN, permettant de créer des modules qui définissent le passage en avant de certains calculs »
Sonnet est optimisée pour qu’au cours de leurs expériences les chercheurs ne soient pas contraints de modifier leurs projets. Cette facilitation de l’alternance entre modèles a été rendue possible par l’ajout de plusieurs éléments par rapport à TensorFlow tels que la transparence au partage des variables ou l’examen des modèles en tant que hiérarchies, comme l’explique DeepMind:
« De nombreux modèles dans la littérature peuvent naturellement être considérés comme une hiérarchie – par exemple Un Ordinateur Différentiel Neuronal contient un contrôleur pouvant être un LSTM. Ce dernier peut être implémenté comme contenant une couche linéaire standard.
Nous avons constaté que le code d’écriture représentant explicitement les sous-modules permettait une réutilisation facile du code et une expérimentation rapide.
Sonnet favorise les modules d’écriture qui déclarent d’autres sous-modules en interne ou sont passés à d’autres modules au moment de la construction ».
Pour les ingénieux, cette bibliothèque sera particulièrement utile, notamment lorsqu’il s’agit pour différents modules de fonctionner sur des collections de Tensors arbitrairement assemblées:
« Les états des réseaux neuronaux récurrents (RNN pour Recurrent Neural Network) sont souvent mieux représentés sous la forme d’une collection de Tensors hétérogènes, et les représenter comme une liste forfaitaire peut être sujet à une erreur.
Sonnet fournit des services publics pour traiter ces hiérarchies arbitraires, de sorte que changer votre expérience pour utiliser un type différent de RNN ne nécessite pas de modifications fastidieuses du code. Nous avons également apporté des modifications au TF principal pour mieux supporter ce cas d’utilisation ».
Sonnet fonctionne donc avec TensorFlow. Vous pourrez accéder aux Tensors, aux variables systèmes et aux autres éléments sous-jacents sans aucun problème. Dans le même temps, le code TensorFlow peut être mélangé librement avec des modèles écrits dans Sonnet dans d’autres bibliothèques.
Le partage en open source de cette bibliothèque a pour objectif de permettre à la communauté de chercheurs de l’utiliser afin qu’elle se familiarise avec ce type de bibliothèques internes et contribue plus efficacement au développement du secteur en les utilisant dans des travaux. Il ne s’agit pour Google DeepMind que du début d’une série de publications qui sera accessible à tous:
« Nous allons régulièrement mettre à jour notre dépôt GitHub pour qu’il puisse correspondre à notre version maison ».
Dépôt GitHub de Sonnet: lien
Dépôt GiHub de DeepMind Lab: lien
Dépôt GiHub de TensorFlow: lien