Arsitektur pipeline

Merancang Pipeline Peramalan untuk Produksi

Rami Krispin

Senior Manager, Data Science and Engineering

Deploy model

Proses eksperimen

Merancang Pipeline Peramalan untuk Produksi

Deploy model

Pipeline ETL dan ML

Merancang Pipeline Peramalan untuk Produksi

Persyaratan pipeline

Ingesti data

  • Frekuensi penyegaran - harian

Penyegaran peramalan

  • Frekuensi penyegaran - harian
  • Horizon peramalan - 72 jam

Tangguh

  • Unit test dan langkah validasi
  • Log
  • Mudah dipelihara
Merancang Pipeline Peramalan untuk Produksi

Desain pipeline

Persyaratan pipeline, termasuk permintaan API, transformasi data, penyegaran peramalan, dan pencatatan log

Merancang Pipeline Peramalan untuk Produksi

Desain pipeline

Proses ingest data

Merancang Pipeline Peramalan untuk Produksi

Desain pipeline

Otomatisasi peramalan

Merancang Pipeline Peramalan untuk Produksi

Desain pipeline

Penyimpanan data

Merancang Pipeline Peramalan untuk Produksi

Desain pipeline

Pencatatan log

Merancang Pipeline Peramalan untuk Produksi

Desain pipeline

Alat pada pipeline - Airflow, mlflow, nixtla

Merancang Pipeline Peramalan untuk Produksi

Registri model

Pendekatan

  • Daftarkan semua model
  • Daftarkan hanya model terbaik

Persyaratan

  • Flavor MLflow
  • Fungsi kustom
  • Objek terlatih
  • Metode prediksi
Merancang Pipeline Peramalan untuk Produksi

Registri model

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)
Merancang Pipeline Peramalan untuk Produksi

Registri model

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


params = { "freq": "h", "lags": list(range(1, 24)), "date_features": ["month", "day", "dayofweek", "week", "hour"] }
Merancang Pipeline Peramalan untuk Produksi

Registri model

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

mlf.fit(ts)
Merancang Pipeline Peramalan untuk Produksi

Registri model

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")
Merancang Pipeline Peramalan untuk Produksi

Registri model

Registri model dengan nama run disorot

Merancang Pipeline Peramalan untuk Produksi

Registri model

Registri model dengan nama model disorot

Merancang Pipeline Peramalan untuk Produksi

Registri model

Metadata registri model

Merancang Pipeline Peramalan untuk Produksi

Ayo berlatih!

Merancang Pipeline Peramalan untuk Produksi

Preparing Video For Download...