Files
ENI-ml-mlops/README.md

2.0 KiB

TP02 - Comparer et tracer des experimentations ML (DVC + MLflow)

Fil rouge : prediction de la consommation electrique. Ce module compare des strategies de features et de split, en versionnant les datasets avec DVC (remote S3 = Garage de la VM) et en tracant les experiences avec MLflow (serveur de la VM).

Prerequis (sur la VM)

  • venv : /opt/venvs/mlops
  • donnees source : /data/modelling/features.parquet + target.parquet
  • .env renseigne (voir .env.example), puis :
cd /home/user/tp
set -a; source .env; set +a
alias py=/opt/venvs/mlops/bin/python
alias dvc=/opt/venvs/mlops/bin/dvc

Package

  • lab/constants.py : strategies de split (full_history, recent_history), strategies de features (short_memory, seasonality, tendency, mixed, full), RIDGE_ALPHAS.
  • lab/split/cli.py : lit /data/modelling, ecrit data/{train,validation,test}.parquet selon CHOSEN_SPLIT_STRATEGY.
  • lab/modeling/cli.py : py -m lab.modeling.cli <strategy> -> regression lineaire -> MLflow.
  • lab/modeling_ridge/cli.py : py -m lab.modeling_ridge.cli [--strategy <s>] -> Ridge sur RIDGE_ALPHAS.

Versionner un dataset avec DVC

py -m lab.split.cli
dvc add data/train.parquet data/validation.parquet data/test.parquet
git add data/*.dvc data/.gitignore lab .gitignore
git commit -m "split <strategie>"
git tag dataset-<version>
dvc push

Restaurer une version anterieure du dataset :

git checkout dataset-v1-full-history -- data/train.parquet.dvc data/validation.parquet.dvc data/test.parquet.dvc
dvc checkout

Entrainements

for s in short_memory seasonality tendency mixed; do py -m lab.modeling.cli $s; done   # Parties 1 et 2
py -m lab.modeling_ridge.cli --strategy mixed                                          # Partie 3

Resultats et comparaisons : https://mlflow.192-168-122-143.nip.io (experience tp02_electricity_consumption).

Livrable

Synthese des resultats et reponses aux questions : SYNTHESE.md.