Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Model Serving

Scopri le nozioni essenziali del model serving: distribuisci modelli AI per previsioni in tempo reale, scalabilità e integrazione perfetta nelle applicazioni.

Il model serving è la fase critica del ciclo di vita dell'apprendimento automatico in cui un modello addestrato viene ospitato su un server o un dispositivo per gestire le richieste di inferenza in tempo reale. per gestire le richieste di inferenza in tempo reale. Una volta che un modello di apprendimento automatico (ML) è stato addestrato e convalidato, deve essere addestrato e convalidato, deve essere integrato in un ambiente di produzione per fornire valore. Il serving funge da ponte tra il file statico del modello e le applicazioni dell'utente finale, ascoltando i dati in entrata, come immagini o testo, tramite un'API e restituendo i dati in entrata. testo, tramite un'API, e restituisce le previsioni del modello. Questo processo permette ai sistemi software di sfruttare le capacità di modellazione predittiva in modo istantaneo e in scala.

Per un servizio efficace del modello è necessaria un'architettura software robusta in grado di caricare il modello in memoria, gestire le risorse hardware come le GPU e risorse hardware come le GPU e di elaborare le richieste in modo efficiente. Mentre semplici script possono eseguire l'inferenza, il servizio di livello produttivo spesso utilizza framework specializzati come NVIDIA Triton Inference Server o TorchServe. Questi strumenti sono ottimizzati per gestire un elevato throughput e una bassa latenza di inferenza. latenza di inferenza, assicurando che le applicazioni anche in presenza di carichi pesanti per l'utente.

Componenti fondamentali di un'architettura di serving

Una configurazione di servizio completa comprende diversi livelli distinti che lavorano all'unisono per fornire previsioni affidabili.

  • Motore di inferenza: il software principale responsabile dell'esecuzione delle operazioni matematiche del modello. I motori sono spesso ottimizzati per un hardware specifico, come ad esempio TensorRT per le GPU NVIDIA o OpenVINO per le CPU Intel , per massimizzare le prestazioni.
  • Interfaccia API: Le applicazioni comunicano con il modello servito attraverso protocolli definiti. Le API REST sono comuni per l'integrazione web a causa della loro semplicità, mentre gRPC è preferito per i microservizi interni che richiedono alte prestazioni e bassa latenza. latenza.
  • Registro dei modelli: Un archivio centralizzato per la gestione delle diverse versioni dei modelli addestrati. Questo Questo garantisce che il sistema di servizio possa facilmente tornare a una versione precedente se un nuovo modello introduce problemi imprevisti.
  • Containerizzazione: Strumenti come Docker impacchettano il modello insieme alle sue dipendenze in contenitori isolati. Questo garantisce la coerenza in ambienti diversi, dal laptop di uno sviluppatore a un cluster Kubernetes nel cloud. cluster Kubernetes nel cloud.
  • Bilanciatore di carico: In scenari ad alto traffico, un distribuisce le richieste di inferenza in arrivo su più modelli per evitare che un singolo server diventi un collo di bottiglia, garantendo la scalabilità. scalabilità.

Attuazione pratica

Per utilizzare un modello in modo efficace, è spesso utile esportarlo in un formato standardizzato, come ad esempio ONNXche promuove l'interoperabilità l'interoperabilità tra diversi framework di addestramento e motori di servizio. L'esempio seguente mostra come caricare un YOLO11 e di eseguire l'inferenza, simulando la logica che che esisterebbe all'interno di un endpoint di servizio.

from ultralytics import YOLO

# Load the YOLO11 model (this would happen once when the server starts)
model = YOLO("yolo11n.pt")

# Simulate an incoming request with an image source
image_source = "https://ultralytics.com/images/bus.jpg"

# Run inference to generate predictions
results = model.predict(source=image_source)

# Process and return the results (e.g., bounding boxes)
for box in results[0].boxes:
    print(f"Class: {box.cls}, Confidence: {box.conf}")

Applicazioni nel mondo reale

Il model serving alimenta le funzionalità di AI onnipresenti in diversi settori, consentendo di prendere decisioni immediate basate sui dati. dati.

  • Smart Retail: I rivenditori utilizzano AI nel retail per automatizzare i processi di cassa. Le telecamere, servite da modelli di rilevamento degli oggetti identificano i prodotti su un nastro trasportatore in tempo reale, calcolando il costo totale senza la scansione dei codici a barre.
  • Garanzia di qualità: In ambito industriale, IA nei sistemi di produzione utilizzano modelli per ispezionare le linee di assemblaggio. Le immagini ad alta risoluzione dei componenti vengono inviate a un server edge locale, dove il modello rileva difetti come graffi o disallineamenti, attivando avvisi immediati per rimuovere gli elementi difettosi. modello rileva difetti come graffi o disallineamenti, attivando avvisi immediati per rimuovere gli elementi difettosi.
  • Rilevamento delle frodi finanziarie: Le banche utilizzano modelli di rilevamento delle anomalie serviti tramite API sicure per analizzare i dati delle transazioni nel momento in cui si verificano. Se una transazione corrisponde a uno schema di attività fraudolenta, il sistema può bloccare istantaneamente la transazione per evitare perdite finanziarie.

Servizio del modello vs. distribuzione del modello

Sebbene siano spesso usati in modo intercambiabile, è necessario distinguere tra il servizio di modelli e la distribuzione di modelli. distribuzione dei modelli. La distribuzione si riferisce al processo più ampio di processo di rilascio di un modello in un ambiente di produzione, che comprende fasi come il test, il confezionamento e l'impostazione dell'infrastruttura. l'infrastruttura. Il model serving è l'aspetto specifico di runtime della distribuzione: l'atto di eseguire effettivamente il modello e di gestire le richieste. e gestire le richieste.

Un servizio efficace richiede anche un continuo monitoraggio del modello per detect deriva dei dati, in cui la distribuzione dei dati in arrivo diverge dai dati di addestramento, potenzialmente degradare l'accuratezza. Le moderne piattaforme, come l'imminente Ultralytics Platform, mirano a unificare queste fasi, offrendo transizioni senza soluzione di continuità transizioni dalla formazione al servizio e al monitoraggio.

Scegliere la giusta strategia

La scelta della strategia di servizio dipende in larga misura dal caso d'uso. Il servizio online fornisce risposte immediate risposte immediate per le applicazioni rivolte all'utente, ma richiede una bassa latenza. Al contrario, il servizio batch elabora grandi volumi di dati offline, che è adatto per attività come la generazione di report notturni in cui il feedback immediato non è critico. non è fondamentale. Per le applicazioni distribuite su hardware remoto, come droni o telefoni cellulari, Edge AI sposta il processo di servizio direttamente sul dispositivo, eliminando la dipendenza dalla connettività cloud e riducendo i costi della larghezza di banda.

L'utilizzo di strumenti come Prometheus per la raccolta delle metriche e di Grafana per la visualizzazione aiuta i team di ingegneri a track lo stato di salute della loro infrastruttura di servizio. infrastruttura, assicurando che i modelli continuino a fornire affidabili di computer vision anche dopo il lancio iniziale.

Unitevi alla comunità di Ultralytics

Entra nel futuro dell'AI. Connettiti, collabora e cresci con innovatori globali

Iscriviti ora