Kubeflow

Google'ın geliştirdiği, Kubernetes üzerine inşa edilmiş açık kaynak MLOps platformu; ML iş akışlarını pipeline, model sunma ve hiperparametre optimizasyonuyla entegre yönetir.

Kubeflow, Google'ın Kubernetes altyapısı üzerine inşa ettiği açık kaynak makine öğrenimi platform paketidir. 2018'de Google'ın kendi iç ML iş akışlarını kamuya açması sonucu ortaya çıkan Kubeflow, veri bilimcilerin ve ML mühendislerinin model deneme ve geliştirme süreçlerini Kubernetes orkestrasyon katmanında standartlaştırmasını ve üretime taşımasını hedefler. Kubeflow'un beş temel bileşeni vardır. Kubeflow Pipelines (KFP), Python SDK ile tanımlanan DAG (Yönlü Asiklik Çizge) tabanlı ML iş akışlarıdır; her adım izole Docker container içinde çalışır ve yeniden kullanılabilir komponent kütüphanesi sunar. Deney takibi (lineage), artifact yönetimi ve görsel pipeline grafiği de bu bileşene dahildir. KServe (eski adıyla KFServing), üretim ortamında model sunma (inference) platformudur; canary deployment, A/B testi, model versiyonlama ve otomatik ölçeklendirme (autoscaling) destekler; TensorFlow Serving, TorchServe ve NVIDIA Triton gibi backend'lerle entegre çalışır. Katib, Kubernetes üzerinde hiperparametre optimizasyonu (HPO) ve sinir ağı mimarisi araştırması (NAS) gerçekleştirir; Bayesian optimizasyon, CMA-ES ve Hyperband algoritmaları desteklenir. Training Operators bileşeni, PyTorchJob, TFJob ve MPI Operator aracılığıyla dağıtık model eğitimini yönetir; çok node'lu GPU kümeleri üzerinde veri paralelliğini koordine eder. Kubeflow Notebooks ise Jupyter Notebook sunucularını Kubernetes üzerinde başlatarak GPU/CPU kaynak yapılandırması ve çalışma ortamı seçimi sunar. MLOps olgunluk seviyesi yüksek ve Kubernetes altyapısı olan kuruluşlar için güçlü bir seçenek olan Kubeflow, öğrenme eğrisi yoğun bir araçtır: Kubernetes bilgisi zorunludur ve kurulum karmaşıklığı MLflow veya ZenML'e kıyasla yüksektir. Vertex AI Pipelines (Google Cloud), SageMaker Pipelines (AWS) ve Azure ML gibi yönetilen alternatifler altyapı yükünü azaltır. Türkiye'de cloud-agnostic ve on-premises MLOps altyapısı kurmak isteyen büyük şirketler ve araştırma kurumları Kubeflow'u değerlendirmektedir; Kubernetes yetkinliğinin ekipte bulunması ön koşuldur.

Kubeflow Nasıl Çalışır?

Kubeflow, her ML iş adımını (veri hazırlama, özellik mühendisliği, model eğitimi, değerlendirme, dağıtım) ayrı bir Kubernetes Pod'u içinde çalışan container olarak modeller. Bu adımlar Kubeflow Pipelines'ta Python SDK kullanılarak DAG (Yönlü Asiklik Çizge) yapısında tanımlanır ve her çalışma otomatik olarak loglanır, sürümlenir ve yeniden çalıştırılabilir hale getirilir. Kubernetes'in kaynak yönetim mekanizmaları GPU/CPU tahsisi, ölçeklendirme ve yük dengelemeyi üstlenir. Kullanıcı, pipeline'ı Python kodu olarak tanımlayıp bir YAML artifact'e derledikten sonra Kubeflow UI'dan veya REST API'dan çalıştırır; tüm artifact'ler ve metrikler otomatik izlenir. Bu yaklaşım hem tekrar üretilebilirliği (reproducibility) sağlar hem de deney karşılaştırmasını kolaylaştırır.

Temel Bileşenler

🔗 Kubeflow Pipelines (KFP)

Python SDK ile DAG tabanlı ML iş akışı tanımlama. Her adım Docker container'da izole çalışır. Deney takibi, artifact yönetimi ve görsel pipeline grafiği içerir. Yeniden kullanılabilir komponent kütüphanesi sayesinde adımlar farklı pipeline'larda paylaşılabilir.

🚀 KServe (Model Serving)

Üretimde model sunma (inference) platformu. Canary deployment, A/B testi ve model versiyonlama destekler. TensorFlow Serving, TorchServe ve NVIDIA Triton Inference Server ile entegre. Autoscaling ile sıfıra düşürme (scale-to-zero) dahil.

⚙️ Katib (HPO & NAS)

Kubernetes üzerinde hiperparametre optimizasyonu ve sinir ağı mimarisi araştırması. Bayesian optimizasyon, Hyperband ve CMA-ES algoritmaları desteklenir. Paralel deneme çalıştırma ile süreç hızlandırılır; sonuçlar görsel olarak karşılaştırılır.

Kubeflow Pipelines ile Dağıtık Eğitim

Kubeflow Training Operators, büyük model eğitimini Kubernetes üzerinde koordine eder. PyTorchJob operatörü çok node'lu PyTorch distributed training'i yönetir; her worker Pod kendi GPU'su üzerinde çalışır ve gradyanları parameter server veya all-reduce yöntemiyle eşitler. TFJob TensorFlow için aynı işlevi görür; MPI Operator ise Horovod tabanlı dağıtık eğitim için kullanılır. Bu yapı, GPU kümesi üzerinde on'larca node'a yatay ölçekleme imkânı tanır. Eğitim tamamlandığında model artifact otomatik olarak KServe'e gönderilebilir; böylece eğitim → değerlendirme → dağıtım pipeline'ı tam otomasyona kavuşur.

Alternatifler ve Mimari Karar

Kubeflow güçlü bir araçtır ancak her kuruluş için uygun değildir. MLflow ile karşılaştırıldığında: MLflow deney takibi ve model registry konusunda hafif ve kullanımı kolaydır; Kubeflow ise pipeline orkestrasyon ve üretim altyapısında kapsamlıdır — ikisi tamamlayıcı kullanılabilir. ZenML daha basit pipeline tanımı sunar; Vertex AI Pipelines (Google), SageMaker Pipelines (AWS) ve Azure ML yönetilen cloud alternatifleridir — altyapı yönetim yükünü kaldırır. Kubeflow seçimi için: kuruluşun Kubernetes altyapısı mevcut olmalı, DevOps/MLOps ekibi Kubernetes deneyimine sahip olmalı ve scale-out ML iş yükleri bulunmalıdır. Yoksa MLflow veya yönetilen bir cloud servisi daha pratiktir.

Sık Sorulan Sorular

  • check_circle Kubeflow kurulumu ne kadar karmaşık?: Tam kurulum (tüm bileşenler dahil) karmaşık ve zaman alıcıdır; kube manifests veya Helm chart kullanılır, Kubernetes cluster yönetimi bilgisi zorunludur. Hızlı başlangıç için minikube veya kind üzerinde minimal kurulum mümkündür. Üretim ortamı için dedicated Kubernetes cluster ve persistent storage (MinIO veya S3) önerilir.
  • check_circle MLflow ve Kubeflow aynı anda kullanılabilir mi?: Evet, yaygın bir kombinasyon. MLflow deney takibi ve model registry için; Kubeflow Pipelines iş akışı orkestrasyon ve dağıtık eğitim için kullanılır. MLflow, Kubeflow Pipelines bileşeni içinde çalıştırılabilir; böylece her ikisinin güçlü yönleri bir arada değerlendirilir.
  • check_circle Kubeflow GPU destekli eğitimi nasıl yönetir?: Kubernetes'in GPU kaynak kısıtlamaları (resource limits: nvidia.com/gpu: 2 gibi) kullanılır. NVIDIA device plugin Kubernetes cluster'a kurulur; Kubeflow Training Operators bu kaynak taleplerini her Pod için ayrı ayrı belirtir. GPU paylaşımı için MIG (Multi-Instance GPU) ve time-slicing yapılandırması da desteklenir.
  • check_circle Türkiye'de Kubeflow hangi sektörlerde kullanılıyor?: Büyük fintek şirketleri, telekomünikasyon operatörleri ve kamu veri merkezleri başlıca kullanıcılar arasındadır. GDPR/KVKK uyumu için veriyi yurt içinde tutmak zorunda olan kuruluşlar cloud servisler yerine on-premises Kubeflow tercih etmektedir. Üniversite araştırma grupları GPU kümesi yönetimi için kullanmaktadır.
  • check_circle Kubeflow Pipelines ile Apache Airflow arasındaki fark nedir?: Airflow genel amaçlı iş akışı orkestratörüdür; ML'e özgü değildir, artifact izleme ve model versiyonlama içermez. Kubeflow Pipelines ML odaklıdır: her adım container, artifact lineage ve model metadata otomatik yönetilir. Airflow ML ekosistemiyle entegrasyon için ek araçlar (MLflow, DVC) gerektirir; Kubeflow bunu yerleşik sunar.