L’objectif de ce projet est de déployer et maintenir un modèle de machine learning de manière fiable et efficace dans un environnement de production.
La partie MLOPS ne comprend pas le front-end ni la mise en place de la base de données.
la stack technique utilisée sur ce projet est :
- SCIKIT LEARN pour le machine learning
- FASTAPI/UVICORN pour le back end
- DOCKER pour la conteneurisation
- AIRFLOW
- GITHUB
├── data
│ ├── predict
│ ├── raw
│ └── refined
├── logs
├── pyventive_maintenance
│ ├── model
│ ├── setting
│ ├── src
│ │ ├── classes
│ └── test
│ ├── auto_ml_model_test
│ ├── raw_train_test
│ └── train_df_test
└── temp
Les dossiers data, logs et temp seront partagés entre les containeurs.
Le jeu de donnée utilisé pour ce projet provient du site Kaggle, “https://www.kaggle.com/datasets/vinayak123tyagi/bearing-dataset”, les données ont été générées par le IMS– www.imscenter.net.
Quatre roulements ont été installés sur un arbre, des accéléromètres mesurent toutes les 10 minutes les vibrations du système jusqu'à rupture des roulements. L’objectif étant d’utiliser ces données pour prédire l'état d’usure des roulements afin de faire de la maintenance préventive.
Les données de chaque enregistrement sont disponibles dans un fichier texte sous la forme d’une liste d'accélérations :
-
La première étape consiste à transformer les accélérations en données fréquentielles avec une transformée de fourier
-
Ensuite toutes les données sont agrégées dans un dataframe d'entraînement
-
Enfin une normalisation est effectuée et un modèle auto-ml est entraîné.
On peut voir sur l'image suivante qu'il y a des corrélations assez bonnes entre une hypothèse de dégradation linéaire et l'analyse vibratoire pour le roulement 2, notamment dans les fréquences autour de 1000 hz.