Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Scalability

La scalabilità è la capacità di un sistema di gestire più dati, utenti o capacità di calcolo aggiungendo risorse. Include scalabilità verticale e orizzontale, legge di Amdahl e IA multi-GPU.

La scalabilità è la capacità di un sistema di gestire una quantità di lavoro crescente, ad esempio più dati, utenti, richieste o un modello più grande, aggiungendo risorse e mantenendo prestazioni e costi per unità di lavoro accettabili. Un sistema scala bene quando raddoppiando l'hardware quasi raddoppia il lavoro che può svolgere; scala male quando le macchine aggiunte passano il tempo ad aspettarsi a vicenda. Nell'intelligenza artificiale, la scalabilità riguarda tre ambiti: pipeline di dati che devono acquisire big data e preelaborarli, lavori di addestramento distribuiti su molti acceleratori e servizi di inferenza che devono rispondere a più richieste senza aumentare la latenza di inferenza.

Scalabilità verticale e orizzontale#

La scalabilità verticale, o scalabilità verso l'alto, trasferisce un carico di lavoro su una macchina più potente: più core CPU, più RAM o una GPU con più memoria. Non richiede modifiche al codice, ma si ferma alla macchina più potente disponibile e lascia un singolo punto di guasto. La scalabilità orizzontale, o scalabilità verso l'esterno, aggiunge macchine e suddivide il lavoro tra esse; non ha un limite fisso, ma richiede che il software suddivida il lavoro, bilanci il carico e coordini i risultati. I servizi web e di inferenza scalano facilmente verso l'esterno quando sono senza stato: mantengono sessioni e dati in archivi condivisi, così qualsiasi replica può rispondere a qualsiasi richiesta; i database scalano verso l'esterno tramite lo sharding, distribuendo i dati per chiave tra le macchine.

Le piattaforme cloud automatizzano la scalabilità orizzontale. Su Kubernetes, l'Horizontal Pod Autoscaler calcola il numero di repliche moltiplicando quelle attuali per il rapporto tra la metrica osservata e il valore obiettivo, e arrotonda per eccesso: 4 repliche con un utilizzo medio della CPU del 90% a fronte di un obiettivo del 60% diventano 6. È questa automazione che il cloud computing definisce elasticità; il serverless computing la estende fino a zero repliche quando il traffico si interrompe.

Limiti della scalabilità#

Ogni lavoro parallelo contiene una parte non suddivisibile, come leggere il batch successivo, sincronizzare i risultati o scrivere un checkpoint. Nel 1967 Gene Amdahl dimostrò che questa frazione seriale limita l'accelerazione, indipendentemente dal numero di processori aggiunti: un risultato oggi noto come legge di Amdahl:

# Amdahl's law: speedup on n workers when a fraction p of the work runs in parallel
p = 0.95  # parallel fraction; the other 5% runs on one worker

for n in (1, 8, 64, 512):
    speedup = 1 / ((1 - p) + p / n)
    efficiency = speedup / n  # share of the added hardware doing useful work
    print(f"{n:>4} workers: {speedup:5.1f}x speedup, {efficiency:4.0%} efficiency")

print(f"Limit with unlimited workers: {1 / (1 - p):.0f}x")

Con il 95% del lavoro parallelizzabile, 8 worker offrono un'accelerazione di 5,9x con un'efficienza del 74%; 64 worker offrono 15,4x con un'efficienza del 24%; 512 worker offrono 19,3x con un'efficienza del 4%; nessun numero di worker può superare 20x. Nel 1988 John Gustafson osservò che gli utenti reali aumentano le dimensioni del problema insieme a quelle della macchina, facendo crescere la parte parallela e riducendo la quota seriale. Misurare l'accelerazione su un problema fisso si chiama strong scaling; aumentare le dimensioni del problema insieme all'hardware si chiama weak scaling ed è il regime in cui operano i grandi lavori di addestramento. La comunicazione impone un ulteriore limite: nell'addestramento parallelo sui dati ogni nuova GPU deve scambiare i gradienti con le altre a ogni passo, quindi spesso è la larghezza di banda della rete a determinare fin dove può scalare un lavoro.

Scalabilità dell'addestramento e dell'inferenza#

L'addestramento distribuito sceglie una strategia di parallelismo in base alla possibilità di eseguire il modello su un solo dispositivo. Nel parallelismo dei dati, ogni GPU contiene una copia completa del modello, elabora la propria porzione di ogni batch e calcola la media dei gradienti con le altre tramite un'operazione all-reduce, come avviene in DistributedDataParallel di PyTorch. I modelli troppo grandi per una singola GPU vengono suddivisi con il parallelismo dei dati completamente frammentato, il parallelismo dei tensori o il parallelismo a pipeline; l'accumulo dei gradienti permette di raggiungere dimensioni effettive elevate dei batch usando meno dispositivi.

Ultralytics YOLO usa il parallelismo dei dati per l'addestramento multi-GPU: passare device=[0, 1] avvia i processi worker DistributedDataParallel tramite torch.distributed.run e divide il batch equamente; di conseguenza, batch=64 su due GPU assegna 32 immagini a ogni GPU per passaggio.

L'inferenza scala in modo diverso, perché ogni richiesta è piccola e indipendente. Raggruppare le richieste in batch aumenta l'utilizzo della GPU e la capacità di elaborazione, con un lieve costo in termini di latenza; il batching continuo fa lo stesso per la generazione degli LLM token per token, mentre i sistemi di serving dei modelli aggiungono repliche dietro un bilanciatore del carico man mano che cresce il traffico. La quantizzazione dei modelli e il pruning riducono il costo di ogni replica, consentendo allo stesso hardware di servire più richieste; l'IA edge scala distribuendo l'inferenza su migliaia di dispositivi invece che in un unico data center.

  • Prestazioni: velocità o accuratezza di un sistema a un determinato carico, misurate tramite latenza, capacità di elaborazione o accuratezza. La scalabilità descrive quanto questi valori si mantengono al crescere del carico e delle risorse.
  • Elasticità: aggiungere e rimuovere risorse automaticamente quando la domanda cambia nel corso della giornata, di solito aggiungendo o rimuovendo repliche di un servizio scalato orizzontalmente.
  • Leggi di scaling: relazioni empiriche tra la loss di un modello, i suoi parametri, i dati di addestramento e la capacità di calcolo. Consentono di prevedere la qualità del modello; la scalabilità del sistema determina se è possibile usare in modo efficiente la capacità di calcolo richiesta.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning