ML sistemleri için CI/CD nasıl kurulur? Klasik yazılım CI/CD'sinden farkı nedir?

Cevap

ML'de değişen sadece kod değildir. Veri ve model de değişir. Bu yüzden klasik CI/CD'ye ek olarak veri doğrulama, model doğrulama ve sürekli eğitim (continuous training, CT) eklenir.

Klasik yazılımdan farkları

KonuKlasik yazılımML sistemi
DeğişenKodKod + veri + model + config
TestUnit, integrationBunlara ek veri testleri, model kalite testleri
Başarı kriteriTestler geçti miMetrikler eşiği geçti mi, öncekinden kötü mü
BozulmaKod değişinceKod değişmese de veri değişince (drift)
PipelineBuild, test, deployEk olarak eğitim, değerlendirme, kayıt, izleme

Tipik pipeline

  1. CI (her commit/PR): Lint, unit testler (feature fonksiyonları, preprocessing), küçük bir veri örneğiyle hızlı eğitim (smoke test), şema kontrolleri.
  2. Veri doğrulama: Şema, null oranları, değer aralıkları, dağılım kontrolleri (Great Expectations, Pandera).
  3. Eğitim pipeline'ı: Zamanlanmış veya yeni veri/drift ile tetiklenen orkestre edilmiş adımlar (Airflow, Kubeflow, Vertex/SageMaker Pipelines).
  4. Model doğrulama (quality gate): Yeni model, holdout setinde mevcut production modelinden kötü değilse, kritik segmentlerde gerileme yoksa ve latency bütçesini karşılıyorsa registry'ye aday olarak kaydedilir.
  5. CD: Container build, staging, shadow/canary, ardından production.
  6. Monitoring: Drift ve performans izleme. Gerekirse yeniden eğitim tetiklenir.
# .github/workflows/ml.yml (özet)
on: [pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: pip install -r requirements.txt
      - run: pytest tests/                       # feature ve preprocessing testleri
      - run: python validate_data.py --sample    # şema ve dağılım kontrolleri
      - run: python train.py --config configs/smoke.yaml
      - run: python evaluate.py --min-pr-auc 0.60 --compare-to production

ML'e özgü test örnekleri

  • Preprocessing'in train ve serving'de aynı çıktıyı verdiğini doğrulayan testler (skew testi).
  • Invariance testleri: İsim değişince duygu analizi sonucunun değişmemesi.
  • Directional testler: Fiyat artınca talep tahmininin artmaması.
  • Model, sabit bir "golden" örnek seti üzerinde beklenen çıktıları vermeli.
  • LLM uygulamalarında: prompt değişikliklerinde eval setinin otomatik koşulması.
  1. GPU'da model inference'ını nasıl optimize edersiniz? Throughput ve latency arasındaki trade-off'u açıklayın.ZorMLOpsYapay Zeka
  2. 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
  3. Bir ML modelini tekrarlanabilir (reproducible) hale getirmek ve versiyonlamak için neler yaparsınız?OrtaMLOpsYapay 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