Scalabilità
Explore how scalability empowers AI systems to handle growth. Learn to optimize MLOps with [Ultralytics YOLO26](https://docs.ultralytics.com/models/yolo26/) and the [Ultralytics Platform](https://platform.ultralytics.com) for high-performance, distributed training and seamless deployment.
Scalability refers to the capability of a system, network, or process to handle a growing amount of work by adding
resources. In the context of
Artificial Intelligence (AI) and
Machine Learning (ML), scalability describes a
model's or infrastructure's ability to maintain performance levels as demand increases. This demand typically
manifests as larger datasets during training, higher user traffic during inference, or increased complexity in
computational tasks. A scalable architecture allows for seamless expansion—whether deploying a
computer vision model to a single embedded
device or serving millions of API requests via cloud clusters—ensuring that
inference latency remains low even under heavy
load.
L'importanza della scalabilità nell'intelligenza artificiale
Designing for scalability is a critical component of successful
Machine Learning Operations (MLOps). A model that functions perfectly in a controlled research environment may fail when exposed to the high-velocity
data streams found in production. Effectively managing
Big Data requires systems that can scale horizontally
(adding more machines to a cluster) or vertically (adding more power, such as RAM or GPUs, to existing machines).
I principali vantaggi dei sistemi di IA scalabili includono:
-
Affidabilità: i sistemi scalabili garantiscono un tempo di attività del servizio costante durante picchi di traffico imprevisti,
prevenendo crash nelle applicazioni critiche.
-
Efficienza dei costi: il ridimensionamento 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 .
-
A prova di futuro: un'infrastruttura scalabile si adatta ad 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 intelligenza artificiale scalabili implica l'ottimizzazione dell'architettura del modello e dell'infrastruttura di distribuzione.
-
Distributed Training: When training datasets become too large for a single processor,
distributed training splits the workload
across multiple
Graphics Processing Units (GPUs).
Frameworks like PyTorch Distributed allow
developers to parallelize computations, significantly reducing the time required to train foundation models. Tools
like the Ultralytics Platform simplify this process by managing cloud
training resources automatically.
-
Architetture di modelli efficienti: la scelta dell'architettura di modello giusta è fondamentale per il throughput.
L'ultimo Ultralytics è stato progettato per essere più piccolo
e più veloce dei suoi predecessori, rendendolo nativamente scalabile su diversi hardware, dai
dispositivi AI edge alle grandi server farm.
-
Containerization and Orchestration: Packaging applications with
Docker ensures they run consistently across different
environments. For managing large clusters of containers, Kubernetes automates
the deployment, scaling, and management of containerized applications.
-
Ottimizzazione dei modelli: tecniche quali la
quantizzazione e il
pruning dei modelli riducono l'impronta di memoria e il costo computazionale
di un modello. Strumenti quali NVIDIA TensorRT possono accelerare ulteriormente
le velocità di inferenza, consentendo un throughput più elevato 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 modo sequenziale.
Ciò massimizza GPU e aumenta la produttività complessiva.
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 intelligenza artificiale di passare dalla ricerca teorica agli strumenti industriali globali.
-
Produzione intelligente: nel campo dell'
intelligenza artificiale nella produzione, i sistemi di ispezione automatizzati
devono analizzare migliaia di componenti all'ora su linee di assemblaggio ad alta velocità. Un sistema di rilevamento oggetti scalabile
garantisce che, con l'
aumentare della velocità di produzione, il processo di controllo qualità mantenga un'elevata
precisione senza diventare un collo di bottiglia.
-
Motori di raccomandazione per la vendita al dettaglio: le principali piattaforme di e-commerce utilizzano
sistemi di raccomandazione per fornire istantaneamente milioni di
suggerimenti personalizzati sui prodotti. L'infrastruttura scalabile consente a queste piattaforme di gestire eventi di grande portata
come il Black Friday, in cui il traffico può aumentare di 100 volte, fornendo dinamicamente nodi server aggiuntivi tramite
Microsoft o provider simili.
Scalabilità vs. Concetti correlati
Sebbene spesso utilizzati in modo intercambiabile, la scalabilità è distinta dalle prestazioni e dall'efficienza.
-
Scalabilità vs. Prestazioni:
Le prestazioni si riferiscono in genere alla velocità
o all'accuratezza di un sistema in un momento specifico (ad esempio, fotogrammi al secondo). La scalabilità descrive la capacità del sistema
di mantenere tali prestazioni all'aumentare del carico di lavoro.
-
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 paralleli
), 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
attività, come ad esempio YOLO11 gestione del rilevamento, della segmentazione e della
stima della posa. La scalabilità si concentra specificamente sulla gestione di più attività dello stesso tipo.