Ce TP permet d'appliquer les notions de dev pour la mise en place d'une solution ML prête à etre mise en production. Il utilse le dataet Titatnic.
Le début du TP commencera par la présentation rapide du IDE VScoduim.
Amusez-vous Bien 😎
- Créez un environnement virtuel pour le projet avec le module venv et activez le.
- Lisez depuis les packages utilisées dans le notebook, créez une liste des packages requis dans un fichier "requirements.txt"
-
- Installer ces packages avec le gestionnaire pip
- Spécifiez les versions de packages dans le requirments.txt. utilisez la commande "pip freeze"
-
A faire pour les deux Notebook.
- Utilisez le notebook depuis VScoduim en choisissant l'interpréteur python dans l'environnement virtuel.
- Complétez les cellules manquantes dans l'étude.
- Transformer les notebook en fichier python. Utilisez Vscoduim directement sans faire copier coller des cellules
- Modifier le code en écrivant en fonction les différents parties du code.
- Proposez une structure (arborescence) du projet pour une programmation modulaire.
- Utilisez cet outils en ligne : Drawio
- Ecrivez sous forme de module tout le projet
- N'oubliez pas de mettre de fonction (main) train.py et predict.py
- Utilisez le typing des des fonctions en mettant les inputs, outputs souhaités et espérés.
- Ajoutez la docstring pour les fonctions avec le l'extension autodocstring de VScoduim
- Remplacez les prints par des logs en utilisant le package loguru
- Ajoutez la gestion des erreurs dans le code (try except & finally)
- Appliquez ce linter pour améliorer la vibilité et la lecture du code
- Profilez le code avec les deux module line_profiler et memory_profiler.
- Simulez une erreur dans le code et utilisez le débugger python de Vscoduim pour la trouvez (capture d'écran pour le rendu)
Vous avez remarquez que lorsqu'on utilise un nouveau module il faudrait à chaque fois revenir sur le fichier des requirementes et le rajouter en mettant en place sa version exacte.
Il y'a un risque d'oublie, d'incompatibilité avec les versions de dépendances. ça serai bien si on avait un gestionnaire de projet python qui permettrai de :
- Ajoutez automatiquement un package au fichier des prérequis une fois installer.
- Qui remplace à la fois le mudule venv et pip.
- Séparer les prérequis utilisez lors du dev (profiler) et ceux dans la prod
- Générer une srtucture de fichier pour un nouveau projet
- ... etc
Cette outil s'appelle UV