DéploiementMLOpsProductionDevOps
Déployer des modèles d'IA en production : Guide complet
212AY Team·2026-05-20·16 min
Déployer des modèles d'IA en production est différent de leur entraînement. Ce guide couvre l'ensemble du pipeline de déploiement.
Le pipeline de déploiement
- Export du modèle : Convertir au format optimisé
- Conteneurisation : Empaqueter avec les dépendances
- Développement d'API : Créer un point de terminaison d'inférence
- Déploiement : Déployer dans le cloud ou sur site
- Surveillance : Suivre les performances et la dérive
- Passage à l'échelle : Gérer l'augmentation de charge
- Mise à l'échelle horizontale : Ajoutez plus d'instances derrière un équilibreur de charge
- Quantification du modèle : Réduisez la taille du modèle pour une inférence plus rapide
- Traitement par lots : Traitez plusieurs requêtes ensemble
- Mise en cache : Mettez en cache les résultats pour les entrées courantes
- Utilisez des instances spot pour le traitement par lots
- Mettez en cache les prédictions fréquemment demandées
- Quantifiez les modèles pour réduire la mémoire GPU
- Utilisez la distillation de modèles pour les tâches simples
- Conteneurisé avec Docker
- Déployé sur AWS ECS avec auto-scaling
- Traite plus de 10 000 transactions par minute
- 99,9% de disponibilité avec déploiement multi-AZ
- Moins de 100 ms de latence par prédiction
Étape 1 : Export du modèle
Exportez votre modèle entraîné vers un format optimisé :
# PyTorch vers TorchScript
import torch
model.eval()
example_input = torch.randn(1, 3, 224, 224)
traced_model = torch.jit.trace(model, example_input)
traced_model.save("model.pt")
# Ou utilisez ONNX pour le multi-plateforme
import torch.onnx
torch.onnx.export(model, example_input, "model.onnx")
Étape 2 : Conteneurisation
FROM python:3.10-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY model.pt .
COPY app.py .
EXPOSE 8000
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"]
Étape 3 : Développement d'API (FastAPI)
from fastapi import FastAPI, File, UploadFile
import torch
from PIL import Image
import io
app = FastAPI()
model = torch.jit.load("model.pt")
model.eval()
@app.post("/predict")
async def predict(file: UploadFile = File(...)):
image = Image.open(io.BytesIO(await file.read()))
# Prétraiter et prédire
tensor = preprocess(image)
with torch.no_grad():
output = model(tensor)
return {"prediction": postprocess(output)}
@app.get("/health")
async def health():
return {"status": "healthy"}
Étape 4 : Options de déploiement
Serverless : Utilisez AWS Lambda, Google Cloud Run ou Vercel pour les modèles légers.
Instances GPU : Utilisez AWS SageMaker, GCP AI Platform ou des serveurs GPU dédiés.
Déploiement edge : Utilisez TensorFlow Lite, ONNX Runtime ou CoreML pour le mobile.
Étape 5 : Surveillance
# Suivre les métriques clés
import time
import logging
def predict_with_monitoring(input_data):
start = time.time()
result = model.predict(input_data)
latency = time.time() - start
logging.info(f"Prédiction : {result}, Latence : {latency:.3f}s")
# Vérifier la dérive des données
check_drift(input_data)
return result
Étape 6 : Passage à l'échelle
Optimisation des coûts
Exemple concret
Une fintech marocaine a déployé un modèle de détection de fraude IA :
Prochaines étapes
Notre programme « Build with LLMs » enseigne le déploiement en production d'applications IA.