La comprensione del linguaggio naturale viene applicata in un'ampia gamma di casi d'uso, da chatbot e assistenti virtuali, alla traduzione automatica e al riepilogo del testo. Per garantire che queste applicazioni vengano eseguite al livello di prestazioni previsto, è importante che i dati negli ambienti di formazione e produzione provengano dalla stessa distribuzione. Quando i dati utilizzati per l'inferenza (dati di produzione) differiscono dai dati utilizzati durante l'addestramento del modello, si verifica un fenomeno noto come deriva dei dati. Quando si verifica la deriva dei dati, il modello non è più rilevante per i dati in produzione e probabilmente ha prestazioni peggiori del previsto. È importante monitorare continuamente i dati di inferenza e confrontarli con i dati utilizzati durante l'allenamento.
Puoi usare Amazon Sage Maker per creare, addestrare e distribuire rapidamente modelli di machine learning (ML) su qualsiasi scala. Come misura proattiva contro il degrado del modello, puoi utilizzare Monitor modello Amazon SageMaker per monitorare continuamente la qualità dei tuoi modelli ML in tempo reale. Con Model Monitor, puoi anche configurare avvisi per notificare e attivare azioni se si osserva una deriva nelle prestazioni del modello. Il rilevamento tempestivo e proattivo di queste deviazioni consente di intraprendere azioni correttive, come la raccolta di nuovi dati di training sulla verità di base, la riqualificazione dei modelli e l'audit dei sistemi a monte, senza dover monitorare manualmente i modelli o creare strumenti aggiuntivi.
Model Monitor offre quattro diversi tipi di funzionalità di monitoraggio per rilevare e mitigare la deriva del modello in tempo reale:
- Qualità dei dati – Aiuta a rilevare il cambiamento negli schemi dei dati e nelle proprietà statistiche di variabili indipendenti e avvisa quando viene rilevata una deriva.
- Qualità del modello – Per monitorare le caratteristiche delle prestazioni del modello come l'accuratezza o la precisione in tempo reale, Model Monitor consente di acquisire le etichette di verità al suolo raccolte dalle applicazioni. Model Monitor unisce automaticamente le informazioni di base con i dati di previsione per calcolare le metriche delle prestazioni del modello.
- Bias di modello –Model Monitor è integrato con Amazon SageMaker Chiarire per migliorare la visibilità in potenziali pregiudizi. Sebbene i dati o il modello iniziali possano non essere distorti, i cambiamenti nel mondo possono causare lo sviluppo di bias nel tempo in un modello che è già stato addestrato.
- Spiegabilità del modello – Il rilevamento della deriva ti avvisa quando si verifica un cambiamento nell'importanza relativa delle attribuzioni delle funzionalità.
In questo post, discutiamo i tipi di deriva della qualità dei dati applicabili ai dati di testo. Presentiamo anche un approccio per rilevare la deriva dei dati nei dati di testo utilizzando Model Monitor.
Deriva dei dati nella PNL
La deriva dei dati può essere classificata in tre categorie a seconda che lo spostamento della distribuzione stia avvenendo sul lato dell'input o sul lato dell'output, o se la relazione tra l'input e l'output sia cambiata.
Spostamento covariato
In un spostamento covariato, la distribuzione degli input cambia nel tempo, ma la distribuzione condizionale P(y|x) non cambia. Questo tipo di deriva è chiamato spostamento covariato perché il problema sorge a causa di uno spostamento nella distribuzione delle covariate (caratteristiche). Ad esempio, in un modello di classificazione dello spam e-mail, la distribuzione dei dati di addestramento (corpora e-mail) può divergere dalla distribuzione dei dati durante il punteggio.
Spostamento etichetta
Mentre lo spostamento della covariata si concentra sui cambiamenti nella distribuzione delle caratteristiche, spostamento dell'etichetta si concentra sui cambiamenti nella distribuzione della variabile di classe. Questo tipo di spostamento è essenzialmente l'inverso dello spostamento covariato. Un modo intuitivo per pensarci potrebbe essere quello di considerare un set di dati sbilanciato. Se il rapporto tra spam e non spam delle e-mail nel nostro set di formazione è del 50%, ma in realtà il 10% delle nostre e-mail non è spam, la distribuzione dell'etichetta target è cambiata.
Cambio di concetto
Cambio di concetto è diverso dalla covariata e dallo spostamento dell'etichetta in quanto non è correlato alla distribuzione dei dati o alla distribuzione della classe, ma è invece correlato alla relazione tra le due variabili. Ad esempio, gli spammer e-mail utilizzano spesso una varietà di concetti per superare i modelli di filtro antispam e il concetto di e-mail utilizzato durante la formazione può cambiare con il passare del tempo.
Ora che comprendiamo i diversi tipi di deriva dei dati, vediamo come possiamo utilizzare Model Monitor per rilevare lo spostamento covariato nei dati di testo.
Panoramica della soluzione
A differenza dei dati tabulari, che sono strutturati e delimitati, i dati testuali sono complessi, ad alta dimensione e in forma libera. Per rilevare in modo efficiente la deriva nella PNL, lavoriamo con incorporamenti, che sono rappresentazioni a bassa dimensione del testo. È possibile ottenere incorporamenti utilizzando vari modelli di linguaggio come Word2Vec e modelli basati su trasformatori come BERTA. Questi modelli proiettano dati ad alta dimensione in spazi a bassa dimensione preservando le informazioni semantiche del testo. I risultati sono vettori densi e contestualmente significativi, che possono essere utilizzati per varie attività a valle, incluso il monitoraggio della deriva dei dati.
Nella nostra soluzione, utilizziamo gli incorporamenti per rilevare lo spostamento covariato delle frasi inglesi. Utilizziamo Model Monitor per facilitare il monitoraggio continuo di un classificatore di testo distribuito in un ambiente di produzione. Il nostro approccio si compone dei seguenti passaggi:
- Perfeziona un modello BERT usando SageMaker.
- Distribuisci un classificatore BERT ottimizzato come endpoint in tempo reale con acquisizione dati abilitato.
- Crea un set di dati di base che consiste in un campione delle frasi utilizzate per addestrare il classificatore BERT.
- Creare un lavoro di monitoraggio personalizzato di SageMaker per calcolare la somiglianza del coseno tra i dati acquisiti in produzione e il set di dati di base.
Il diagramma seguente illustra il flusso di lavoro della soluzione:
Perfeziona un modello BERT
In questo post, usiamo Corpus of Linguistic Acccepttability (CoLA), un set di dati di 10,657 frasi inglesi etichettate come grammaticali o non grammaticali dalla letteratura linguistica pubblicata. Usiamo la formazione SageMaker per mettere a punto un modello BERT utilizzando il set di dati CoLa definendo una classe di stima PyTorch. Per ulteriori informazioni su come utilizzare questo SDK con PyTorch, vedere Usa PyTorch con SageMaker Python SDK. chiamando il fit()
metodo dello stimatore avvia il lavoro di formazione:
Distribuire il modello
Dopo aver addestrato il nostro modello, lo ospitiamo su un endpoint SageMaker. Per fare in modo che l'endpoint carichi il modello e serva le previsioni, implementiamo alcuni metodi in train_deploy.py:
- modello_fn() – Carica il modello salvato e restituisce un oggetto modello che può essere utilizzato per la pubblicazione del modello. Il server del modello SageMaker PyTorch carica il nostro modello invocando
model_fn
. - input_fn () – Deserializza e prepara l'input di previsione. In questo esempio, il nostro corpo della richiesta viene prima serializzato su JSON e quindi inviato all'endpoint che serve il modello. Pertanto, in
input_fn()
, prima deserializziamo il corpo della richiesta in formato JSON e restituiamo l'input come atorch.tensor
, come richiesto per BERT. - predict_fn () – Esegue la previsione e restituisce il risultato.
Abilita l'acquisizione dei dati di Model Monitor
Abilitiamo Modello Monitorare l'acquisizione dei dati per registrare i dati di input nel Servizio di archiviazione semplice Amazon Bucket (Amazon S3) per fare riferimento in seguito:
Quindi creiamo un endpoint SageMaker in tempo reale con il modello creato nel passaggio precedente:
Inferenza
Eseguiamo la previsione utilizzando l'oggetto predittore che abbiamo creato nel passaggio precedente. Impostiamo il serializzatore e il deserializzatore JSON, che viene utilizzato dall'endpoint di inferenza:
L'endpoint in tempo reale è configurato per acquisire i dati dalla richiesta e la risposta e i dati vengono archiviati in Amazon S3. È possibile visualizzare i dati acquisiti nella pianificazione di monitoraggio precedente.
Crea una linea di base
Utilizziamo un modello BERT ottimizzato per estrarre le funzionalità di incorporamento delle frasi dai dati di addestramento. Usiamo questi vettori come input di funzionalità di alta qualità per confrontare la distanza del coseno perché BERT produce una rappresentazione dinamica delle parole con il contesto semantico. Completa i seguenti passaggi per ottenere l'incorporamento delle frasi:
- Usa un tokenizzatore BERT per ottenere gli ID token per ogni token (
input_id
) nella frase di input e nella maschera per indicare quali elementi nella sequenza di input sono token rispetto agli elementi di riempimento (attention_mask_id
). Usiamo il BERTtokenizer.encode_plus
funzione per ottenere questi valori per ogni frase di input:
input_ids
ed attention_mask_ids
vengono passati al modello e recuperano gli stati nascosti della rete. Il hidden_states
ha quattro dimensioni nel seguente ordine:
- Numero di livello (BERT ha 12 livelli)
- Numero di lotto (1 frase)
- Indici di token di parole
- Unità nascoste (768 funzioni)
- Usa gli ultimi due livelli nascosti per ottenere un singolo vettore (incorporamento di frasi) calcolando la media di tutti i token di input nella frase:
- Converti l'incorporamento della frase come array NumPy e archivialo in una posizione Amazon S3 come linea di base utilizzata da Model Monitor:
Script di valutazione
Model Monitor fornisce un contenitore predefinito con la capacità di analizzare i dati acquisiti dagli endpoint per set di dati tabulari. Se vuoi portare il tuo container, Model Monitor fornisce punti di estensione che puoi utilizzare. Quando crei un MonitoringSchedule
, Model Monitor alla fine avvia i lavori di elaborazione. Pertanto, il container deve essere a conoscenza del contratto di lavoro di elaborazione. È necessario creare uno script di valutazione compatibile con container input contrattuali ed uscite.
Model Monitor utilizza il codice di valutazione su tutti i campioni acquisiti durante il programma di monitoraggio. Per ogni punto dati di inferenza, calcoliamo l'incorporamento della frase utilizzando la stessa logica descritta in precedenza. La somiglianza del coseno viene utilizzata come metrica della distanza per misurare la somiglianza di un punto dati di inferenza e incorporamenti di frasi nella linea di base. Matematicamente, misura l'angolo del coseno tra due vettori di incorporamento di frasi. Un alto punteggio di somiglianza del coseno indica incorporamenti di frasi simili. Un punteggio di somiglianza del coseno più basso indica una deriva dei dati. Calcoliamo una media di tutti i punteggi di somiglianza del coseno e, se è inferiore alla soglia, viene catturata nel rapporto di violazione. In base al caso d'uso, puoi utilizzare altre metriche di distanza come manhattan
or euclidean
per misurare la somiglianza degli incorporamenti di frasi.
Il diagramma seguente mostra come utilizziamo il monitoraggio del modello SageMaker per stabilire la linea di base e rilevare la deriva dei dati utilizzando la somiglianza della distanza del coseno.
Di seguito il codice per il calcolo delle violazioni; lo script di valutazione completo è disponibile su GitHub:
Misura la deriva dei dati utilizzando Model Monitor
In questa sezione, ci concentreremo sulla misurazione della deriva dei dati utilizzando Model Monitor. I monitor pre-costruiti Model Monitor sono alimentati da Dequ, che è una libreria basata su Apache Spark per la definizione di unit test per i dati, che misurano la qualità dei dati in set di dati di grandi dimensioni. Non è necessaria la codifica per utilizzare queste funzionalità di monitoraggio predefinite. Hai anche la flessibilità di monitorare i modelli codificando per fornire analisi personalizzate. Puoi raccogliere e rivedere tutte le metriche emesse da Model Monitor in Amazon Sage Maker Studio, in modo da poter analizzare visivamente le prestazioni del modello senza scrivere codice aggiuntivo.
In alcuni scenari, ad esempio quando i dati non sono tabulari, il processo di elaborazione predefinito (con tecnologia Dequ) non è sufficiente perché supporta solo set di dati tabulari. I monitor predefiniti potrebbero non essere sufficienti per generare metriche sofisticate per rilevare le derive e potrebbe essere necessario portare le tue metriche. Nelle sezioni successive, descriviamo la configurazione per inserire le tue metriche creando un contenitore personalizzato.
Crea il contenitore Model Monitor personalizzato
Usiamo il copione di valutazione dalla sezione precedente per creare un contenitore Docker e inviarlo Registro dei contenitori Amazon Elastic (Amazon ECR):
Quando il container Docker del cliente si trova in Amazon ECR, possiamo pianificare un processo di monitoraggio del modello e generare un rapporto sulle violazioni, come dimostrato nelle sezioni successive.
Pianificare un lavoro di monitoraggio del modello
Per pianificare un lavoro di monitoraggio del modello, creiamo un'istanza di Model Monitor e in image_uri
, ci riferiamo al contenitore Docker che abbiamo creato nella sezione precedente:
Pianifichiamo il lavoro di monitoraggio utilizzando il create_monitoring_schedule
API. È possibile pianificare il lavoro di monitoraggio su base oraria o giornaliera. Configurare il lavoro utilizzando il destination
parametro, come mostrato nel codice seguente:
Per descrivere ed elencare la pianificazione del monitoraggio e le sue esecuzioni, è possibile utilizzare i seguenti comandi:
Rapporto di violazione della deriva dei dati
Al termine del processo di monitoraggio del modello, è possibile passare al percorso S3 di destinazione per accedere alle segnalazioni di violazione. Questo rapporto contiene tutti gli input il cui punteggio medio del coseno (avg_cosine_score
) è al di sotto della soglia configurata come variabile di ambiente THRESHOLD:0.5
nel Modello Monitor esempio. Questa è un'indicazione che i dati osservati durante l'inferenza stanno andando alla deriva oltre la linea di base stabilita.
Il codice seguente mostra la segnalazione di violazione generata:
Infine, sulla base di questa osservazione, puoi configurare il tuo modello per la riqualificazione. Puoi anche abilitare Servizio di notifica semplice Amazon (Amazon SNS) notifiche per inviare avvisi quando si verificano violazioni.
Conclusione
Model Monitor ti consente di mantenere l'alta qualità dei tuoi modelli in produzione. In questo post, abbiamo evidenziato le sfide con il monitoraggio della deriva dei dati su dati non strutturati come il testo e abbiamo fornito un approccio intuitivo per rilevare la deriva dei dati utilizzando uno script di monitoraggio personalizzato. Di seguito puoi trovare il codice associato al post Repository GitHub. Inoltre, puoi personalizzare la soluzione per utilizzare altre metriche di distanza come discrepanza media massima (MMD), una metrica di distanza non parametrica per calcolare la distribuzione marginale tra la distribuzione di origine e quella di destinazione nello spazio incorporato.
Informazioni sugli autori
Vikram Elango è un AI/ML Specialist Solutions Architect presso Amazon Web Services, con sede in Virginia, USA. Vikram aiuta i clienti del settore finanziario e assicurativo con la progettazione e la leadership di pensiero a creare e distribuire applicazioni di machine learning su larga scala. Attualmente è concentrato sull'elaborazione del linguaggio naturale, sull'IA responsabile, sull'ottimizzazione dell'inferenza e sul ridimensionamento del ML in tutta l'azienda. Nel tempo libero ama viaggiare, fare escursioni, cucinare e fare campeggio con la sua famiglia.
Raghu Ramesha è un ML Solutions Architect con il team di Amazon SageMaker Service. Si concentra sull'aiutare i clienti a migrare i carichi di lavoro di produzione ML a SageMaker su larga scala. È specializzato in domini di apprendimento automatico, intelligenza artificiale e visione artificiale e ha conseguito un master in informatica presso UT Dallas. Nel tempo libero ama viaggiare e la fotografia.
Tony Chen è un architetto di soluzioni di machine learning presso Amazon Web Services, che aiuta i clienti a progettare funzionalità di machine learning scalabili e solide nel cloud. In qualità di ex data scientist e ingegnere dei dati, sfrutta la sua esperienza per aiutare ad affrontare alcuni dei problemi più difficili che le organizzazioni devono affrontare con l'operazionalizzazione dell'apprendimento automatico.
- '
- "
- 100
- 11
- 7
- Chi siamo
- accesso
- Il mio account
- operanti in
- azioni
- aggiuntivo
- AI
- Tutti
- già
- Sebbene il
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- .
- Apache
- Apache Spark
- applicabile
- applicazioni
- disponibile
- media
- AWS
- Linea di base
- stile di vita
- costruire
- Costruzione
- campeggio
- casi
- Causare
- sfide
- il cambiamento
- chatbots
- classificazione
- Cloud
- codice
- codifica
- Raccolta
- complesso
- Calcolare
- Informatica
- Visione computerizzata
- Contenitore
- contiene
- continuo
- contratto
- cucina
- Creazione
- Clienti
- Dallas
- dati
- qualità dei dati
- scienziato di dati
- Design
- rivelazione
- sviluppare
- diverso
- discutere
- distanza
- docker
- Contenitore Docker
- non
- domini
- guida
- durante
- dinamico
- Presto
- incontrare
- endpoint
- ingegnere
- Inglese
- Impresa
- Ambiente
- sviluppate
- esempio
- esperienza
- Faccia
- famiglia
- caratteristica
- Caratteristiche
- finanziario
- Nome
- Flessibilità
- Focus
- concentrato
- modulo
- Avanti
- Gratis
- function
- generare
- GitHub
- avendo
- Aiuto
- aiuta
- Alta
- Evidenziato
- escursionismo
- Casa
- Come
- Tutorial
- HTTPS
- Immagine
- realizzare
- importante
- Compreso
- industria
- informazioni
- assicurazione
- settore assicurativo
- IT
- Lavoro
- Offerte di lavoro
- per il tuo brand
- Lingua
- grandi
- con i più recenti
- lancia
- Leadership
- apprendimento
- Livello
- leveraggi
- Biblioteca
- linguistica
- Lista
- letteratura
- caricare
- località
- machine learning
- traduzione automatica
- mask
- misurare
- Metrica
- ML
- modello
- modelli
- monitoraggio
- Scopri di più
- Linguaggio naturale
- Elaborazione del linguaggio naturale
- Rete
- nlp
- notifica
- Offerte
- minimo
- organizzazioni
- Altro
- performance
- fotografia
- Precisione
- predizione
- Previsioni
- presenti
- Problema
- Produzione
- progetto
- fornire
- fornisce
- Python
- pytorch
- qualità
- gamma
- tempo reale
- Realtà
- record
- rapporto
- Report
- risposta
- Risultati
- riqualificazione
- problemi
- invertire
- recensioni
- Correre
- running
- sagemaker
- Scala
- scala
- Scienze
- sdk
- Servizi
- servizio
- set
- spostamento
- simile
- Un'espansione
- So
- Soluzioni
- lo spazio
- spazi
- carne in scatola
- specializzata
- stati
- conservazione
- Tornare al suo account
- supporti
- SISTEMI DI TRATTAMENTO
- Target
- test
- Testing
- test
- il mondo
- pensiero
- leadership di pensiero
- tempo
- token
- Tokens
- top
- torcia
- traffico
- Training
- Traduzione
- USA
- Visualizza
- Virginia
- virtuale
- visibilità
- visione
- aspettare
- sito web
- servizi web
- wikipedia
- senza
- Lavora
- flusso di lavoro
- mondo
- scrittura