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

Serverless Computing

Il computing serverless esegue codice su richiesta, mentre il provider gestisce e dimensiona i server, fino a ridurli a zero, e fattura ogni richiesta. Include gli avvii a freddo e gli usi dell’IA.

Il serverless computing è un modello di esecuzione cloud in cui il provider esegue il codice solo quando un evento lo richiede, avvia e scala automaticamente i server sottostanti, li arresta fino a zero quando il traffico si interrompe e addebita le richieste e il tempo di esecuzione invece di macchine riservate. I server esistono comunque, ma gli sviluppatori non devono mai predisporli, applicare patch o dimensionarli. Il modello è diventato mainstream con AWS Lambda, annunciato nel novembre 2014, e oggi comprende piattaforme basate su funzioni come Lambda, Azure Functions e Cloud Run functions, oltre a container serverless come Google Cloud Run e Azure Container Apps. I ricercatori dell'UC Berkeley ne hanno descritto punti di forza e limiti nell'articolo del 2019 "Cloud Programming Simplified: A Berkeley View on Serverless Computing". Per il machine learning, il serverless è adatto alla distribuzione di modelli con traffico a picchi o imprevedibile, quando pagare un server GPU inattivo tra un picco e l'altro costerebbe più del lavoro stesso.

Come funziona l'esecuzione serverless#

Il codice viene impacchettato come funzione o immagine di container e associato a trigger: una richiesta HTTP, un file caricato nell'archiviazione di oggetti, un messaggio in una coda o una pianificazione. Quando arriva un evento e c'è un'istanza pronta disponibile, la piattaforma vi esegue immediatamente il gestore. Altrimenti esegue un avvio a freddo: crea una sandbox isolata, come una delle microVM Firecracker sviluppate da AWS per Lambda, carica il codice, avvia il runtime del linguaggio ed esegue il codice di inizializzazione al di fuori del gestore prima di elaborare l'evento. Le istanze sono senza stato e usa e getta, quindi tutto ciò che deve sopravvivere a una richiesta viene salvato in uno spazio di archiviazione esterno o in un database.

Avvii a freddo e modelli di machine learning#

Il machine learning rende costosi gli avvii a freddo, perché l'inizializzazione importa un framework come PyTorch e carica pesi del modello che possono raggiungere centinaia di megabyte. La pratica standard consiste nel caricare il modello una volta per istanza, al di fuori del gestore o al primo utilizzo, così ogni invocazione a caldo lo riutilizza. Questo gestore segue tale pratica con un classificatore ResNet-50 di torchvision:

import time

import torch
import torchvision

model = None  # module state survives between invocations while the instance stays warm


def handler(event, context):
    """Classify one image tensor, building the model only on a cold start."""
    global model
    cold_start = model is None
    if cold_start:
        model = torchvision.models.resnet50().eval()  # built once per instance
    with torch.inference_mode():
        logits = model(event["image"])
    return {"cold_start": cold_start, "class_id": int(logits.argmax())}


for _ in range(3):
    start = time.perf_counter()
    response = handler({"image": torch.rand(1, 3, 224, 224)}, context=None)
    print(response["cold_start"], f"{(time.perf_counter() - start) * 1000:.0f} ms")

Su una CPU Apple M5 Pro, la prima chiamata crea la rete e richiede circa 0,2 secondi, mentre le due chiamate a caldo che la riutilizzano impiegano circa 15 ms ciascuna. I team riducono ulteriormente l'avvio a freddo con immagini di container più piccole, modelli compatti o quantizzati e runtime più leggeri come ONNX Runtime, oppure lo eliminano mantenendo un numero minimo di istanze a caldo, come la concorrenza con provisioning di Lambda o le istanze minime di Cloud Run, che comportano nuovamente costi per il tempo di inattività.

Serverless per i carichi di lavoro IA#

L'architettura serverless è adatta alle pipeline di visione artificiale basate su eventi. Un caricamento nello spazio di archiviazione a oggetti può attivare una funzione che convalida e ridimensiona l'immagine durante la preelaborazione dei dati, prima che venga aggiunta a un dataset di addestramento. In un sistema di allarme di sicurezza, invece, un sensore di movimento può inviare un singolo fotogramma a una funzione di rilevamento degli oggetti, che invia un avviso solo se trova una persona. Per il resto, tutto dipende dai limiti della piattaforma: AWS Lambda consente a ogni invocazione di durare al massimo 15 minuti, con fino a 10.240 MB di memoria e senza GPU; è adatta all'inferenza su CPU con modelli compatti, ma non a lunghe esecuzioni di addestramento, tantomeno all'addestramento distribuito su molte GPU. Il serverless con GPU ha colmato questa lacuna: Cloud Run collega GPU NVIDIA L4 a container che possono comunque scalare a zero e piattaforme come Modal fatturano l'uso della GPU al secondo.

Ultralytics Platform offre lo stesso compromesso per le distribuzioni YOLO: un endpoint con dimensione predefinita di 1 vCPU e 2 GiB è gratuito e scala a zero quando è inattivo; l'avvio da inattività può richiedere fino a circa un minuto, mentre le dimensioni personalizzate mantengono un'istanza sempre attiva e ne addebitano il tempo di attività.

  • Infrastruttura come servizio: macchine virtuali che vengono eseguite e fatturate ininterrottamente, indipendentemente dal fatto che arrivino richieste, e il cui sistema operativo e ridimensionamento sono gestiti dal cliente. Di solito qui vengono eseguiti i lunghi processi di training.
  • Kubernetes: orchestra i container su cluster gestiti dal team. Knative aggiunge la scalabilità a zero in base alle richieste e KServe lo usa per distribuire i modelli.
  • Edge computing: esegue il codice sui dispositivi che producono i dati o nelle loro vicinanze. Il serverless lo esegue in una regione cloud, mentre alcune piattaforme edge combinano i due approcci eseguendo funzioni in molte piccole sedi vicine agli utenti.

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