Architecture des pipelines

Concevoir des pipelines de prévision pour la production

Rami Krispin

Senior Manager, Data Science and Engineering

Déploiement de modèles

Processus d'expérimentation

Concevoir des pipelines de prévision pour la production

Déploiement de modèles

Pipelines ETL et ML

Concevoir des pipelines de prévision pour la production

Exigences des pipelines

Ingestion des données

  • Fréquence d'actualisation : quotidienne

Actualisation des prévisions

  • Fréquence d'actualisation : quotidienne
  • Horizon de prévision : 72 heures

Robuste

  • Tests unitaires et étapes de validation
  • Journaux
  • Facile à maintenir
Concevoir des pipelines de prévision pour la production

Conception du pipeline

Exigences du pipeline : requêtes API, transformation des données, actualisation des prévisions, et journalisation

Concevoir des pipelines de prévision pour la production

Conception du pipeline

Processus d'ingestion des données

Concevoir des pipelines de prévision pour la production

Conception du pipeline

Automatisation des prévisions

Concevoir des pipelines de prévision pour la production

Conception du pipeline

Stockage des données

Concevoir des pipelines de prévision pour la production

Conception du pipeline

Journalisation

Concevoir des pipelines de prévision pour la production

Conception du pipeline

Outils du pipeline : Airflow, mlflow, nixtla

Concevoir des pipelines de prévision pour la production

Registre de modèles

Approches

  • Enregistrer tous les modèles
  • N'enregistrer que le meilleur modèle

Prérequis

  • MLflow flavor
  • Fonction personnalisée
  • Objet ajusté
  • Méthode de prédiction
Concevoir des pipelines de prévision pour la production

Registre de modèles

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)
Concevoir des pipelines de prévision pour la production

Registre de modèles

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


params = { "freq": "h", "lags": list(range(1, 24)), "date_features": ["month", "day", "dayofweek", "week", "hour"] }
Concevoir des pipelines de prévision pour la production

Registre de modèles

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

mlf.fit(ts)
Concevoir des pipelines de prévision pour la production

Registre de modèles

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")
Concevoir des pipelines de prévision pour la production

Registre de modèles

Registre de modèles avec le nom d'exécution mis en évidence

Concevoir des pipelines de prévision pour la production

Registre de modèles

Registre de modèles avec le nom du modèle mis en évidence

Concevoir des pipelines de prévision pour la production

Registre de modèles

Métadonnées du registre de modèles

Concevoir des pipelines de prévision pour la production

Passons à la pratique !

Concevoir des pipelines de prévision pour la production

Preparing Video For Download...