Kubernetes'in ölçeklenebilir model dağıtımı, dağıtılmış eğitim ve verimli kaynak yönetimi ile yapay zeka/makine öğrenimi iş yüklerini nasıl kolaylaştırdığını keşfedin.
Kubernetes, sıklıkla K8s olarak kısaltılır, açık kaynak kodlu bir konteyner düzenleme sistemidir. konteynerli uygulamaların dağıtımı, ölçeklendirilmesi ve yönetimi. Başlangıçta Google daki mühendisler tarafından tasarlandı ve şimdi Cloud Native Computing Foundation (CNCF) tarafından sürdürülen Kubernetes evrim geçirmiştir esnek, dağıtık yazılım sistemlerini çalıştırmak için endüstri standardı haline getirmiştir. Hızla ilerleyen teknoloji alanlarında Yapay Zeka (AI) ve Makine Öğrenimi (ML), bir temel altyapı katmanı, mühendislik ekiplerinin karmaşık yapıların tüm yaşam döngüsünü verimli bir şekilde yönetmesini sağlar. deneysel geliştirmeden büyük ölçekli üretime kadar modeller.
Kubernetes özünde, konteynerleştirilmiş iş yüklerini çalıştıran ve düğüm olarak bilinen bilgi işlem makinelerinden oluşan bir kümeyi yönetir. Bu büyük ölçüde birteknoloji olan konteynerleştirmeyedayanır uygulamaların farklı ortamlarda tutarlı bir şekilde çalışmasını sağlamak için kodu bağımlılıklarıyla birlikte paketleyen ortamlar. Kubernetes, konuşlandırılabilir en küçük birimler olan "Podlar" gibi soyutlamalar sunar, ve bir uygulamanın istenen durumunu koruyan "Dağıtımlar". Yazılımı sistemden ayırarak altta yatan donanım, şunları sağlar bilgisayarlı görü mühendisleri modele odaklanacak gibi yönetilen hizmetleri kullanarak sunucu bakımı yerine performans Amazon EKS veya Google Kubernetes Engine (GKE).
İçin Makine Öğrenimi Operasyonları (MLOps), Kubernetes vazgeçilmezdir çünkü aşağıdaki kritik zorlukları çözer ölçeklenebilirlik. Modern yapay zeka iş yükleri, özellikle de derin öğrenme içeren, önemli ölçüde hesaplama kaynakları. Kubernetes şunları kolaylaştırır akıllıca dağıtılmış eğitim ile donatılmış birden fazla düğümde eğitim işlerinin planlanması Grafik İşleme Birimleri (GPU'lar). Model dağıtım aşaması sırasında K8s şunları sağlar Çıkarım API'leri için yüksek kullanılabilirlik, çalışan pod sayısını gerçek zamanlı olarak otomatik olarak yukarı veya aşağı ölçeklendirir trafik taleplerini karşılayarak hem performansı hem de maliyeti optimize eder.
Kubernetes'in diğer yaygın altyapı araçlarından farkını anlamak faydalı olacaktır:
Kubernetes ekosistemi, paket yönetimi için Helm gibi araçlar da dahil olmak üzere çok geniştir ve Küme sağlığını izlemek için Prometheus. Özel makine öğrenimi iş akışları için platformlar Kubeflow gibi uçtan uca boru hatlarını kolaylaştırmak için Kubernetes'in üstünde çalışır. Geleceğe baktığımızda, yakında çıkacak olan Ultralytics Platformu aşağıdakiler için tasarlanmıştır veri yönetimi ve model eğitimi için kapsamlı bir ortam sunarak bu süreçleri daha da basitleştirir. altta yatan altyapı karmaşıklıklarını soyutlar.
Kubernetes'e bir model dağıtmak için öncelikle çıkarım yapan bir betiğe ihtiyacınız vardır. Bu Python kod parçacığı şunları gösterir bir YOLO11 modelinin yüklenmesi ve bu modelin daha sonra bir Docker konteynerine sarılıp K8s tarafından zamanlanması.
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on an image source
# This script would typically run inside a Kubernetes Pod
results = model("https://ultralytics.com/images/bus.jpg")
# Print the detected class names
for result in results:
for cls_id in result.boxes.cls:
print(f"Detected: {result.names[int(cls_id)]}")
