Pipeline-architectuur

Forecasting-pijplijnen ontwerpen voor productie

Rami Krispin

Senior Manager, Data Science and Engineering

Modelimplementatie

Experimentatieproces

Forecasting-pijplijnen ontwerpen voor productie

Modelimplementatie

ETL- en ML-pipelines

Forecasting-pijplijnen ontwerpen voor productie

Pipelinevereisten

Data-ingestie

  • Verversingsfrequentie: dagelijks

Forecast-verversing

  • Verversingsfrequentie: dagelijks
  • Horizon: 72 uur

Robuust

  • Unit tests en validatiestappen
  • Logs
  • Makkelijk te onderhouden
Forecasting-pijplijnen ontwerpen voor productie

Pipeline-ontwerp

Pipelinevereisten, incl. API-verzoeken, datatransformatie, forecast-verversing en logging

Forecasting-pijplijnen ontwerpen voor productie

Pipeline-ontwerp

Proces voor data-ingestie

Forecasting-pijplijnen ontwerpen voor productie

Pipeline-ontwerp

Automatisering van forecasting

Forecasting-pijplijnen ontwerpen voor productie

Pipeline-ontwerp

Gegevensopslag

Forecasting-pijplijnen ontwerpen voor productie

Pipeline-ontwerp

Logging

Forecasting-pijplijnen ontwerpen voor productie

Pipeline-ontwerp

Tools in de pipeline - Airflow, mlflow, nixtla

Forecasting-pijplijnen ontwerpen voor productie

Modelregistratie

Aanpakken

  • Registreer alle modellen
  • Registreer alleen het topmodel

Vereisten

  • MLflow-flavor
  • Aangepaste functie
  • Gefit object
  • Predict-methode
Forecasting-pijplijnen ontwerpen voor productie

Modelregistratie

from lightgbm import LGBMRegressor
from mlforecast import MLForecast
import mlflow
import mlforecast.flavor


experiment_name = "ml_forecast" mlflow_path = "file:///mlruns"
meta = mlflow.get_experiment_by_name(experiment_name)
Forecasting-pijplijnen ontwerpen voor productie

Modelregistratie

model = LGBMRegressor(n_estimators = 500, learning_rate= 0.05)


params = { "freq": "h", "lags": list(range(1, 24)), "date_features": ["month", "day", "dayofweek", "week", "hour"] }
Forecasting-pijplijnen ontwerpen voor productie

Modelregistratie

mlf = MLForecast(
    models= model,  
    freq= params["freq"], 
    lags=params["lags"],
    date_features=params["date_features"]
)

mlf.fit(ts)
Forecasting-pijplijnen ontwerpen voor productie

Modelregistratie

run_time = datetime.datetime.now().strftime("%Y-%m-%d %H-%M-%S")
run_name = f"lightGBM6_{run_time}"


print(run_name)
'lightGBM6_2025-05-19 05-12-16'
with mlflow.start_run(experiment_id=meta.experiment_id, 
                      run_name=run_name) as run:
  mlforecast.flavor.log_model(model=mlf, artifact_path="prod_model")
Forecasting-pijplijnen ontwerpen voor productie

Modelregistratie

Modelregister met run-naam gemarkeerd

Forecasting-pijplijnen ontwerpen voor productie

Modelregistratie

Modelregister met modelnaam gemarkeerd

Forecasting-pijplijnen ontwerpen voor productie

Modelregistratie

Modelregister-metadata

Forecasting-pijplijnen ontwerpen voor productie

Laten we oefenen!

Forecasting-pijplijnen ontwerpen voor productie

Preparing Video For Download...