Merancang eksperimen yang dapat direproduksi

Mengembangkan Model Machine Learning untuk Produksi

Sinan Ozdemir

Data Scientist and Author

Eksperimen yang dapat direproduksi

  • Memastikan akurasi dan keandalan.
  • Mempermudah replikasi hasil.
  • Memungkinkan kolaborasi yang lebih baik.
  • Membantu mengurangi bias pada model ML.
  • Memperkuat integritas proses riset.
Mengembangkan Model Machine Learning untuk Produksi

MLflow

Platform open-source untuk melacak dan mengelola eksperimen machine learning. MLflow dapat digunakan untuk:

  • Membuat pipeline ML yang dapat direproduksi
  • Melacak dan mengelola:
    • dependensi paket
    • versi kode
    • pengaturan eksperimen
  • Memungkinkan banyak pengguna mengakses eksperimen

mlflow

1 https://www.databricks.com/blog/2018/06/05/introducing-mlflow-an-open-source-machine-learning-platform.html
Mengembangkan Model Machine Learning untuk Produksi

Contoh penggunaan MLflow

# standard scikit-learn imports
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# new imports from MLflow
import mlflow
import mlflow.sklearn
Mengembangkan Model Machine Learning untuk Produksi

Contoh penggunaan MLflow (lanj.)

with mlflow.start_run():  # Start an MLflow run assuming we have data prepared

    # Build and train model
    rf = RandomForestClassifier()
    rf.fit(X_train, y_train)

    # Log parameters and model information
    mlflow.log_param("n_estimators", rf.n_estimators)
    mlflow.sklearn.log_model(rf, "model")

    y_pred = rf.predict(X_test)  # Evaluate model
    accuracy = accuracy_score(y_test, y_pred)
    mlflow.log_metric("accuracy", accuracy)  # log the test accuracy metric
Mengembangkan Model Machine Learning untuk Produksi

Pelacakan kode

  • Mencatat versi kode dan perubahannya dengan MLflow
  • Membandingkan berbagai versi kode
  • Mengidentifikasi versi kode yang menghasilkan suatu hasil
  • Mereproduksi eksperimen dengan mudah
  • Memudahkan debug dan pemecahan masalah
Mengembangkan Model Machine Learning untuk Produksi

Registri model

  • Repositori terpusat untuk model dan metadata-nya
  • MLflow dapat mencatat, menyimpan, dan membandingkan berbagai versi model
  • Mereproduksi seluruh pipeline ML
  • Untuk membandingkan model
  • Menjamin akurasi dan keandalan model

penyimpanan

Mengembangkan Model Machine Learning untuk Produksi

Reproduksibilitas eksperimen

  • Melacak dan mencatat data input, kode, dan pengaturan
  • Mereproduksi seluruh pipeline ML
  • Membangun kepercayaan pada hasil model ML
  • Memungkinkan orang lain memverifikasi dan mengembangkan pekerjaan
  • Menjamin hasil konsisten di berbagai run

Mengembangkan Model Machine Learning untuk Produksi

Meninjau dokumentasi

  • Dokumentasi penting untuk ML yang dapat direproduksi dan harus mencakup:
    • Data input model.
    • Kode yang digunakan untuk membuat model.
    • Pengaturan apa pun yang digunakan dalam eksperimen.
    • Hasil eksperimen (model yang dipilih, dll.)
  • Dokumentasi harus mudah diakses
  • Menjadi catatan lengkap suatu eksperimen
Mengembangkan Model Machine Learning untuk Produksi

Ayo berlatih!

Mengembangkan Model Machine Learning untuk Produksi

Preparing Video For Download...