Ce tp est le premier d'une suite de 3 tp visant à entrainer et déployer des modèles prédictifs dans un environement orchestré afin de multiplier sa vitesse d'apprentissage.
Après avoir forké le repo, pour se mettre à jour avec la dernière version, exécuter les commandes suivantes:
git remote add parent https://github.com/cours-ece/tp3.git
git pull
Les réponses aux questions posées dans cet énoncé sont attendues dans un fichier answers.md situé dans le repo mentionné ci-dessus. Ce TP a pour but de vous donner une vision sur les concepts ML et sur les outils utilisés dans ce domaine.
Il est important que vous compreniez les concepts présents pour être en mesure de réaliser la suite du projet.
- Machine Learning (Deep learning, data mining, ...)
- Deep learning
- Neural network
- Entrainement du modèle
- TensorFlow
- TensorFlow serving
- Appel depuis les machines client (RPC: remote procedure call)
- Jupyter notebook
Forker et cloner le repository du tp3. Ajouter votre prénom, votre nom au fichier answers.md et votre numéro d'équipe (de 1 à 7), puis réaliser une pull request sur le repository du tp.
En cherchant sur docker hub, trouver l'image officielle tensorflow et la déployer en local sur votre machine.
Attention à ne pas oublier l'ouverture de port
Se connecter à l'interface web Jupyter qui a été déployée par le container tensorflow. Ouvrir le premier notebook (1_hello_tensorflow.ipynb) et suivre les instructions du notebook pas à pas.
Note: Les notebooks sont des interfaces de développement et d'exécution de code (en l'occurence Python dans cet exemple. Utiliser les boutons d'actions dans la bandeau du haut pour exécuter les différents blocs de code.
Retourner à la racine de l'interface Jupyter déployé en local et créer un nouveau notebook destiné à accueillir le modèle du tutoriel Tensorflow.
Puis, suivre le tutoriel officiel du site Tensorflow pour créer votre premier réseau de neurones (les blocs de code sont à coller dans le notebook que vous venez de créer).
Bien que la difficulté soit relevée, essayez de comprendre ce que font chacune des parties du code.
Au terme de cette partie, vous êtes censés avoir une idée des concepts de base:
- graph
- tensor
- layers
Répondre aux questions présentes dans la partie 1.3 du fichier answers.md.
Dans cette partie, nous allons mettre à disposition un modèle entrainé pour que les applicatifs puissent utiliser l'intelligence du modèle.
Suivre le tutoreil officiel de Tensorflow serving pour entrainer le modèle mnist et le rendre disponible à travers Tensorflow Serving.
A partir du modèle entrainé de la question précédente, créer une image Docker paramétrée pour démarrer directement sur le modèle mnist.
Créer le fichier docker-compose.yml vous permettant de démarrer votre serveur Tensorflo Serving via la commande docker-compose up
Effectuer des recherches pour apréhender la complexité de mise en production de modèle. Quelles sont ces difficultés ? Quels sont les solutions proposées sur le marché aujourd'hui ? Ecrire la commande utilisée dans le fichier answers.md