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.
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.
Docker è onnipresente nel ciclo di vita dell'IA, dalla sperimentazione iniziale alla distribuzione finale.
Per comprendere il ruolo specifico di Docker è utile distinguerlo dalle tecnologie correlate:
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.")
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.