Automatiseer de classificatie van IT-serviceverzoeken met een Amazon Comprehend custom classifier PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Automatiseer de classificatie van IT-serviceverzoeken met een aangepaste classificatie van Amazon Comprehend

Bedrijven hebben vaak te maken met grote hoeveelheden IT-serviceverzoeken. Traditioneel wordt de last op de aanvrager gelegd om voor elk probleem de juiste categorie te kiezen. Een handmatige fout of verkeerde classificatie van een ticket betekent meestal een vertraging bij het oplossen van het IT-serviceverzoek. Dit kan leiden tot verminderde productiviteit, een afname van de klanttevredenheid, een impact op Service Level Agreements (SLA's) en bredere operationele effecten. Naarmate uw onderneming groeit, wordt het probleem om het juiste serviceverzoek bij het juiste team te krijgen nog belangrijker. Het gebruik van een aanpak op basis van machine learning (ML) en kunstmatige intelligentie kan helpen bij de steeds veranderende behoeften van uw onderneming.

Supervised ML is een proces dat gelabelde datasets en outputs gebruikt om leeralgoritmen te trainen in het classificeren van data of het voorspellen van een uitkomst. Amazon begrijpt het is een natuurlijke taalverwerkingsservice (NLP) die ML gebruikt om waardevolle inzichten en verbanden in tekst te ontdekken. Het biedt API's die worden aangedreven door ML om sleutelzinnen, entiteiten, sentimentanalyse en meer te extraheren.

In dit bericht laten we u zien hoe u een gesuperviseerd ML-model implementeert dat kan helpen bij het automatisch classificeren van IT-serviceverzoeken met behulp van Amazon Begrijp aangepaste classificatie. De aangepaste classificatie van Amazon Comprehend helpt je om Amazon Comprehend aan je specifieke vereisten aan te passen zonder de vaardigheden die nodig zijn om op ML gebaseerde NLP-oplossingen te bouwen. Met automatische ML of AutoML bouwt de aangepaste classificatie van Amazon Comprehend namens u aangepaste NLP-modellen op met behulp van de trainingsgegevens die u aanlevert.

Overzicht van de oplossing

Om de classificatie van IT-serviceverzoeken te illustreren, gebruikt deze oplossing de: SEOSS-dataset. Deze dataset is een systematisch opgehaalde dataset bestaande uit 33 open-source softwareprojecten die een groot aantal getypte artefacten en traceerlinks daartussen bevat. Deze oplossing gebruikt de probleemgegevens van deze 33 open-sourceprojecten, samenvattingen en beschrijvingen zoals gerapporteerd door eindgebruikers om een ​​aangepast classificatiemodel te bouwen met Amazon Comprehend.

Dit bericht laat zien hoe u de oplossing implementeert en implementeert met behulp van de AWS Cloud-ontwikkelingskit (AWS CDK) in een geïsoleerd Amazon virtuele privécloud (Amazon VPC) omgeving die alleen uit privé-subnetten bestaat. We gebruiken de code ook om te demonstreren hoe u de AWS CDK kunt gebruiken provider raamwerk, een mini-framework voor het implementeren van een provider voor AWS CloudFormatie aangepaste bronnen om een ​​aangepaste bron te maken, bij te werken of te verwijderen, zoals een Amazon Comprehend-eindpunt. Het Amazon Comprehend-eindpunt omvat beheerde bronnen die uw aangepaste model beschikbaar maken voor realtime gevolgtrekking naar een clientcomputer of toepassingen van derden. De code voor deze oplossing is beschikbaar op Github.

U gebruikt de AWS CDK om de infrastructuur, toepassingscode en configuratie voor de oplossing te implementeren. Je hebt ook een AWS-account nodig en de mogelijkheid om AWS-resources aan te maken. U gebruikt de AWS CDK om AWS-bronnen te creëren, zoals een VPC met privésubnetten, Amazon VPC-eindpunten, Amazon elastisch bestandssysteem (Amazon EFS), en Amazon eenvoudige meldingsservice (Amazon SNS) onderwerp, en Amazon eenvoudige opslagservice (Amazon S3) emmer, Meldingen van gebeurtenissen op Amazon S3 en AWS Lambda functies. Samen vormen deze AWS-resources de trainingsstack, die u gebruikt om het aangepaste classificatiemodel te bouwen en te trainen.

Nadat u deze AWS-resources hebt gemaakt, downloadt u de SEOSS-dataset en uploadt u de dataset naar de S3-bucket die door de oplossing is gemaakt. Als u deze oplossing implementeert in AWS Region us-east-2, is de indeling van de S3-bucketnaam: comprehendcustom--us-east-2-s3stack. De oplossing gebruikt de meerdelige uploadtrigger Amazon S3 om een ​​Lambda-functie aan te roepen die de voorverwerking van de invoergegevens start, en gebruikt de voorverwerkte gegevens om de aangepaste classificatie van Amazon Comprehend te trainen om het aangepaste classificatiemodel te creëren. Vervolgens gebruikt u de Amazon Resource Name (ARN) van het aangepaste classificatiemodel om de inferentiestapel te maken, die een Amazon Comprehend-eindpunt maakt met behulp van de AWS CDK provider raamwerk, die u vervolgens kunt gebruiken voor gevolgtrekkingen van een toepassing van een derde partij of een clientcomputer.

Het volgende diagram illustreert de architectuur van de trainingsstack.

De workflowstappen zijn als volgt:

  1. Upload de SEOSS-gegevensset naar de S3-bucket die is gemaakt als onderdeel van het implementatieproces van de trainingsstack. Dit creëert een gebeurtenistrigger die de . aanroept etl_lambda functie.
  2. De etl_lambda functie downloadt de ruwe dataset van Amazon S3 naar Amazon EFS.
  3. De etl_lambda functie voert de gegevensvoorverwerkingstaak van de SEOSS-dataset uit.
  4. Wanneer de uitvoering van de functie is voltooid, worden de getransformeerde gegevens geüpload met: prepped_data voorvoegsel voor de S3-bucket.
  5. Nadat het uploaden van de getransformeerde gegevens is voltooid, wordt een succesvol ETL-voltooiingsbericht verzonden naar Amazon SNS.
  6. In Amazon Comprehend kun je je documenten classificeren met twee modi: multi-class of multi-label. De modus met meerdere klassen identificeert één en slechts één klasse voor elk document en de modus met meerdere labels identificeert een of meer labels voor elk document. Omdat we voor elk document een enkele klasse willen identificeren, trainen we het aangepaste classificatiemodel in de modus voor meerdere klassen. Amazon SNS activeert de train_classifier_lambda functie, die de Amazon Comprehend-classificatietraining start in een modus met meerdere klassen.
  7. De train_classifier_lambda functie start de Amazon Comprehend-training voor aangepaste classificatie.
  8. Amazon Comprehend downloadt de getransformeerde gegevens van de prepped_data prefix in Amazon S3 om het aangepaste classificatiemodel te trainen.
  9. Wanneer de modeltraining is voltooid, uploadt Amazon Comprehend de model.tar.gz bestand naar de output_data voorvoegsel van de S3-bucket. De gemiddelde doorlooptijd om dit aangepaste classificatiemodel te trainen is ongeveer 10 uur.
  10. De Amazon S3-uploadtrigger roept de extract_comprehend_model_name_lambda functie, die het aangepaste classificatiemodel ARN ophaalt.
  11. De functie extraheert het aangepaste classificatiemodel ARN uit de S3-gebeurtenispayload en het antwoord van list-document-classifiers noemen.
  12. De functie verzendt het aangepaste classificatiemodel ARN naar het e-mailadres waarop u zich eerder had geabonneerd als onderdeel van het proces voor het maken van de trainingsstack. Vervolgens gebruikt u deze ARN om de inferentie-stack te implementeren.

Deze implementatie maakt de inferentie-stack, zoals weergegeven in de volgende afbeelding. De inference stack biedt u een REST API beveiligd door een AWS Identiteits- en toegangsbeheer (IAM)-autorizer, die u vervolgens kunt gebruiken om betrouwbaarheidsscores van de labels te genereren op basis van de invoertekst die wordt aangeleverd door een externe toepassing of clientcomputer.

Inferentie-stack-architectuur

Voorwaarden

Voor deze demo moet u aan de volgende vereisten voldoen:

  • An AWS-account.
  • Python 3.7 of hoger, Node.js en Git in de ontwikkelmachine. De AWS CDK gebruikt specifieke versies van Node.js (>=10.13.0, behalve versie 13.0.0 – 13.6.0). Een versie in actieve langetermijnondersteuning (LTS) wordt aanbevolen.
    Om de actieve LTS-versie van Node.js te installeren, kunt u het volgende gebruiken: installeer script For nvm en gebruiken nvm naar installeren de Node.js LTS-versie. U kunt de huidige actieve LTS Node.js ook installeren via pakketbeheerder, afhankelijk van het besturingssysteem van uw keuze.

    Voor macOS kunt u de Node.js installeren via pakketbeheer met behulp van het volgende: instructies.

    Voor Windows kunt u de Node.js installeren via pakketbeheer met behulp van het volgende: instructies.

  • AWS CDK v2 is vooraf geïnstalleerd als u een AWS-Cloud9 IDE. Als u AWS Cloud9 IDE gebruikt, kunt u deze stap overslaan. Als u de AWS CDK niet op de ontwikkelmachine hebt geïnstalleerd, installeer dan AWS CDK v2 globaal met de opdracht Node Package Manager npm install -g aws-cdk. Voor deze stap moet Node.js op de ontwikkelmachine zijn geïnstalleerd.
  • Configureer uw AWS-inloggegevens om toegang te krijgen tot AWS-bronnen en deze te maken met behulp van de AWS CDK. Raadpleeg voor instructies: Inloggegevens en regio opgeven.
  • Download de SEOSS-dataset bestaande uit vereisten, bugrapporten, codegeschiedenis en traceerkoppelingen van 33 open-source softwareprojecten. Bewaar het bestand dataverse_files.zip op uw lokale computer.

SEOSS-dataset

De AWS CDK-trainingstack implementeren

Voor AWS CDK-implementatie beginnen we met de trainingsstack. Voer de volgende stappen uit:

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

  1. Navigeer naar de amazon-comprehend-custom-automate-classification-it-service-request map:
$ cd amazon-comprehend-custom-automate-classification-it-service-request/

Alle volgende commando's worden uitgevoerd binnen de amazon-comprehend-custom-automate-classification-it-service-request directory.

  1. Initialiseer in de map amazon-comprehend-custom-automate-classification-it-service-request de virtuele Python-omgeving en installeer requirements.txt met pip:
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -r requirements.txt

  1. Als u de AWS CDK voor het eerst in een specifiek AWS-account en in een specifieke regio gebruikt, raadpleegt u de instructies voor: bootstrapping van uw AWS CDK-omgeving:
$ cdk bootstrap aws:///

  1. Synthetiseer de CloudFormation-sjablonen voor deze oplossing met behulp van cdk synth en gebruiken cdk deploy om de eerder genoemde AWS-bronnen te maken:
$ cdk synth
$ cdk deploy VPCStack EFSStack S3Stack SNSStack ExtractLoadTransformEndPointCreateStack --parameters SNSStack:emailaddressarnnotification=

Nadat je binnenkomt cdk deploy, vraagt ​​de AWS CDK of u wijzigingen wilt implementeren voor elk van de stacks die worden aangeroepen in de cdk deploy-opdracht.

  1. Enter y voor elk van de aanwijzingen voor het maken van de stapel, maakt de stap cdk-implementatie deze stapels. Abonneer u met het door u opgegeven e-mailadres op het SNS-onderwerp dat is gemaakt als onderdeel van de cdk-implementatie.
  2. Nadat cdk-implementatie met succes is voltooid, maakt u een map met de naam raw_data in de S3-emmer comprehendcustom---s3stack.
  3. Upload de SEOSS-dataset dataverse_files.zip die u eerder naar deze map hebt gedownload.

Nadat het uploaden is voltooid, roept de oplossing de etl_lambda functie met behulp van een Amazon S3-gebeurtenistrigger om het extractie-, transformatie- en laadproces (ETL) te starten. Nadat het ETL-proces met succes is voltooid, wordt een bericht verzonden naar het SNS-onderwerp, dat de . aanroept train_classifier_lambda functie. Deze functie activeert een Amazon Comprehend-training voor aangepaste classificatiemodellen. Afhankelijk van of u uw model traint op de volledige SEOSS-dataset, kan de training tot 10 uur duren. Wanneer het trainingsproces is voltooid, uploadt Amazon Comprehend de model.tar.gz bestand naar de output_data voorvoegsel in de S3-bucket.

Deze upload activeert het extract_comprehend_model_name_lambda functie met behulp van een S3-gebeurtenistrigger die het aangepaste classificatiemodel ARN extraheert en naar het e-mailadres stuurt waarop u zich eerder had geabonneerd. Dit aangepaste classificatiemodel ARN wordt vervolgens gebruikt om de inferentiestapel te maken. Wanneer de modeltraining is voltooid, kunt u de prestatiestatistieken van het aangepaste classificatiemodel bekijken door naar het gedeelte met versiedetails in de Amazon Comprehend-console te gaan (zie de volgende schermafbeelding), of door de Amazon Comprehend Boto3-SDK.

Prestatiestatistieken

De AWS CDK-inferentiestack implementeren

Nu bent u klaar om de inferentie-stack te implementeren.

  1. Kopieer het aangepaste classificatiemodel ARN uit de e-mail die u hebt ontvangen en gebruik het volgende: cdk deploy opdracht om de inferentiestapel te maken.

Met deze opdracht wordt een API Gateway REST API geïmplementeerd die is beveiligd door een IAM-autorizer, die u gebruikt voor inferentie met een AWS-gebruikers-ID of IAM-rol die alleen het recht execute-api:Invoke IAM heeft. Met de volgende opdracht cdk deploy wordt de inference stack geïmplementeerd. Deze stapel gebruikt de AWS CDK provider raamwerk om het Amazon Comprehend-eindpunt te maken als een aangepaste bron, zodat het maken, verwijderen en bijwerken van het Amazon Comprehend-eindpunt kan worden gedaan als onderdeel van de inference stack-levenscyclus met behulp van de opdrachten cdk deploy en cdk destroy.

Omdat u de volgende opdracht moet uitvoeren nadat de modeltraining is voltooid, wat tot 10 uur kan duren, moet u ervoor zorgen dat u zich in de virtuele Python-omgeving bevindt die u in een eerdere stap en in de amazon-comprehend-custom-automate-classification-it-service-request directory:

$ cdk deploy APIGWInferenceStack --parameters APIGWInferenceStack:documentclassifierarn=

Bijvoorbeeld:

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

  1. Na het cdk deploy opdracht succesvol is voltooid, kopieer de APIGWInferenceStack.ComprehendCustomClassfierInvokeAPI waarde uit de console-uitvoer en gebruik deze REST API om gevolgtrekkingen te genereren van een clientcomputer of een toepassing van derden die execute-api:Invoke IAM-voorrecht. Als u deze oplossing in us-east-2 uitvoert, is de indeling van deze REST API: https://.execute-api.us-east-2.amazonaws.com/prod/invokecomprehendV1.

Als alternatief kunt u de testclient gebruiken apiclientinvoke.py vanuit de GitHub-repository om een ​​verzoek naar het aangepaste classificatiemodel te verzenden. Voordat u de apiclientinvoke.py gebruikt, moet u ervoor zorgen dat aan de volgende vereisten is voldaan:

  • Jij hebt de boto3 en requests Python-pakket geïnstalleerd met pip op de clientcomputer.
  • U hebt Boto3-referenties geconfigureerd. De testclient gaat er standaard van uit dat er een profiel met de naam default aanwezig is en heeft de execute-api:Invoke IAM-rechten op de REST API.
  • SigV4Auth verwijst naar de regio waar de REST API is geïmplementeerd. Update de waarde voor us-east-2 in apiclientinvoke.py als uw REST API is geïmplementeerd in us-east-2.
  • Je hebt de toegewezen raw_data variabele met de tekst waarop u de klassevoorspelling of het classificatieverzoek wilt doen:
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."""

  • Je hebt de toegewezen restapi variabele met de REST API die eerder is gekopieerd:

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

  1. Voer de ... uit apiclientinvoke.py na de voorgaande updates:
$ python3 apiclientinvoke.py

U krijgt het volgende antwoord van het aangepaste classificatiemodel:

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

Amazon Comprehend retourneert vertrouwensscores voor elk label dat het correct heeft toegekend. Als de service veel vertrouwen heeft in een label, zal de score dichter bij 1 liggen. Daarom voorspelt het aangepaste classificatiemodel voor het aangepaste classificatiemodel van Amazon Comprehend dat is getraind met behulp van de SEOSS-dataset, dat de tekst tot de SPARK-klasse behoort. Deze classificatie die wordt geretourneerd door het aangepaste classificatiemodel van Amazon Comprehend kan vervolgens worden gebruikt om de IT-serviceverzoeken te classificeren of de juiste categorie van de IT-serviceverzoeken te voorspellen, waardoor handmatige fouten of verkeerde classificatie van serviceverzoeken worden verminderd.

Opruimen

Gebruik de volgende opdracht om alle bronnen op te schonen die in dit bericht zijn gemaakt als onderdeel van de trainingsstack en inference-stack. Met deze opdracht worden alle AWS-bronnen verwijderd die zijn gemaakt als onderdeel van de vorige cdk-implementatieopdrachten:

$ cdk destroy --all

Conclusie

In dit bericht hebben we u laten zien hoe ondernemingen een gesuperviseerd ML-model kunnen implementeren met behulp van de aangepaste classificatie van Amazon Comprehend om de categorie IT-serviceverzoeken te voorspellen op basis van het onderwerp of de beschrijving van het verzoek dat door de eindgebruiker is ingediend. Nadat u een aangepast classificatiemodel hebt gebouwd en getraind, kunt u realtime analyse uitvoeren voor aangepaste classificatie door een eindpunt te maken. Nadat u dit model op een Amazon Comprehend-eindpunt hebt geïmplementeerd, kan het worden gebruikt om realtime gevolgtrekkingen uit te voeren door toepassingen van derden of andere clientcomputers, inclusief hulpprogramma's voor IT-servicebeheer. U kunt deze gevolgtrekking vervolgens gebruiken om de defectcategorie te voorspellen en handmatige fouten of verkeerde classificaties van tickets te verminderen. Dit helpt vertragingen voor het oplossen van tickets te verminderen en verhoogt de nauwkeurigheid van de resolutie en de klantproductiviteit, wat uiteindelijk resulteert in een grotere klanttevredenheid.

U kunt de concepten in dit bericht uitbreiden naar andere gebruiksscenario's, zoals het routeren van bedrijfs- of IT-tickets naar verschillende interne teams zoals bedrijfsafdelingen, klantenservicemedewerkers en Tier 2/3 IT-ondersteuning, gecreëerd door eindgebruikers of via geautomatiseerde middelen.

Referenties

  • Rath, Michaël; Mäder, Patrick, 2019, "De SEOSS-dataset - vereisten, bugrapporten, codegeschiedenis en traceerkoppelingen voor volledige projecten", https://doi.org/10.7910/DVN/PDDZ4Q, HarvardDataverse, V1

Over de auteurs

Automatiseer de classificatie van IT-serviceverzoeken met een Amazon Comprehend custom classifier PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Konijn Chakraborty is een Sr. Solutions Architect bij AWS, gevestigd in Cincinnati, Ohio. Hij is gepassioneerd door onderwerpen in Enterprise & Solution architectuur, Data analytics, Serverless en Machine Learning. In zijn vrije tijd kijkt hij graag naar films, reisprogramma's en sport.

ViraleAutomatiseer de classificatie van IT-serviceverzoeken met een Amazon Comprehend custom classifier PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai. Desai is Principal Solutions Architect bij AWS. Met meer dan 25 jaar ervaring in informatietechnologie heeft hij klanten geholpen om AWS te adopteren en hun architecturen te moderniseren. Hij houdt van wandelen en duikt graag diep met klanten over alles wat met AWS te maken heeft.

Tijdstempel:

Meer van AWS-machine learning