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

Konteynerleştirme

Konteynerleştirmenin AI dağıtımını nasıl kolaylaştırdığını öğrenin. Docker ve Kubernetes'i kullanarak Ultralytics her ortamda tutarlı bir şekilde çalıştırmayı keşfedin.

Konteynerleştirme, bir uygulamanın kaynak kodunu kütüphaneleri, bağımlılıkları ve yapılandırma dosyalarıyla birlikte tek bir hafif yürütülebilir birim olan konteyner içinde bir araya getiren bir yazılım dağıtım stratejisidir. Bu yaklaşım, yazılımı altta yatan altyapıdan soyutlayarak, uygulamaların geliştiricinin yerel dizüstü bilgisayarından büyük bulut bilişim kümelerine kadar çeşitli bilgi işlem ortamlarında tutarlı bir şekilde çalışmasını sağlar. Makine öğrenimi (ML) bağlamında konteynerleştirme, sinir ağlarını eğitmek ve çalıştırmak için gereken karmaşık ortamı kapsülleyerek, "benim makinemde çalışıyor" sorununu çözer. ve çalıştırmak için gereken karmaşık ortamı kapsülleyerek, "benim makinemde çalışıyor" sorununu çözer.

Yapay zeka için konteynerleştirme neden önemlidir?

Veri bilimcileri ve makine öğrenimi mühendisleri için ortamları yönetmek önemli bir zorluktur. Farklı projeler, çakışan Python sürümleri, CUDA veya PyTorch gibi kütüphaneler gerektirebilir. Konteynerleştirme, izole edilmiş, değiştirilemez ortamlar oluşturarak bu çakışmaları ortadan kaldırır .

  • Taşınabilirlik: Konteynerleştirilmiş bir bilgisayar görme uygulaması, geliştirme, test ve üretim aşamaları arasında sorunsuz bir şekilde taşınabilir. Bu, bir iş istasyonunda eğitilmiş bir modelin, bir sunucuya yerleştirildiğinde tam olarak aynı şekilde çalışmasını sağlar.
  • Verimlilik: Geleneksel yöntemlerin aksine, konteynerler ana sistemin işletim sistemi (OS) çekirdeğini paylaşır, bu da onları son derece hafif hale getirir. Bu yüksek yoğunluk, kaynakların daha iyi kullanılmasını sağlar ve bu da gerçek zamanlı uygulamalarda çıkarım gecikmesini azaltmak için çok önemlidir.
  • Ölçeklenebilirlik: Modern orkestrasyon araçları, trafik talebine göre konteyner örneklerini hızla başlatabilir veya kapatabilir, böylece yüksek talep gören hizmetler için ölçeklenebilirlik sağlar. .

Konteynerleştirme ve Sanal Makineler

Konteynerleri sanal makinelerden (VM) ayırmak önemlidir. Bir VM, tam bir konuk işletim sistemi dahil olmak üzere tüm donanım yığınını taklit eder, bu da önemli ölçüde kaynak yükü ve daha yavaş başlatma sürelerine neden olur. Buna karşılık, konteynerleştirme işletim sistemini sanallaştırarak birden fazla uygulamanın tek bir paylaşılan çekirdekte izole işlemler olarak çalışmasına olanak tanır. Bu azalan ayak izi, konteynerleri donanım kaynaklarının sınırlı olduğu IoT cihazları veya dronlar gibi Edge AI senaryoları için tercih edilen seçenek haline getirir. Daha ayrıntılı bir teknik karşılaştırma için Red Hat'in konteynerler ve VM'ler hakkındaki kılavuzunu inceleyin.

Temel Teknolojiler

Modern konteyner backbone birkaç önemli teknoloji oluşturmaktadır:

  • Docker: Konteyner oluşturmak, çalıştırmak ve yönetmek için en yaygın kullanılan platformdur. Ultralytics , kullanıcıların manuel ortam kurulumu yapmadan nesne algılama modellerini kolayca dağıtmalarına yardımcı olmak için bir Docker Hızlı Başlangıç Kılavuzu Ultralytics .
  • Kubernetes: Konteyner tabanlı uygulamaların dağıtımını, ölçeklendirilmesini ve yönetimini otomatikleştirmek için kullanılan açık kaynaklı bir sistemdir. Kurumsal MLOps boru hatlarında büyük konteyner kümelerini yönetmek için gerekli bir sistemdir.
  • Konteyner Kayıt Defterleri: NVIDIA Kataloğu gibi hizmetler, genellikle GPU hızlandırmalı model eğitimi gibi belirli görevler için önceden optimize edilmiş konteyner görüntülerini depolar ve dağıtır.
  • Açık Konteyner Girişimi (OCI): Konteyner formatlarının ve çalışma zamanlarının farklı platformlarda uyumlu olmasını sağlayan ve Açık Konteyner Girişimi tarafından desteklenen bir endüstri standardıdır.

Gerçek Dünya Uygulamaları

Konteynerleştirme, modern AI iş akışlarında yaygın olarak kullanılmaktadır ve hızlı yineleme ve güvenilir dağıtım sağlar.

  1. Akıllı Şehir Gözetimi: Belediyeler, ağa bağlı kameralar kullanarak trafik yönetim sistemleri kuruyor. Mühendisler, konteynerleri kullanarak yazılım güncellemelerini binlerce uç cihaza aynı anda aktarabilir. Yeni bir nesne algılama modeli doğruluğu artırırsa, konteyner kablosuz olarak güncellenir ve tüm şehir altyapısında tutarlı performans sağlanır.
  2. Tekrarlanabilir Araştırma: Akademik ve endüstriyel araştırmalarda, sonuçların tekrarlanabilirliği çok önemlidir. Tam olarak eğitim verisi işleme komut dosyalarını ve model mimarisi içeren bir Docker görüntüsü yayınlayarak araştırmacılar, meslektaşlarının deneyi tam olarak tekrarlayabilmelerini sağlarlar. Bu, derin öğrenmedeki (DL) ilerlemeleri doğrulamak için hayati önem taşır.

Örnek: Konteyner İçinde Çıkarım

Bir AI uygulaması için bir konteyner oluştururken, genellikle işlemek için bir komut dosyası ekleriz. model sunumuAşağıdaki Python snippet , ultralytics paket. Bu komut dosyası, ortamın önceden yüklenmiş bağımlılıklarını kullanarak konteyner içinde çalışacaktır.

from ultralytics import YOLO

# Load the YOLO26 model (weights are usually baked into the container image)
# YOLO26 is the latest state-of-the-art model for real-time tasks
model = YOLO("yolo26n.pt")

# Perform inference on an image URL
# In production, this might handle API requests or video streams
results = model.predict("https://ultralytics.com/images/bus.jpg")

# Print the number of detected objects to the logs
print(f"Inference complete. Detected {len(results[0].boxes)} objects.")

Bu mantığı bir konteyner içinde kapsülleyerek, geliştiriciler Python ve kütüphane sürümlerinin sabit kalmasını sağlar ve üretimde beklenmedik arızaları önler. Basitleştirilmiş model yönetimi, eğitim ve dağıtım için birçok ekip, konteyner tabanlı iş akışlarını yerel olarak destekleyen Ultralytics kullanır. Dağıtım stratejileri hakkında daha fazla bilgi için, AWS konteyner kullanım örnekleri kılavuzunu inceleyin.

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