Yolo Vision Shenzhen
Shenzhen
Iscriviti ora

Monitoraggio dei modelli di visione artificiale implementati sulla Ultralytics

Scopri come monitorare i modelli di visione artificiale in produzione con Ultralytics . Tieni traccia delle metriche, detect e migliora l'affidabilità.

Scala i tuoi progetti di visione artificiale con Ultralytics

Inizia

Testare modelli di visione artificiale che analizzano immagini e video non è sempre la stessa cosa che eseguirli in ambiente di produzione. Durante lo sviluppo, tali modelli o algoritmi vengono testati su set di dati puliti e ben preparati, in cui le condizioni sono controllate e prevedibili.

Una volta implementati, i sistemi assumono un carattere più dinamico. I modelli vengono esposti al traffico reale, dove i volumi delle richieste possono variare, i tempi di risposta possono cambiare e possono verificarsi occasionali malfunzionamenti. 

A questo punto, l'attenzione si concentra sulla capacità del sistema di funzionare in modo affidabile, con endpoint che rimangano disponibili, reattivi e stabili anche in condizioni mutevoli.

Ecco perché il monitoraggio è fondamentale. Offre una visione chiara del comportamento degli endpoint implementati in produzione attraverso metriche quali il volume delle richieste, la latenza, i tassi di errore e lo stato di salute generale del sistema.

Per semplificare il tutto, disporre degli strumenti giusti diventa importante tanto quanto il modello stesso. Recentemente, Ultralytics Ultralytics , il nostro nuovo ambiente end-to-end che riunisce l'intero flusso di lavoro della visione artificiale, dai dati e dall'addestramento fino alla distribuzione e al monitoraggio.

Fig. 1. Pannello di controllo dell'implementazione Ultralytics con funzionalità di monitoraggio (Fonte)

Grazie al monitoraggio integrato direttamente in questo flusso di lavoro, gli utenti possono track lo stato di salute track , analizzare il comportamento delle richieste e garantire l'affidabilità dei sistemi senza dover ricorrere a strumenti separati. In questo articolo vedremo come utilizzare Ultralytics per monitorare gli endpoint dei modelli distribuiti e garantire il corretto funzionamento dei sistemi di produzione. Cominciamo!

Una panoramica sul monitoraggio dei modelli di IA

Nel ciclo di vita di un modello di intelligenza artificiale, il monitoraggio consiste nell'osservare il comportamento dei sistemi implementati una volta che il modello è attivo e risponde alle richieste reali. Mentre l'addestramento e la validazione mostrano le prestazioni di un modello di apprendimento automatico (modello ML) su set di dati preparati, il monitoraggio si concentra sul funzionamento dell'endpoint implementato in un ambiente di produzione.

Una parte fondamentale del monitoraggio consiste nel tenere traccia delle metriche a livello di sistema che riflettono l'affidabilità e la reattività. Metriche quali la latenza e il tempo di attività aiutano a valutare l'efficacia con cui il sistema gestisce le richieste in entrata. La latenza misura il tempo necessario per elaborare una richiesta e restituire una risposta, mentre il tempo di attività evidenzia la costanza con cui l'endpoint rimane disponibile.

Un altro aspetto fondamentale è l'osservabilità, che offre una visione chiara di come vengono gestite le richieste. Ogni volta che un dato in ingresso, come un'immagine o un fotogramma video, viene inviato a un modello implementato, viene elaborato come una richiesta di inferenza. 

I log registrano queste richieste insieme a dettagli quali timestamp, tempi di risposta e codici di stato. Questi log facilitano il tracciamento delle richieste, la risoluzione dei problemi e l'analisi degli errori quando si verificano. Sono particolarmente utili per individuare modelli ricorrenti quali errori ripetuti, risposte lente o comportamenti imprevisti del sistema.

Grazie alla combinazione di metriche e registri, il monitoraggio aiuta gli utenti a comprendere come funzionano i loro sistemi in produzione e a reagire prontamente ai problemi non appena si presentano.

Un confronto tra gli indicatori di prestazione dei modelli e quelli del sistema

Prima di addentrarci nel monitoraggio della produzione, vediamo qual è la differenza tra le metriche relative alle prestazioni dei modelli e quelle relative al sistema.

In genere, il monitoraggio dei modelli è associato a metriche di valutazione, note anche come metriche dei modelli, quali accuratezza, precisione, richiamo e mAP precisione media). Queste metriche vengono utilizzate per descrivere il comportamento dei modelli e valutare la qualità delle loro previsioni, spesso in relazione ai dati di produzione o ai dati di input. Possono rivelarsi particolarmente utili per individuare casi limite o valori anomali nei nuovi dati.

Tuttavia, ciò è diverso dal monitoraggio di un sistema implementato in produzione. In questo contesto, il monitoraggio si concentra sul funzionamento del sistema piuttosto che sulla valutazione diretta delle previsioni del modello.

Anziché basarsi su metriche relative ai modelli, il monitoraggio dell'implementazione si avvale di segnali a livello di sistema quali il volume delle richieste, la latenza, i tassi di errore e il tempo di attività. Queste metriche consentono di comprendere in che modo gli endpoint gestiscono i dati in ingresso, con quale regolarità rispondono e come operano negli ambienti di produzione.

Il ruolo del monitoraggio dei modelli nei progetti di visione artificiale

Vediamo ora un esempio concreto che evidenzia la necessità di un sistema di monitoraggio nelle implementazioni di visione artificiale.

Si prenda in considerazione una soluzione di visione artificiale che utilizza la stima della postura — un’attività di visione artificiale impiegata per identificare e analizzare i movimenti del corpo umano — per monitorare il rispetto delle norme di sicurezza da parte degli operai edili. Durante la fase iniziale di implementazione del modello, un sistema di questo tipo potrebbe funzionare bene in condizioni controllate, con buona visibilità e in scenari standard.

Tuttavia, i cantieri reali presentano ulteriori complessità. Il volume delle richieste può variare nel corso della giornata, le condizioni di rete possono essere instabili e più telecamere o dispositivi possono inviare dati contemporaneamente. Questi fattori possono causare rallentamenti nelle risposte o occasionali malfunzionamenti se il sistema non viene monitorato adeguatamente.

Fig. 2. Utilizzo della stima della postura per monitorare i lavoratori in un cantiere edile (Fonte)

In un ambiente di produzione come questo, è fondamentale capire con quanta affidabilità funziona il sistema. Il monitoraggio consente di verificare se gli endpoint sono disponibili, con quale rapidità rispondono alle richieste in arrivo e con quanta costanza gestiscono il traffico nel tempo.

Ad esempio, un aumento della latenza può indicare un carico maggiore o limitazioni delle risorse, mentre un aumento dei tassi di errore può segnalare problemi nella gestione delle richieste o nella stabilità del sistema. I log forniscono ulteriori informazioni contestuali, mostrando come vengono elaborate le singole richieste e dove si verificano gli errori.

Monitorando questi segnali, gli appassionati di IA e i data scientist possono individuare tempestivamente i problemi, risolverli in modo più efficace e garantire che i loro sistemi continuino a funzionare in modo affidabile anche al mutare delle condizioni reali.

Utilizzo Ultralytics per monitorare i modelli di visione implementati

In molti flussi di lavoro di deep learning, il monitoraggio viene spesso gestito utilizzando strumenti distinti per la registrazione dei log, le metriche e lo stato di salute del sistema. Questa configurazione frammentata può rendere difficile avere una visione chiara del funzionamento degli endpoint distribuiti in produzione e complica la gestione delle distribuzioni.

Ultralytics semplifica questo processo integrando il monitoraggio direttamente in un ambiente unificato che copre l'intero flusso di lavoro della visione artificiale, dall'acquisizione e dall'annotazione dei dati fino all'addestramento, alla distribuzione e al monitoraggio.

Grazie a questa configurazione integrata, gli utenti possono track i propri endpoint distribuiti gestiscono il traffico reale senza dover configurare sistemi di registrazione esterni o dashboard aggiuntivi. Tutto è disponibile in un unico posto, rendendo più semplice osservare il comportamento del sistema e garantire distribuzioni affidabili nel tempo.

È possibile accedere alle funzionalità di monitoraggio direttamente dalla scheda "Deploy". Da un'unica dashboard, gli utenti possono track le metriche track , analizzare il comportamento a livello di richiesta e visualizzare le tendenze. Queste visualizzazioni integrate consentono di comprendere più facilmente le prestazioni delle soluzioni senza dover passare da uno strumento all'altro.

Integrando il monitoraggio, l'implementazione e la gestione dei modelli all'interno del flusso di lavoro complessivo, la piattaforma riduce la complessità. Ciò consente di concentrarsi in modo più fluido sulla gestione delle implementazioni, sull'ottimizzazione delle prestazioni del sistema e sul mantenimento dell'affidabilità.

Funzionalità di monitoraggio integrate nella Ultralytics

Nelle implementazioni reali, il monitoraggio richiede una chiara visibilità sul funzionamento dei sistemi man mano che le condizioni cambiano nel tempo. Non si limita al semplice monitoraggio di alcune metriche, ma comporta la comprensione del comportamento degli endpoint implementati nei diversi ambienti e la gestione efficace di più implementazioni.

Ispirandosi ai riscontri ricevuti dalla comunità specializzata nell'intelligenza artificiale applicata alla visione artificiale riguardo alle sfide più comuni in questo campo, la Ultralytics offre diverse funzionalità che rendono il monitoraggio più pratico e scalabile. 

Ecco una panoramica di alcune di queste caratteristiche principali:

  • Visibilità globale delle distribuzioni: la pagina "Distribuzione" include una mappa mondiale interattiva che mostra le regioni di distribuzione con indicatori visivi relativi agli endpoint attivi e in corso, consentendo agli utenti di monitorare la distribuzione geografica e l'attività a livello regionale.
  • Visualizzazioni flessibili della dashboard: la dashboard delle distribuzioni offre diverse modalità di visualizzazione, tra cui la visualizzazione a schede, la griglia compatta e la visualizzazione a tabella con colonne ordinabili quali nome, regione, stato e richieste, consentendo un monitoraggio strutturato e un confronto efficace.
  • Monitoraggio di più endpoint: la dashboard raggruppa i dati di monitoraggio di tutte le distribuzioni tramite schede di panoramica ed elenchi delle distribuzioni.
  • Politiche di conservazione dei dati: i dati di monitoraggio vengono conservati per un periodo definito, con le metriche disponibili per 30 giorni e i registri per 7 giorni, a supporto dell'analisi delle prestazioni recenti e dei flussi di lavoro di debug.
  • Supporto per il monitoraggio esterno: gli endpoint di distribuzione possono essere monitorati tramite strumenti esterni quali Datadog, New Relic e servizi di monitoraggio dell'uptime, oppure è possibile accedervi tramite endpoint API per effettuare monitoraggi personalizzati e controlli di integrità.

Di seguito esamineremo alcune di queste funzionalità in modo più approfondito e vedremo come possono essere utilizzate per monitorare gli endpoint distribuiti in produzione.

Come track gli indicatori track di prestazione utilizzando Ultralytics

Una volta implementato un modello, il monitoraggio inizia con il tracciamento delle metriche chiave del sistema. Mentre metriche quali l'accuratezza e il recall sono utili durante la fase di sviluppo, il monitoraggio in produzione si concentra su indicatori a livello di sistema, come i tempi di risposta e i tassi di errore, che forniscono informazioni misurabili sull'affidabilità con cui gli endpoint gestiscono il traffico reale.

Ultralytics mette a disposizione una dashboard centralizzata che offre una visione chiara dell'attività degli endpoint e del comportamento del sistema. In particolare, la dashboard "Deployment" include quattro metriche chiave che mostrano come vengono utilizzati gli endpoint e come rispondono alle richieste in arrivo.

Ecco un'analisi più approfondita di questi indicatori:

  • Richieste totali: il numero complessivo di richieste effettuate su tutti gli endpoint in un arco di 24 ore. Questo dato aiuta a identificare i modelli di utilizzo e la domanda complessiva.
  • Distribuzioni attive: il numero di endpoint attualmente in esecuzione e che gestiscono le richieste.
  • Latenza P95: il tempo di risposta entro il quale viene evaso il 95% delle richieste. Questo parametro offre una visione più realistica delle prestazioni, tenendo conto delle risposte più lente.
  • Tasso di errore: è la percentuale di richieste non andate a buon fine rispetto al numero totale di richieste. Questo indicatore aiuta a individuare i problemi e può essere utilizzato per detect .

In poche parole, questi indicatori offrono una visione chiara del funzionamento degli endpoint implementati in produzione. Analizzando i modelli di utilizzo, i team e i singoli utenti possono comprendere la distribuzione del traffico, individuare i periodi di picco di carico e garantire che i sistemi rimangano reattivi e affidabili anche con l'aumentare dell'utilizzo.

Comprendere il comportamento della distribuzione dei modelli attraverso i log

Mentre le metriche forniscono una panoramica generale delle prestazioni del sistema, i log offrono una visione più dettagliata di come gli endpoint distribuiti gestiscono le singole richieste. I log registrano ogni richiesta inviata a un endpoint insieme alla risposta corrispondente.

Sono utili per monitorare i problemi, analizzare gli errori e capire come vengono elaborate le richieste. All'interno della Ultralytics , è possibile selezionare qualsiasi distribuzione per visualizzarne i dettagli, compresi i log.

Fig. 3. Un esempio di registri all'interno Ultralytics (Fonte)

Una voce di log nella piattaforma viene visualizzata in un formato strutturato, rendendo più facile comprendere cosa è accaduto durante ogni richiesta. Ogni voce include un livello di gravità, che indica l'importanza dell'evento, insieme a un timestamp che ne indica il momento in cui si è verificato. 

Contiene inoltre un messaggio che descrive l'evento e dettagli relativi al protocollo HTTP, quali i codici di stato e la latenza. Queste informazioni consentono di tracciare le richieste, facilitare la risoluzione dei problemi e correggere gli errori in modo più efficace. Inoltre, i log sono raggruppati in base alla gravità, consentendo agli utenti di dare priorità alle distribuzioni che richiedono maggiore attenzione. 

Analisi dello stato di salute e dell'affidabilità degli endpoint sulla Ultralytics

Il monitoraggio comporta anche la comprensione dello stato di salute complessivo degli endpoint distribuiti, verificando in particolare se funzionano correttamente, rispondono tempestivamente e gestiscono le richieste in modo coerente e senza errori. La Ultralytics offre una visione chiara dello stato di salute di ogni distribuzione, rendendo semplice verificare che gli endpoint funzionino come previsto.

La piattaforma include indicatori visivi di stato per ogni distribuzione, visualizzati nelle singole schede di distribuzione. 

Ad esempio, un indicatore verde indica che l'endpoint è funzionante e risponde normalmente, mentre un indicatore rosso segnala la presenza di problemi o di un periodo di inattività. Un'icona che ruota indica che il sistema sta verificando attivamente lo stato della distribuzione.

Monitorando lo stato degli endpoint nel tempo, è possibile detect tempestivamente detect , mantenere prestazioni costanti e garantire un funzionamento stabile delle applicazioni in produzione.

Il legame tra i dati di monitoraggio e il miglioramento delle prestazioni

Il monitoraggio dei modelli non si limita alla semplice registrazione delle metriche. Crea infatti un ciclo di feedback che favorisce il miglioramento continuo nel tempo. Man mano che gli endpoint gestiscono il traffico reale, nelle metriche e nei log iniziano a emergere dei modelli che possono rivelare problemi quali un aumento della latenza, tassi di errore più elevati o un comportamento incostante del sistema.

Il monitoraggio evidenzia le aree che richiedono attenzione. Ad esempio, una latenza costantemente elevata può indicare la necessità di una migliore allocazione delle risorse o di un ridimensionamento, mentre un aumento del tasso di errore può segnalare problemi nella gestione delle richieste o nella stabilità del sistema.

Una volta individuati questi problemi, è possibile adottare misure volte a migliorare l'affidabilità. Ciò può comportare l'adeguamento dell'infrastruttura, il ridimensionamento delle risorse o la risoluzione di problemi relativi all'elaborazione delle richieste. Una volta apportate queste modifiche, è possibile continuare a monitorare i sistemi per verificare che le prestazioni siano effettivamente migliorate.

Collegando il monitoraggio al miglioramento continuo, gli utenti possono garantire il corretto funzionamento dei sistemi anche con l'aumentare dell'utilizzo e il mutare delle condizioni.

Analisi di un caso reale: il monitoraggio della movimentazione dei bagagli nel settore aeronautico

Per comprendere meglio l'impatto del monitoraggio in uno scenario reale, vediamo come si applica all'automazione delle operazioni di terra nel settore dell'aviazione.

Si prenda ad esempio un sistema di visione artificiale progettato per monitorare le operazioni di carico e scarico dei bagagli durante le operazioni a terra degli aeromobili. In questo contesto, è possibile utilizzare un modello di rilevamento degli oggetti come Ultralytics per detect bagagli detect cadono dai nastri trasportatori o dalle attrezzature di movimentazione. 

Durante la fase di test e le prime fasi di implementazione, il sistema in tempo reale potrebbe funzionare correttamente, identificando con precisione i bagagli e rispondendo rapidamente.

Costruiamo insieme il futuro dell'intelligenza artificiale!

Inizia il tuo viaggio con il futuro del machine learning