Kiến trúc pipeline

Thiết kế Pipeline Dự báo cho Môi trường Production

Rami Krispin

Senior Manager, Data Science and Engineering

Triển khai mô hình

Quy trình thử nghiệm

Thiết kế Pipeline Dự báo cho Môi trường Production

Triển khai mô hình

Pipeline ETL và ML

Thiết kế Pipeline Dự báo cho Môi trường Production

Yêu cầu cho pipeline

Nạp dữ liệu

  • Tần suất làm mới: hằng ngày

Làm mới dự báo

  • Tần suất: hằng ngày
  • Tầm nhìn dự báo: 72 giờ

Vững chắc

  • Unit test và bước kiểm định
  • Log
  • Dễ bảo trì
Thiết kế Pipeline Dự báo cho Môi trường Production

Thiết kế pipeline

Yêu cầu pipeline, gồm gọi API, biến đổi dữ liệu, làm mới dự báo và ghi log

Thiết kế Pipeline Dự báo cho Môi trường Production

Thiết kế pipeline

Quy trình nạp dữ liệu

Thiết kế Pipeline Dự báo cho Môi trường Production

Thiết kế pipeline

Tự động hóa dự báo

Thiết kế Pipeline Dự báo cho Môi trường Production

Thiết kế pipeline

Lưu trữ dữ liệu

Thiết kế Pipeline Dự báo cho Môi trường Production

Thiết kế pipeline

Ghi log

Thiết kế Pipeline Dự báo cho Môi trường Production

Thiết kế pipeline

Công cụ dùng trong pipeline - Airflow, mlflow, nixtla

Thiết kế Pipeline Dự báo cho Môi trường Production

Kho đăng ký mô hình

Cách tiếp cận

  • Đăng ký mọi mô hình
  • Chỉ đăng ký mô hình tốt nhất

Yêu cầu

  • MLflow flavor
  • Hàm tùy chỉnh
  • Đối tượng đã fit
  • Phương thức predict
Thiết kế Pipeline Dự báo cho Môi trường Production

Kho đăng ký mô hình

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)
Thiết kế Pipeline Dự báo cho Môi trường Production

Kho đăng ký mô hình

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


params = { "freq": "h", "lags": list(range(1, 24)), "date_features": ["month", "day", "dayofweek", "week", "hour"] }
Thiết kế Pipeline Dự báo cho Môi trường Production

Kho đăng ký mô hình

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

mlf.fit(ts)
Thiết kế Pipeline Dự báo cho Môi trường Production

Kho đăng ký mô hình

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")
Thiết kế Pipeline Dự báo cho Môi trường Production

Kho đăng ký mô hình

Kho đăng ký mô hình với tên lần chạy được tô sáng

Thiết kế Pipeline Dự báo cho Môi trường Production

Kho đăng ký mô hình

Kho đăng ký mô hình với tên mô hình được tô sáng

Thiết kế Pipeline Dự báo cho Môi trường Production

Kho đăng ký mô hình

Siêu dữ liệu kho đăng ký mô hình

Thiết kế Pipeline Dự báo cho Môi trường Production

Ayo berlatih!

Thiết kế Pipeline Dự báo cho Môi trường Production

Preparing Video For Download...