Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Kubernetes

Scopri come Kubernetes semplifica i carichi di lavoro di IA/ML con l'implementazione scalabile dei modelli, l'addestramento distribuito e la gestione efficiente delle risorse.

Kubernetes, spesso abbreviato in K8s, è un sistema di orchestrazione di container open-source che automatizza la distribuzione, la scalabilità e la gestione di applicazioni containerizzate. distribuzione, la scalabilità e la gestione di applicazioni containerizzate. Originariamente progettato dagli ingegneri di Google e ora della Cloud Native Computing Foundation (CNCF), Kubernetes si è evoluto fino a diventare lo standard del settore è diventato lo standard del settore per la gestione di sistemi software distribuiti e resilienti. Nei campi in rapida evoluzione dell Intelligenza Artificiale (AI) e Machine Learning (ML), Kubernetes funge da livello di infrastruttura fondamentale dell'infrastruttura, consentendo ai team di ingegneri di gestire in modo efficiente l'intero ciclo di vita di modelli complessi, dallo sviluppo sperimentale alla produzione su larga scala. modelli complessi, dallo sviluppo sperimentale alla produzione su larga scala.

Concetti fondamentali e architettura

Nel suo nucleo, Kubernetes gestisce un cluster di macchine di calcolo, note come nodi, che eseguono carichi di lavoro containerizzati. Si basa Si basa fortemente sulla containerizzazione, unatecnologia che che impacchetta il codice insieme alle sue dipendenze, per garantire che le applicazioni vengano eseguite in modo coerente in ambienti diversi. ambienti diversi. Kubernetes introduce astrazioni come i "Pod", che sono le più piccole unità distribuibili, e "Deployments", che mantengono lo stato desiderato di un'applicazione. Disaccoppiando il software dall'hardware hardware sottostante, consente agli ingegneri di di computer vision di concentrarsi sulle prestazioni del modello prestazioni dei modelli piuttosto che sulla manutenzione dei server, utilizzando servizi gestiti come Amazon EKS o Google Kubernetes Engine (GKE).

Kubernetes nell'IA e nel Machine Learning

Per Per le Machine Learning Operations (MLOps), Kubernetes è indispensabile perché risolve la sfida critica della scalabilità. I moderni carichi di lavoro AI, in particolare quelli di apprendimento profondo, richiedono notevoli risorse computazionali. risorse computazionali. Kubernetes facilita formazione distribuita, programmando in modo intelligente intelligentemente la programmazione dei lavori di formazione su più nodi dotati di unità di elaborazione grafica (GPU). Durante la fase di distribuzione del modello, K8s assicura alta disponibilità per le API di inferenza, scalando automaticamente il numero di pod in esecuzione in base alle richieste di traffico in tempo reale. in tempo reale, ottimizzando sia le prestazioni che i costi.

Applicazioni nel mondo reale

  1. Monitoraggio del traffico urbano intelligente: L'amministrazione di una città distribuisce un Ultralytics YOLO11 per analizzare il flusso del traffico e detect congestioni in tempo reale. L'applicazione è containerizzata e orchestrata su un cluster Kubernetes. Utilizzando il Pod Autoscaler orizzontale, il sistema rileva i picchi di dati del flusso video durante le ore di punta e fornisce automaticamente pod di inferenza aggiuntivi. pod aggiuntivi. Questo assicura servizi di rilevamento degli oggetti ininterrotti servizi di rilevamento degli oggetti senza richiedere di provisioning manuale dei server.
  2. Ricerca visiva nell'e-commerce: Un rivenditore online implementa un sistema di raccomandazione che consente agli utenti di ricerca di prodotti tramite immagini. La pipeline è composta da microservizi distinti per la preelaborazione delle immagini, l'estrazione delle caratteristiche e la ricerca nei database vettoriali. estrazione delle caratteristiche e la ricerca nel database vettoriale. Kubernetes orchestra questi componenti, consentendo al team di feature engineering di di feature engineering di aggiornare il modello di modello di estrazione indipendentemente dall'indice di ricerca, garantendo agilità e stabilità del sistema nell'ambiente di produzione. produzione.

Distinguere le tecnologie correlate

È utile capire come Kubernetes si differenzia da altri strumenti di infrastruttura comuni:

  • Kubernetes vs. Docker: Docker è uno strumento utilizzato per creare ed eseguire singoli container, mentre Kubernetes è un orchestratore che gestisce i container su un parco macchine. su un parco macchine. In genere, gli sviluppatori utilizzano Docker per creare le immagini delle loro rete neurale e poi si affidano a Kubernetes per Kubernetes per eseguirle su scala.
  • Kubernetes vs. Serverless Computing Informatica serverless: Le piattaforme serverless, come AWS Lambda, eliminano tutta la gestione dell'infrastruttura. di gestione dell'infrastruttura, rendendole ideali per le funzioni guidate dagli eventi. Al contrario, Kubernetes fornisce un controllo granulare su rete, storage e allocazione delle risorse. rete, sullo storage e sull'allocazione delle risorse, spesso necessario per applicazioni statiche di lunga durata o per architetture complesse di model serving. complesse architetture di model serving.

Strumenti ed Ecosistema

L'ecosistema Kubernetes è vasto e comprende strumenti come Helm per la gestione dei pacchetti e Prometheus per il monitoraggio della salute dei cluster. Prometheus per il monitoraggio della salute dei cluster. Per i flussi di lavoro ML specializzati, piattaforme come Kubeflow funzionano sopra Kubernetes per ottimizzare le pipeline end-to-end. Guardando al futuro, l'imminente Ultralytics Platform è progettata per semplificare ulteriormente questi processi. semplificare ulteriormente questi processi, offrendo un ambiente completo per la gestione dei dati e l'addestramento dei modelli che astrae dalle complessità dell'infrastruttura sottostante. che astrae dalle complessità dell'infrastruttura sottostante.

Esempio: Script di inferenza per la containerizzazione

Per distribuire un modello su Kubernetes, è necessario uno script che esegua l'inferenza. Questo frammento Python dimostra il caricamento di un modello YOLO11 , che potrebbe poi essere inserito in un contenitore Docker e programmato da K8s.

from ultralytics import YOLO

# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")

# Run inference on an image source
# This script would typically run inside a Kubernetes Pod
results = model("https://ultralytics.com/images/bus.jpg")

# Print the detected class names
for result in results:
    for cls_id in result.boxes.cls:
        print(f"Detected: {result.names[int(cls_id)]}")

Unitevi alla comunità di Ultralytics

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

Iscriviti ora