Pourquoi la SNCF utilise l’IA pour optimiser le coût de sa supply chain

En charge de la maintenance des trains, SNCF Matériel exploite un algorithme de Machine Learning pour optimiser ses stocks de pièces détachées. Un modèle d’IA qui permet de limiter les surstocks dont les performances dépassent largement les pratiques en place.

Dans ses 35 technicentres, SNCF Matériel assure la maintenance de près de 17 000 matériels roulants.  Ses techniciens reçoivent en moyenne 60 000 livraisons de pièces détachées par mois destinés aux TGV, TER, Transilien, Intercités ou encore trains de fret.

Avec près de 150 000 références d’articles au catalogue, ce sont des centaines de millions d’euros qui sont immobilisés en permanence dans ses stocks. Réduire les surstocks est donc un moyen rapide de réaliser d’importantes économies.

Camille Samson – Directrice de mission Data chez ITNOVEM, la filiale technologique de la SNCF dédiée à la transformation numérique du groupe.

« Nous avons été contactés par la DSI Matériel il y a un peu moins de deux ans afin de nous missionner sur des projets de Supply Chain . Il y avait un besoin de construire un outil d’IA pour faire de la prédiction du risque de surstock. L’objectif était de fournir des prédictions toutes les semaines directement au sein de l’ERP des approvisionneurs qui commandent les pièces afin de les aider dans leurs prises de décision. » raconte Camille Samson, directrice de mission Data chez ITNOVEM, la filiale technologique de la SNCF dédiée à la transformation numérique du groupe.

Un Poc pour convaincre les approvisionneurs

La Factory Data IA d’ITNOVEM lance alors un Proof of Concept (PoC) afin de démontrer aux approvisionneurs que le Machine Learning pouvait leur apporter une réponse sur cette problématique de surstocks.

Avec les experts métiers, les data scientists vont définir trois types distincts de surstock : le niveau vert est un surstock temporaire, considéré comme non critique. Un surstock Orange est considéré comme moyen tandis que la couleur rouge est attribuée au surstock critique, le plus couteux car amené à durer dans le temps.

« Nous avions à notre disposition des données sources comme les montants des achats, des référentiels sur les articles, sur les technicentres ainsi que des historiques de planification avec les stocks, les demandes, les ordres de fabrication, etc. » explique Amine Souiki, Senior Data Scientist et Data Engineer Senior à la SNCF. « A partir de ces données, nous avons construit des variables composées, puis avec des méthodes statistiques nous avons identifié les corrélations entre ces variables explicatives et notre variable cible. Nous nous sommes limités aux variables les plus influentes pour construire un algorithme plus pertinent. »

Amine Souiki, Senior Data Scientist et Data Engineer Senior à la SNCF.

Plusieurs algorithmes sont testés et c’est finalement un modèle de Gradient Boosting qui a délivré les meilleures prédictions. Le jeu de données a été scindé en deux parties : une partie est consacrée à l’entrainement du modèle, la seconde pour tester le modèle et calculer les métriques de performance.

« Nous avons comparé les résultats de notre algorithme aux résultats délivrés par les règles métiers déjà en place. Nous sommes parvenus à réduire d’un facteur 8 environ le coût estimé des surstocks tout en respectant les contraintes métiers ! » poursuit-il. Les performances ont été calculées sur un échantillon de données de 5 mois.

Une industrialisation menée sur AWS

L’équipe ayant pu démontrer le potentiel de son modèle de Machine Learning, celle-ci passe en phase d‘industrialisation. Dans sa phase amont de collecte des données, l’architecture mise en place s’appuie sur le composant Apache Nifi qui réalise des extractions de fichiers CSV depuis l’ERP de SNCF Matériel. Ces fichiers sont envoyés dans un data lake porté par S3 au format Parquet.

Vient ensuite une étape de nettoyage et mise en qualité des données. Les Data Engineer choisissent AWS Glue et AWS Glue Catalog pour indexer ces données qui peuvent alors être requêtées en Spark SQL via une instance Databricks. Les autres traitements sont réalisés en Python.

« La phase d’entraînement a lieu chaque premier dimanche du mois et la phase d’inférence une fois par semaine. Pour l’entraînement, nous utilisons la librairie de Machine Learning LightGBM. Toutes les variables et modèles sont versionnés et stockés via la solution MLflow qui est aussi intégrée à Databricks » ajoute le data scientist. Une fois par semaine, un nouveau calcul de prédictions est lancé. » détaille Amine Souiki.

Les prédictions issues du modèle de Machine Learning sont présentées à l’opérateur directement au sein de son application métier. Elles constituent une aide à la décision quant à la validation d’un ordre d’achat.

En phase d’inférence, MLflow fournit la dernière version du modèle entrainé et pour chaque ordre d’achat soumis par l’approvisionneur, le modèle génère de la probabilité pour les trois classes ainsi qu’un graphe d’explicabilité.

En effet, afin d’accroître la confiance dans le modèle et faciliter son adoption dans les technicentres, les data scientists ont décidé de doter leur modèle d’une capacité d’explicabilité.
« Nous avons choisi d’utiliser la méthode SHAP [ndlr : méthode d’estimation des valeurs de Shapley]. Pour chaque prédiction, celle-ci donne les différentes variables, avec leurs poids dans la prédiction. La méthode délivre 3 graphiques d’explicabilité, mais nous ne montrons à l’utilisateur que le graphique de la classe prédite pour une plus grande simplicité. » précise Camille Samson.

Elle estime que le projet est iconique de ce que peut apporter la Factory Data IA d’ITNOVEM au groupe SNCF « Nous avons été capables au sein de la SNCF d’apporter un changement dans des process qui sont ancrés dans les équipes qui ne sont pas sensibilisées aux problématiques d’IA. » Si les cas d’usage de l’IA dans l’industrie sont très nombreux, rares sont les PoC à aller jusqu’au stade de la production. ITNOVEM a démontré qu’à la SNCF, c’est possible !

Crédit images : DR @SNCF