Sözlük

Docker

Docker ile AI/ML iş akışlarını basitleştirin! Modelleri nasıl dağıtacağınızı, tekrarlanabilirliği nasıl sağlayacağınızı ve ortamlar arasında verimli bir şekilde nasıl ölçeklendireceğinizi öğrenin.

Docker, yazılımı konteyner adı verilen paketler halinde sunmak için işletim sistemi düzeyinde sanallaştırma kullanarak uygulamaların dağıtımını, ölçeklendirilmesini ve yönetimini otomatikleştiren açık kaynaklı bir platformdur. Makine Öğrenimi (ML) mühendisleri ve veri bilimcileri için Docker, yaygın bir sorun olan çevresel tutarsızlıkları, yani meşhur "benim makinemde çalışıyor" sorununu çözen çok önemli bir araçtır. Docker, bir uygulamanın kodunu tüm kütüphaneler, PyTorch gibi çerçeveler ve çalışması için gereken diğer bağımlılıklarla birlikte paketleyerek, bir modelin nerede konuşlandırıldığından bağımsız olarak aynı performansı göstermesini sağlar. Bu tutarlılık, güvenilir model dağıtımı için temeldir ve modern MLOps uygulamalarının temel taşıdır. Ultralytics, kullanıcıların uygulamalarını konteynerleştirmeye başlamalarına yardımcı olmak için bir Docker Hızlı Başlangıç kılavuzu sağlar.

Docker Nasıl Çalışır?

Docker'ın iş akışı, uygulamaları paketlemek ve çalıştırmak için birlikte çalışan birkaç temel bileşen etrafında döner:

  • Dockerfile: Bu, sıralı komutların veya talimatların bir listesini içeren basit bir metin dosyasıdır. Bu talimatlar Docker'a belirli bir Docker görüntüsünün nasıl oluşturulacağını söyler. Bir ML projesi için Dockerfile, temel işletim sistemini, Python ve OpenCV gibi bağımlılıkları yüklemek için komutları belirtir, model dosyalarını ve çıkarım kodunu kopyalar ve konteyner başladığında çalıştırılacak komutu tanımlar. Dockerfiles hakkında daha fazla bilgiyi resmi Docker belgelerinde bulabilirsiniz.
  • Docker Görüntüsü: İmaj, kod, çalışma zamanı, kütüphaneler, ortam değişkenleri ve yapılandırma dosyaları dahil olmak üzere bir yazılım parçasını çalıştırmak için gereken her şeyi içeren hafif, bağımsız ve çalıştırılabilir bir pakettir. Bir Docker dosyasından oluşturulan salt okunur bir şablondur. ML'ye özgü görüntüler genellikle GPU sürücüleri ve ML çerçeveleri ile önceden yapılandırılmış olarak gelen NVIDIA NGC gibi kayıtlarda bulunur.
  • Docker Konteyneri: Konteyner, bir Docker görüntüsünün çalıştırılabilir bir örneğidir. Bir görüntüyü çalıştırdığınızda, ana makinenin çekirdeğinde çalışan yalıtılmış bir süreç olan bir konteyner haline gelir. Birden fazla konteyner aynı makinede çalışabilir ve işletim sistemi çekirdeğini diğer konteynerlerle paylaşabilir, her biri kullanıcı alanında yalıtılmış süreçler olarak çalışır. Bu da onları geleneksel sanallaştırmaya kıyasla son derece verimli hale getirir. Bu teknoloji Open Container Initiative (OCI) gibi kuruluşlar tarafından standartlaştırılmıştır.

Gerçek Dünya AI/ML Uygulamaları

Docker, deneyden üretime kadar bir yapay zeka modelinin tüm yaşam döngüsünü basitleştirir.

  1. Bilgisayarla Görme Modellerini Edge'e Dağıtma: Nesne algılama için eğitilmiş bir Ultralytics YOLO11 modeli bir Docker konteynerine paketlenebilir. Bu konteyner, model ağırlıklarını, çıkarım komut dosyasını ve belirli CUDA kütüphane sürümleri gibi gerekli tüm bağımlılıkları içerir. Bu tek kapsayıcı daha sonra güçlü bir bulut GPU 'sundan NVIDIA Jetson gibi kaynakları kısıtlı bir Edge AI cihazına kadar çeşitli platformlarda tutarlı bir şekilde dağıtılabilir. Bu, modelin beklendiği gibi performans göstermesini sağlar ve akıllı gözetim gibi uygulamalarda gerçek zamanlı çıkarım için kritik bir gerekliliktir.
  2. Yeniden Üretilebilir Araştırma Ortamları Oluşturma: Görüntü segmentasyonu için yeni bir algoritma geliştiren bir veri bilimci, Python, TensorFlow ve diğer kütüphanelerin belirli sürümlerini kilitleyen bir Docker konteyneri oluşturabilir. Bu konteynerli ortam ortak çalışanlarla paylaşılabilir veya bir araştırma makalesi ile birlikte yayınlanabilir, böylece başkalarının eğitim ortamını mükemmel bir şekilde kopyalamasına ve sonuçları doğrulamasına olanak tanır. Ultralytics HUB gibi platformlar, bu süreci daha da kolaylaştırmak için konteyner teknolojileriyle entegre olur.

Benzer Terimlerle Karşılaştırma

Docker konteynerleştirmenin merkezinde yer alsa da, genellikle diğer teknolojilerle birlikte kullanılır:

  • Konteynerleştirme: Bu, yazılımı konteynerler halinde paketlemenin genel konseptidir. Docker, konteyner oluşturma, gönderme ve çalıştırma araçları sağlayan konteynerizasyon için en popüler platformdur.
  • Kubernetes: Docker tek bir ana bilgisayarda tek tek konteynerleri yönetirken, Kubernetes bir konteyner düzenleme platformudur. Konteynerli uygulamaların makine kümeleri arasında dağıtımını, ölçeklendirilmesini ve yönetimini otomatikleştirir. Docker'ı nakliye konteynerlerini oluşturan, Kubernetes'i ise gemileri ve limanları yöneten sistem olarak düşünün. Resmi Kubernetes web sitesinden daha fazla bilgi edinebilirsiniz.
  • Sanal Makineler (VM'ler): VM'ler, konuk işletim sistemi de dahil olmak üzere tüm donanım sistemlerini taklit ederek izolasyon sağlar. Docker tarafından yönetilen konteynerler, ana bilgisayar çekirdeğini paylaşarak işletim sistemini sanallaştırır. Bu, konteynerleri VM'lerden çok daha hafif, hızlı ve kaynak açısından verimli hale getirir, ancak VM'ler daha güçlü bir izolasyon sunar. Resmi Docker web sitesi harika bir karşılaştırma sunuyor.

Yapay Zeka ve Bilgisayarlı Görü (CV) uygulayıcıları Docker'dan yararlanarak iş akışı verimliliğini, işbirliğini ve dağıtılan modellerin güvenilirliğini önemli ölçüde artırabilir. Docker'ın amacına genel bir bakış için OpenSource.com'un Docker açıklaması gibi kaynaklar erişilebilir tanıtımlar sunar. Bu teknoloji, çok çeşitli model dağıtım seçenekleri için önemli bir kolaylaştırıcıdır.

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 büyüyün

Şimdi katılın
Panoya kopyalanan bağlantı