Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Kubernetes

Scopri come Kubernetes automatizza l'implementazione e il ridimensionamento dei modelli di IA. Impara a orchestrare Ultralytics su K8s per una visione artificiale ad alte prestazioni.

Kubernetes, spesso indicato come K8s, è una piattaforma open source progettata per automatizzare l'implementazione, il ridimensionamento e la gestione delle applicazioni containerizzate. Sviluppato originariamente da Google ora gestito dalla Cloud Native Computing Foundation (CNCF), Kubernetes è diventato lo standard per l' orchestrazione del software nel cloud. Nel contesto dell' intelligenza artificiale (AI) e dell' apprendimento automatico (ML), funge da livello infrastrutturale critico che consente ai team di ingegneri di gestire flussi di lavoro complessi, dalla formazione distribuita all'inferenza di produzione ad alta disponibilità . Astrattizzando l'hardware sottostante, Kubernetes garantisce che le applicazioni funzionino in modo affidabile ed efficiente, indipendentemente dal fatto che siano ospitate in loco o tramite fornitori di cloud pubblico.

Architettura e concetti fondamentali

Fondamentalmente, Kubernetes opera su un'architettura cluster, che consiste in un insieme di macchine di lavoro chiamate nodi. Questi nodi eseguono carichi di lavoro di containerizzazione, mentre un piano di controllo gestisce lo stato complessivo del cluster. L'unità più piccola implementabile in Kubernetes è un "Pod", che incapsula uno o più container che condividono risorse di archiviazione e di rete. Questa astrazione è fondamentale per le applicazioni di visione artificiale, in quanto consente agli sviluppatori di raggruppare le dipendenze, come specifiche CUDA per unità di elaborazione grafica (GPU), in un ambiente coerente. I principali servizi cloud come Amazon Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS) e Google Engine (GKE) forniscono versioni gestite di questa architettura, semplificando l'onere di manutenzione per i team di data science.

Perché Kubernetes è importante per l'IA

Il valore principale di Kubernetes nelle operazioni di machine learning (MLOps) risiede nella sua capacità di gestire carichi di lavoro dinamici. I modelli di intelligenza artificiale richiedono spesso un'enorme potenza di calcolo durante l'addestramento e una bassa latenza di inferenza durante l'implementazione.

  • Scalabilità: Kubernetes utilizza il ridimensionamento automatico per regolare automaticamente le risorse. Se si verifica un improvviso picco di traffico, l'Horizontal Pod Autoscaler può aumentare il numero di pod di inferenza per mantenere la scalabilità senza intervento manuale.
  • Ottimizzazione delle risorse: è fondamentale allocare in modo efficiente hardware costoso. Kubernetes consente GPU frazionata GPU e l'affinità dei nodi, garantendo che i modelli di deep learning consumino risorse solo quando i lavori attivi le richiedono.
  • Implementazione resiliente: garantire un'elevata disponibilità durante l' implementazione del modello è essenziale. Se un nodo si guasta, Kubernetes riavvia automaticamente i pod interessati su nodi integri, evitando tempi di inattività per i servizi API critici.

Applicazioni nel mondo reale

Kubernetes è la spina dorsale di molte implementazioni di IA su larga scala in vari settori:

  1. Gestione del traffico nelle smart city: un comune potrebbe implementare i modelli Ultralytics per analizzare i feed video provenienti da migliaia di incroci. Utilizzando Kubernetes, il sistema può aumentare dinamicamente le risorse durante le ore di punta per gestire il maggiore carico di rilevamento degli oggetti e ridurle durante la notte per risparmiare sui costi. Questo approccio è fondamentale per i moderni sistemi di gestione del traffico.
  2. Personalizzazione dell'e-commerce: i rivenditori online utilizzano complessi sistemi di raccomandazione basati su microservizi. Un servizio può gestire la generazione dei candidati, mentre un altro gestisce il riclassificamento. Kubernetes orchestra questi servizi distinti, consentendo ai team di aggiornare la rete neurale di classificazione in modo indipendente senza interrompere l'intera esperienza di acquisto, facilitando l'integrazione continua.

Differenze tra Kubernetes e Docker

Un punto di confusione comune è il rapporto tra Kubernetes e Docker. Non sono concorrenti, ma piuttosto tecnologie complementari . Docker è uno strumento per creare ed eseguire singoli container (impacchettando l'applicazione), mentre Kubernetes è uno strumento per la gestione di una flotta di tali container su più macchine. Si utilizza Docker per costruire i pesi del modello e il codice in un'immagine, quindi si utilizza Kubernetes per determinare dove, quando e quante copie di quell'immagine vengono eseguite in produzione.

Esempio: Script di inferenza per la containerizzazione

Per implementare un modello su Kubernetes, gli sviluppatori in genere iniziano con uno Python che funge da punto di ingresso per il container. Il codice seguente mostra una semplice attività di inferenza che utilizza il modello Ultralytics . Questo script verrebbe eseguito all'interno di un pod, elaborando le richieste in arrivo.

from ultralytics import YOLO

# Load the lightweight YOLO26 model
model = YOLO("yolo26n.pt")

# Perform inference on an image source
# In a K8s pod, this would likely process API payloads
results = model("https://ultralytics.com/images/bus.jpg")

# Output the detection count for logging
print(f"Detected {len(results[0].boxes)} objects in the frame.")

Strumenti ed Ecosistema

L'ecosistema Kubernetes include una vasta gamma di strumenti su misura per la scienza dei dati. Kubeflow è un popolare toolkit dedicato a rendere le implementazioni dei flussi di lavoro ML su Kubernetes semplici, portabili e scalabili. Per monitorare lo stato di salute dei cluster e le metriche delle applicazioni, gli ingegneri spesso si affidano a Prometheus. Per semplificare ulteriormente la complessità della formazione e dell'implementazione dei modelli in questi ambienti, la Ultralytics offre un'interfaccia unificata che automatizza la gestione dei set di dati e la formazione dei modelli, consentendo agli utenti di esportare modelli pronti per i cluster di cloud computing. Inoltre, i gestori di pacchetti come Helm aiutano a gestire applicazioni Kubernetes complesse attraverso grafici riutilizzabili.

Unitevi alla comunità di Ultralytics

Entra nel futuro dell'AI. Connettiti, collabora e cresci con innovatori globali

Iscriviti ora