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.
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.
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.
Kubernetes è la spina dorsale di molte implementazioni di IA su larga scala in vari settori:
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.
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.")
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.