XD blog

blog page


2018-05-02 Histoire d'intelligence artificielle

Deux articles parus dans Variance autour de l'histoire de l'intelligence artificielle : COLLOQUE « INTELLIGENCE ARTIFICIELLE : FICTION OU ACTIONS ? » : UNE BRÈVE HISTOIRE DE L’INTELLIGENCE ARTIFICIELLE (1ÈRE PARTIE), DEUXIÈME PARTIE : DE LA NAISSANCE DE L’INFORMATIQUE AU DEEP LEARNING.

2018-04-27 Gilles Dupré (1946-2018)

Gilles Dupré était architecte avant d'être mari ou père. Il pouvait interrompre ses vacances, traverser la France de nuit, tout changer d'un projet qu'il disait avoir conclu, batailler jusqu'à plus d'heure avec les façades. Il dessinait avant d'écrire, noircissait de croquis tous les ronds de bières, toutes les nappes en papier. Il peignait. Il allait voir toutes les expositions à Paris où ailleurs, lisait tous les livres, organisait des voyages pour l'ordre des architectes. Il écrivait peu mais savait toujours retrouver le livre où l'œuvre qui traduisait le mieux sa pensée. L'essentiel était d'avoir un projet et de tout faire pour le concrétiser. Il était important de laisser une trace, le reste était secondaire. Féru de jazz, de bandes dessinées, il lisait la nuit, vous surprenait en sortant un livre de son sac "Tiens ça m'a fait penser à toi."


Photo : Clément Sautet


more...

2018-04-22 La grève et ses conséquences

J'avais besoin de rejoindre Charleville-Mézières depuis Paris. Pour moi qui n'ait pas le permis, les transports publics sont indispensables et en ce jour de grève, aucun train ne circulait, blablacar ne proposait rien avant 21h, les bus rien avant deux jours. Les Ardennes étaient ce jour-là virtuellement inacessibles.

2018-04-16 Notebook sur Spark

J'ai déplacé les notebooks sur Spark depuis le site Python dans tout ses états vers Spark approximatif. Des petits modules sont plus faciles à maintenir.

2018-04-01 Revue de presse : ENSAE

A l’Ensae, « faute de bouger facilement, les étudiants s’investissent dans les associations », Le Monde 29 Mars 2018.

2018-03-31 Mettre un modèle de machine learning en production

J'écrivais un article il y a peu sur le sujet ONNX : apprendre et prédire sur différentes machines où j'évoquais deux pistes pour mettre en production un modèle de machine learning, essentiellement via une application web. Il n'y a pas d'ordre de préférence, certaines sont plus abouties que d'autres. La première tensorflow-serving propose tout clé en main mais elle repose sur l'utilisation de tensorflow. La seconde ONNX, onnxmltools, winmltools convertit un modèle dans un format commun. Il est ensuite exploité là où une librairie de prédiction (un runtime) existe (liste des runtime disponibles). Ce format commun n'est pas encore exploitable en C++ ou javascript mais ces options sont envisageables également. Tensorflow encore propose une façon d'exploiter les modèles en javascript directement avec tensorflow.js (voir https://js.tensorflow.org/tutorials/import-keras.html). ONNX réfléchit à une extension pour le langage C/C++ ONNX in C/C++ qu'il est possible de faire pour le moment pour un modèle de deep learning en convertissant un modèle appris pour la librairie caffe2 avec ONNX : ONNX: deploying a trained model in a C++ project. C'est une direction choisie par le module sklearn-porter qui propose des codes en Java, C++, Go, PhP, Ruby, Javascript pour certains des modèles implémenté par scikit-learn. Cela couvre nettement plus de modèles que ce que j'avais commencé à faire avec mlprodict. Il existe d'autres options comme Seldon, à moitié open source, à moitié tourné vers une proposition de services.

2018-03-29 Intelligence Artificielle en France

Quelques tables sont organisées lors de la conférence AI for Humanity organisée par le gouvernement pour la remise du rapport Villani. La première table ronde invitait Laurence Devillers, que j'avais vu lors du colloque organisé par les anciens de l'ENSAE Colloque Individu, données et société connectée.

Lors de la seconde table, Yann LeCun affirmait que la thèse CIFRE était une des raisons pour lesquelles Facebook avait choisi la France pour implanter un centre de recherche en Europe (Paris). Parmi les thésards, Alexis Conneau qui est passé par l'ENSAE.

D'après le directeur du CNRS, Antoine Petit, il est important d'avoir des chercheurs ou ingénieurs qui enseignent dans le monde académique et travaillent dans le monde privé. Il confirme ce qu'a dit Yann LeCun une heure plus tôt. Certains chercheurs de Facebook consacre 20%, 50% de leur temps à l'enseignement. On pense à tort que l'école est le plus souvent en retard par rapport à ce qui se fait dans le monde de l'entreprise et que les étudiants ne savent rien faire en quittant l'école. En intelligence artificielle, c'est plutôt l'inverse. La recherche académique est en avance par rapport à ce qui se fait en entreprise

Quelques annonces comme DeepMind qui va créer un centre de recherche en France où aussi : Microsoft s’engage avec les acteurs de l’écosystème pour contribuer à faire de la France la nation de l’Intelligence Artificielle.

2018-03-19 ONNX : apprendre et prédire sur différentes machines

J'écrivais sur onnx il y a peu de temps. onnx, onnxmltools sont deux librairies qui permettent de convertir des modèles de deep learning mais aussi des modèles entraînés avec scikit-learn en un format unique. Lorsque cela est possible, cela permet d'utiliser avec une librairie un modèle appris avec une autre. C'est pratique si vous trouvez un modèle de deep learning appris avec Caffe et que vous souhaitez l'associé avec un autre appris avec pytorch. La suite n'a pas tardé, il est maintenant possible d'utilser ce format unique sur une machine qui dispose de l'algorithme de prédiction associé. Concrètement, on peut maintenant apprendre un modèle avec scikit-learn et l'utiliser depuis un programme écrit en C# sans faire appel à Python : How Three Lines of Code and Windows Machine Learning Empower .NET Developers to Run AI Locally on Windows 10 Devices. Quelques informations techniques supplémentaires : Windows Machine Learning overview.

On ne se pose plus la question de savoir s'il faut utiliser du deep learning mais plutôt comment le mettre en production. TensorFlow-Serving est une solution assez aboutie qui implémente certains besoins : prédiction temps réel, adaptation à un trafic élevé, capables de conserver de vieilles versions de modèles, de le comparer, de faire de l'A/B testing. Certains ont partagé leur expérience How Zendesk Serves TensorFlow Models in Production/ L'inconvénient est d'être plus ou moins lié à TensorFlow et personnellement je préfère PyTorch. La librairie est plus intuitive et séduit beaucoup les chercheurs : PyTorch or TensorFlow?. Elle est aussi rapide que TensorFlow voire un peu plus : Deep Learning Framework Examples. Il reste le problème de la mise en production. C'est là que le projet ONNX intervient en proposant de séparer l'apprentissage et l'exploitation en production. D'un côté l'apprentissage avec une librairie, une de celle supportée par ONNX, de l'autre une autre librairie ou runtime spécifique au la machine qui fera tourner les prédictions. Le reste du site web est composée de briques classiques. C'est une approche plus modulaire est moins dépendante d'un composant en particulier.

2018-03-13 Visualiser un arbre de décision

Je me suis amusé à essayer des libraires javascript pour représenter un arbre de décision. Amuser n'est pas vraiment le bon mot. C'est le genre de trucs que je n'aime pas faire plusieurs fois. Je l'ai emballé dans une fonction : Visualiser un arbre de décision. Le seul truc est que cela ne marche pas dans jupyterlab car l'exécution de javascript customisé est désactivée à moins d'en faire une extension ert mon courage s'est arrêté là.

2018-03-12 OpenFoodFacts et Google Summer of Code

La belle aventure de OpenFoodFacts continue. Elle fait partie des élus de Google Summer of Code. C'est un beau projet qui a permis de construire une base de données sur de nombreux produits alimentaires dans le monde entier. Si vous souhaitez connaître la qualité de ce que vous achetez, les produits équivalents mais sans additifs, c'est là qu'il faut aller. Les données sont accessibles et chacun peut imaginer une application. Et OpenFoodFacts cherche à automatiser la collecte et l'enrichissement de cette base. Vous trouverez de nombreux défis à résoudre : Student projects/GSOC/Proposals et certains requièrent l'utilisation du deep learning. Parfait pour un stage.

2018-03-03 onnx

onnx est un outil qui permet de convertir des modèles de deep learning venant de plusieurs librairies différentes dans un format commun. Cela d'une certaine façon de passer d'une librairie à l'autre mais aussi de pouvoir exécuter des prédictions sur un système différent de celui ayant servi à l'apprentissage. Ordinateur, tablettes, téléphones, objets connectés... C'est l'idée. Apprendre sur un ordinateur dédié à cette usage et optimisé pour cela et prédire sur une machine de moindre puissance mais plus adaptée. onnxmltools étend la liste des librairies à celle du machine learning classique, comme bien évidemment scikit-learn. Et il se trouve que j'y ai contribué.

Cela m'a permis de redécouvrir le site de chainer qui a récemment évolué et casser quelques-uns de mes tests vérifiant mes supports de cours. Le design est similaire à celui de pytorch mais la partie GPU a été placée dans un module séparé cupy qui s'apparente à un numpy pour GPU. Je garde malgré tout une préférence pour le premier même si l'installation sous Windows est encore assez confuse et repose soit sur votre propre compilation soit sur celle disponible ici : anaconda/peterjc123. cupy est disponible quant à lui sur le site Unofficial Windows Binaries for Python Extension Packages.

03/07 : les modèles convertis par ONNX deviendra très bientôt facilement utilisables sur Windows 10 : ONNX Models to be Runnable Natively on 100s of Millions of Windows Devices.

2018-02-17 Machine learning sans diagonale

La plupart de mes cours se font sous la forme de notebooks, plus ou moins indépendant, des exercices en pagaille qui manquent de cohérence et de continuité. Pour l'instant, ça s'appelle Petit voyage au pays du machine learning, ça n'est pas parfait mais ça a un début et une fin.

2018-02-16 280 notes en un jour

J'ai rendu 280 notes la semaine dernière, trois années, plus d'une centaine de projets - que je n'ai pas relus seul je vous rassure -, plus de 1 Go envoyés sur ma boîte mail et que j'ai dû télécharger. C'est aussi plus de 70 heures de cours, des nuits courtes en pagaille, 4 à 5h de sommeil, plus de 300 notebooks à maintenir, un qui pète par semaine à cause d'un module qui a mué d'une version, un hackathon avec 90 étudiants, des fous rires, un serveur qui tourne en permanence, plus d'une cinquantaine de jobs sur Jenkins, une trentaine de projets sur Github. Je m'arrête là, cela tourne à l'inventaire à la Prévert.

2018-01-31 ImagineCup

Microsoft organise la compétition ImagineCup depuis plus de 15 ans.

Imagine Cup est une compétition mondiale d’innovation réservée aux étudiants. Le principe : formez une équipe de 3 au maximum, présentez une solution logicielle répondant à la problématique de votre choix. Votre challenge : faire reposer cette solution sur une brique d’Intelligence Artificielle et la relier au Cloud Microsoft Azure. Vous pouvez présenter un projet personnel aussi bien qu’un projet intégré à votre parcours d’études.

Si vous avez un projet de startup utilisant l'intelligence artificielle, une idée qui végète dans votre esprit, c'est l'occasion de la développer et peut-être partir à Seattle la défendre. Deadline pour la soumission de projets : 25 février minuit.

2018-01-22 La statistique expliquée à mon chat

Je suis en train de corriger des copies et quand l'une d'elles n'oublie pas de citer le modèle dont elle s'est inspirée, je tombe sur ce genre de vidéo...

Ca me rappelle cette collection du Seuil : Le Changement climatique expliqué à ma fille .


<-- -->

Xavier Dupré