Scopri come il model serving colma il divario tra i modelli addestrati e la produzione. Esplora le strategie di implementazione per Ultralytics sulla Ultralytics .
Il model serving è il processo di hosting di un modello di machine learning addestrato e di messa a disposizione delle sue funzionalità alle applicazioni software tramite un'interfaccia di rete. Funge da ponte tra un file di modello statico salvato su un disco e un sistema live che elabora dati reali. Una volta che un modello ha completato la fase di addestramento dell'apprendimento automatico (ML), deve essere integrato in un ambiente di produzione in cui può ricevere input, come immagini, testo o dati tabulari, e restituire previsioni. Questo risultato si ottiene in genere racchiudendo il modello in un' interfaccia di programmazione dell'applicazione (API), che gli consente di comunicare con server web, app mobili o dispositivi IoT.
L'obiettivo principale del model serving è quello di rendere operative le capacità di modellazione predittiva in modo efficace. Mentre l'addestramento si concentra sull'accuratezza e sulla minimizzazione delle perdite, il serving si concentra su metriche di prestazione come la latenza (la velocità con cui viene restituita una previsione ) e il throughput (il numero di richieste che possono essere gestite al secondo). Un'infrastruttura di serving robusta garantisce che i sistemi di visione artificiale (CV) rimangano affidabili anche sotto carichi pesanti. Spesso comporta tecnologie come la containerizzazione utilizzando strumenti come Docker, che impacchetta il modello con le sue dipendenze per garantire un comportamento coerente in diversi ambienti di calcolo.
Il model serving alimenta le funzionalità di AI onnipresenti in diversi settori, consentendo di prendere decisioni immediate basate sui dati. dati.
Per utilizzare efficacemente un modello, spesso è utile esportarlo in un formato standardizzato come ONNX, che favorisce l' interoperabilità tra diversi framework di formazione e motori di servizio. L'esempio seguente mostra come caricare un modello ed eseguire l'inferenza, simulando la logica che esisterebbe all'interno di un endpoint di servizio 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.")
La scelta della strategia di servizio dipende in larga misura dal caso d'uso specifico. Il servizio online fornisce risposte immediate tramite protocolli come REST o gRPC, essenziali per le applicazioni web rivolte agli utenti. Al contrario, il servizio batch 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 servizio direttamente sul dispositivo, utilizzando formati ottimizzati come TensorRT per massimizzare le prestazioni su hardware limitato. Molte organizzazioni sfruttano Ultralytics per semplificare l'implementazione di questi modelli su vari endpoint, tra cui API cloud e dispositivi edge.
Sebbene strettamente correlato, il "Model Serving" è distinto dal Model Deployment e dall' Inferenza.