-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
43 lines (37 loc) · 2.44 KB
/
Copy pathMakefile
File metadata and controls
43 lines (37 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# holdover -- FTI on Hopsworks: which of today's fires will still burn tomorrow
# F (FIRMS cells + weather FGs) -> T (GBM, beat persistence AND weather alone) -> I (daily predict + Med map app)
FEAT_ENV = python-feature-pipeline
# ---- F: backfill (run once; weather is quota-paced and resumable, re-run until done) ----
fires-job: ## deploy + run the FIRMS archive backfill (2020-2024, 5 countries)
hops job deploy hv-fires pipelines/fires_pipeline.py --env $(FEAT_ENV) --overwrite
hops job run hv-fires --args "--backfill"
weather-job: ## deploy + run the ERA5 window backfill (resumable; re-run if it stalls on quota)
hops job deploy hv-weather pipelines/weather_pipeline.py --env $(FEAT_ENV) --overwrite
python3 -c "import hopsworks; j = hopsworks.login().get_job_api().get_job('hv-weather'); \
j.config['resourceConfig'].update(memory=8192, cores=2); j.save()"
hops job run hv-weather --args "--backfill"
# ---- daily incrementals (schedule once backfills are clean) ----
schedule: ## daily: NRT fires ~03:30 UTC, forecast weather ~04:00, predict later
hops job schedule hv-fires "0 30 3 * * ?"
hops job schedule hv-weather "0 0 4 * * ?"
hops job schedule hv-predict "0 30 4 * * ?"
hops job schedule hv-train "0 0 5 * * ?"
# ---- smoke (terminal, no FG write beyond an upsert of the live window) ----
smoke-fires: ## one incremental NRT pass from the terminal
python3 pipelines/fires_pipeline.py
smoke-weather: ## one incremental forecast pass from the terminal
python3 pipelines/weather_pipeline.py
.PHONY: fires-job weather-job fv train-job predict-job app schedule smoke-fires smoke-weather
# ---- T: feature view + train (gate: FUSED must beat PERSIST and WEATHER alone) ----
fv: ## (re)build the leak-free feature view
python3 pipelines/build_fv.py
train-job: ## deploy + run training (8 GB; registers holdover_gbm + ablation + plots)
hops job deploy hv-train pipelines/train.py --env pandas-training-pipeline --overwrite
python3 -c "import hopsworks; j = hopsworks.login().get_job_api().get_job('hv-train'); \
j.config['resourceConfig'].update(memory=8192, cores=2); j.save()"
hops job run hv-train --wait
# ---- I: daily forecast ----
predict-job: ## deploy + run the daily holdover forecast
hops job deploy hv-predict pipelines/predict.py --env pandas-training-pipeline --overwrite --run --wait
app: ## deploy the live Med fire map app
python3 app/deploy_app.py