Belajar ML Engineer - Experiment Tracking & Registry
Episode 6 of 28

Belajar ML Engineer - Experiment Tracking & Registry

Menghentikan budaya notebook bertebaran: mencatat setiap eksperimen dengan MLflow/W&B, membandingkan run secara sistematis, menyimpan artifact, dan mengelola model registry untuk menjawab satu pertanyaan penting — model mana yang sedang live, dan kenapa

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 5 kita membangun pipeline training yang jujur, sekarang muncul pertanyaan yang tidak bisa dihindari dalam proyek nyata: bagaimana mengingat semua eksperimen? Tanpa tracking, proyek ML berubah menjadi kekacauan: file model_final_v2_benar_pakai_inipake2.pkl, angka akurasi yang tersebar di chat, dan tidak ada yang bisa menjelaskan kenapa model produksi adalah model itu.

Pernah dengar istilah "lost experiment"? Ini masalah klasik: kalian tuning semalaman, menemukan konfigurasi terbaik, tapi tidak mencatat hyperparameter, data, atau seed-nya — dan tidak bisa mereproduksinya. Experiment tracking dan model registry adalah jawaban sistematis untuk masalah ini, dan menjadi pembeda utama antara data science hobby dan ML engineering profesional.

Mengapa Tracking Itu Penting

Tiga pertanyaan yang harus bisa dijawab setiap saat:

  1. Apa yang sudah saya coba? Daftar lengkap run dengan hyperparameter, dataset, dan metrik.
  2. Apa yang berhasil? Perbandingan run yang bisa diurutkan dan difilter.
  3. Apa yang sedang dipakai? Model mana yang live, di stage apa, dan riwayatnya.

Tanpa sistem, jawaban pertanyaan ketiga biasanya bergantung pada ingatan seseorang — dan itu cara yang buruk untuk menjalankan sistem produksi.

MLflow: Menyimpan Semua Eksperimen

MLflow adalah toolkit open source yang paling banyak dipakai untuk tracking dan registry. Konsep dasarnya sederhana: setiap kali kalian training, satu run dibuat yang mencatat parameters, metrics, artifacts, dan tags.

Tracking dengan MLflow
import mlflow
 
with mlflow.start_run(run_name="gbm-v1") as run:
    mlflow.log_param("n_estimators", 300)
    mlflow.log_param("max_depth", 6)
    mlflow.log_metric("roc_auc", 0.812)
    mlflow.log_metric("f1", 0.774)
    mlflow.log_artifact("model.pkl")
    mlflow.set_tag("dataset", "events_2026_q2")

Mengintegrasikan Tracking ke Pipeline Training

Tracking paling berharga saat otomatis, bukan manual:

Pipeline training dengan autolog
import mlflow
from sklearn.ensemble import GradientBoostingClassifier
 
with mlflow.start_run():
    mlflow.autolog()
    model = GradientBoostingClassifier(n_estimators=300, max_depth=6).fit(X_train, y_train)
    # autolog mencatat params, metrics, dan model artifact otomatis

autolog mencatat hyperparameter, metrik hasil fit, dan model artifact tanpa satu baris manual. Untuk deep learning, PyTorch dan Transformers juga didukung autolog di episode 12-13.

Membandingkan Eksperimen

Setelah belasan run, kalian perlu membandingkan secara sistematis. Lewat UI MLflow (mlflow ui) atau programatik:

Membandingkan run
import mlflow
from mlflow.tracking import MlflowClient
 
client = MlflowClient()
runs = client.search_runs(
    experiment_ids=["1"],
    order_by=["metrics.roc_auc DESC"],
)
for run in runs[:5]:
    print(run.info.run_id, run.data.metrics.get("roc_auc"), run.data.params)

Kebiasaan yang harus dibangun: satu ide → satu run yang terdokumentasi. Setiap perubahan hyperparameter, feature, atau data harus menjadi run baru dengan tag yang jelas — bukan menimpa variabel lama di notebook.

W&B sebagai Alternatif

Weights & Biases (W&B) menawarkan hal serupa dengan UI kolaboratif yang lebih mewah, integrasi dataset artifacts, dan fitur sweeps untuk hyperparameter search terdistribusi. Pilihannya antara MLflow (self-hosted, open source, integrasi ketat) dan W&B (SaaS, kolaborasi tim, sweeps) — konsep dasarnya sama, dan skill-nya portable.

Model Registry

Tracking mencatat proses; registry mengelola produk. Model registry menjawab: model mana yang staging, production, atau archived.

StageArtiPemakaian
None / NewModel hasil trainingMenunggu evaluasi
StagingLolos evaluasi awalUji coba, shadow deploy
ProductionLive di servingDipakai API produksi
ArchivedSudah digantiRiwayat, rollback
Register model ke registry
from mlflow.tracking import MlflowClient
 
client = MlflowClient()
result = mlflow.register_model(
    model_uri="runs:/<RUN_ID>/model",
    name="churn-predictor",
)
client.transition_model_version_stage(
    name="churn-predictor",
    version=result.version,
    stage="Staging",
)

Setiap versi model memiliki lineage: run id, hyperparameter, metrik, dan dataset yang dipakai. Saat ada masalah di produksi, kalian bisa menelusuri langsung ke konfigurasi yang menyebabkannya — itu kekuatan sebenarnya registry.

Alur Kerja Eksperimen yang Sehat

100%

Siklus ini menjadi dasar eval-driven development yang akan kita bahas lebih dalam di episode 24 — di mana evaluasi formal menjadi gerbang sebelum model naik ke produksi.

Warning

Registrasi model tanpa metrik yang lengkap adalah jebakan: tim yang "tinggal" register model dari run yang paling baru, bukan yang paling baik, perlahan menurunkan kualitas produksi. Buat aturan bahwa hanya run yang lolos gerbang evaluasi yang boleh masuk Production.

Common Pitfalls

PitfallDampakPencegahan
Tracking manual & tidak lengkapRun tidak bisa dibandingkanautolog
Menimpa model lama tanpa versioningTidak bisa rollbackModel registry + stage
Nama run generik (run_2)Sulit mencari konfigurasi tertentuTag & nama run deskriptif
Artifact tidak disimpanModel tidak bisa di-deploy ulanglog_artifact / autolog
Eksperimen tanpa seed tetapHasil tidak reproducibleSeed konsisten per run

Penutup

Pada episode 6 ini, kalian telah membangun sistem ingatan untuk eksperimen:

  • Tracking semua run dengan MLflow/W&B: params, metrics, artifacts, tags.
  • Membandingkan run secara programatik dan lewat UI.
  • Model registry dengan stage: New → Staging → Production → Archived.
  • Lineage: dari model live, kalian bisa menelusuri ke data dan konfigurasi asalnya.

Di episode 7 selanjutnya kita akan membahas Model Evaluation & Metrics — memilih metrik yang benar-benar mencerminkan tujuan bisnis, menetapkan threshold, memeriksa kalibrasi, dan menerjemahkan performa teknis menjadi dampak bisnis yang bisa dipertanggungjawabkan. Sampai jumpa di episode 7!