Semplifica i flussi di lavoro AI/ML con Docker! Scopri come distribuire modelli, garantire la riproducibilità ed effettuare lo scaling in modo efficiente tra diversi ambienti.
Docker è una piattaforma open-source che automatizza il deployment, la scalabilità e la gestione delle applicazioni attraverso la containerizzazione. Nel campo in rapida evoluzione dell'intelligenza intelligenza artificiale (AI), Docker risolve un problema critico noto come "funziona sulla mia macchina". Impacchettando un modello di Machine Learning (ML) insieme al codice, al runtime, agli strumenti di sistema e alle librerie. codice, il runtime, gli strumenti di sistema e le librerie in un'unità standardizzata chiamata contenitore, Docker garantisce che il software verrà eseguito nello stesso modo, indipendentemente dall'ambiente di elaborazione. Questa coerenza è fondamentale per le moderne MLOps moderne, in quanto facilita transizioni fluide dallo sviluppo locale all'infrastruttura all'infrastruttura di cloud computing o ai dispositivi edge.
La comprensione di Docker richiede la familiarità con tre componenti fondamentali che ne definiscono il flusso di lavoro.
Docker è indispensabile per la distribuzione di robuste soluzioni di soluzioni di computer vision (CV) robuste.
L'esecuzione dell'inferenza all'interno di un contenitore Docker aiuta a garantire che l'ambiente rimanga pulito e che le dipendenze non si scontrino con altri pacchetti a livello di sistema. non si scontrino con altri pacchetti a livello di sistema. Di seguito è riportato un semplice script Python che di solito viene eseguito all'interno di un contenitore Docker per eseguire operazioni di segmentazione o rilevamento di immagini. di rilevamento.
from ultralytics import YOLO
# Load the YOLO11 model (downloads automatically if not present)
model = YOLO("yolo11n.pt")
# Perform object detection on an online image source
results = model("https://ultralytics.com/images/bus.jpg")
# Print the number of objects detected to verify inference
print(f"Detected {len(results[0].boxes)} objects in the image.")
Entrambe le tecnologie, pur isolando le applicazioni, funzionano in modo diverso.
Docker e Kubernetes sono strumenti distinti ma complementari. strumenti. Docker viene utilizzato per creare ed eseguire singoli container. Tuttavia, quando si gestiscono centinaia di container in un cluster di server per il servizio di modelli, è necessario uno strumento di strumento di orchestrazione. Kubernetes coordina la pianificazione e l'esecuzione dei container Docker, assicurando un'elevata disponibilità e scalabilità per un servizio di livello enterprise. disponibilità e scalabilità per gli agenti di agenti di intelligenza artificiale di livello aziendale. Per saperne di più su questa sinergia, consultare la documentazione di documentazione di Kubernetes.
I futuri sviluppi dell'ecosistema Ultralytics , come l'imminente Ultralytics Platform, sfrutteranno questi principi di containerizzazione per semplificare i flussi di lavoro di approvvigionamento, formazione e distribuzione dei dati. principi di containerizzazione per semplificare l'approvvigionamento dei dati, la formazione e i flussi di lavoro di distribuzione, astraendo ulteriormente le complessità della gestione dell'infrastruttura. complessità della gestione dell'infrastruttura.