Sérialiser le modèle AVEC ses métadonnées de traçabilité
Un .joblib nu est une bombe à retardement : embarquer version, date, hash des données, métriques et colonnes attendues dans le même artefact rend chaque modèle auditable.
Cas d'usage
Répondre en 30 secondes à « ce modèle en prod, il a été entraîné sur quoi et il valait combien ? »
Prérequis
joblib, scikit-learn
Python
import hashlib
import json
from datetime import datetime, timezone
import joblib
import sklearn
donnees_hash = hashlib.sha256(
X_train.to_csv(index=False).encode()
).hexdigest()[:16]
bundle = {
"pipeline": pipe,
"meta": {
"version": "2.4.0",
"entraine_le": datetime.now(timezone.utc).isoformat(),
"sklearn": sklearn.__version__,
"hash_donnees": donnees_hash,
"n_train": len(X_train),
"colonnes": list(X_train.columns),
"metriques": {"auc_cv": 0.812, "ap_cv": 0.341},
},
}
joblib.dump(bundle, "modele_v2.4.0.joblib", compress=3)
charge = joblib.load("modele_v2.4.0.joblib")
print(json.dumps(charge["meta"], indent=2, default=str))Résultat
{
"version": "2.4.0",
"entraine_le": "2026-06-10T22:14:08.512345+00:00",
"sklearn": "1.5.2",
"hash_donnees": "a3f8c91d2e4b7f60",
"n_train": 48213,
"colonnes": [
"age",
"montant",
"anciennete_jours"
],
"metriques": {
"auc_cv": 0.812,
"ap_cv": 0.341
}
}joblibVersioningTraçabilitéMLOps