Boru hattı mimarisi

Üretim için Tahmin (Forecasting) Hatları Tasarlama

Rami Krispin

Senior Manager, Data Science and Engineering

Model dağıtımı

Deney süreci

Üretim için Tahmin (Forecasting) Hatları Tasarlama

Model dağıtımı

ETL ve ML Boru Hatları

Üretim için Tahmin (Forecasting) Hatları Tasarlama

Boru hattı gereksinimleri

Veri alımı

  • Yenileme sıklığı: günlük

Tahmin yenileme

  • Yenileme sıklığı: günlük
  • Tahmin ufku: 72 saat

Dayanıklı

  • Birim testleri ve doğrulama adımları
  • Günlükler
  • Bakımı kolay
Üretim için Tahmin (Forecasting) Hatları Tasarlama

Boru hattı tasarımı

API istekleri, veri dönüşümü, tahmin yenileme ve günlüklemeyi içeren boru hattı gereksinimleri

Üretim için Tahmin (Forecasting) Hatları Tasarlama

Boru hattı tasarımı

Veri alım süreci

Üretim için Tahmin (Forecasting) Hatları Tasarlama

Boru hattı tasarımı

Tahmin otomasyonu

Üretim için Tahmin (Forecasting) Hatları Tasarlama

Boru hattı tasarımı

Veri depolama

Üretim için Tahmin (Forecasting) Hatları Tasarlama

Boru hattı tasarımı

Günlükleme

Üretim için Tahmin (Forecasting) Hatları Tasarlama

Boru hattı tasarımı

Boru hattında kullanılan araçlar - Airflow, mlflow, nixtla

Üretim için Tahmin (Forecasting) Hatları Tasarlama

Model kayıt defteri

Yaklaşımlar

  • Tüm modelleri kaydet
  • Yalnızca en iyi modeli kaydet

Gereklilikler

  • MLflow flavor
  • Özelleştirilmiş işlev
  • Eğitilmiş nesne
  • Tahmin yöntemi
Üretim için Tahmin (Forecasting) Hatları Tasarlama

Model kayıt defteri

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)
Üretim için Tahmin (Forecasting) Hatları Tasarlama

Model kayıt defteri

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


params = { "freq": "h", "lags": list(range(1, 24)), "date_features": ["month", "day", "dayofweek", "week", "hour"] }
Üretim için Tahmin (Forecasting) Hatları Tasarlama

Model kayıt defteri

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

mlf.fit(ts)
Üretim için Tahmin (Forecasting) Hatları Tasarlama

Model kayıt defteri

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")
Üretim için Tahmin (Forecasting) Hatları Tasarlama

Model kayıt defteri

Çalıştırma adı vurgulanmış model kayıt defteri

Üretim için Tahmin (Forecasting) Hatları Tasarlama

Model kayıt defteri

Model adı vurgulanmış model kayıt defteri

Üretim için Tahmin (Forecasting) Hatları Tasarlama

Model kayıt defteri

Model kayıt defteri metaverileri

Üretim için Tahmin (Forecasting) Hatları Tasarlama

Haydi pratik yapalım!

Üretim için Tahmin (Forecasting) Hatları Tasarlama

Preparing Video For Download...