Giter Site home page Giter Site logo

ademe's Introduction

Workshop MLops

Ce workshop consiste a partir de 2 scripts pythoin de tranformaton des donne et d'entrainement / selection d'un medoele predictif a construire un pipeline de mise en production d'un service de prevision du DPE d'un etablissement en fonction de paramtres de consommation et d'usage de l'energie.

MLops

Le MLops consiste a mettre des modeles de machine learning en production. On passe d'un POC sur un notebook jupyter à un système robuste, stable et controllé de gestion et d'execution des modeles.

Le MLops se joue sur 2 niveaux

la pratique: avec un focus sur la tracabilité des elements (data, model, experiences) et la fiabilit≥é des operations (tests)

les outils. On decompose chaque etape du lifecycle d'un modele et de ses artifacts (dataset) pour en faire une etape a part entiere avec sa prqtiaue et ses plateformes et outils.

A ceci on rajoute: Une couche d'automatisation des etapes du cycle de vie du modele et des données et l'automatisation de l'allocation des ressources alloué a l'exploitation des modeles

La data

En amont on travaille sur la data. On va donc orchestrer

  • le stockage: on passe d'un csv a une base donne ou un data store (BigQuery, postgresql, S3, GCP Storage, ......)
  • l'extraction: Airflow
  • le nettoyage et le feature engineering: Airflow
  • la validation des data (Pydantic, Feast, ...)
  • la versionalisation des datasets (CCI/CD)

Toutes les etapes d'obtention et de transformation des données sont controllées et versionnée et automatisée.

Le modele

De meme, les etapes d'entrainement et de mise en production d'un modele sont automatisées

  • entrainement et selection (MLflow)
  • le monitoring (Seldon) et la detection de drift

Les ressources

La mise a disposition ou la mise en veille des instances de calcul, des machines virtuelles, est automatisée

  • terraform: IaaS, l'infrastructure est gerée comme du code avec un versionnage et une automatisation
  • Kubernetes, Kubeflow

Le workshop

Ce workshop part donc d'une version POC d'entraînement d'un modele de ML classique et peitt a petit transforme ces scripts locaux en un systeme de production.

dataset : DPE de l'Ademe

On utilise le dataset de l'Ademe sur les DPE dans le tertiaire. Ce dataset est accessible publiquement sur le site de l'Ademe. Un extrait du modele avec 10k enregistrements est notre point de depart.

Tracabilité des modeles et de leur selection avec MLflow

On part de 2 scripts python, de transformation des données et d'entraînement / selection du modele.

On va d'abord intrduire la tracvabilité de l;entraienemnt des modele avec MLflow.

  • installation de MLflow
  • log des parametres, metriques, artifact et modele
  • autolog
  • sauvegarde du modele
  • predire a partir du modele

Creer une API avec FastAPI

On va decoupler la parti sleection / opttimisation du modele de son exploitation. Pour cela on cree un API avec FAstAPI qui va nous permettre

  • de creer un endpoint ou seront envoyé les donnees d/entree
  • de valider ces données (Pydantic)
  • de charger le modele
  • de predire le DPE

Du Local au Cloud

A ce stade, nous avons donc des data de base, un modele entrainé en local et une API aussi en locale.

Nous allons petit a petit passer nous affranchr du local pour apsser online sur une infrastructure cloud.

Le modele

Commencons par le modele. Nous allons mettre le modele optimisé sur une solution de storage de type S3 ou Google Storage. et modifier ensuite notre API pour qu'elle interroge le modele disponible online.

L'application FastAPI

Pour deployer l'endpoint Fast API, la bonne prqtieu est de dockeriser l'application pour ...

Le serveur MLflow

pendant qu'on y est on va aussi dockerizer le serveur MLflow qui devient alors collaboratif

Une interface

A ce stade nous pouvons interorger le modele en liogne de commande. mais ce n'est pas l'approche favorite de tout le mopnde. Une intercace web serait plus adpatée

Sttreamlit offre une façon simple et rapide pour mettre en ligne une application simple ou l'utilisteur peut saisir ses données, et ainsi obtenir une prediction de son DPE.

ademe's People

Contributors

alexisperrier avatar guillaumedupuy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.