59 lines
2.0 KiB
Markdown
59 lines
2.0 KiB
Markdown
# 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 :
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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 :
|
|
|
|
```bash
|
|
git checkout dataset-v1-full-history -- data/train.parquet.dvc data/validation.parquet.dvc data/test.parquet.dvc
|
|
dvc checkout
|
|
```
|
|
|
|
## Entrainements
|
|
|
|
```bash
|
|
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`.
|