Model Serving
Scopri come il model serving colma il divario tra i modelli addestrati e la produzione. Esplora le strategie di deployment per Ultralytics YOLO26 sulla Ultralytics Platform.
Il serving dei modelli è il processo di ospitare un modello di machine learning addestrato e rendere le sue funzionalità disponibili alle applicazioni software tramite un'interfaccia di rete. Funge da ponte tra un file di modello statico salvato su un disco e un sistema attivo che elabora dati del mondo reale. Una volta completata la fase di addestramento del machine learning (ML), il modello deve essere integrato in un ambiente di produzione in cui possa ricevere input, come immagini, testo o dati tabellari, e restituire previsioni. Questo risultato si ottiene in genere racchiudendo il modello in un'interfaccia di programmazione delle applicazioni (API), che gli consente di comunicare con server web, app mobili o dispositivi IoT.
Il ruolo del serving dei modelli nell'AI#
L'obiettivo principale del serving dei modelli è rendere operative in modo efficace le capacità di modellazione predittiva. Mentre l'addestramento si concentra sull'accuratezza e sulla minimizzazione della perdita, il serving si concentra su metriche delle prestazioni come la latenza (la velocità con cui viene restituita una previsione) e il throughput (il numero di richieste gestibili al secondo). Un'infrastruttura di serving solida garantisce che i sistemi di visione artificiale (CV) rimangano affidabili sotto carichi elevati. Spesso comprende tecnologie come la containerizzazione tramite strumenti come Docker, che impacchetta il modello con le sue dipendenze per garantire un comportamento coerente in diversi ambienti di calcolo.
Applicazioni nel mondo reale#
Il serving dei modelli alimenta funzionalità di AI onnipresenti in vari settori, consentendo di prendere decisioni immediate basate sui dati.
- Produzione intelligente: negli ambienti industriali, i sistemi di AI nella produzione utilizzano modelli sottoposti a serving per ispezionare le linee di assemblaggio. Immagini ad alta risoluzione dei componenti vengono inviate a un server locale, dove un modello YOLO26 rileva difetti come graffi o disallineamenti, attivando avvisi immediati per rimuovere gli articoli difettosi.
- Automazione della vendita al dettaglio: i rivenditori utilizzano l'AI nel commercio al dettaglio per migliorare l'esperienza dei clienti. Le telecamere gestite da modelli di rilevamento degli oggetti identificano i prodotti nell'area della cassa e calcolano automaticamente il costo totale, senza dover eseguire la scansione manuale dei codici a barre.
Implementazione pratica#
Per eseguire il serving di un modello in modo efficace, spesso è utile esportare i modelli in un formato standardizzato come ONNX, che favorisce l'interoperabilità tra diversi framework di addestramento e motori di serving. L'esempio seguente mostra come caricare un modello ed eseguire l'inferenza, simulando la logica che esisterebbe all'interno di un endpoint di serving usando Python.
from ultralytics import YOLO
# Load the YOLO26 model (this typically happens once when the server starts)
model = YOLO("yolo26n.pt")
# Simulate an incoming API request with an image source URL
image_source = "https://ultralytics.com/images/bus.jpg"
# Run inference to generate predictions for the user
results = model.predict(source=image_source)
# Process results (e.g., simulating a JSON response to a client)
print(f"Detected {len(results[0].boxes)} objects in the image.")Scelta della strategia giusta#
La scelta della strategia di serving dipende fortemente dal caso d'uso specifico. L'online serving fornisce risposte immediate tramite protocolli come REST o gRPC, una caratteristica essenziale per le applicazioni web rivolte agli utenti. Al contrario, il batch serving elabora grandi volumi di dati offline ed è adatto ad attività come la generazione di report notturni. Per le applicazioni che richiedono privacy o una bassa latenza senza dipendere da Internet, l'[Edge AI](https://ultralytics-translation-2.invalid trasferisce il processo di serving direttamente sul dispositivo, utilizzando formati ottimizzati come TensorRT per massimizzare le prestazioni su hardware con risorse limitate. Molte organizzazioni si affidano alla Ultralytics Platform per semplificare la distribuzione di questi modelli su diversi endpoint, tra cui API cloud e dispositivi edge.
Distinzione dai termini correlati#
Sebbene siano strettamente correlati, il "serving dei modelli" è distinto dal deployment dei modelli e dall'inferenza.
- Deployment dei modelli: si riferisce alla fase più ampia del ciclo di vita in cui un modello viene rilasciato in un ambiente di produzione. Il serving è il meccanismo o software specifico (come NVIDIA Triton Inference Server o TorchServe) utilizzato per eseguire il modello distribuito.
- Inferenza: è l'atto matematico di calcolare una previsione a partire da un input. Il serving dei modelli fornisce l'infrastruttura (rete, scalabilità e sicurezza) che consente all'inferenza di avvenire in modo affidabile per gli utenti finali.
- Microservizi: il serving è spesso progettato come un insieme di microservizi, in cui il modello viene eseguito come servizio indipendente che altre parti di un'applicazione possono interrogare, scambiando spesso dati in formati leggeri come JSON.









