Blog

18 March 2019

Tensorflow dev summit, Sunnyvale March 6-7 2019

#tensorflow

Un article écrit par

Ayant travaillé sur des projets avec Tensorflow chez Lunatech, nous avons eu le plaisir de recevoir une invitation pour le Dev Summit au Google Event Center à Sunnyvale.

La conférence est répartie sur 2 jours, avec des talks techniques sur le framework, des démos et cas d'utilisation, et surtout une opportunité de rencontrer l'équipe et les utilisateurs du monde entier.

Ce post est un résumé des sujets qui ont attiré notre attention. 

Tensorflow 2.0 Alpha Release

Un bonne proportion des talks avait pour sujet la release 2.0 de Tensorflow, comprenant une API Python plus facile à utiliser, ce qui peut amener Tensorflow à devenir le framework de Machine Learning le plus populaire.

Les ressources pour la preview alpha de 2.0 sont disponibles ici:

https://www.tensorflow.org/alpha

https://www.tensorflow.org/versions/r2.0/api_docs/python/tf

Une API python plus idiomatique

Le language Python a maintenant son propre adjectif…”pythonique” !

En Bref, cette nouvelle version favorise l'exécution eager par défaut, sans éliminer la possibilité de travailler avec des graphes d'opérations et une exécution lazy ou la sérialization de modèles. Au lieu de coder un run de session explicite:

# TensorFlow 1.x

def f(placeholder):

  # do something

outputs = session.run(f(placeholder), feed_dict={placeholder: input})

Un décorateur de fonction tf.function() est utilisé sur une définition de fonction python simple, avec un appel plus 'pythonique':

# TensorFlow 2.0

@tf.function

def f(placeholder):

  # do something

outputs = f(input)

Le code dans ces fonctions est transformé, y compris les boucles et conditions en leurs opérateurs Tensorflow correspondants et inséré dans un graphe executable.

L'API a été nettoyée de redondances et l'API Keras pour dessiner des topologies de modèles est maintenant recommandée.

Des outils de conversion vers la version 2.0 sont disponibles. La version RC sortira au printemps.

Focus sur deploiement: TFX

Un des points forts de Tensorflow est l'écosystème pour le déploiement en production.

Tensorflow Extended (TFX) est une plateforme de mise en production, avec des outils pour les tâches telles que:

  • Validation des données, y compris la collecte de statistiques descriptives, inférence de schémas de données
  • Transformations de données pour la préparation de features avant la phase de training/inférence
  • Evaluation et Validation des modèles
  • Services de modèles

Tensorflow Serving permet la génération de services gRPC et REST performants, avec versions des modèles, des scénarii de déploiement type canari, rollbacks etc.

Tensorflow Hub est un format de sauvegarde et une API pour la publication de modèles, avec une intégration dans les pipelines Tensorflow.

TFLite, pour l'Edge

Tensorflow Lite permet de convertir, d’optimiser des modèles et les exécuter sur des devices mobiles Android et IOS. Des scripts de transformation convertissent les modèles en format optimisé FlatBuffers consommable par Tensorflow Lite, avec d'autres optimisations pour la taille comme la quantization des paramètres, réduction de la représentation des nombres en virgule flottante, ou l'élagage de paramètres du modèle, tout en gardant sous contrôle la qualité.

Tensorflow Lite peut même tourner sur microcontroleurs, par exemple le Sparkfun, pour lequel une démo de reconnaissance vocale a été faite:

https://www.sparkfun.com/products/15170

Des accélérateurs TPU Edge sont aussi maintenant disponibles ! Nous avons pu voir un exemple d’entraînement de modèle de reconnaissance d'images embarqué sur une carte de développement, aussi applicable avec un accélérateur TPU USB:

https://coral.withgoogle.com/

Swift Tensorflow

La version 2.0 Swift Tensorflow est sortie. Swift est un language fortement typé, avec des caractéristiques attrayantes pour les développeurs Scala comme nous le sommes chez Lunatech. Les notebooks Google Colab supportent maintenant Swift pour Tensorflow. Swift est interopérable avec la possibilité d'appeler directement les routines python et C.

Une caractéristique fascinante du language est la différentiation comme partie intégrante du language rendant très accessible au calcul de dérivées partielles et gradients sur des modèles expérimentaux.

Sans aucun doute un projet à suivre pour l'avenir des outils Data Science!

Divers ...

Tensorboard

Tensorboard est un outil de visualisation pour analyser les sessions d'apprentissage de modèles. Il est maintenant directement consultable depuis les notebooks Colab, par exemple en sauvant les logs dans gdoc. Le tensorboard a maintenant des widgets de visualisation des hyperparamètres.

Tensorflow Probability et Tensorflow Agents

Tensorflow a 2 librairies intéressantes pour certains domaines: Tensorflow Probability pour les modèles Bayesiens et Tensorflow Agents pour le reinforcement learning.

Community

La communauté est en forte croissance, avec 1800 contributeurs, et beaucoup d’améliorations guidées par les suggestions des utilisateurs. Les SIGs (Special Interest Groups), sont les places de discussion de divers sujets comme les addons, build, IO, networking, Rust, tensorboard.

A noter que la conférence Tensorflow World organisée par O'Reilly a été annoncée, à Santa Clara en Octobre, le CFP est d’ailleurs ouvert et vous pouvez d’ores et déjà appliqué via ce lien: 

https://tensorflow.world  

Il y a bien-sûr encore  plus à dire sur ce qui s’est discuté a la conférence:  les languages (javascript, julia), les datasets, la scalabilité, les cas d'utilisation etc…

Mais ce qu’il ressort principalement est que Tensorflow devient plus qu'un framework de machine learning. Il couvre différents modèles, pour différentes plateformes, depuis le serveur jusqu'au device embarqué, avec un écosystème fort pour le déploiement en production mais aussi pour la recherche.

Si vous voulez approfondir le sujet, vous pouvez trouver la totalité du contenu du sommet sur la chaine YouTube de la conférence:

TensorFlow Dev Summit 2019 - YouTube

TensorFlow Dev Summit 2019 took place on March 6th and 7th at the Google Event Center in Sunnyvale, CA. Learn all about it → http://bit.ly/TFDS19 TensorFlow ...