Scalability
Scopri l’importanza della scalabilità nell’IA. Impara come Ultralytics YOLO26 e la Ultralytics Platform consentano un deployment efficiente e ad alte prestazioni dei modelli.
La scalabilità si riferisce alla capacità di un sistema, una rete o un processo di gestire una quantità di lavoro crescente aggiungendo risorse. Nel contesto dell'Intelligenza Artificiale (AI) e del Machine Learning (ML), la scalabilità descrive la capacità di un modello o di un'infrastruttura di mantenere i livelli di prestazioni all'aumentare della domanda. Questa domanda si manifesta generalmente in dataset più grandi durante l'addestramento, in un traffico utente maggiore durante l'inferenza o in una maggiore complessità delle attività computazionali. Un'architettura scalabile consente un'espansione fluida — dalla distribuzione di un modello di [computer vision](https://ultralytics-translation-2.invalid su un singolo dispositivo embedded fino alla gestione di milioni di richieste API tramite cluster cloud — garantendo che la latenza di inferenza rimanga bassa anche sotto carichi elevati.
L'importanza della scalabilità nell'AI#
Progettare pensando alla scalabilità è una componente fondamentale delle operazioni di Machine Learning (MLOps) di successo. Un modello che funziona perfettamente in un ambiente di ricerca controllato può fallire quando viene esposto ai flussi di dati ad alta velocità presenti in produzione. Gestire efficacemente i Big Data richiede sistemi in grado di scalare orizzontalmente (aggiungendo più macchine a un cluster) o verticalmente (aggiungendo maggiore potenza, come RAM o GPU, alle macchine esistenti).
I principali vantaggi dei sistemi di AI scalabili includono:
- Affidabilità: i sistemi scalabili garantiscono una disponibilità del servizio costante durante picchi di traffico imprevisti, prevenendo i crash nelle applicazioni critiche.
- Efficienza dei costi: lo scaling dinamico consente di ridurre le risorse durante i periodi di basso utilizzo, una funzionalità spesso gestita da piattaforme di cloud computing come AWS o Google Cloud.
- A prova di futuro: un'infrastruttura scalabile supporta algoritmi più recenti e complessi, come i vision transformer (ViT), senza richiedere una revisione completa dell'ecosistema hardware.
Strategie per ottenere la scalabilità#
La creazione di soluzioni di AI scalabili richiede l'ottimizzazione sia dell'architettura del modello sia dell'infrastruttura di distribuzione.
- Addestramento distribuito: quando i dataset di addestramento diventano troppo grandi per un singolo processore, l'addestramento distribuito suddivide il carico di lavoro tra più unità di elaborazione grafica (GPUs). Framework come PyTorch Distributed consentono agli sviluppatori di parallelizzare i calcoli, riducendo significativamente il tempo necessario per addestrare i foundation model. Strumenti come la Ultralytics Platform semplificano questo processo gestendo automaticamente le risorse di addestramento cloud.
- Architetture efficienti dei modelli: selezionare l'architettura di modello corretta è fondamentale per il throughput. L'ultima versione di Ultralytics YOLO26 è progettata per essere più piccola e veloce rispetto ai predecessori, risultando scalabile nativamente su hardware diversi, dai dispositivi di edge AI ai grandi parchi server.
- Containerizzazione e orchestrazione: il packaging delle applicazioni con Docker garantisce un'esecuzione coerente in ambienti diversi. Per gestire grandi cluster di container, Kubernetes automatizza la distribuzione, la scalabilità e la gestione delle applicazioni containerizzate.
- Ottimizzazione dei modelli: tecniche come la quantizzazione dei modelli e il pruning riducono l'occupazione di memoria e il costo computazionale di un modello. Strumenti come NVIDIA TensorRT possono accelerare ulteriormente la velocità di inferenza, consentendo un throughput maggiore sull'hardware esistente.
Esempio di codice: inferenza batch scalabile#
Un metodo efficace per migliorare la scalabilità durante l'inferenza consiste nell'elaborare gli input in batch anziché in sequenza. In questo modo si massimizza l'utilizzo della GPU e si aumenta il throughput complessivo.
from ultralytics import YOLO
# Load a scalable YOLO26 model (smaller 'n' version for speed)
model = YOLO("yolo26n.pt")
# Define a batch of images (URLs or local paths)
# Processing multiple images at once leverages parallel computation
batch_images = ["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"]
# Run inference on the batch
results = model(batch_images)
# Print the number of detections for the first image
print(f"Detected {len(results[0].boxes)} objects in the first image.")Applicazioni nel mondo reale#
La scalabilità consente alle tecnologie di AI di passare dalla ricerca teorica a strumenti industriali globali.
- Produzione intelligente: nel campo dell'AI nella produzione, i sistemi di ispezione automatizzata devono analizzare migliaia di componenti all'ora su linee di assemblaggio ad alta velocità. Un sistema scalabile di rilevamento degli oggetti garantisce che, all'aumentare della velocità di produzione, il processo di controllo qualità mantenga un'elevata accuratezza senza diventare un collo di bottiglia.
- Motori di raccomandazione per il retail: le principali piattaforme di e-commerce utilizzano sistemi di raccomandazione per fornire istantaneamente milioni di suggerimenti personalizzati sui prodotti. Un'infrastruttura scalabile consente a queste piattaforme di gestire eventi di grandi dimensioni come il Black Friday, durante i quali il traffico può aumentare di 100 volte, fornendo dinamicamente nodi server aggiuntivi tramite Microsoft Azure o provider analoghi.
Scalabilità e concetti correlati#
Sebbene venga spesso usata in modo intercambiabile con altri termini, la scalabilità è distinta dalle prestazioni e dall'efficienza.
- Scalabilità e prestazioni: le prestazioni si riferiscono in genere alla velocità o all'accuratezza di un sistema in un momento specifico (ad esempio, i fotogrammi al secondo). La scalabilità descrive la capacità del sistema di mantenere tali prestazioni all'aumentare del carico di lavoro.
- Scalabilità ed efficienza: l'efficienza misura le risorse utilizzate per completare un'attività specifica (ad esempio, il consumo energetico per inferenza). Un sistema può essere efficiente ma non scalabile (se non è in grado di gestire attività parallele), oppure scalabile ma inefficiente (se utilizza risorse eccessive per gestire la crescita).
- Scalabilità e flessibilità: la flessibilità consente a un sistema di gestire tipi diversi di attività, come YOLO11 che gestisce il rilevamento, la segmentazione e la stima della posa. La scalabilità si concentra specificamente sulla gestione di una quantità maggiore della stessa attività.









