Déployer des modèles de Machine Learning en production
Sinan Ozdemir
Data Scientist, Entrepreneur, and Author
Méthodes d'emballage
Sérialisation – stocker et récupérer un modèle de Machine Learning
Emballage d'environnement – environnement uniforme et reproductible pour le modèle de Machine Learning
Conteneurisation – emballer le modèle, ses dépendances et l'environnement dans un « conteneur »
Sérialiser un modèle sklearn avec pickle :
import pickle
model = ... # Train the scikit-learn model
# Serialize the model to a file
with open('model.pkl', 'wb') as f:
pickle.dump(model, f)
# Load the serialized model from the file
with open('model.pkl', 'rb') as f:
model = pickle.load(f)
Sérialiser un modèle sklearn au format HDF5 :
import h5py
import numpy as np
from sklearn.externals import joblib
model = ... # Train the scikit-learn model
# Serialize the model to an HDF5 file
with h5py.File('model.h5', 'w') as f:
f.create_dataset('model_weights',
data=joblib.dump(model))
# Load the serialized model from the HDF5 file
with h5py.File('model.h5', 'r') as f:
model = joblib.load(f['model_weights'][:])
Sérialiser un modèle PyTorch :
import torch
# Train a PyTorch model and store it in a variable
trained_model = ...
# Serialize the trained model to a file
serialized_model_path = 'model.pt'
torch.save(trained_model.state_dict(), serialized_model_path)
# Load the serialized model from a file
loaded_model = ... # Initialize the model
loaded_model.load_state_dict(
torch.load(serialized_model_path))
Sérialiser un modèle Tensorflow :
import tensorflow as tf
# Train a Tensorflow model
trained_model = ...
# Save the trained model to a directory
saved_model_directory = 'model/'
tf.saved_model.save
(trained_model, saved_model_directory)
# Load the saved model from the directory
loaded_model = tf.saved_model.load(
saved_model_directory)

# Use an existing image as the base image
FROM python:3.8-slim
# Set the working directory
WORKDIR /app
# Copy the requirements file to the image
COPY requirements.txt .
# Install the required dependencies
RUN pip install -r requirements.txt
# Copy the ML model and its dependencies to the image
COPY model/ .
# Set the entrypoint to run the model
ENTRYPOINT ["python", "run_model.py"]
<---- Utiliser l'image de base Python 3.8
<---- Définir le répertoire de travail
<---- Copier le fichier requirements.txt
<---- Installer les dépendances du modèle
<---- Copier le modèle dans le conteneur
<---- Indiquer comment démarrer le conteneur
Sérialiser le modèle de Machine Learning entraîné au moyen d'un format comme pickle, HDF5 ou PyTorch.
Conteneuriser le modèle sérialisé, ses dépendances et l'environnement
Déployer l'image Docker dans un environnement cible, p. ex. une plateforme infonuagique
Exécuter le conteneur Docker à partir de l'image déployée et exécuter le modèle de Machine Learning.
Utiliser le modèle dans le conteneur via une API ou un autre point d'accès.

Déployer des modèles de Machine Learning en production