Bir ML modelini tekrarlanabilir (reproducible) hale getirmek ve versiyonlamak için neler yaparsınız?

Cevap

Bir model sadece kodun değil kod + veri + konfigürasyon + ortam + rastgelelik kombinasyonunun ürünüdür. Tekrarlanabilirlik için bunların hepsinin versiyonlanması gerekir. Amaç: "6 ay önce production'a çıkan v14 modelini aynı şekilde yeniden üretebilir miyim?" sorusuna evet diyebilmek.

Versiyonlanması gerekenler

  1. Kod: Git. Her eğitim run'ı bir commit hash'e bağlanır.
  2. Veri: DVC, lakeFS, Delta Lake/Iceberg time travel veya değişmez (immutable) snapshot'lar. Veri setinin hash'i kaydedilir.
  3. Konfigürasyon: Hiperparametreler ve özellik listesi koda gömülü değil, versiyonlanan config dosyalarında (YAML, Hydra).
  4. Ortam: Kilitlenmiş bağımlılıklar (uv.lock, poetry.lock, pinned requirements.txt), Docker image digest'i, CUDA/cuDNN versiyonu.
  5. Rastgelelik: Seed'ler sabitlenir.
  6. Model artifact: Model registry'de versiyon numarası, eğitim run'ına, veri versiyonuna ve metriklere bağlantı (lineage).
import random, numpy as np, torch

def set_seed(seed=42):
    random.seed(seed); np.random.seed(seed); torch.manual_seed(seed)
    torch.cuda.manual_seed_all(seed)
    torch.backends.cudnn.benchmark = False
    torch.use_deterministic_algorithms(True, warn_only=True)
dvc add data/train.parquet          # veri hash'ini .dvc dosyasında tutar
git add data/train.parquet.dvc params.yaml
git commit -m "train data v2025-10"
dvc repro                           # pipeline'ı bağımlılıklara göre yeniden çalıştırır

Pratik gerçekler

  • GPU'da tam bit düzeyinde determinizm her zaman mümkün değildir (atomik işlemler, farklı donanım). Hedef genelde "istatistiksel olarak aynı sonuç"tur.
  • Eğitim notebook'tan değil, parametreli bir pipeline'dan (script + config) yapılmalıdır.
  • Model kartı (model card): amaç, eğitim verisi, metrikler, bilinen sınırlamalar.
  • Rollback için önceki model versiyonu ve onun preprocessing kodu aynı anda erişilebilir olmalı.
  1. ML sistemleri için CI/CD nasıl kurulur? Klasik yazılım CI/CD'sinden farkı nedir?OrtaMLOpsYapay Zeka
  2. GPU'da model inference'ını nasıl optimize edersiniz? Throughput ve latency arasındaki trade-off'u açıklayın.ZorMLOpsYapay Zeka
  3. Yeni bir modeli production'a güvenli şekilde nasıl çıkarırsınız? Shadow deployment, canary ve A/B testi karşılaştırın.ZorMLOpsYapay Zeka
  4. Feature store nedir? Training-serving skew problemini nasıl çözer?OrtaMLOpsYapay Zeka
  5. Experiment tracking neden önemlidir? MLflow ile neleri takip edersiniz?KolayMLOpsYapay Zeka
  6. Data drift ve concept drift arasındaki fark nedir? Production'da nasıl tespit edersiniz?OrtaMLOpsYapay Zeka

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle