e6a05fbbc7933631bdbb3dda5e30ee0ace6579ac
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 .envrenseigne (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, ecritdata/{train,validation,test}.parquetselonCHOSEN_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 surRIDGE_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.
Description
Languages
Jupyter Notebook
88.6%
Python
11.2%
Shell
0.2%