Scalability
Esplora l'importanza della scalabilità nell'AI. Scopri come Ultralytics YOLO26 e la Ultralytics Platform consentono una distribuzione efficiente e ad alte prestazioni dei modelli.
La scalabilità si riferisce alla capacità di un sistema, di una rete o di un processo di gestire una quantità crescente di lavoro aggiungendo risorse. Nel contesto dell'Intelligenza Artificiale (AI) e del Machine Learning (ML), la scalabilità descrive l'abilità di un modello o di un'infrastruttura di mantenere i livelli di prestazione all'aumentare della domanda. Questa domanda si manifesta tipicamente come set di dati più grandi durante l'addestramento, maggiore traffico utente durante l'inferenza o maggiore complessità nei compiti computazionali. Un'architettura scalabile consente un'espansione fluida, sia che si tratti di distribuire un modello di computer vision su un singolo dispositivo embedded, sia che si tratti di gestire milioni di richieste API tramite cluster cloud, assicurando che la latenza di inferenza rimanga bassa anche sotto carichi pesanti.
Link to this sectionL'importanza della scalabilità nell'AI#
Progettare per la scalabilità è una componente fondamentale del successo nelle Machine Learning Operations (MLOps). Un modello che funziona perfettamente in un ambiente di ricerca controllato potrebbe fallire quando esposto a flussi di dati ad alta velocità presenti nella produzione. Gestire efficacemente i Big Data richiede sistemi che possano scalare orizzontalmente (aggiungendo più macchine a un cluster) o verticalmente (aggiungendo più potenza, come RAM o GPU, alle macchine esistenti).
I principali vantaggi dei sistemi AI scalabili includono:
- Affidabilità: I sistemi scalabili garantiscono un uptime del servizio costante durante picchi di traffico imprevisti, prevenendo crash in applicazioni critiche.
- Efficienza dei costi: Lo scaling dinamico permette 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 accoglie algoritmi più nuovi e complessi, come i vision transformers (ViT), senza richiedere una revisione completa dell'ecosistema hardware.
Link to this sectionStrategie per raggiungere la scalabilità#
Creare soluzioni AI scalabili implica l'ottimizzazione sia dell'architettura del modello che dell'infrastruttura di distribuzione.
- Addestramento distribuito: Quando i dataset di addestramento diventano troppo grandi per un singolo processore, l'addestramento distribuito divide il carico di lavoro tra più Graphics Processing Units (GPUs). Framework come PyTorch Distributed consentono agli sviluppatori di parallelizzare i calcoli, riducendo significativamente il tempo richiesto per addestrare i foundation model. Strumenti come la Ultralytics Platform semplificano questo processo gestendo automaticamente le risorse di addestramento cloud.
- Architetture di modello efficienti: Selezionare l'architettura di modello giusta è cruciale per il throughput. L'ultimo Ultralytics YOLO26 è progettato per essere più piccolo e veloce dei suoi predecessori, rendendolo nativamente scalabile su diversi hardware, dai dispositivi di edge AI alle enormi server farm.
- Containerizzazione e orchestrazione: Impacchettare le applicazioni con Docker assicura che vengano eseguite in modo coerente in ambienti diversi. Per la gestione di grandi cluster di container, Kubernetes automatizza la distribuzione, lo scaling e la gestione di applicazioni containerizzate.
- Ottimizzazione del modello: Tecniche come la quantizzazione del modello e il pruning riducono l'impronta di memoria e il costo computazionale di un modello. Strumenti come NVIDIA TensorRT possono ulteriormente accelerare le velocità di inferenza, consentendo un throughput maggiore su hardware esistente.
Link to this sectionEsempio di codice: Inferenza in batch scalabile#
Un metodo efficace per migliorare la scalabilità durante l'inferenza è elaborare gli input in batch anziché sequenzialmente. Questo massimizza l'utilizzo della GPU e 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.")Link to this sectionApplicazioni nel mondo reale#
La scalabilità consente alle tecnologie AI di passare dalla ricerca teorica agli strumenti industriali globali.
- Manifattura intelligente: Nel campo dell'AI nella manifattura, i sistemi di ispezione automatizzata devono analizzare migliaia di componenti all'ora su linee di assemblaggio ad alta velocità. Un sistema di rilevamento oggetti scalabile assicura che, man mano che le velocità di produzione aumentano, il processo di controllo qualità mantenga un'elevata precisione senza diventare un collo di bottiglia.
- Motori di raccomandazione nel retail: Le principali piattaforme di e-commerce utilizzano sistemi di raccomandazione per fornire istantaneamente milioni di suggerimenti di prodotti personalizzati. Un'infrastruttura scalabile consente a queste piattaforme di gestire eventi massicci come il Black Friday, dove il traffico può aumentare di 100 volte, fornendo dinamicamente ulteriori nodi server tramite Microsoft Azure o provider simili.
Link to this sectionScalabilità vs. concetti correlati#
Sebbene vengano spesso usati in modo intercambiabile, la scalabilità si distingue dalle prestazioni e dall'efficienza.
- Scalabilità vs. Prestazioni: Le prestazioni si riferiscono tipicamente alla velocità o alla precisione di un sistema in un momento specifico (ad esempio, fotogrammi al secondo). La scalabilità descrive la capacità del sistema di mantenere tali prestazioni man mano che il carico di lavoro aumenta.
- Scalabilità vs. Efficienza: L'efficienza misura le risorse utilizzate per completare un compito specifico (ad esempio, il consumo energetico per inferenza). Un sistema può essere efficiente ma non scalabile (se non è in grado di gestire compiti in parallelo), oppure scalabile ma inefficiente (se utilizza risorse eccessive per gestire la crescita).
- Scalabilità vs. Flessibilità: La flessibilità consente a un sistema di gestire diversi tipi di compiti, come YOLO11 che gestisce rilevamento, segmentazione e stima della posa. La scalabilità si concentra specificamente sulla gestione di una quantità maggiore dello stesso compito.






