Sözlük

Kubernetes

Kubernetes'in ölçeklenebilir model dağıtımı, dağıtılmış eğitim ve verimli kaynak yönetimi ile AI/ML iş yüklerini nasıl kolaylaştırdığını keşfedin.

YOLO modellerini Ultralytics HUB ile basitçe
eğitin

Daha fazla bilgi edinin

Genellikle K8s olarak kısaltılan Kubernetes, konteynerli uygulamaların dağıtımını, ölçeklendirilmesini ve yönetimini otomatikleştirmek için tasarlanmış açık kaynaklı bir platformdur. Başlangıçta tarafından geliştirilmiştir Google ve şimdi Cloud Native Computing Foundation (CNCF) tarafından sürdürülen Kubernetes, dağıtılmış sistemleri esnek bir şekilde çalıştırmak için sağlam bir çerçeve sağlar. Yapay Zeka (AI) ve Makine Öğrenimi (ML) alanında çalışanlar için Kubernetes, eğitimden dağıtım ve çıkarıma kadar modellerin karmaşık yaşam döngüsünü yönetmek için güçlü araçlar sunar. Makine öğrenimi modellerinin geliştirilmesi ile bunların üretim ortamlarında güvenilir bir şekilde çalıştırılması arasındaki boşluğu doldurmaya yardımcı olur.

Basitleştirilmiş Temel Kavramlar

Kubernetes, yazılım ve bağımlılıklarını içeren hafif, bağımsız paketler olan konteynerleri düzenler. Anahtar kavramlar şunları içerir:

  • Podlar: Kubernetes'teki en küçük dağıtılabilir birimlerdir ve genellikle kaynakları ve ağı paylaşan bir veya daha fazla kapsayıcı içerir. Bir Pod'u ML uygulamanızın veya çıkarım sunucusu kapsayıcınızın etrafındaki bir sarmalayıcı olarak düşünün.
  • Düğümler: Pod'ların çalıştığı iş makineleri (sanal veya fiziksel). Kubernetes, Pod'ları mevcut Düğümler arasında dağıtmayı yönetir.
  • Hizmetler: Mantıksal bir Pod kümesi ve bunlara erişmek için bir ilke tanımlayan, genellikle dinamik Podlar için sabit bir IP adresi veya DNS adı sağlayan bir soyutlama. ML çıkarım uç noktalarını açığa çıkarmak için gereklidir.
  • Dağıtımlar: Uygulamanız için istenen durumu tanımlayın, kullanılabilirliği sağlamak ve güncellemeleri işlemek için ReplicaSets'i (aynı Pod grupları) yönetin. Yeni model sürümlerini kesinti olmadan kullanıma sunmak için kullanışlıdır.

Bu yapı taşlarının anlaşılması, ölçeklenebilir ve esnek makine öğrenimi sistemlerinin tasarlanmasına yardımcı olur.

Yapay Zeka ve Makine Öğreniminde Uygunluk

Kubernetes, çeşitli avantajları nedeniyle modern Makine Öğrenimi Operasyonlarının (MLOps ) temel taşı haline gelmiştir:

  • Ölçeklenebilirlik: Büyük modellerin eğitilmesi veya çıkarım taleplerinin sunulması gibi makine öğrenimi görevleri genellikle değişken kaynak taleplerine sahiptir. Kubernetes, yüke bağlı olarak konteyner (Pod) sayısını otomatik olarak yukarı veya aşağı ölçeklendirebilir ve GPU'lar gibi kaynakların verimli kullanılmasını sağlar.
  • Kaynak Yönetimi: Üzerinde ince taneli kontrol sağlar CPU ve konteynerler için bellek tahsisi, kaynak çekişmesini önleme ve performans sağlama, özellikle birden fazla deney veya hizmette pahalı GPU kaynaklarını yönetirken kritik öneme sahiptir.
  • Taşınabilirlik ve Tutarlılık: Kubernetes, ister şirket içi sunucular ister Amazon EKS, Google GKE veya Azure AKS gibi çeşitli bulut bilişim platformları olsun, farklı altyapılar arasında tutarlı bir ortam sağlar. Bu da ML iş akışlarının geliştirme, test ve üretim arasında taşınmasını kolaylaştırır. Genellikle bir Docker kurulumuyla başlayabilir ve Kubernetes ile ölçeklendirebilirsiniz.
  • Otomasyon ve Orkestrasyon: Hizmet keşfi, yük dengeleme, kendi kendini iyileştirme (arızalı kapsayıcıları yeniden başlatma) ve yapılandırma yönetimi gibi karmaşık görevleri otomatikleştirerek makine öğrenimi ekipleri için manuel ek yükü azaltır.

Gerçek Dünya Yapay Zeka/ML Uygulamaları

  1. Dağıtılmış Model Eğitimi: Karmaşık modeller gibi büyük derin öğrenme (DL) modellerinin eğitimi Ultralytics YOLOnesne tespiti için varyantlar, genellikle muazzam hesaplama gücü gerektirir. Kubernetes, Kubeflow gibi çerçeveler veya yerel entegrasyonlar kullanarak dağıtılmış eğitim için bir makine kümesini yönetebilir. PyTorch veya TensorFlow. Eğitim işlerinin planlanmasını, veri erişiminin yönetilmesini ve GPU'ların düğümler arasında verimli bir şekilde tahsis edilmesini sağlar.
  2. Ölçeklenebilir Çıkarım Hizmetleri: Gerçek zamanlı çıkarım için olanlar gibi makine öğrenimi modellerini dağıtmak, yüksek kullanılabilirlik ve düşük gecikme süresi gerektirir. Kubernetes, çıkarım sunucularını (örneğin, Ultralytics modelleriyle entegre olan NVIDIA Triton Inference Server'ı kullanarak - Triton kılavuzuna bakın) bir yük dengeleyicinin arkasında barındırabilir. Gelen trafiğe göre çıkarım sunucusu Pod'larının sayısını otomatik olarak ölçeklendirerek görüntü sınıflandırma veya doğal dil işleme (NLP) gibi görevler için en yoğun yükler sırasında bile yanıt verebilirlik sağlar.

Kubernetes ve İlgili Teknolojiler

  • Kubernetes ve Docker: Docker, tek tek konteynerler oluşturmak, göndermek ve çalıştırmak için kullanılan bir araçtır(konteynerleştirme). Kubernetes ise konteynerler için bir orkestratördür ve birçok makinede potansiyel olarak binlerce konteyneri yönetir. Birlikte çalışırlar: genellikle Docker ile konteyner görüntüleri oluşturur ve ardından Kubernetes kullanarak bunları dağıtır ve yönetirsiniz. Konteyner temelleri için Docker Hızlı Başlangıç kılavuzuna göz atın.
  • Kubernetes ve Sunucusuz Hesaplama: Sunucusuz platformlar (AWS Lambda veya Google Cloud Functions gibi) sunucu yönetimini tamamen soyutlayarak olay odaklı işlevlere odaklanır. Kubernetes, temel altyapı üzerinde daha fazla kontrol sağlar ve sunucusuz çerçeveler Kubernetes üzerinde çalışabilse de (örn. Knative) uzun süreli uygulamalar veya karmaşık durum tabanlı hizmetler için daha uygundur.

Araçlar ve Ekosistem

Kubernetes ekosistemi, yönetimi basitleştirmek için birçok araç içerir:

  • Helm: Kubernetes için karmaşık uygulamaları tanımlamaya, yüklemeye ve yükseltmeye yardımcı olan bir paket yöneticisi.
  • Prometheus & Grafana: Kubernetes kümelerini ve uygulamalarını izlemek için popüler açık kaynak araçları.
  • Bulut Sağlayıcı Entegrasyonları: Yönetilen Kubernetes hizmetleri (EKS, GKE, AKS) küme kurulumunu ve bakımını basitleştirir.
  • Makine Öğrenimi Platformları: Kubeflow gibi araçlar, ML'ye özgü iş akışları sağlamak için Kubernetes üzerine inşa edilmiştir. Ultralytics HUB gibi platformlar, daha kolay model dağıtımı için bazen Kubernetes karmaşıklıklarını soyutlayarak dağıtım hattını basitleştirmeyi amaçlamaktadır.

Kubernetes, çeşitli ortamlarda ölçeklenebilir ve güvenilir AI/ML uygulamaları oluşturmak, dağıtmak ve yönetmek için güçlü bir temel sağlar ve MLOps ortamında çok önemli bir beceri haline getirir.

Tümünü okuyun