Docker
Docker ile yapay zeka/makine öğrenmesi iş akışlarını basitleştirin! Modelleri nasıl dağıtacağınızı, yeniden üretilebilirliği nasıl sağlayacağınızı ve ortamlar arasında verimli bir şekilde nasıl ölçeklendireceğinizi öğrenin.
Docker, uygulamaların dağıtımını, ölçeklendirilmesini ve yönetimini otomatikleştiren açık kaynaklı bir platformdur.
konteynerleştirme. Hızla gelişen teknoloji alanında
yapay zeka (AI), Docker
"benim makinemde çalışıyor" sorunu olarak bilinen kritik bir zorluğu çözer. Ambalajlayarak
Makine Öğrenimi (ML) modeli ile birlikte
kodunu, çalışma zamanını, sistem araçlarını ve kütüphaneleri konteyner adı verilen standartlaştırılmış bir birime dönüştüren Docker
yazılım, bilgisayar ortamından bağımsız olarak kesinlikle aynı şekilde çalışacaktır. Bu tutarlılık modern toplumlar için hayati önem taşır.
MLOps boru hatları, kolaylaştırıcı
yerel kalkınmadan yumuşak geçişler
bulut bilişim altyapısı veya uç cihazlar.
Docker'ın Temel Kavramları
Docker'ı anlamak, iş akışını tanımlayan üç temel bileşene aşina olmayı gerektirir.
-
Dockerfile: Bu, bir kullanıcının komut üzerinde çağırabileceği tüm komutları içeren bir metin belgesidir
bir görüntüyü bir araya getirmek için satır. Bir yapay zeka projesi için
Dockerfile bir reçete gibi davranır, temel
gibi dilleri yükleyerek işletim sistemi Pythonve gerekli ayarların yapılması
gibi çerçeveler PyTorch veya
TensorFlow.
-
Docker Görüntüsü: Görüntü, bir Docker konteyneri oluşturmak için talimatlar içeren salt okunur bir şablondur.
Belirli bir andaki uygulama durumunu yakalar. Geliştiriciler genellikle kayıtlardan optimize edilmiş temel görüntüleri kullanır
için önceden yüklenmiş sürücülerden yararlanmak üzere NVIDIA NGC gibi
GPU hızlanma.
-
Docker Konteyneri: Konteyner, bir imajın çalıştırılabilir bir örneğidir. Uygulamayı aşağıdakilerden izole eder
ana bilgisayarın işletim sistemi çekirdeğini paylaşırken ana bilgisayar sistemi. Bu izolasyon, yazılım çakışmalarının
en aza indirilmiştir, bu da istikrar için temel bir gerekliliktir
model dağıtımı.
Gerçek Dünya Yapay Zeka Uygulamalarında Docker
Docker, sağlam bir dağıtım için vazgeçilmezdir
bilgisayarla görme (CV) çözümleri.
-
Uç Yapay Zeka Dağıtımı: Modelleri kaynak kısıtlaması olan cihazlara dağıtırken
NVIDIA Jetson, Docker kapsayıcıları bir
gibi belirli bağımlılıkları içeren hafif ortam
OpenCV ve donanıma özgü kütüphaneler. Örneğin, bir
Ultralytics YOLO11 Docker konteynerinde paketlenmiş model
için binlerce uzak kameraya kolayca gönderilebilir.
hakkında endişelenmeden nesne algılama
bireysel cihaz yapılandırması.
-
Tekrar Üretilebilir Araştırma ve Eğitim: Akademik ve endüstriyel araştırmalarda, sonuçların yeniden üretilmesi
Kritik. Araştırmacılar Docker'ı kullanarak, kullanım sırasında kullanılan her kütüphanenin tam sürümünü dondurabilirler.
model eğitimi. Bu, aşağıdakilerden kaynaklanan tutarsızlıkları ortadan kaldırır
yazılım güncellemeleri ve başkalarının bulguları doğrulamasına veya çalışma üzerine inşa etmesine olanak tanıyarak daha iyi işbirliğini teşvik eder.
veri bilimi.
Docker'ı YOLO ile Entegre Etme
Çıkarımın bir Docker konteyneri içinde çalıştırılması, ortamınızın temiz kalmasını ve bağımlılıklarınızın
diğer sistem düzeyindeki paketlerle çakışmaması gerekir. Aşağıda tipik olarak bir Docker içinde çalışacak basit bir Python betiği bulunmaktadır
görüntü segmentasyonunu yürütmek için konteyner veya
algılama görevleri.
from ultralytics import YOLO
# Load the YOLO11 model (downloads automatically if not present)
model = YOLO("yolo11n.pt")
# Perform object detection on an online image source
results = model("https://ultralytics.com/images/bus.jpg")
# Print the number of objects detected to verify inference
print(f"Detected {len(results[0].boxes)} objects in the image.")
Docker vs. Sanal Makineler
Her iki teknoloji de uygulamaları izole etse de farklı şekilde çalışırlar.
-
Sanal Makineler (VM'ler): Bir VM, tam bir konuk işletim sistemi de dahil olmak üzere tüm bir bilgisayar sistemini taklit eder
sistemi. Bu, sanal makinelerin ağırlaşmasına ve daha yavaş başlamasına neden olur.
Red Hat ayrıntılı bir karşılaştırma sunuyor
mimari farklılıkları göstermektedir.
-
Docker Konteynerleri: Konteynerler donanım yerine işletim sistemini sanallaştırır. Paylaşırlar
Bu da onları önemli ölçüde daha hafif ve verimli hale getirir. Bu verimlilik şu durumlarda çok önemlidir
gibi yüksek performanslı modellerin konuşlandırılması
ile hız ve doğruluğu en üst düzeye çıkarmayı amaçlayan YOLO26
minimum ek yük.
Kubernetes ile İlişki
Docker ve Kubernetes birbirinden farklı ancak birbirini tamamlayıcıdır
araçlar. Docker, tek tek konteynerler oluşturmak ve çalıştırmak için kullanılır. Bununla birlikte, yüzlerce konteyneri yönetirken
model sunumu için sunucu kümesi, bir
orkestrasyon aracına ihtiyaç vardır. Kubernetes, Docker kapsayıcılarının zamanlamasını ve yürütülmesini koordine ederek yüksek
kurumsal düzeyde kullanılabilirlik ve ölçeklenebilirlik
Yapay zeka ajanları. Bu sinerji hakkında daha fazla bilgi için
Kubernetes belgeleri.
Ultralytics ekosistemindeki gelecekteki gelişmeler, örneğin yakında çıkacak Ultralytics Platformu, bunlardan yararlanacaktır
Veri kaynağı, eğitim ve dağıtım iş akışlarını kolaylaştırmak için konteynerleştirme ilkeleri
altyapı yönetiminin karmaşıklığı.