Crea una pipeline di classificazione con la classificazione personalizzata di Amazon Comprehend (Parte I)


"I dati rinchiusi in testo, audio, social media e altre fonti non strutturate possono rappresentare un vantaggio competitivo per le aziende che capiscono come utilizzarli"

Solo 18% di organizzazioni in a Sondaggio 2019 di Deloitte ha riferito di essere in grado di sfruttare i dati non strutturati. La maggior parte dei dati, tra 80% e 90%, sono dati non strutturati. Si tratta di una grande risorsa non sfruttata che ha il potenziale per dare alle aziende un vantaggio competitivo se riescono a scoprire come utilizzarla. Può essere difficile ricavare informazioni da questi dati, in particolare se sono necessari sforzi per classificarli, etichettarli o etichettarli. La classificazione personalizzata di Amazon Comprehend può essere utile in questa situazione. Amazon Comprehend è un servizio di elaborazione del linguaggio naturale (NLP) che utilizza l'apprendimento automatico per scoprire informazioni e connessioni preziose nel testo.

La categorizzazione o classificazione dei documenti presenta vantaggi significativi in tutti i domini aziendali:

  • Ricerca e recupero migliorati – Classificando i documenti in argomenti o categorie pertinenti, rende molto più semplice per gli utenti cercare e recuperare i documenti di cui hanno bisogno. Possono cercare all'interno di categorie specifiche per restringere i risultati.
  • Gestione della conoscenza – Categorizzare i documenti in modo sistematico aiuta a organizzare la base di conoscenza di un'organizzazione. Semplifica l'individuazione delle informazioni pertinenti e la visualizzazione delle connessioni tra i contenuti correlati.
  • Flussi di lavoro semplificati – L'ordinamento automatico dei documenti può aiutare a semplificare molti processi aziendali come l'elaborazione delle fatture, l'assistenza clienti o la conformità normativa. I documenti possono essere automaticamente indirizzati alle persone o ai flussi di lavoro giusti.
  • Risparmio di tempo e costi – La categorizzazione manuale dei documenti è noiosa, dispendiosa in termini di tempo e costosa. Le tecniche di intelligenza artificiale possono assumere questo compito banale e classificare migliaia di documenti in breve tempo a un costo molto inferiore.
  • Generazione di informazioni – L'analisi delle tendenze nelle categorie di documenti può fornire utili spunti aziendali. Ad esempio, un aumento dei reclami dei clienti in una categoria di prodotto potrebbe indicare alcuni problemi che devono essere affrontati.
  • Governance e applicazione delle politiche – L'impostazione delle regole di categorizzazione dei documenti aiuta a garantire che i documenti siano classificati correttamente in base alle politiche e agli standard di governance di un'organizzazione. Ciò consente un migliore monitoraggio e controllo.
  • Esperienze personalizzate – In contesti come il contenuto del sito web, la categorizzazione dei documenti consente di mostrare agli utenti contenuti personalizzati in base ai loro interessi e preferenze determinati dal loro comportamento di navigazione. Ciò può aumentare il coinvolgimento degli utenti.

La complessità dello sviluppo di un modello di machine learning di classificazione su misura varia in base a una varietà di aspetti quali qualità dei dati, algoritmo, scalabilità e conoscenza del dominio, per citarne alcuni. È essenziale iniziare con una definizione chiara del problema, dati puliti e pertinenti e procedere gradualmente attraverso le diverse fasi di sviluppo del modello. Tuttavia, le aziende possono creare i propri modelli esclusivi di machine learning utilizzando la classificazione personalizzata di Amazon Comprehend per classificare automaticamente i documenti di testo in categorie o tag, per soddisfare requisiti aziendali specifici e mapparli alla tecnologia aziendale e alle categorie di documenti. Poiché l'etichettatura o la categorizzazione umana non è più necessaria, ciò può far risparmiare alle aziende molto tempo, denaro e lavoro. Abbiamo semplificato questo processo automatizzando l'intera pipeline di formazione.

Nella prima parte di questo post di blog multiserie, imparerai come creare una pipeline di formazione scalabile e preparare i dati di formazione per i modelli di classificazione personalizzata Comprehend. Introdurremo una pipeline di formazione del classificatore personalizzata che può essere distribuita nel tuo account AWS con pochi clic. Stiamo utilizzando il set di dati delle notizie della BBC e addestreremo un classificatore per identificare la classe (ad esempio politica, sport) a cui appartiene un documento. La pipeline consentirà alla tua organizzazione di rispondere rapidamente ai cambiamenti e di addestrare nuovi modelli senza dover ricominciare da capo ogni volta. Puoi ampliare e addestrare facilmente più modelli in base alla tua richiesta.

Prerequisiti

  • Un account AWS attivo (fai clic qui per creare un nuovo account AWS)
  • Accesso ad Amazon Comprehend, Amazon S3, Amazon Lambda, Amazon Step Function, Amazon SNS e Amazon CloudFormation
  • Dati di allenamento (semistruttura o testo) preparati nella sezione successiva
  • Conoscenze di base su Python e Machine Learning in generale

Preparare i dati di allenamento

Questa soluzione può accettare input come entrambi formato testo (es. CSV) o formato semistrutturato (es. PDF).

L'immissione di testo

La classificazione personalizzata di Amazon Comprehend supporta due modalità: multiclasse e multietichetta.

Nella modalità multiclasse, a ciascun documento può essere assegnata una ed una sola classe. I dati di addestramento devono essere preparati come file CSV a due colonne con ciascuna riga del file contenente una singola classe e il testo di un documento che dimostra la classe.

CLASS, Testo del documento 1 CLASS, Testo del documento 2 ...

Esempio per Set di dati delle notizie della BBC:

Affari, l'Europa incolpa gli Stati Uniti per la debolezza del dollaro... Tecnologia, i taxi raccolgono montagne di cellulari... ...

Nella modalità multietichetta, a ciascun documento è assegnata almeno una classe, ma può averne di più. I dati di formazione devono essere sotto forma di file CSV a due colonne, in cui ciascuna riga del file contiene una o più classi e il testo del documento di formazione. È necessario indicare più di una classe utilizzando un delimitatore tra ciascuna classe.

CLASS, Testo del documento 1 CLASS|CLASS|CLASS, Testo del documento 2 ...

Nessuna intestazione deve essere inclusa nel file CSV per nessuna delle modalità di training.

Ingresso semistrutturato

A partire dal 2023, Amazon Comprehend ora supporta modelli di formazione utilizzando documenti semistrutturati. I dati di addestramento per l'input della semi-struttura sono costituiti da una serie di documenti etichettati, che possono essere documenti pre-identificati da un repository di documenti a cui hai già accesso. Di seguito è riportato un esempio di file di annotazioni con dati CSV richiesti per la formazione (Dati campione):

CLASSE, documento1.pdf, 1 CLASSE, documento1.pdf, 2 ...

Il file CSV delle annotazioni contiene tre colonne: la prima colonna contiene l'etichetta del documento, la seconda colonna è il nome del documento (ad esempio, il nome del file) e l'ultima colonna è il numero di pagina del documento che desideri includere nel file set di dati di addestramento. Nella maggior parte dei casi, se il file CSV delle annotazioni si trova nella stessa cartella di tutti gli altri documenti, è sufficiente specificare il nome del documento nella seconda colonna. Tuttavia, se il file CSV si trova in una posizione diversa, dovrai specificare il percorso della posizione nella seconda colonna, ad esempio percorso/al/prefisso/document1.pdf.

Per i dettagli su come preparare i dati di allenamento, fare riferimento qui.

Panoramica della soluzione

ML14789 1 immagine 1

  1. La pipeline di addestramento di Amazon Comprehend inizia quando i dati di addestramento (file .csv per l'input di testo e file .csv di annotazioni per l'input della semistruttura) vengono caricati in un bucket Amazon Simple Storage Service (Amazon S3) dedicato.
  2. Una funzione AWS Lambda viene richiamata dal trigger Amazon S3 in modo tale che ogni volta che un oggetto viene caricato nella posizione Amazon S3 specificata, la funzione AWS Lambda recupera il nome del bucket di origine e il nome della chiave dell'oggetto caricato e lo passa al flusso di lavoro della funzione della fase di training.
  3. Nella funzione della fase di training, dopo aver ricevuto il nome del bucket dei dati di training e il nome della chiave dell'oggetto come parametri di input, viene avviato un flusso di lavoro di training del modello personalizzato come una serie di funzioni lambda come descritto:
    1. IniziaComprendereTraining: questa funzione AWS Lambda definisce a ComprendereClassificatore oggetto in base al tipo di file di input (ad esempio, testo o semistrutturato) e quindi avvia un'attività di formazione sulla classificazione personalizzata di Amazon Comprehend chiamando crea_classificatore_documenti API (Application Programming Interfact), che restituisce un lavoro di formazione Amazon Resource Names (ARN) . Successivamente, questa funzione controlla lo stato del lavoro di formazione invocando descrivere_classificatore_documenti API. Infine, restituisce un ARN del lavoro di formazione e lo stato del lavoro, come output per la fase successiva del flusso di lavoro di formazione.
    2. OttieniTrainingJobStatus: questo AWS Lambda controlla lo stato del lavoro di formazione ogni 15 minuti, chiamando descrivere_classificatore_documenti API, fino a quando lo stato del lavoro di formazione non cambia in Completo o Non riuscito.
    3. GeneraMultiClass O GeneraMultiLabel: Se selezioni per il report sulle prestazioni all'avvio dello stack, uno di questi due AWS Lambda eseguirà l'analisi in base agli output del modello Amazon Comprehend, che genera un'analisi delle prestazioni per classe e la salva su Amazon S3.
    4. GeneraMultiClass: questo AWS Lambda verrà chiamato se il tuo input è MultiClasse e tu selezioni per il rapporto sulle prestazioni.
    5. GeneraMultiLabel: questo AWS Lambda verrà chiamato se il tuo input è Multietichetta e tu selezioni per il rapporto sulle prestazioni.
  4. Una volta completata con successo la formazione, la soluzione genera i seguenti output:
    1. Modello di classificazione personalizzato: un ARN modello addestrato sarà disponibile nel tuo account per il futuro lavoro di inferenza.
    2. Matrice di confusione [Opzionalel]: una matrice di confusione (matrice_confusione.json) sarà disponibile nel percorso Amazon S3 di output definito dall'utente, a seconda della selezione dell'utente.
    3. Notifica del servizio di notifica Amazon Simple [Opzionalel]: agli abbonati verrà inviata un'e-mail di notifica sullo stato del lavoro di formazione, a seconda della selezione iniziale dell'utente.

Procedura dettagliata

Lancio della soluzione

Per distribuire la pipeline, completa i seguenti passaggi:

  1. Scegliere Avvia Stack pulsante:

ML14789 1 immagine 3

  1. Scegli Avanti

ML14789 1 immagine 4

  1. Specifica i dettagli della pipeline con le opzioni adatte al tuo caso d'uso:

ML14789 1 immagine 5

Informazioni per ciascun dettaglio dello stack:

  • Nome dello stack (obbligatorio) – il nome specificato per questo stack AWS CloudFormation. Il nome deve essere univoco nella regione in cui lo stai creando.
  • Q01ClassifierInputBucketName (obbligatorio) – Il nome del bucket Amazon S3 per archiviare i dati di input. Dovrebbe essere un nome univoco a livello globale e lo stack AWS CloudFormation ti aiuta a creare il bucket durante il suo avvio.
  • Q02ClassifierOutputBucketName (obbligatorio) – Il nome del bucket Amazon S3 per archiviare gli output da Amazon Comprehend e dalla pipeline. Dovrebbe anche essere un nome univoco a livello globale.
  • Q03FormatoInput – Una selezione a discesa, puoi scegliere testo (se i dati di allenamento sono file CSV) o semistruttura (se i dati di addestramento sono semi-strutturali [ad esempio, file PDF]) in base al formato di input dei dati.
  • Q04Lingua – Una selezione a discesa, scegliendo la lingua dei documenti dall'elenco supportato. Tieni presente che attualmente è supportato solo l'inglese se il formato di input è semi-strutturato.
  • Q05MultiClasse – Una selezione a discesa, seleziona se l'input è la modalità MultiClass. Altrimenti seleziona NO.
  • Q06Delimitatore etichetta – Richiesto solo se la tua risposta Q05MultiClass è NO. Questo delimitatore viene utilizzato nei dati di addestramento per separare ciascuna classe.
  • Q07Set di dati di convalida – Una selezione a discesa in cui modificare la risposta se vuoi testare le prestazioni del classificatore addestrato con i tuoi dati di test.
  • Q08S3Percorso di convalida – Richiesto solo se la risposta Q07ValidationDataset è .
  • Q09Rapporto sulle prestazioni – Una selezione a discesa, seleziona se si desidera generare il rapporto sulle prestazioni a livello di classe dopo la formazione del modello. Il report verrà salvato nel bucket di output specificato in Q02ClassifierOutputBucketName.
  • Q10Notifica e-mail – Una selezione a discesa. Selezionare se desideri ricevere una notifica dopo che il modello è stato addestrato.
  • Q11ID e-mail – Inserisci un indirizzo email valido per ricevere la notifica del rapporto sulle prestazioni. Tieni presente che devi confermare l'iscrizione tramite e-mail dopo il lancio dello stack AWS CloudFormation, prima di poter ricevere una notifica al termine della formazione.
  1. Nella sezione Opzioni stack di Amazon Configure, aggiungi tag, autorizzazioni e altre impostazioni avanzate facoltative.

ML14789 1 immagine 6

  1. Scegliere Prossimo
  2. Esamina i dettagli dello stack e seleziona Riconosco che AWS CloudFormation potrebbe creare risorse AWS IAM.

ML14789 1 immagine 7

  1. Scegliere Invia. Ciò avvia la distribuzione della pipeline nel tuo account AWS.
  2. Dopo che lo stack è stato distribuito correttamente, puoi iniziare a utilizzare la pipeline. Creare un /dati-formazione cartella nella posizione Amazon S3 specificata per l'input. Nota: Amazon S3 applica automaticamente la crittografia lato server (SSE-S3) per ogni nuovo oggetto, a meno che non specifichi un'opzione di crittografia diversa. Consulta Protezione dei dati in Amazon S3 per ulteriori dettagli sulla protezione dei dati e sulla crittografia in Amazon S3.

ML14789 1 immagine 8 1

  1. Carica i dati di allenamento nella cartella. (Se i dati di addestramento sono semi-strutturati, caricare tutti i file PDF prima di caricare le informazioni sull'etichetta in formato .csv).

Hai finito! Hai distribuito correttamente la pipeline e puoi controllare lo stato della pipeline nella funzione del passaggio distribuito. (Avrai un modello addestrato nel pannello di classificazione personalizzato di Amazon Comprehend).

ML14789 1 immagine 9 1

Se scegli il modello e la sua versione all'interno della console Amazon Comprehend, ora puoi visualizzare maggiori dettagli sul modello che hai appena addestrato. Include la modalità selezionata, che corrisponde all'opzione Q05MultiClass, il numero di etichette e il numero di documenti addestrati e di test all'interno dei dati di addestramento. Puoi anche controllare le prestazioni generali di seguito; tuttavia, se desideri verificare le prestazioni dettagliate per ciascuna classe, fai riferimento al rapporto sulle prestazioni generato dalla pipeline distribuita.

Quote di servizio

Il tuo account AWS dispone di quote predefinite per Amazon Comprehend e AmazonTextract, se gli input sono in formato semistruttura. Per visualizzare le quote di servizio, fare riferimento qui per Amazon Comprehend e qui per AmazonTextract.

Ripulire

Per evitare di incorrere in spese correnti, al termine elimina le risorse create come parte di questa soluzione.

  1. Nella console Amazon S3, elimina manualmente i contenuti all'interno dei bucket creati per i dati di input e output.
  2. Nella console AWS CloudFormation, scegli Pile nel riquadro di navigazione.
  3. Seleziona lo stack principale e scegli Eliminare.

ML14789 1 immagine 10 1

Ciò elimina automaticamente lo stack distribuito.

  1. Il tuo modello di classificazione personalizzato Amazon Comprehend addestrato rimarrà nel tuo account. Se non ti serve più, nella console Amazon Comprehend, elimina il modello creato.

Conclusione

In questo post, ti abbiamo mostrato il concetto di una pipeline di addestramento scalabile per i modelli di classificazione personalizzati di Amazon Comprehend e abbiamo fornito una soluzione automatizzata per addestrare in modo efficiente nuovi modelli. Il modello AWS CloudFormation fornito ti consente di creare facilmente i tuoi modelli di classificazione del testo, soddisfacendo le dimensioni della domanda. La soluzione adotta la funzionalità Euclid recentemente annunciata e accetta input in formato testuale o semi-strutturato.

Ora invitiamo voi, i nostri lettori, a testare questi strumenti. Puoi trovare ulteriori dettagli sulla preparazione dei dati di training e comprendere le metriche del classificatore personalizzato. Provalo e scopri in prima persona come può semplificare il processo di addestramento del modello e migliorarne l'efficienza. Per favore condividi il tuo feedback con noi!


Riguardo agli Autori

snghigfSandeep Singh è un Senior Data Scientist presso AWS Professional Services. La sua passione è aiutare i clienti a innovare e raggiungere i propri obiettivi aziendali sviluppando soluzioni all'avanguardia basate su AI/ML. Attualmente si concentra sull'intelligenza artificiale generativa, sui LLM, sul prompt engineering e sulla scalabilità del machine learning nelle aziende. Porta i recenti progressi dell'intelligenza artificiale per creare valore per i clienti.

zhanyany 100Yanyan Zhang è un Senior Data Scientist nel team Energy Delivery di AWS Professional Services. La sua passione è aiutare i clienti a risolvere problemi reali con la conoscenza dell'intelligenza artificiale/ML. Recentemente, la sua attenzione si è concentrata sull'esplorazione del potenziale dell'intelligenza artificiale generativa e del LLM. Al di fuori del lavoro, ama viaggiare, allenarsi ed esplorare cose nuove.

rovinare talukdarWrick Talukdar è un architetto senior del team Amazon Comprehend Service. Lavora con i clienti AWS per aiutarli ad adottare il machine learning su larga scala. Al di fuori del lavoro, gli piace leggere e fotografare.



Collegamento alla fonte

lascia un commento

L'indirizzo email non verrà pubblicato. I campi richiesti sono contrassegnati *

Puoi utilizzare questi tag e attributi HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

it_ITItalian