TP2 Partie 1 : package lab + DVC (split full_history v1)
This commit is contained in:
58
README.md
Normal file
58
README.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# 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`.
|
||||
Reference in New Issue
Block a user