Automatizza la classificazione delle richieste di servizi IT con un classificatore personalizzato Amazon Comprehend PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Automatizza la classificazione delle richieste di servizi IT con un classificatore personalizzato Amazon Comprehend

Le aziende spesso gestiscono grandi volumi di richieste di servizi IT. Tradizionalmente, il richiedente ha l'onere di scegliere la categoria corretta per ogni problema. Un errore manuale o un'errata classificazione di un ticket di solito significa un ritardo nella risoluzione della richiesta del servizio IT. Ciò può comportare una riduzione della produttività, una diminuzione della soddisfazione del cliente, un impatto sugli accordi sul livello di servizio (SLA) e un impatto operativo più ampio. Man mano che la tua azienda cresce, il problema di inviare la giusta richiesta di servizio al team giusto diventa ancora più importante. L'utilizzo di un approccio basato sull'apprendimento automatico (ML) e sull'intelligenza artificiale può aiutare con le esigenze in continua evoluzione della tua azienda.

Il Supervised ML è un processo che utilizza set di dati e output etichettati per addestrare algoritmi di apprendimento su come classificare i dati o prevedere un risultato. Amazon Comprehend è un servizio di elaborazione del linguaggio naturale (NLP) che utilizza il ML per scoprire preziose informazioni e connessioni nel testo. Fornisce API basate su ML per estrarre frasi chiave, entità, analisi del sentimento e altro ancora.

In questo post, ti mostriamo come implementare un modello ML supervisionato che può aiutare a classificare automaticamente le richieste di servizi IT Amazon Comprehend classificazione personalizzata. La classificazione personalizzata di Amazon Comprehend ti aiuta a personalizzare Amazon Comprehend per i tuoi requisiti specifici senza il set di competenze necessario per creare soluzioni NLP basate su ML. Con il ML automatico o AutoML, la classificazione personalizzata di Amazon Comprehend crea modelli NLP personalizzati per tuo conto, utilizzando i dati di addestramento che fornisci.

Panoramica della soluzione

Per illustrare la classificazione delle richieste di servizi IT, questa soluzione utilizza il Set di dati SEOSS. Questo set di dati è un set di dati recuperato sistematicamente composto da 33 progetti software open source che contiene un gran numero di artefatti tipizzati e traccia i collegamenti tra di loro. Questa soluzione utilizza i dati sui problemi di questi 33 progetti, riepiloghi e descrizioni open source riportati dagli utenti finali per creare un modello di classificazione personalizzato utilizzando Amazon Comprehend.

Questo post mostra come implementare e distribuire la soluzione utilizzando il Kit di sviluppo cloud AWS (AWS CDK) in un isolato Cloud privato virtuale di Amazon Ambiente (Amazon VPC) costituito solo da sottoreti private. Utilizziamo il codice anche per dimostrare come puoi utilizzare AWS CDK quadro del fornitore, un mini-quadro per l'implementazione di un provider per AWS CloudFormazione risorse personalizzate per creare, aggiornare o eliminare una risorsa personalizzata, come un endpoint Amazon Comprehend. L'endpoint Amazon Comprehend include risorse gestite che rendono il tuo modello personalizzato disponibile per l'inferenza in tempo reale su una macchina client o applicazioni di terze parti. Il codice per questa soluzione è disponibile su Github.

Puoi utilizzare AWS CDK per distribuire l'infrastruttura, il codice dell'applicazione e la configurazione per la soluzione. Hai anche bisogno di un account AWS e della possibilità di creare risorse AWS. Puoi utilizzare AWS CDK per creare risorse AWS come un VPC con sottoreti private, Endpoint Amazon VPC, File system elastico Amazon (Amazon EFS), un Servizio di notifica semplice Amazon (Amazon SNS), un Servizio di archiviazione semplice Amazon (Amazon S3) secchio, Notifiche di eventi Amazon S3e AWS Lambda funzioni. Collettivamente, queste risorse AWS costituiscono lo stack di addestramento, che utilizzi per creare e addestrare il modello di classificazione personalizzato.

Dopo aver creato queste risorse AWS, scarichi il set di dati SEOSS e carichi il set di dati nel bucket S3 creato dalla soluzione. Se stai distribuendo questa soluzione nella regione AWS us-east-2, il formato del nome del bucket S3 è comprehendcustom--us-east-2-s3stack. La soluzione utilizza il trigger di caricamento multiparte Amazon S3 per richiamare una funzione Lambda che avvia la preelaborazione dei dati di input e utilizza i dati preelaborati per addestrare il classificatore personalizzato Amazon Comprehend per creare il modello di classificatore personalizzato. Quindi utilizza Amazon Resource Name (ARN) del modello di classificazione personalizzato per creare lo stack di inferenza, che crea un endpoint Amazon Comprehend utilizzando l'AWS CDK quadro del fornitore, che puoi quindi utilizzare per le inferenze da un'applicazione di terze parti o da un computer client.

Il diagramma seguente illustra l'architettura dello stack di addestramento.

I passaggi del flusso di lavoro sono i seguenti:

  1. Carica il set di dati SEOSS nel bucket S3 creato come parte del processo di distribuzione dello stack di addestramento. Questo crea un trigger di evento che richiama il etl_lambda funzione.
  2. I etl_lambda la funzione scarica il set di dati non elaborati da Amazon S3 ad Amazon EFS.
  3. I etl_lambda La funzione esegue l'attività di preelaborazione dei dati del set di dati SEOSS.
  4. Al termine dell'esecuzione della funzione, carica i dati trasformati con prepped_data prefisso al bucket S3.
  5. Al termine del caricamento dei dati trasformati, viene inviato un messaggio di completamento ETL riuscito ad Amazon SNS.
  6. In Amazon Comprehend, puoi classificare i tuoi documenti utilizzando due modalità: multi-classe o multi-etichetta. La modalità multi-classe identifica una e una sola classe per ogni documento e la modalità multi-etichetta identifica una o più etichette per ciascun documento. Poiché vogliamo identificare una singola classe per ogni documento, formiamo il modello di classificazione personalizzato in modalità multi-classe. Amazon SNS attiva il train_classifier_lambda funzione, che avvia l'addestramento del classificatore Amazon Comprehend in una modalità multi-classe.
  7. I train_classifier_lambda La funzione avvia il training del classificatore personalizzato Amazon Comprehend.
  8. Amazon Comprehend scarica i dati trasformati da prepped_data prefisso in Amazon S3 per addestrare il modello di classificazione personalizzato.
  9. Al termine del training del modello, Amazon Comprehend carica il file model.tar.gz file in output_data prefisso del bucket S3. Il tempo medio di completamento per addestrare questo modello di classificatore personalizzato è di circa 10 ore.
  10. Il trigger di caricamento Amazon S3 richiama il extract_comprehend_model_name_lambda funzione, che recupera l'ARN del modello di classificazione personalizzato.
  11. La funzione estrae l'ARN del modello di classificazione personalizzato dal payload dell'evento S3 e dalla risposta di list-document-classifiers chiamata.
  12. La funzione invia l'ARN del modello di classificazione personalizzato all'indirizzo e-mail sottoscritto in precedenza come parte del processo di creazione dello stack di addestramento. Utilizzare quindi questo ARN per distribuire lo stack di inferenza.

Questa distribuzione crea lo stack di inferenza, come mostrato nella figura seguente. Lo stack di inferenza fornisce un'API REST protetta da un Gestione dell'identità e dell'accesso di AWS (IAM), che è quindi possibile utilizzare per generare punteggi di affidabilità delle etichette in base al testo di input fornito da un'applicazione di terze parti o da un computer client.

Architettura dello stack di inferenza

Prerequisiti

Per questa demo, dovresti avere i seguenti prerequisiti:

  • An Account AWS.
  • Python 3.7 o successivo, Node.jse Idiota nella macchina di sviluppo. AWS CDK utilizza versioni specifiche di Node.js (>=10.13.0, ad eccezione della versione 13.0.0 – 13.6.0). Si consiglia una versione con supporto attivo a lungo termine (LTS).
    Per installare la versione LTS attiva di Node.js, puoi utilizzare quanto segue script di installazione per nvm E l'uso nvm a install la versione LTS di Node.js. Puoi anche installare l'attuale LTS Node.js attivo tramite il gestore di pacchetti a seconda del sistema operativo di tua scelta.

    Per macOS, puoi installare Node.js tramite il gestore pacchetti utilizzando quanto segue istruzioni.

    Per Windows, puoi installare Node.js tramite il gestore di pacchetti utilizzando quanto segue istruzioni.

  • AWS CDK v2 è preinstallato se stai utilizzando un AWS Cloud9 IDE. Se utilizzi AWS Cloud9 IDE, puoi saltare questo passaggio. Se non hai installato AWS CDK nella macchina di sviluppo, installa AWS CDK v2 a livello globale utilizzando il comando Node Package Manager npm install -g aws-cdk. Questo passaggio richiede l'installazione di Node.js nella macchina di sviluppo.
  • Configura le tue credenziali AWS per accedere e creare risorse AWS utilizzando AWS CDK. Per istruzioni, fare riferimento a Specificare credenziali e regione.
  • Scarica la Set di dati SEOSS composto da requisiti, segnalazioni di bug, cronologia del codice e collegamenti di traccia di 33 progetti software open source. Salva il file dataverse_files.zip sul tuo computer locale.

Set di dati SEOSS

Distribuisci lo stack di formazione AWS CDK

Per la distribuzione di AWS CDK, iniziamo con lo stack di formazione. Completa i seguenti passaggi:

  1. Clona il repository GitHub:
$ git clone https://github.com/aws-samples/amazon-comprehend-custom-automate-classification-it-service-request.git

  1. Passare alla amazon-comprehend-custom-automate-classification-it-service-request cartella:
$ cd amazon-comprehend-custom-automate-classification-it-service-request/

Tutti i seguenti comandi vengono eseguiti all'interno di amazon-comprehend-custom-automate-classification-it-service-request directory.

  1. Nella directory amazon-comprehend-custom-automate-classification-it-service-request, inizializza l'ambiente virtuale Python e installa Requirements.txt con pip:
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -r requirements.txt

  1. Se utilizzi per la prima volta AWS CDK in un account e in una regione AWS specifici, consulta le istruzioni per avviare il tuo ambiente AWS CDK:
$ cdk bootstrap aws:///

  1. Sintetizza i modelli CloudFormation per questa soluzione utilizzando cdk synth E l'uso cdk deploy per creare le risorse AWS menzionate in precedenza:
$ cdk synth
$ cdk deploy VPCStack EFSStack S3Stack SNSStack ExtractLoadTransformEndPointCreateStack --parameters SNSStack:emailaddressarnnotification=

Dopo essere entrato cdk deploy, AWS CDK richiede se desideri distribuire le modifiche per ciascuno degli stack richiamati nel comando cdk deploy.

  1. entrare y per ciascuna delle richieste di creazione dello stack, il passaggio di distribuzione cdk crea questi stack. Sottoscrivere l'indirizzo e-mail fornito dall'utente all'argomento SNS creato come parte della distribuzione cdk.
  2. Al termine della distribuzione di cdk, creare una cartella denominata raw_data nel secchio S3 comprehendcustom---s3stack.
  3. Carica il set di dati SEOSS dataverse_files.zip che hai scaricato in precedenza in questa cartella.

Al termine del caricamento, la soluzione richiama il file etl_lambda funzione utilizzando un trigger di evento Amazon S3 per avviare il processo di estrazione, trasformazione e caricamento (ETL). Dopo che il processo ETL è stato completato correttamente, viene inviato un messaggio all'argomento SNS, che richiama il train_classifier_lambda funzione. Questa funzione attiva un addestramento del modello di classificazione personalizzato Amazon Comprehend. A seconda che si addestra il modello sul set di dati completo di SEOSS, l'addestramento potrebbe richiedere fino a 10 ore. Al termine del processo di formazione, Amazon Comprehend carica il file model.tar.gz file in output_data prefisso nel bucket S3.

Questo caricamento attiva il file extract_comprehend_model_name_lambda funzione utilizzando un trigger di eventi S3 che estrae l'ARN del modello di classificazione personalizzato e lo invia all'indirizzo e-mail che avevi sottoscritto in precedenza. Questo modello di classificazione personalizzato ARN viene quindi utilizzato per creare lo stack di inferenza. Al termine dell'addestramento del modello, puoi visualizzare le metriche delle prestazioni del modello di classificazione personalizzato accedendo alla sezione dei dettagli della versione nella console Amazon Comprehend (consulta lo screenshot seguente) o utilizzando Amazon Comprehend SDK Boto3.

Metriche di prestazione

Distribuisci lo stack di inferenza di AWS CDK

Ora sei pronto per distribuire lo stack di inferenza.

  1. Copia l'ARN del modello di classificazione personalizzato dall'e-mail che hai ricevuto e utilizza quanto segue cdk deploy comando per creare lo stack di inferenza.

Questo comando distribuisce un'API REST di API Gateway protetta da un'autorizzazione IAM, che utilizzi per l'inferenza con un ID utente AWS o un ruolo IAM che ha solo il privilegio execute-api:Invoke IAM. Il comando cdk deploy seguente distribuisce lo stack di inferenza. Questo stack utilizza AWS CDK quadro del fornitore per creare l'endpoint Amazon Comprehend come risorsa personalizzata, in modo che la creazione, l'eliminazione e l'aggiornamento dell'endpoint Amazon Comprehend possano essere eseguiti come parte del ciclo di vita dello stack di inferenza utilizzando i comandi cdk deploy e cdk destroy.

Poiché è necessario eseguire il comando seguente al termine dell'addestramento del modello, che potrebbe richiedere fino a 10 ore, assicurarsi di trovarsi nell'ambiente virtuale Python che è stato inizializzato in un passaggio precedente e nel amazon-comprehend-custom-automate-classification-it-service-request directory:

$ cdk deploy APIGWInferenceStack --parameters APIGWInferenceStack:documentclassifierarn=

Per esempio:

$ cdk deploy APIGWInferenceStack --parameters APIGWInferenceStack:documentclassifierarn=arn:aws:comprehend:us-east-2:111122223333:document-classifier/ComprehendCustomClassifier-11111111-2222-3333-4444-abc5d67e891f/version/v1

  1. Dopo il cdk deploy il comando viene completato correttamente, copia il file APIGWInferenceStack.ComprehendCustomClassfierInvokeAPI valore dall'output della console e utilizzare questa API REST per generare inferenze da una macchina client o da un'applicazione di terze parti che ha execute-api:Invoke Privilegio IAM. Se stai eseguendo questa soluzione in us-east-2, il formato di questa API REST è https://.execute-api.us-east-2.amazonaws.com/prod/invokecomprehendV1.

In alternativa, puoi utilizzare il client di prova apiclientinvoke.py dal repository GitHub per inviare una richiesta al modello di classificazione personalizzato. Prima di utilizzare apiclientinvoke.py, assicurarsi che siano presenti i seguenti prerequisiti:

  • Tu hai il boto3 ed requests Pacchetto Python installato utilizzando pip sulla macchina client.
  • Hai configurato le credenziali Boto3. Per impostazione predefinita, il client di test presuppone che sia presente un profilo denominato default e che abbia l'estensione execute-api:Invoke Privilegio IAM sull'API REST.
  • SigV4Auth punta alla regione in cui è distribuita l'API REST. Aggiorna il valore a us-east-2 in apiclientinvoke.py se la tua API REST è distribuita in us-east-2.
  • Hai assegnato il raw_data variabile con il testo su cui si vuole fare la previsione di classe o la richiesta di classificazione:
raw_data="""Spark is a unified analytics engine for large-scale data processing. It provides high-level APIs in Scala, Java, Python, and R, and an optimized engine that supports general computation graphs for data analysis."""

  • Hai assegnato il restapi variabile con l'API REST copiata in precedenza:

restapi="https://.execute-api.us-east-2.amazonaws.com/prod/invokecomprehendV1"

  1. Corri il apiclientinvoke.py dopo i precedenti aggiornamenti:
$ python3 apiclientinvoke.py

Ottieni la seguente risposta dal modello di classificazione personalizzato:

{
 "statusCode": 200,
 "body": [
	{
	 "Name": "SPARK",
	 "Score": 0.9999773502349854
	},
	{
	 "Name": "HIVE",
	 "Score": 1.1613215974648483e-05
	},
	{
	 "Name": "DROOLS",
	 "Score": 1.1110682862636168e-06
	}
   ]
}

Amazon Comprehend restituisce i punteggi di affidabilità per ogni etichetta che ha attribuito correttamente. Se il servizio è altamente sicuro su un'etichetta, il punteggio sarà più vicino a 1. Pertanto, per il modello di classificazione personalizzato Amazon Comprehend addestrato utilizzando il set di dati SEOSS, il modello di classificazione personalizzato prevede che il testo appartenga alla classe SPARK. Questa classificazione restituita dal modello di classificazione personalizzato di Amazon Comprehend può quindi essere utilizzata per classificare le richieste di servizi IT o prevedere la categoria corretta delle richieste di servizi IT, riducendo così gli errori manuali o l'errata classificazione delle richieste di servizio.

ripulire

Per ripulire tutte le risorse create in questo post che sono state create come parte dello stack di addestramento e dello stack di inferenza, utilizzare il comando seguente. Questo comando elimina tutte le risorse AWS create come parte dei precedenti comandi di distribuzione cdk:

$ cdk destroy --all

Conclusione

In questo post, ti abbiamo mostrato come le aziende possono implementare un modello ML supervisionato utilizzando la classificazione personalizzata di Amazon Comprehend per prevedere la categoria delle richieste di servizi IT in base all'oggetto o alla descrizione della richiesta inviata dall'utente finale. Dopo aver creato e addestrato un modello di classificazione personalizzato, puoi eseguire analisi in tempo reale per la classificazione personalizzata creando un endpoint. Dopo aver distribuito questo modello su un endpoint Amazon Comprehend, può essere utilizzato per eseguire l'inferenza in tempo reale da applicazioni di terze parti o altre macchine client, inclusi gli strumenti di gestione dei servizi IT. È quindi possibile utilizzare questa inferenza per prevedere la categoria del difetto e ridurre gli errori manuali o le classificazioni errate dei ticket. Ciò aiuta a ridurre i ritardi per la risoluzione dei ticket e aumenta l'accuratezza della risoluzione e la produttività dei clienti, il che si traduce in definitiva in una maggiore soddisfazione dei clienti.

Puoi estendere i concetti in questo post ad altri casi d'uso, come l'instradamento di biglietti aziendali o IT a vari team interni come dipartimenti aziendali, agenti del servizio clienti e supporto IT di livello 2/3, creati da utenti finali o tramite significa.

Riferimenti

  • Rath, Michael; Mäder, Patrick, 2019, "Il set di dati SEOSS: requisiti, segnalazioni di bug, cronologia del codice e collegamenti di traccia per interi progetti", https://doi.org/10.7910/DVN/PDDZ4Q, Harvard Dataverse, V1

Informazioni sugli autori

Automatizza la classificazione delle richieste di servizi IT con un classificatore personalizzato Amazon Comprehend PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Arnab Chakraborti è Sr. Solutions Architect presso AWS con sede a Cincinnati, Ohio. È appassionato di argomenti di architettura Enterprise & Solution, Data analytics, Serverless e Machine Learning. Nel tempo libero ama guardare film, programmi di viaggio e sport.

ViraleAutomatizza la classificazione delle richieste di servizi IT con un classificatore personalizzato Amazon Comprehend PlatoBlockchain Data Intelligence. Ricerca verticale. Ai. Desai è Principal Solutions Architect presso AWS. Con oltre 25 anni di esperienza nella tecnologia dell'informazione, ha aiutato i clienti ad adottare AWS ea modernizzare le loro architetture. Gli piacciono le escursioni e gli piace immergersi in profondità con i clienti su tutto ciò che riguarda AWS.

Timestamp:

Di più da Apprendimento automatico di AWS