Python expert — Machine learning engineer
Objectifs pédagogiques
- Maîtriser les bibliothèques Python les plus couramment utilisées pour la data science, telles que Scikit Learn, Pandas, Plotly, Flask.
- Être capable de résoudre des problèmes concrets de classification et de régression supervisée en utilisant des algorithmes tels que les arbres de décision, la régression linéaire, les réseaux de neurones, etc.
- Mettre en œuvre une démarche MLOps pour déployer un modèle en production et gérer son cycle de vie de bout en bout.
- Savoir communiquer les résultats de manière claire et concise.
Programme détaillé
La formation est conçue pour être à la fois théorique et pratique, avec une combinaison de présentation de concepts, de démonstrations et de travaux pratiques pour les participants. Les participants auront l’occasion de mettre en pratique les concepts couverts en utilisant des données réelles et en travaillant sur un problème concret.
Introduction au machine learning et ses principales applications 30 min
Méthodologie générale de data science pour l’apprentissage automatique supervisé 1h30
- L’exploration de données
- La définition de la cible et des variables explicatives
- La construction du jeu de données et leur préparation
- Le choix du modèle supervisé de classification ou de régression (Gradient Boosting, Random Forest, Réseaux de neurones, Régressions, etc)
- Le paramétrage et l’entraînement du modèle
- L’évaluation du modèle
Codage d’un algorithme simple de machine learning 2h
- Vectorisation du problème
- Descente de gradient
- Diagnostic du modèle
Cas pratique sur un problème concret issu de Kaggle (prédiction du nombre de locations de velib) 4h
- Exploration de données
- Entraînement de modèles
- Evaluation de modèles
- Affichage et analyse des résultats.
Mettre en œuvre une démarche MLOps de gestion du cycle de vie des modèles de bout en bout 4h
- Versioning et linéage de modèles
- Serving des prédictions via API,
- Monitoring et ré-entraînement de modèle
Public visé
Toute personne souhaitant développer une utilisation avancée de Python dans le domaine de la data science et du machine learning, notamment les data scientists et data analysts déjà utilisateurs de Python.
Le machine learning engineer est à la frontière entre la data science et la data ingénierie. Cette formation agrège des enseignements en machine learning et en MLOps, en ne gardant que l’essentiel nécessaire à la pratique en entreprise.
Prérequis
Parmi nos formations au langage Python, cette formation est le niveau 3. Elle requiert une bonne maîtrise et une utilisation régulière de Python (contenu des formations niveau 1 - Python initiation et niveau 2 - Python intermédiaire).
En vous inscrivant aux deux autres modules Python expert (Traitement du langage naturel et Développement d’interfaces graphiques et dataviz avancé), bénéficiez d’un tarif réduit sur le prix total des 3 modules : 4200 € au lieu de 4590 €, pour 6 jours de formation.
Approche pédagogique
Calculés à partir de 23 avis recueillis depuis 04/11/2021, lors de 5 sessions de cette formation.
Machine learning engineer : le modèle n'est qu'une petite partie du système
Le métier de machine learning engineer s’est imposé au milieu des années 2010, quand les entreprises ont constaté qu’un modèle performant dans un notebook ne suffisait pas : il faut l’alimenter en données, le servir, le surveiller et le remplacer. Un article de 2015 a donné à ce constat son image la plus connue.
La petite boîte noire de Google (2015)
En 2015, une équipe d’ingénieurs de Google menée par D. Sculley publie à la conférence NIPS « Hidden Technical Debt in Machine Learning Systems ». Sa figure la plus reprise représente un système de machine learning réel : au centre, une petite boîte noire, le code du modèle ; autour, des blocs bien plus grands, de la collecte et la vérification des données à l’infrastructure de service et à la surveillance. Les auteurs y énoncent aussi le principe CACE, Changing Anything Changes Everything : dans un modèle, aucune entrée n’est vraiment indépendante, et changer une variable, un hyperparamètre ou un échantillonnage peut modifier l’ensemble des prédictions. Le terme MLOps désigne les pratiques nées de ce constat.
Savoir ce que fait fit
Un ML engineer passe plus de temps autour du modèle que dedans, mais il doit savoir ce qui s’y passe. La descente de gradient, sur laquelle repose l’entraînement des réseaux de neurones, tient en quelques lignes de NumPy. Sur une régression linéaire, on peut la comparer à la solution exacte :
import numpy as np
rng = np.random.default_rng(0)
n = 500
X = np.column_stack([np.ones(n), rng.normal(size=(n, 2))])
y = X @ np.array([3.0, 1.5, -2.0]) + rng.normal(scale=0.5, size=n)
theta = np.zeros(3)
pas = 0.1
for _ in range(500):
gradient = 2 / n * X.T @ (X @ theta - y) # dérivée de l'erreur quadratique moyenne
theta -= pas * gradient
print(theta) # [ 3.03 1.52 -2.02]
print(np.linalg.lstsq(X, y, rcond=None)[0]) # même résultat, solution exacte des moindres carrés
Écrire la mise à jour sous forme matricielle plutôt qu’en boucle sur les observations, c’est vectoriser le problème. Choisir le pas et le nombre d’itérations, c’est déjà régler des hyperparamètres : un pas trop grand fait diverger l’algorithme, un pas trop petit le rend interminable.
Après la mise en production : la dérive
Un modèle est entraîné sur le passé. Quand le monde change, ses performances se dégradent sans qu’aucune ligne de code ait bougé. On distingue la dérive des données (data drift), quand la distribution des variables explicatives se déplace, et la dérive de concept (concept drift), quand c’est la relation entre ces variables et la cible qui change : une grève des transports ou un confinement modifient du jour au lendemain l’usage des vélos en libre-service. La surveillance compare en continu les données reçues et les prédictions à celles de l’entraînement, et signale le moment de ré-entraîner. Le versioning des modèles permet alors de savoir quelle version a produit quelle prédiction, et de revenir en arrière si besoin.
Les méthodes d’apprentissage elles-mêmes sont l’objet des Fondamentaux du machine learning avec Python ; l’outillage MLOps est approfondi dans MLOps : principes, mise en œuvre et pratique.