Kubeflow ve MLflow: Biri iş akışını yürütür, diğeri modelin hafızasını tutar
Kubeflow iş akışlarını Kubernetes üzerinde yürütür, MLflow deneyleri ve model sürümlerini kayıt altına alır. Farklar, seçim ölçütleri ve birlikte kullanım.
Aynı rafta duran ama farklı işi yapan iki araç
Kubeflow ve MLflow sıklıkla aynı MLOps listesinde anılır, ama aynı soruya cevap vermezler. Kubeflow, kendi tanımına göre Kubernetes üzerinde veri ve yapay zeka iş yükleri için modüler, açık kaynak projelerden oluşan bir platformdur. Odak noktası işlerin nerede ve nasıl çalışacağıdır: eğitim işleri, pipeline adımları, hiperparametre aramaları, model sunumu.
MLflow ise satıcıdan bağımsız, açık kaynak bir platformdur ve asıl gücü kayıt tutmaktadır: hangi deneyde hangi parametre ve metrikle hangi model üretildi, hangi model sürümü onaylandı, hangisi canlıya çıktı. Bu yüzden "Kubeflow mu MLflow mu" sorusu bu hâliyle eksik kurulmuş bir sorudur; doğru soru "Ekibim hangi sorunu önce çözmeli: orkestrasyonu mu, izlenebilirliği mi?" olmalıdır.
Kubeflow neleri kapsar?
Kubeflow tek bir uygulama değil, birlikte ya da ayrı ayrı kullanılabilen alt projeler kümesidir. Resmî belgelerde öne çıkanlar: • Kubeflow Pipelines: Python SDK ile yazılan bileşenleri yönlü, döngüsüz bir grafikte birleştirir. Her bileşen çalışması bir container olarak koşar; derlenen pipeline, platformdan bağımsız bir ara temsil YAML'ı olur. Değişmeyen adımlar önbellekten yeniden kullanılabilir. • Kubeflow Notebooks: Kubernetes üzerinde çalışan geliştirme ortamları. • Katib: Hiperparametre ayarı ve sinir ağı mimari araması. • Kubeflow Trainer: Dağıtık model eğitimi. • Model Registry: Model sürümlerinin kaydı. • KServe: Ekosistemde yer alan model sunum katmanı.
Basit bir pipeline şu yapıdadır:
from kfp import dsl
@dsl.component def hazirla(veri_yolu: str) -> str: ...
@dsl.pipeline(name="training-pipeline") def akis(veri_yolu: str): hazirla(veri_yolu=veri_yolu)
Bu kod derlenip Kubernetes üzerindeki Kubeflow Pipelines arka ucuna gönderilir ve her adım ayrı bir pod olarak çalışır.
MLflow neleri kapsar?
MLflow'un resmî belgelerinde öne çıkan bileşenler: • MLflow Tracking: Deney kaydı. Parametreler, metrikler ve artefaktlar her çalıştırma için saklanır ve arayüzde karşılaştırılır. • MLflow Model Registry: Merkezi model sürümleme, aşama yönetimi ve modelin hangi çalıştırmadan geldiğinin izlenmesi. • MLflow Models: Modeli farklı kütüphanelerden bağımsız, standart bir paket biçiminde saklama. • MLflow Evaluation ve Deployment: Model doğrulama ve REST API, bulut ya da uç cihaz gibi hedeflere dağıtım.
Günlük kullanımı birkaç satırdır:
import mlflow
with mlflow.start_run(): mlflow.log_param("max_depth", derinlik) mlflow.log_metric("auc", auc_skoru) mlflow.sklearn.log_model(model, "model")
MLflow bir dizüstü bilgisayarda, kurum içi sunucuda ya da bulutta çalışabilir; başlamak için Kubernetes şart değildir. Bu, veri bilimi ekibinin altyapı kararı beklemeden kayıt disiplinine geçebilmesi anlamına gelir.
Altyapı, kullanıcı ve kapsam farkları
- Ana iş: Kubeflow / ML iş akışlarını ve eğitim işlerini çalıştırmak ve ölçeklemek. MLflow / deneyleri, modelleri ve sürümleri kayıt altına almak.
- Altyapı gereksinimi: Kubeflow / Kubernetes kümesi. MLflow / Python ortamı yeterli; ölçeklendiğinde bir izleme sunucusu, veritabanı ve artefakt deposu.
- Kurulum ve işletme yükü: Kubeflow / platform ekibi gerektirir; kimlik, çok kiracılılık ve kaynak yönetimi konuları vardır. MLflow / tek veri bilimcinin bile kurup kullanabileceği kadar hafif başlar.
- Kullanıcı: Kubeflow / ML mühendisleri ve platform ekipleri. MLflow / veri bilimciler ve ML mühendisleri.
- Model kaydı: Kubeflow / Model Registry alt projesi. MLflow / olgun ve yaygın kullanılan Model Registry.
- Orkestrasyon: Kubeflow / yerleşik pipeline motoru. MLflow / kendi başına bir iş akışı zamanlayıcısı değildir; Airflow, Kubeflow Pipelines ya da CI araçlarıyla tetiklenir.
- Hesaplama ölçeği: Kubeflow / dağıtık eğitim ve kaynak kotaları. MLflow / hesaplamayı başka bir sistem yapar, MLflow kaydeder.
Ekibin olgunluğuna göre seçim
Önce MLflow ile başlayın: • Veri bilimi ekibi küçükse ve deneyler dizüstü bilgisayar ya da tek sunucuda yürüyorsa • En büyük sorun "Bu modeli hangi veriyle, hangi ayarla eğitmiştik?" sorusuna cevap verememekse • Kurumda Kubernetes bilgisi ya da platform ekibi yoksa • Model onayı ve canlıya alma için bir kayıt defteri isteniyorsa
Kubeflow'u değerlendirin: • Kurum zaten Kubernetes üzerinde çalışıyorsa ve platform ekibi varsa • Eğitim işleri GPU kümelerinde dağıtık çalışıyor, kaynak paylaşımı ve kota yönetimi gerekiyorsa • Veri hazırlama, eğitim, değerlendirme ve sunum adımları düzenli olarak, tekrar üretilebilir bir pipeline olarak yürümeliyse • Farklı ekiplerin aynı ML platformunu yalıtılmış alanlarda kullanması gerekiyorsa
Örneğin bir perakende şirketinde talep tahmini modelleri üzerinde çalışan küçük bir ekip MLflow ile hızla izlenebilirlik kazanır; aynı şirket çok sayıda mağaza ve ürün grubu için modelleri gece boyunca otomatik eğitmeye başladığında Kubeflow Pipelines gibi bir orkestrasyon katmanı gündeme gelir.
Birlikte kullanım nasıl kurulur?
Kubeflow ile MLflow sık görülen bir ikilidir: Kubeflow işleri çalıştırır, MLflow sonuçları kaydeder. Tipik düzen şöyledir: • Kubernetes kümesinde bir MLflow izleme sunucusu, arkasında bir veritabanı ve nesne deposu çalışır. • Kubeflow Pipelines bileşenleri, eğitim adımında MLflow istemcisini kullanarak parametre, metrik ve modeli bu sunucuya yazar. • Değerlendirme adımı eşiği geçen modeli MLflow Model Registry'ye yeni sürüm olarak kaydeder. • Sunum katmanı (örneğin KServe) onaylanan sürümü kayıt defterinden alır.
Bu düzende model kaydının iki yerde tutulmaması için tek bir "doğruluk kaynağı" seçilmelidir: Kubeflow'un Model Registry'si mi, MLflow Model Registry mi. İkisini paralel tutmak sürüm karışıklığına yol açar.
MLOps kurulumunda sık hatalar
- Kubeflow'u ilk MLOps adımı yapmak: Kayıt disiplini oturmamış bir ekibe Kubernetes tabanlı bir platform kurmak, uzun süren bir altyapı işine dönüşebilir.
- MLflow'u yerel dosya deposuyla ekip ortamında bırakmak: Ortak bir izleme sunucusu ve paylaşılan artefakt deposu olmadan kayıtlar kişilerin bilgisayarında kalır.
- Pipeline adımlarını büyük ve bölünmez yazmak: Kubeflow'un önbellek ve yeniden çalıştırma avantajı küçük, net girdi ve çıktılı bileşenlerle ortaya çıkar.
- Model kaydını onay sürecine bağlamamak: Kayıt defteri, kimin hangi sürümü canlıya aldığını göstermiyorsa denetimde işe yaramaz.
Mindset programlarında Kubeflow ve MLflow
MLflow ile Model Yönetimi programı Tracking ile deney yönetimi, Projects ile tekrarlanabilirlik, Model Registry ve dağıtım başlıklarıyla deneylerini kayıt altına almak isteyen veri bilimi ekiplerine uygundur; MLflow İleri Seviye: Model Registry ve Deployment programı merkezi kurulum, flavor yapısı ve yönetişime iner.
Kubeflow ile Pipeline programı pipeline bileşen tasarımı, parametre yönetimi, dağıtık eğitim ve çok kullanıcılı kurumsal entegrasyon başlıklarıyla Kubernetes üzerinde ML platformu kuran platform ve MLOps ekiplerine hitap eder.
İlgili Mindset programı
MLflow ile Model Yönetimi
Sık sorulan sorular
MLflow kullanmak için Kubernetes bilmek gerekir mi?
Hayır. MLflow yerel ortamda, kurum içi sunucuda ya da bulutta çalışabilir; başlangıç için bir Python ortamı yeterlidir. Ekip büyüdüğünde ortak bir izleme sunucusu, veritabanı ve artefakt deposu kurulur. Kubernetes yalnızca MLflow'u ölçeklenebilir biçimde barındırmak isteyen kurumlar için bir seçenektir.
Kubeflow Pipelines yalnız Kubeflow kurulumunda mı çalışır?
Resmî belgelere göre derlenen pipeline platformdan bağımsız bir ara temsil dosyasıdır ve Kubeflow Pipelines uyumlu bir arka uca gönderilir. Bu arka uç Kubernetes üzerindeki açık kaynak KFP olabileceği gibi Google Cloud Vertex AI Pipelines gibi yönetilen bir hizmet de olabilir.
Airflow varken Kubeflow Pipelines'a ihtiyaç var mı?
Airflow genel amaçlı bir iş akışı zamanlayıcısıdır ve veri pipeline'larında yaygındır. Kubeflow Pipelines ise ML'e özgü artefakt takibi, container tabanlı bileşenler ve deney görünümü sunar. Veri ekibi zaten Airflow kullanıyorsa ML adımları da oradan tetiklenip MLflow ile kaydedilebilir; ML iş yükleri büyüdükçe Kubeflow değerlendirilir.
Hangisini öğrenmek MLOps kariyeri için daha önce gelir?
Deney takibi ve model kaydı hemen her MLOps yapısında bulunduğu için MLflow kavramları genellikle daha erken işe yarar. Kubeflow ise Kubernetes, container ve dağıtık sistem bilgisi üzerine kurulur. Platform tarafına yönelmek isteyenler önce Kubernetes temellerini, ardından Kubeflow'u çalışmalıdır.
İlgili rehberler
İlgili eğitimler
Kategori: Veri Mühendisliği ve MLOps