Yolo Vision Shenzhen
Shenzhen
Şimdi katılın
Sözlük

Docker

Docker'ın tekrarlanabilir AI dağıtımını nasıl mümkün kıldığını keşfedin. Buluttan uç cihazlara sorunsuz ölçeklendirme için Ultralytics modellerini konteynerlere paketlemeyi öğrenin.

Docker, geliştiricilerin konteynerleştirme kullanarak uygulamaların dağıtımını, ölçeklendirilmesini ve yönetimini otomatikleştirmelerini sağlayan açık kaynaklı bir platformdur. Yapay zeka ve makine öğrenimi bağlamında Docker, kodu ve tüm bağımlılıklarını (kütüphaneler, sistem araçları ve ayarlar gibi) paketleyen standart bir yazılım birimi olarak işlev görür, böylece uygulama bir bilgi işlem ortamından diğerine hızlı ve güvenilir bir şekilde çalışır. Bu, Bu, "benim makinemde çalışıyor" sorununu ortadan kaldırarak, bir araştırmacının dizüstü bilgisayarında eğitilmiş bir sinir ağının, büyük bir bulut sunucusuna veya bir uç cihaza dağıtıldığında da aynı şekilde çalışmasını sağlar.

Docker'ın Yapay Zeka ve Makine Öğrenimi için Önemi

Modern makine öğrenimi operasyonları (MLOps) büyük ölçüde tekrarlanabilirlik ve taşınabilirliğe dayanır. Bir AI projesi genellikle Python belirli sürümleri, GPU CUDA ve PyTorch gibi derin öğrenme çerçeveleri dahil olmak üzere karmaşık bir yazılım yığını içerir. Bu karmaşıklık, PyTorch veya TensorFlowgibi derin öğrenme çerçeveleri gibi karmaşık bir yazılım yığını içerir. Bunları farklı ekipler ve altyapılar arasında manuel olarak yönetmek hataya açıktır.

Docker, hafif, bağımsız konteynerler oluşturarak bunu basitleştirir. Her örnek için tam bir işletim sistemi gerektiren geleneksel sanal makinelerden (VM) farklı olarak, konteynerler ana makinenin işletim sistemi çekirdeğini paylaşır, ancak izole edilmiş kullanıcı alanlarında çalışır. Bu, onları önemli ölçüde daha kaynak verimli ve daha hızlı başlatılabilir hale getirir, bu da ölçeklendirme model hizmet altyapısı veya dağıtılmış eğitim işleri yürütürken çok önemlidir.

Gerçek Dünya Uygulamaları

Docker, ilk denemelerden son uygulamaya kadar yapay zeka yaşam döngüsünün her aşamasında yaygın olarak kullanılmaktadır.

  1. Tutarlı Eğitim Ortamları: Bir veri bilimi ekibi, Docker görüntülerini kullanarak birleşik bir geliştirme ortamı paylaşabilir. Örneğin, nesne algılama üzerinde çalışan bir araştırmacı, gerekli tüm sürücüleri ve kütüphaneleri içeren önceden oluşturulmuş bir görüntüyü çekebilir. Bu, bir YOLO26 modelini eğittiklerinde, sonuçların altta yatan donanım farklılıklarından bağımsız olarak meslektaşları tarafından tekrarlanabilir olmasını sağlar.
  2. Edge AI Dağıtımı: Akıllı şehir gözetiminde, güncellenmiş modellerin trafik kameraları veya dronlar gibi binlerce edge cihaza aktarılması gerekir. Docker konteynerleri, mühendislerin yeni model sürümünü paketleyip kablosuz olarak dağıtmasına olanak tanır. Konteyner, çıkarım çalışma zamanını içerdiğinden, güncelleme süreci sorunsuz gerçekleşir ve cihazın temel işletim sistemini etkilemez.

Docker, Kubernetes ve Sanal Makineler Karşılaştırması

Docker'ın özel rolünü anlamak için onu ilgili teknolojilerden ayırmak faydalıdır:

  • Docker ve Sanal Makineler (VM'ler): VM'ler donanımı sanallaştırır, yani her VM bir hipervizör üzerinde tam bir işletim sistemi (Windows veya Linux gibi) çalıştırır. Bu, önemli miktarda bellek ve CPU tüketir. Docker, işletim sistemini sanallaştırarak konteynerleri VM'lerden çok daha küçük ve hızlı hale getirir.
  • Docker ve Kubernetes: Bunlar birbirini tamamlayan, rekabet eden teknolojiler değildir. Docker, tek tek konteynerlar oluşturmak ve çalıştırmak için kullanılan bir araçtır. Kubernetes ise, Docker konteyner kümelerini yöneten, büyük ölçekli bulut bilişim ortamlarında otomatik ölçeklendirme, yük dengeleme ve kendi kendini onarma gibi görevleri yerine getiren bir konteyner düzenleme platformudur .

Örnek: Bir Konteynerde Çıkarım Çalıştırma

Aşağıdaki örnek, bilgisayar görme için tasarlanmış bir Docker konteynerinin içinde bir Python nasıl görünebileceğini göstermektedir. Bu betik, ultralytics modeli yüklemek ve çıkarım yapmak için kullanılan paket. Konteyner ortamı, doğru bağımlılıkların ( opencv-python ve torch) zaten mevcuttur.

from ultralytics import YOLO

# Load the YOLO26 model (weights are typically included in the Docker image)
model = YOLO("yolo26n.pt")

# Perform inference on an image source
# In a containerized microservice, this might process incoming API requests
results = model.predict("https://ultralytics.com/images/bus.jpg")

# Log the detection results
print(f"Detected {len(results[0].boxes)} objects in the image.")

Docker'ı İş Akışınıza Entegre Etme

Konteynerleştirmeye başlamak için, geliştiriciler genellikle bir Dockerfile, bir metin belgesidir ve bir görüntüyü birleştirmek için gerekli tüm komutları içerir. Oluşturulduktan sonra, bu görüntüler kayıt defterlerinde saklanabilir. Docker Hub veya NVIDIA Kataloğu, GPU konteynerler sunar.

Docker dosyalarını manuel olarak yönetmeden eğitim ve dağıtım sürecini kolaylaştırmak isteyenler için Ultralytics , bulut ortamlarının karmaşıklığını ele alan entegre araçlar sunar. Bu sayede kullanıcılar, altyapıyı yapılandırmak yerine model doğruluğunu iyileştirmeye odaklanabilirler. Ayrıca, Docker Hızlı Başlangıç Kılavuzumuzu inceleyerek Ultralytics konteynerlerde hemen çalıştırmayı öğrenebilirsiniz.

Ultralytics topluluğuna katılın

Yapay zekanın geleceğine katılın. Küresel yenilikçilerle bağlantı kurun, işbirliği yapın ve birlikte büyüyün

Şimdi katılın