Model Serving
Scopri come il model serving colma il divario tra modelli addestrati e produzione. Esplora le strategie di distribuzione per Ultralytics YOLO26 sulla piattaforma Ultralytics.
Il model serving è il processo di ospitare un modello di machine learning addestrato e rendere la sua funzionalità disponibile alle applicazioni software tramite un'interfaccia di rete. Funge da ponte tra un file di modello statico salvato su disco e un sistema live che elabora dati del mondo reale. Una volta che un modello ha completato la fase di addestramento di machine learning (ML), deve essere integrato in un ambiente di produzione dove può ricevere input, come immagini, testo o dati tabulari, e restituire previsioni. Questo viene solitamente ottenuto racchiudendo il modello in una Application Programming Interface (API), consentendogli di comunicare con server web, app mobili o dispositivi IoT.
Link to this sectionIl ruolo del Model Serving nell'IA#
L'obiettivo principale del model serving è rendere operative in modo efficace le capacità di predictive modeling. Mentre l'addestramento si concentra sull'accuratezza e sulla minimizzazione della perdita, il serving si concentra su metriche di prestazione come la latency (quanto velocemente viene restituita una previsione) e il throughput (quante richieste possono essere gestite al secondo). Un'infrastruttura di serving robusta assicura che i sistemi di computer vision (CV) rimangano affidabili sotto carichi elevati. Spesso coinvolge tecnologie come la containerization utilizzando strumenti come Docker, che impacchetta il modello con le sue dipendenze per garantire un comportamento coerente in diversi ambienti di calcolo.
Link to this sectionApplicazioni nel mondo reale#
Il model serving alimenta funzionalità di IA onnipresenti in vari settori, consentendo un processo decisionale immediato basato sui dati.
- Smart Manufacturing: In contesti industriali, i sistemi di AI in manufacturing utilizzano modelli serviti 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.
- Retail Automation: I rivenditori utilizzano AI in retail per migliorare le esperienze dei clienti. Le telecamere servite da modelli di object detection identificano i prodotti in una zona di checkout, calcolando il costo totale automaticamente senza la necessità di scansione manuale dei codici a barre.
Link to this sectionImplementazione pratica#
Per servire un modello in modo efficace, è spesso vantaggioso export models in un formato standardizzato come ONNX, che promuove l'interoperabilità tra diversi framework di addestramento e motori di serving. Il seguente esempio dimostra come caricare un modello ed eseguire l'inferenza, simulando la logica che esisterebbe all'interno di un endpoint di serving utilizzando 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.")Link to this sectionScegliere la 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, il che è essenziale per le applicazioni web rivolte agli utenti. Al contrario, il Batch Serving elabora grandi volumi di dati offline, adatto per attività come la generazione di report notturni. Per le applicazioni che richiedono privacy o bassa latenza senza dipendenza da internet, l'Edge AI sposta il processo di serving direttamente sul dispositivo, utilizzando formati ottimizzati come TensorRT per massimizzare le prestazioni su hardware limitato. Molte organizzazioni sfruttano la Ultralytics Platform per semplificare il deployment di questi modelli su vari endpoint, inclusi API cloud e dispositivi edge.
Link to this sectionDistinzione da termini correlati#
Sebbene strettamente correlati, il "Model Serving" è distinto dal Model Deployment e dall'Inference.
- Model Deployment: Si riferisce alla fase più ampia del ciclo di vita del rilascio di un modello in un ambiente di produzione. Il serving è il meccanismo specifico o il software (come NVIDIA Triton Inference Server o TorchServe) utilizzato per eseguire il modello distribuito.
- Inference: È l'atto matematico di calcolare una previsione da un input. Il model serving fornisce l'infrastruttura (networking, scalability e sicurezza) che consente all'inference di avvenire in modo affidabile per gli utenti finali.
- Microservices: Il serving è spesso architettato come un insieme di microservices, dove il modello viene eseguito come servizio indipendente che altre parti di un'applicazione possono interrogare, spesso scambiando dati in formati leggeri come JSON.






