Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Docker

Scopri come Docker consente l'implementazione riproducibile dell'IA. Impara a impacchettare i modelli Ultralytics in container per un ridimensionamento senza soluzione di continuità dal cloud ai dispositivi edge.

Docker è una piattaforma open source che consente agli sviluppatori di automatizzare l'implementazione, il ridimensionamento e la gestione delle applicazioni utilizzando la containerizzazione. Nel contesto dell'intelligenza artificiale e dell'apprendimento automatico, Docker funge da unità standardizzata di software che racchiude il codice e tutte le sue dipendenze, come librerie, strumenti di sistema e impostazioni, in modo che l'applicazione funzioni in modo rapido e affidabile da un ambiente informatico all'altro. Questo elimina il comune problema del "funziona sul mio computer", garantendo che una rete neurale addestrata sul laptop di un ricercatore si comporti esattamente allo stesso modo quando viene distribuita su un enorme server cloud o su un dispositivo edge.

Perché Docker è importante per l'intelligenza artificiale e l'apprendimento automatico

Lemoderne operazioni di machine learning (MLOps) si basano fortemente sulla riproducibilità e sulla portabilità. Un progetto di IA spesso coinvolge uno stack complesso di software, che include versioni specifiche di Python, CUDA per GPU e framework di deep learning come PyTorch o TensorFlow. Gestirli manualmente tra diversi team e infrastrutture è soggetto a errori.

Docker semplifica questo processo creando container leggeri e autonomi. A differenza delle macchine virtuali tradizionali (VM) che richiedono un sistema operativo completo per ogni istanza, i container condividono il kernel del sistema operativo della macchina host ma funzionano in spazi utente isolati . Questo li rende significativamente più efficienti in termini di risorse e più veloci da avviare, il che è fondamentale quando si scala l'infrastruttura di servizio del modello o si eseguono lavori di formazione distribuiti.

Applicazioni nel mondo reale

Docker è onnipresente nel ciclo di vita dell'IA, dalla sperimentazione iniziale alla distribuzione finale.

  1. Ambienti di formazione coerenti: un team di data science potrebbe utilizzare immagini Docker per condividere un ambiente di sviluppo unificato. Ad esempio, un ricercatore che lavora sul rilevamento di oggetti può estrarre un'immagine predefinita contenente tutti i driver e le librerie necessari. Ciò garantisce che, quando si addestra un modello YOLO26, i risultati siano riproducibili dai colleghi, indipendentemente dalle differenze hardware sottostanti.
  2. Implementazione dell'Edge AI: nella sorveglianza delle smart city, i modelli aggiornati devono essere inviati a migliaia di dispositivi edge, come telecamere del traffico o droni. I container Docker consentono agli ingegneri di impacchettare una nuova versione del modello e distribuirla over-the-air. Poiché il container include il runtime di inferenza, il processo di aggiornamento è trasparente e non interferisce con il sistema operativo principale del dispositivo.

Docker vs. Kubernetes vs. Macchine virtuali

Per comprendere il ruolo specifico di Docker è utile distinguerlo dalle tecnologie correlate:

  • Docker vs. Macchine virtuali (VM): le VM virtualizzano l'hardware, il che significa che ogni VM esegue un sistema operativo completo (come Windows o Linux) su un hypervisor. Ciò consuma una quantità significativa di memoria e CPU. Docker virtualizza il sistema operativo, rendendo i container molto più piccoli e veloci delle VM.
  • Docker vs. Kubernetes: si tratta di tecnologie complementari, non concorrenti. Docker è lo strumento utilizzato per creare ed eseguire singoli container. Kubernetes è una piattaforma di orchestrazione dei container che gestisce cluster di container Docker, occupandosi di attività quali il ridimensionamento automatico, il bilanciamento del carico e l'auto-riparazione in ambienti di cloud computing su larga scala .

Esempio: Esecuzione dell'inferenza in un contenitore

L'esempio seguente mostra come potrebbe apparire uno Python all'interno di un container Docker progettato per la visione artificiale . Questo script utilizza il ultralytics pacchetto per caricare un modello ed eseguire l'inferenza. L'ambiente container garantisce che le dipendenze corrette (come opencv-python e torch) sono già presenti.

from ultralytics import YOLO

# Load the YOLO26 model (weights are typically included in the Docker image)
model = YOLO("yolo26n.pt")

# Perform inference on an image source
# In a containerized microservice, this might process incoming API requests
results = model.predict("https://ultralytics.com/images/bus.jpg")

# Log the detection results
print(f"Detected {len(results[0].boxes)} objects in the image.")

Integrare Docker nel tuo flusso di lavoro

Per iniziare con la containerizzazione, gli sviluppatori in genere definiscono un Dockerfile, che è un documento di testo contenente tutti i comandi per assemblare un'immagine. Una volta create, queste immagini possono essere memorizzate in registri come Docker Hub o il Catalogo NVIDIA, che offre container GPU.

Per chi desidera semplificare il processo di formazione e implementazione senza gestire manualmente i file Dockerfile, Ultralytics offre strumenti integrati in grado di gestire la complessità degli ambienti cloud. Ciò consente agli utenti di concentrarsi sul miglioramento della precisione dei modelli piuttosto che sulla configurazione dell'infrastruttura. Inoltre, è possibile consultare la nostra Guida rapida a Docker per imparare a eseguire immediatamente Ultralytics nei container.

Unitevi alla comunità di Ultralytics

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

Iscriviti ora