Vebende Akademi - mlflow-mimari
Uzmanla Konuşun
Blog
MAKALE

MLflow Mimari — İzleme, Kayıt ve MLOps İçin Pratik Rehber

Yayınlayan: Vebende Akademi  |  Okuma süresi: ~40-90 dk

MLflow Mimari — İzleme, Kayıt ve MLOps İçin Pratik Rehber

Yayınlayan: Vebende Akademi  |  Okuma süresi: ~40-90 dk

1. Giriş

MLflow, makine öğrenimi yaşam döngüsünü (experiment tracking, model registry, model packaging ve deployment) desteklemek için geniş kabul görmüş açık kaynaklı bir çerçevedir. Model geliştirme süreçlerinin kurumsal ölçekte yönetilmesi ve üretime taşınması zorlaştıkça, MLflow gibi araçlar reproducibility, izlenebilirlik (traceability) ve operationalization için temel yapı taşları haline geldi. Bu makalede MLflow'un mimari bileşenleri, veri akışı, ölçekleme ve üretim hazır uygulamalar için en iyi pratikler teknik ayrıntılarla incelenecektir.

Bu konu neden bugün önemli?

  • Model sayısı, model versiyonları ve veri değişkenliği arttıkça reproducibility ve governance gereksinimleri öncelikli hale geldi.
  • MLOps süreçleri için izlenebilirlik (lineage), otomatik deploy gate'leri ve registry gereklilikleri ortaya çıktı.
  • Bulut ve on-prem hibrit ortamlarında model yönetimi için taşıyıcı, vendor-agnostic yaklaşımlar önem kazanıyor.

Kimler için önemli?

ML mühendisleri, MLOps ekipleri, veri bilimciler, platform mühendisleri ve güvenlik/uyum ekipleri için MLflow mimarisinin anlaşılması kritik önemdedir. Kurumsal uygulamalarda model değişikliklerinin etkisini ölçmek, regülasyon gereksinimlerini karşılamak ve üretime güvenli şekilde dağıtmak doğrudan bu mimariye bağlıdır.

Hangi problemleri çözüyor?

MLflow; deney takibi, model artifact saklama, model metadata versiyonlama, model onayı ve üretime deploy süreçlerini standartlaştırarak aşağıdaki problemleri çözer: hangi parametrenin performansı etkilediğinin izlenmesi, model rollback ve canary deploy, artifaktların merkezi yönetimi, ve model lineage'in kayıt altına alınması.

2. Kavramsal Temeller

MLflow bileşenleri

  • MLflow Tracking: Deneylerin (runs) parametrelerini, metriklerini ve artifact'lerini kaydeden API ve server katmanı.
  • Backend Store: Tracking server'ın metadata (params, metrics, tags, run info) için kullandığı kalıcı veri deposu (SQL DB: MySQL, Postgres, SQLite).
  • Artifact Store: Model ağırlıkları, checkpoint'ler, görseller gibi büyük dosyaların saklandığı obje depolama (S3, Azure Blob, GCS, NFS).
  • MLflow Model Registry: Model versiyonlarını, durumlarını (Staging, Production) ve onay süreçlerini yöneten merkezi katalog.
  • MLflow Projects: Tekrar üretilebilir çalışma paketleri için format ve konvansiyon (conda env, Docker).
  • MLflow Models: Model'i standart bir formatta paketleyip farklı hedeflere deploy etmeyi kolaylaştıran API'ler (pyfunc, mlflow models serve, mlflow.sagemaker, mlflow.azureml).

Terminoloji

  • Run: Tekil bir eğitim/deneme çalıştırması (unique run_id).
  • Experiment: Benzer çalıştırmaların (runs) mantıksal grubu.
  • Artifact: Dosya temelli çıktılar (model weights, plots).
  • Model Version: Registry'de kayıtlı modelin versiyonu ve metadata'sı.

3. Nasıl Çalışır?

Yüksek seviyeli sistem mimarisi

Tipik MLflow kurulumunda üç ana bileşen bulunur: Client (SDK kullanan eğitim ve inference iş yükleri), Tracking Server (API/ UI) ve Storage katmanları (Backend Store + Artifact Store). Aşağıdaki adımlar veri akışını gösterir:

  1. SDK ile başlatılan run, Tracking Server'a kayıt olunur; run_id döner.
  2. Run süresince parametreler, metrikler ve tag'ler Tracking Server'a gönderilir; metadata Backend Store'da saklanır.
  3. Artifact'ler (model dosyaları, loglar) Artifact Store'a yüklenir; Tracking Server artifact lokasyonunu metadata ile ilişkilendirir.
  4. Deney tamamlandığında run durumu güncellenir; UI üzerinden metrik karşılaştırmaları yapılır.
  5. Model Registry'e kayıt edilen model versiyonları onay süreçleri (staging -> production) ve deployment pipeline'ları ile entegre edilir.

Tracking Server ve API

MLflow Tracking Server, REST API ve UI sunar. SDK (Python/R/Java) bu API'leri kullanarak kayıt, güncelleme ve sorgulama işlemlerini gerçekleştirir. Server, metadata'yı Backend Store'a, artifact lokasyonlarını Artifact Store'a kaydeder. Küçük kurulumlarda tek bir Tracking Server yeterliyken, kurumsal çözümde yük dengeleme, TLS, auth ve multi-tenant dikkat edilmesi gereken unsurlardır.

Backend Store mimarisi

Backend Store genelde ilişkisel bir veritabanıdır (Postgres, MySQL veya SQLite). Aşağıdaki tablolar tipik olarak bulunur: experiments, runs, metrics, params, tags, artifacts. Postgres/ MySQL tercih edilmesinin nedeni concurrency, transaction ve ölçeklenebilirlik ihtiyaçlarını karşılamasıdır. SQLite sadece POC ve tek-kullanıcı senaryoları içindir.

Artifact Store mimarisi

Artifact Store, büyük dosyaların saklandığı yer olup genelde S3, GCS, Azure Blob, veya paylaşılan dosya sistemleri (NFS) olarak yapılandırılır. Artifact upload/download için MLflow SDK presigned URL'ler veya doğrudan API çağrıları kullanır. Artifact retention, lifecycle ve erişim kontrolü üretim yönetimi için önemli konulardır.

Model Registry iş akışı

Model Registry; model kayıt, versiyon, stage değişikliği (none -> staging-> production), açıklama ve onay süreçlerini yönetir. Tipik iş akışı:

  • Model artifact oluşturulur ve artifact store'a yüklenir.
  • Artifact, MLflow Models formatında paketlenip Registry'e kaydedilir (mlflow.register_model).
  • CI/CD pipeline, model testlerini (regression tests) çalıştırır; başarılıysa model staging'e geçirilir.
  • Canary ya da A/B testleri sonrası onay alınırsa model production'a geçer ve deployment tetiklenir.

4. Gerçek Dünya Kullanımları

Netflix ve öneri modelleri

Öneri sistemlerinde hızlı deney iterasyonu ve A/B testleri kritik olduğundan MLflow, run'ların ve model versiyonlarının izlenmesi için uygundur. Retraining frekansı yüksek olduğunda artifact ve data snapshot maliyetleri planlanmalıdır.

Uber — gerçek zamanlı modeller

Dispatch ve pricing modelleri için MLflow model registry ile model versiyonlama ve güvenli rollout süreçleri uygulanır. Gerçek zamanlı kullanımda latency, model cache ve feature store entegrasyonu önemli olur.

Amazon — RAG ve ranking

Retrieval + reranking senaryolarında embedding versiyonları, index snapshot'ları ve reranker ağırlıkları birlikte versiyonlanmalıdır. MLflow registry bu koordinasyonu sağlamak için kullanılabilir.

5. Avantajlar ve Sınırlamalar

Avantajlar

  • Vendor-agnostic, açık kaynak olması kurumların altyapısına uyum sağlar.
  • Tracking + Registry + Models ile uçtan uca bir workflow sunar.
  • REST API, SDK ve UI ile geliştirici deneyimi güçlüdür.

Sınırlamalar

  • İleri seviye multi-tenant, RBAC ve audit özellikleri sınırlı; enterprise entegrasyonlar ek mühendislik gerektirebilir.
  • Artifact ve backend store yönetimi için ek altyapı (S3, Postgres) zorunludur; operasyonel yük artar.
  • Model serving ve online A/B gating yerel MLflow servisiyle sınırlı; KServe, Seldon veya bulut vendor çözümleriyle entegrasyon gerekebilir.

6. Alternatifler ve Karşılaştırma

Aşağıdaki tablo MLflow ile benzer işlevleri sunan bazı platformları karşılaştırır.

TeknolojiAvantajDezavantaj
MLflowAçık kaynak, SDK desteği, model registryEnterprise RBAC/audit sınırlı, ekstra infra gerektirir
Weights & BiasesGüçlü UI, collaboration, hyperparameter sweepSaaS maliyeti, gizlilik endişeleri
NeptuneBasit metadata + artifact yönetimi, takım paylaşımıBazı enterprise özellikleri ek maliyet gerektirir
Cloud-native (Sagemaker, Vertex AI)Managed registry & deployment, ölçeklenebilirlikVendor lock-in ve maliyet

7. En İyi Pratikler

Production kullanımı

  • Backend Store olarak Postgres/MySQL kullanın; SQLite sadece POC için olsun.
  • Artifact Store olarak S3/GCS/Azure Blob tercih edin; erişim izinlerini IAM ile yönetin.
  • Tracking Server'ı reverse-proxy (NGINX) ve TLS ile güvenli hale getirin; auth için front-door (OIDC) entegrasyonu ekleyin.
  • Model registry kullanımını zorunlu kılın: yalnızca registry'den deploy edilen modeller production olmalıdır.

Performans optimizasyonu

  • Artifact lifecycle politikaları belirleyin; eski checkpoint'leri arşivleyin.
  • Tracking verisini aggregation ile uzun dönem depolamayın; metrik summary'larını saklayın.
  • Model serving için MLflow yerine KServe/Seldon veya bulut-managed serving kullanın; MLflow modelleri packaging için kullanın.

Güvenlik

  • Tracking ve registry erişimini RBAC ile sınırlandırın; kritik operasyonlar için approval workflow ekleyin.
  • Artifact'ler için imza/ checksum doğrulaması uygulayın.
  • Telemetry'da PII içeriyorsa maskeleme ve erişim kontrolleri uygulayın.

Ölçeklenebilirlik

  • Tracking Server'ı stateless olacak şekilde tasarlayın; backend store bağımsız olmalı.
  • Horizontal scaling: API katmanını load balancer arkasında çalıştırın.
  • Artifact store için CDN/edge caching ve lifecycle stratejileri uygulayın.

8. Sık Yapılan Hatalar

  • SQLite ile tek-kullanıcı modunda başlayıp üretime aynı mimari ile geçme hatası.
  • Artifact ve veri snapshotlarını versiyonlamadan sadece ağırlıkları saklama; preprocessing kodu eksik bırakma.
  • Tracking'i sonradan eklemek: Observability baştan planlanmalı ve run metadata zorunlu tutulmalı.
  • Registry olmadan doğrudan model artifact'lerini deploy etme; rollback planı olmaması.

9. Gelecek Trendler

  • Model catalog ve feature store entegrasyonlarının daha sıkı hale gelmesi: model lineage ile feature versiyonlarının eşleştirilmesi artacak.
  • Standard metadata ve open lineage (OpenLineage, MLMD) entegrasyonları yaygınlaşacak.
  • Automated governance: policy-as-code ve metric-gated CI/CD ile otomatik kararlar alınacak.
  • Model marketplace ve imza/sertifikasyon mekanizmaları kurumsal ekosistemde güçlenecek.

10. Sonuç

MLflow, MLOps pratiklerinde güçlü ve esnek bir araç seti sunar. Doğru altyapı, backend ve artifact deposu seçimi, güvenlik ve operasyonel süreçlerin tasarlanması ile MLflow kurumsal üretim için güvenilir bir temel sağlar. Mühendis bakış açısıyla: tracking ve metadata'yı baştan zorunlu kılın, model registry kullanarak üretime çıkışları kontrol altında tutun ve model serving'i scale edilebilir, güvenli çözümlerle entegre edin.

Ek Bölümler

FAQ (Sık Sorulan Sorular)

  1. MLflow nedir ve ne amaçla kullanılır?

    MLflow, deney takibi, model registry, model paketleme ve deployment süreçlerini kolaylaştıran açık kaynaklı bir platformdur.

  2. Backend store olarak ne kullanmalıyım?

    Production için Postgres veya MySQL önerilir; tek-kullanıcı denemeleri için SQLite kullanılabilir ama üretimde tavsiye edilmez.

  3. Artifact store tercihi nasıl olmalı?

    S3/GCS/Azure Blob gibi ölçeklenebilir obje depolama çözümleri tercih edilmeli; on-prem durumlarda NFS veya MinIO kullanılabilir.

  4. MLflow Registry ile nasıl güvenli deploy yapılır?

    Registry onay süreçleri, CI/CD pipeline'ı, canary testleri ve metric gates kullanılarak güvenli deploy sağlanır.

  5. MLflow ile hangi servisleri entegre edebilirim?

    KServe/Seldon, Kubernetes, AWS Sagemaker, Azure ML, Google Vertex AI gibi serving çözümleri ile entegrasyon mümkündür.

  6. MLflow ölçeklendirme sorunlarını nasıl ele alırız?

    Tracking server'ı stateless çalıştırıp backend DB'yi ölçeklendirerek; artifact store'u S3 benzeri çözümlerle yöneterek ölçeklenebilirlik sağlanır.

  7. MLflow güvenlik için hangi önlemler alınmalı?

    TLS, OIDC/LDAP tabanlı auth, RBAC ve artifact imzalama uygulayın; telemetry ve PII verilerinde maskeleme yapın.

  8. MLflow alternatifleri nelerdir?

    W&B, Neptune, cloud-native model registry'leri (Sagemaker, Vertex) ve endüstri çözümleri alternatiflerdir. Seçim gereksinimlerinize göre yapılmalıdır.

Anahtar Kavramlar

  • Tracking Server: Runs, params, metrics ve tags'ı yöneten servis.
  • Backend Store: Metadata için ilişkisel veri tabanı.
  • Artifact Store: Model dosyaları ve asset'ler için obje depolama.
  • Model Registry: Model versiyonlama, onay ve deployment history.
  • Run / Experiment: Tekil eğitim çalıştırması ve bağlı çalıştırmalar grubu.

Öğrenme Yol Haritası

  1. Temel: Git, Docker, temel ML kavramları ve veri yönetimi.
  2. MLflow: SDK, tracking, projects ve models kullanımını öğrenin.
  3. Infra: S3, Postgres, Kubernetes, Nginx ve TLS gibi altyapı bileşenlerini öğrenin.
  4. MLOps: CI/CD for ML, canary deployments, model monitoring ve drift detection pratiklerini çalışın.
  5. Gelişmiş: OpenLineage, MLMD, model governance ve güvenlik/uyum konularında uzmanlaşın.