tag Konteyner

Bu sayfada Konteyner etiketi ile işaretlenmiş 2 yapay zeka kavramını bulabilirsiniz.

Docker, 2013 yılında Solomon Hykes tarafından geliştirilen ve Linux çekirdeğinin konteyner teknolojisini kullanıcı dostu bir API ile erişilebilir kılan açık kaynaklı bir konteynerizasyon platformudur. Temel amacı "bende çalışıyor ama sende çalışmıyor" sorununu ortadan kaldırmaktır: Uygulama kodu, çalışma zamanı, kütüphaneler ve tüm sistem bağımlılıkları bir araya getirilerek "image" adı verilen taşınabilir bir paket oluşturulur; bu paketten çalıştırılan "container", bulut sunucusundan yerel makineye kadar her ortamda aynı davranışı sergiler. Sanal makinelerden (VM) farkı kritik öneme sahiptir. VM'ler tam bir işletim sistemi çalıştırırken Docker container'ları ana sistemin çekirdeğini paylaşır. Bu sayede container'lar saniyeler içinde başlar, megabayt mertebesinde yer kaplar ve çok daha az RAM tüketir. Container'lar sanallaştırma yerine işletim sistemi düzeyinde izolasyon sunar. AI ve makine öğrenimi ekosisteminde Docker birkaç kritik sorunu çözer. Araştırmacılar, farklı Python sürümleri, CUDA versiyonları veya kütüphane kombinasyonları gerektiren deneyleri Dockerfile aracılığıyla yeniden üretilebilir ortamlar olarak tanımlayabilir. Model deployment sürecinde eğitilmiş modeller API sunucularıyla birlikte konteynerize edilerek Kubernetes gibi orkestrasyon araçlarıyla büyük ölçekte dağıtılabilir. MLflow, Kubeflow ve Airflow gibi MLOps araçlarının büyük çoğunluğu Docker'ı temel alır. Temel bileşenler şunlardır: Dockerfile (image'ı tanımlayan yapılandırma dosyası), image (çalıştırılabilir paket), container (çalışan image örneği), registry (Docker Hub gibi image deposu) ve docker-compose (çoklu container uygulamalarını yönetme aracı). docker pull, docker run ve docker build komutları günlük kullanımın temelini oluşturur. GPU destekli AI iş yükleri için NVIDIA Container Toolkit, GPU'ların container'lara aktarılmasını mümkün kılar; böylece farklı CUDA sürümleri gerektiren modeller aynı fiziksel makinede yan yana çalıştırılabilir. Bu özellik özellikle araştırma ortamlarında deney yeniden üretilebilirliğini güçlü biçimde destekler. Endüstride Docker imajları katmanlı yapısı ile verimli depolanır ve dağıtılır.

code_blocks

Docker (Konteyner Teknolojisi)

Docker, 2013 yılında Solomon Hykes tarafından geliştirilen ve Linux çekirdeğinin konteyner teknolojisini kullanıcı dostu bir API ile erişilebilir kılan açık kaynaklı bir konteynerizasyon platformudur. Temel amacı "bende çalışıyor ama sende çalışmıyor" sorununu ortadan kaldırmaktır: Uygulama kodu, çalışma zamanı, kütüphaneler ve tüm sistem bağımlılıkları bir araya getirilerek "image" adı verilen taşınabilir bir paket oluşturulur; bu paketten çalıştırılan "container", bulut sunucusundan yerel makineye kadar her ortamda aynı davranışı sergiler. Sanal makinelerden (VM) farkı kritik öneme sahiptir. VM'ler tam bir işletim sistemi çalıştırırken Docker container'ları ana sistemin çekirdeğini paylaşır. Bu sayede container'lar saniyeler içinde başlar, megabayt mertebesinde yer kaplar ve çok daha az RAM tüketir. Container'lar sanallaştırma yerine işletim sistemi düzeyinde izolasyon sunar. AI ve makine öğrenimi ekosisteminde Docker birkaç kritik sorunu çözer. Araştırmacılar, farklı Python sürümleri, CUDA versiyonları veya kütüphane kombinasyonları gerektiren deneyleri Dockerfile aracılığıyla yeniden üretilebilir ortamlar olarak tanımlayabilir. Model deployment sürecinde eğitilmiş modeller API sunucularıyla birlikte konteynerize edilerek Kubernetes gibi orkestrasyon araçlarıyla büyük ölçekte dağıtılabilir. MLflow, Kubeflow ve Airflow gibi MLOps araçlarının büyük çoğunluğu Docker'ı temel alır. Temel bileşenler şunlardır: Dockerfile (image'ı tanımlayan yapılandırma dosyası), image (çalıştırılabilir paket), container (çalışan image örneği), registry (Docker Hub gibi image deposu) ve docker-compose (çoklu container uygulamalarını yönetme aracı). docker pull, docker run ve docker build komutları günlük kullanımın temelini oluşturur. GPU destekli AI iş yükleri için NVIDIA Container Toolkit, GPU'ların container'lara aktarılmasını mümkün kılar; böylece farklı CUDA sürümleri gerektiren modeller aynı fiziksel makinede yan yana çalıştırılabilir. Bu özellik özellikle araştırma ortamlarında deney yeniden üretilebilirliğini güçlü biçimde destekler. Endüstride Docker imajları katmanlı yapısı ile verimli depolanır ve dağıtılır.

arrow_forward
hub

Kubernetes (Kubernetes (K8s))

Kubernetes (K8s), konteynerleştirilmiş uygulamaların dağıtımını, ölçeklenmesini ve yönetimini otomatikleştiren açık kaynaklı bir konteyner orkestrasyon platformudur. İlk olarak Google'ın iç altyapı projesi Borg'dan ilham alınarak 2014 yılında geliştirilen Kubernetes, aynı yıl açık kaynak olarak duyurulmuş ve 2016'da Cloud Native Computing Foundation'a (CNCF) bağışlanmıştır. "K8s" kısaltması, K ile s arasındaki 8 harften türetilmiştir. Yapay zeka ve makine öğrenmesi iş yüklerinde Kubernetes kritik bir altyapı katmanı işlevi görür. Model eğitim pipeline'ları, inference sunucuları ve veri işleme bileşenleri Kubernetes üzerinde GPU node'ları arasında verimli biçimde dağıtılabilir. Horizontal Pod Autoscaler (HPA) mekanizması, gelen istek yüküne göre inference pod sayısını dinamik olarak artırıp azaltır; bu da hem maliyet kontrolü hem de yüksek erişilebilirlik açısından önemlidir. Kubernetes mimarisi iki ana katmandan oluşur: Control Plane ve Worker Node'lar. Control Plane; küme durumunu depolayan etcd veritabanını, API isteklerini işleyen API Server'ı, pod yerleşim kararlarını veren Scheduler'ı ve mevcut durumu istenen durumla eşitleyen Controller Manager'ı barındırır. Worker Node'lar ise pod'ları çalıştıran Kubelet servisi, ağ kurallarını yöneten Kube-proxy ve gerçek konteyner çalışma ortamını (containerd veya CRI-O) içerir. ML ekipleri için Kubeflow, KServe, Seldon Core ve BentoML gibi platformlar, Kubernetes üzerinde çalışan ML spesifik orkestrasyon çözümleri sunar. kubectl komut satırı aracı ve YAML tabanlı manifest dosyaları, Kubernetes kaynaklarını bildirimsel (declarative) biçimde yönetmeyi kolaylaştırır. Helm chart'ları ise karmaşık ML altyapısının paketlenip tekrarlanabilir biçimde kurulmasına olanak tanır. GitOps yaklaşımıyla Argo CD veya Flux gibi araçlar, Git deposundaki değişiklikleri otomatik olarak kümeye uygulayarak ML model güncellemelerinin tam denetlenebilirliğini ve geri alınabilirliğini garanti eder. Kubernetes, modern MLOps disiplininin temel taşlarından biri olarak kabul görmekte ve üretim ortamında model güvenilirliğini artırmaktadır.

arrow_forward