Tutorial MLOps End-to-End Project: Dari Data ke Produksi

# Tutorial 20: Proyek MLOps End-to-End ## Daftar Isi 1. [Pendahuluan](#pendahuluan) 2. [Prasyarat](#prasyarat) 3. [Gambaran Proyek](#gambaran-proyek) 4. [Versioning Data dengan DVC](#versioning-data...

By Ruby Abdullah · · tutorial
MLOpsEnd-to-EndCI/CDDVCMLflowProduction

Tutorial 20: Proyek MLOps End-to-End

Daftar Isi

  • Pendahuluan
  • Prasyarat
  • Gambaran Proyek
  • Versioning Data dengan DVC
  • Pelacakan Eksperimen dengan MLflow
  • Membangun Pipeline Pelatihan
  • Model Registry
  • CI/CD dengan GitHub Actions
  • Kontainerisasi dengan Docker
  • Deployment
  • Monitoring dengan Evidently
  • Alerting (Sistem Peringatan)
  • Praktik Terbaik
  • Kesimpulan
  • Pendahuluan

    MLOps adalah disiplin untuk men-deploy dan memelihara model machine learning di produksi secara andal dan efisien. Meskipun membangun model yang akurat itu penting, tantangan sesungguhnya terletak pada segala hal di sekitarnya: melakukan versioning data dan kode secara bersamaan, melacak eksperimen secara reproducible, mengotomatisasi pipeline pelatihan dan deployment, memantau performa model di produksi, dan merespons data drift.

    Tutorial ini memandu Anda melalui proyek MLOps yang lengkap dari data mentah hingga monitoring produksi. Kita akan membangun sistem prediksi churn pelanggan menggunakan alat standar industri: DVC untuk versioning data, MLflow untuk pelacakan eksperimen dan registry model, GitHub Actions untuk CI/CD, Docker untuk kontainerisasi, dan Evidently untuk monitoring produksi.

    Prasyarat

    • Python 3.9+
    • Git dan akun GitHub
    • Docker dan Docker Compose
    • AWS CLI atau CLI cloud sejenis (untuk deployment)
    • Pemahaman dasar pelatihan model ML

    # Instal semua paket yang diperlukan
    

    pip install dvc[s3] mlflow scikit-learn pandas evidently

    pip install fastapi uvicorn docker boto3

    import os

    print("Tutorial MLOps E2E - Pengaturan Lingkungan")

    Gambaran Proyek

    Struktur proyek kita mengikuti praktik terbaik MLOps dengan pemisahan tanggung jawab yang jelas.

    prediksi-churn/
    

    ├── .github/

    │ └── workflows/

    │ ├── train.yml

    │ ├── test.yml

    │ └── deploy.yml

    ├── data/

    │ ├── raw/

    │ │ └── pelanggan.csv.dvc

    │ └── processed/

    │ └── fitur.csv.dvc

    ├── src/

    │ ├── data/

    │ │ ├── init.py

    │ │ ├── persiapan.py

    │ │ └── validasi.py

    │ ├── fitur/

    │ │ ├── init.py

    │ │ └── bangunfitur.py

    │ ├── model/

    │ │ ├── init.py

    │ │ ├── latih.py

    │ │ └── prediksi.py

    │ └── monitoring/

    │ ├── init.py

    │ └── deteksidrift.py

    ├── serving/

    │ ├── app.py

    │ ├── Dockerfile

    │ └── requirements.txt

    ├── tests/

    │ ├── testdata.py

    │ ├── testmodel.py

    │ └── testapi.py

    ├── configs/

    │ └── config.yaml

    ├── dvc.yaml

    ├── dvc.lock

    ├── params.yaml

    ├── docker-compose.yml

    └── requirements.txt

    Versioning Data dengan DVC

    DVC (Data Version Control) melacak dataset besar dan file model bersamaan dengan repositori Git Anda tanpa menyimpannya langsung di Git.

    Menyiapkan DVC

    # Inisialisasi DVC di repositori Git Anda
    

    cd prediksi-churn

    dvc init

    Konfigurasi penyimpanan remote (S3 dalam contoh ini)

    dvc remote add -d myremote s3://my-ml-bucket/dvc-store

    dvc remote modify myremote region us-east-1

    Lacak file data

    dvc add data/raw/pelanggan.csv

    git add data/raw/pelanggan.csv.dvc data/raw/.gitignore

    git commit -m "Lacak data pelanggan mentah dengan DVC"

    Push data ke penyimpanan remote

    dvc push

    Definisi Pipeline DVC

    # dvc.yaml - Mendefinisikan pipeline ML yang reproducible
    

    stages:

    persiapan:

    cmd: python src/data/persiapan.py

    deps:

    • src/data/persiapan.py
    • data/raw/pelanggan.csv
    params:

    • persiapan.testsize
    • persiapan.randomseed
    outs:

    • data/processed/train.csv
    • data/processed/test.csv

    Artikel Terkait

    Tutorial Azure DevOps untuk MLOps: CI/CD untuk Machine Learning

    Tutorial Lengkap Azure DevOps untuk MLOps: CI/CD untuk Machine Learning Azure DevOps menyediakan kemampuan CI/CD kompreh...

    Tutorial Integrasi Azure MLflow: Experiment Tracking di Azure

    Tutorial Lengkap Azure MLflow Integration: Experiment Tracking dan Model Management Azure Machine Learning menyediakan i...

    Tutorial Azure ML Managed Endpoints: Deployment Model Produksi

    Tutorial Lengkap Azure ML Managed Endpoints: Deployment Model Production Azure ML Managed Endpoints menyediakan solusi f...

    Tutorial Azure ML Pipelines: Automasi Pipeline ML

    Tutorial Lengkap Azure ML Pipelines: CI/CD untuk Machine Learning Azure ML Pipelines memungkinkan Anda membangun workflo...