Belajar AI - Model Training & Experiment Tracking
Episode 11 of 24

Belajar AI - Model Training & Experiment Tracking

Mempelajari cara melatih model secara profesional: hyperparameter tuning, cross-validation, dan early stopping; serta mengelola eksperimen dengan experiment tracking menggunakan Weights & Biases dan MLflow agar setiap run bisa dibandingkan dan direproduksi.

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

Pendahuluan

Setelah di episode 10 kalian memahami feature engineering dan cara memilih model, episode ini membuka "dapur" proses training: bagaimana mengatur hyperparameter, menghindari overfit lewat cross-validation dan early stopping, dan — yang paling sering diabaikan pemula — mencatat setiap eksperimen agar bisa dibandingkan dan direproduksi.

Mengapa episode ini penting? Karena training tanpa tracking adalah resep bencana: kalian mengganti learning rate, menambah layer, mengganti model — dan seminggu kemudian lupa mana konfigurasi yang menghasilkan skor terbaik. Di dunia nyata, "konfigurasi yang mana yang dipakai model di produksi?" adalah pertanyaan yang wajib bisa dijawab. Experiment tracking menjawabnya.

Hyperparameter Tuning

Parameter vs Hyperparameter

  • Parameter: dipelajari model dari data (bobot neuron, koefisien regresi).
  • Hyperparameter: ditentukan sebelum training oleh engineer (learning rate, jumlah layer, jumlah pohon, regularization strength).

Hyperparameter menentukan seberapa baik model bisa belajar — tuning yang benar sering menaikkan skor lebih banyak daripada mengganti algoritma.

Strategi Tuning

StrategiCara KerjaKapan Dipakai
Grid searchCoba semua kombinasi daftar nilaiRuang kecil, murah
Random searchSampel acak dari distribusi nilaiRuang besar — lebih efisien dari grid
Bayesian / OptunaCerdas: arahkan pencarian ke area menjanjikanDefault modern, hemat run
Random search dengan scikit-learn
from sklearn.model_selection import RandomizedSearchCV
from sklearn.ensemble import RandomForestClassifier
from scipy.stats import randint
 
param_dist = {
    "n_estimators": randint(50, 300),
    "max_depth": randint(3, 20),
    "min_samples_split": randint(2, 20),
}
 
search = RandomizedSearchCV(
    RandomForestClassifier(),
    param_distributions=param_dist,
    n_iter=30,
    cv=5,
    random_state=42,
)
search.fit(X_train, y_train)
print(search.best_params_, search.best_score_)

Aturan penting: tuning harus dilakukan dengan cross-validation di dalam — jika tidak, kalian memilih hyperparameter berdasarkan performa pada data yang sama dengan data evaluasi (leakage terselubung, lihat episode 8).

Cross-Validation

k-fold cross-validation membagi data menjadi k lipatan, melatih k kali (tiap lipatan jadi validasi sekali), lalu merata-ratakan skor. Ini memberi estimasi performa yang stabil — jauh lebih jujur daripada satu split tunggal yang mungkin beruntung.

100%

Standarnya: 5-fold atau 10-fold. Data kecil → k lebih besar; data besar → k lebih kecil demi waktu. StratifiedKFold menjaga proporsi kelas di setiap lipatan — wajib untuk data tidak seimbang.

Early Stopping

Dalam deep learning, early stopping menghentikan training saat performa di validation mulai turun — menangkap momen terbaik sebelum overfitting:

Early stopping di PyTorch
best_val_loss = float("inf")
patience = 0
epochs_no_improve = 0
 
for epoch in range(max_epochs):
    train_loss = train_one_epoch(model, loader)
    val_loss = evaluate(model, val_loader)
 
    if val_loss < best_val_loss:
        best_val_loss = val_loss
        torch.save(model.state_dict(), "best.pt")
        epochs_no_improve = 0
    else:
        epochs_no_improve += 1
        if epochs_no_improve >= patience:
            print("Early stopping di epoch", epoch)
            break

Pola ini — simpan yang terbaik, berhenti bila tidak membaik — lebih kuat daripada "training selama X epoch" yang statis.

Experiment Tracking: Weights & Biases dan MLflow

Mengapa Tracking Itu Wajib

Tanpa tracking, kalian hanya punya segudang loss_0.12_final.py yang tidak bisa dibandingkan. Dengan tracking, setiap run memiliki:

  • Konfigurasi (hyperparameter, versi data, versi code).
  • Metrik sepanjang waktu (loss, accuracy per epoch).
  • Artefak (model, plot, prediksi contoh).
  • Hasil akhir yang bisa dibandingkan & dipilih.

MLflow

MLflow adalah open-source, berjalan di mana saja (lokal, on-prem, cloud), dan mengelola tiga hal: tracking (eksperimen), models (registry), dan registry (staging/production). Cocok untuk tim yang ingin kontrol penuh.

Tracking dengan MLflow
import mlflow
 
with mlflow.start_run():
    mlflow.log_param("learning_rate", 0.001)
    mlflow.log_param("n_layers", 2)
    for epoch in range(3):
        mlflow.log_metric("loss", train_loss, step=epoch)
    mlflow.log_artifact("model.pt")
    mlflow.log_metric("accuracy", final_acc)

Weights & Biases (W&B)

W&B adalah platform SaaS yang populer untuk deep learning: dashboard interaktif, perbandingan run, dan integrasi satu baris dengan PyTorch/HF. Untuk tim riset yang ingin kolaborasi visual, W&B sangat nyaman.

Tracking dengan W&B
import wandb
 
wandb.init(project="belajar-ai", config={"lr": 0.001, "epochs": 10})
config = wandb.config
 
for epoch in range(config.epochs):
    loss = train_one_epoch()
    wandb.log({"loss": loss, "epoch": epoch})

Tip

Pilih yang cocok dengan tim: MLflow untuk kontrol penuh & self-host (episode 17 membahas alasan self-host), W&B untuk pengalaman riset paling mulus. Keduanya mendukung reproduksibilitas yang menjadi syarat MLOps di episode 18.

Reproducible Runs

Eksperimen hanya berguna jika bisa direproduksi. Checklist reproduksibilitas:

  1. Seed acak fixed: torch.manual_seed(42), np.random.seed(42), random.seed(42).
  2. Versi code tercatat: setiap run terikat commit hash atau tag.
  3. Versi data tercatat: hash/versi dataset (episode 9).
  4. Konfigurasi lengkap tersimpan: hyperparameter + environment (Python, versi library).
Simpan lockfile environment
pip freeze > requirements-lock.txt

Kombinasi tracking + checklist ini membuat kalian bisa menjawab pertanyaan audit paling dasar: "model mana yang dipakai, dilatih dengan data dan konfigurasi apa?"

Common Pitfalls

  • Tuning di test set: gunakan validation/CV di dalam tuning; test set hanya untuk evaluasi final.
  • Tidak menyimpan seed: dua run dengan "konfigurasi sama" memberi hasil berbeda — chaos.
  • Tracking setelah selesai: terlalu terlambat; tracking harus jalan sejak run pertama.
  • Melupakan versi data & code: metrik yang bagus tidak bisa direproduksi.

Penutup

Inti yang harus dibawa pulang:

  • Hyperparameter ditentukan sebelum training; tuning pakai random search/Bayesian + cross-validation, bukan grid membabi buta.
  • k-fold CV memberi estimasi performa jujur; early stopping menangkap momen terbaik sebelum overfit.
  • Experiment tracking (MLflow / W&B) mencatat konfigurasi, metrik, dan artefak setiap run.
  • Reproduksibilitas = seed + versi code + versi data + konfigurasi yang tercatat.

Di episode 12 selanjutnya kita akan belajar Fine-Tuning & Transfer Learning — memanfaatkan pretrained model untuk data spesifik, kapan pakai PEFT/LoRA vs full fine-tuning, dan kapan cukup memakai prompt atau RAG tanpa training sama sekali. Sampai jumpa di episode 12!

Belajar AI - Model Training & Experiment Tracking | Belajar Artificial Intelligence