Automatisera klassificering av IT-tjänstförfrågningar med en anpassad Amazon Comprehend klassificerare PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Automatisera klassificering av IT-tjänstförfrågningar med en anpassad klassificerare från Amazon Comprehend

Företag hanterar ofta stora volymer av IT-tjänster. Traditionellt läggs bördan på begäranden att välja rätt kategori för varje fråga. Ett manuellt fel eller felklassificering av en biljett innebär vanligtvis en fördröjning i att lösa IT-tjänstbegäran. Detta kan resultera i minskad produktivitet, minskad kundnöjdhet, påverkan på servicenivåavtal (SLA) och bredare operativa effekter. När ditt företag växer blir problemet med att få rätt serviceförfrågan till rätt team ännu viktigare. Att använda ett tillvägagångssätt baserat på maskininlärning (ML) och artificiell intelligens kan hjälpa till med ditt företags ständigt föränderliga behov.

Supervised ML är en process som använder märkta datamängder och utdata för att träna inlärningsalgoritmer om hur man klassificerar data eller förutsäger ett resultat. Amazon Comprehend är en NLP-tjänst (natural language processing) som använder ML för att avslöja värdefulla insikter och samband i text. Det tillhandahåller API:er som drivs av ML för att extrahera nyckelfraser, entiteter, sentimentanalys och mer.

I det här inlägget visar vi dig hur du implementerar en övervakad ML-modell som kan hjälpa dig att klassificera IT-tjänstförfrågningar automatiskt med Amazon Comprehend anpassad klassificering. Amazon Comprehend anpassad klassificering hjälper dig att anpassa Amazon Comprehend för dina specifika krav utan den kompetens som krävs för att bygga ML-baserade NLP-lösningar. Med automatisk ML, eller AutoML, bygger Amazon Comprehends anpassade klassificering anpassade NLP-modeller för din räkning, med hjälp av utbildningsdata som du tillhandahåller.

Översikt över lösningen

För att illustrera klassificeringen av IT-tjänster använder den här lösningen SEOSS dataset. Denna datauppsättning är en systematiskt hämtad datauppsättning som består av 33 mjukvaruprojekt med öppen källkod som innehåller ett stort antal maskinskrivna artefakter och spårar länkar mellan dem. Denna lösning använder problemdata från dessa 33 öppen källkodsprojekt, sammanfattningar och beskrivningar som rapporterats av slutanvändare för att bygga en anpassad klassificeringsmodell med Amazon Comprehend.

Det här inlägget visar hur man implementerar och distribuerar lösningen med hjälp av AWS Cloud Development Kit (AWS CDK) i en isolerad Amazon Virtual Private Cloud (Amazon VPC) miljö som endast består av privata undernät. Vi använder också koden för att visa hur du kan använda AWS CDK leverantörsram, ett mini-ramverk för att implementera en leverantör för AWS molnformation anpassade resurser för att skapa, uppdatera eller ta bort en anpassad resurs, till exempel en Amazon Comprehend-slutpunkt. Amazon Comprehend-slutpunkten inkluderar hanterade resurser som gör din anpassade modell tillgänglig för realtidsslutning till en klientmaskin eller tredjepartsapplikationer. De kod för denna lösning är tillgänglig på Github.

Du använder AWS CDK för att distribuera infrastrukturen, applikationskoden och konfigurationen för lösningen. Du behöver också ett AWS-konto och förmågan att skapa AWS-resurser. Du använder AWS CDK för att skapa AWS-resurser som en VPC med privata undernät, Amazon VPC-slutpunkter, Amazon Elastic File System (Amazon EFS), en Amazon enkel meddelandetjänst (Amazon SNS) ämne, en Amazon enkel lagringstjänst (Amazon S3) hink, Amazon S3 händelseaviseringaroch AWS Lambda funktioner. Tillsammans utgör dessa AWS-resurser utbildningsstacken, som du använder för att bygga och träna den anpassade klassificeringsmodellen.

När du har skapat dessa AWS-resurser laddar du ner SEOSS-datauppsättningen och laddar upp datauppsättningen till S3-bucketen som skapats av lösningen. Om du distribuerar den här lösningen i AWS Region us-east-2 är formatet på S3-hinkens namn comprehendcustom--us-east-2-s3stack. Lösningen använder Amazon S3 flerdelad uppladdningstrigger för att anropa en Lambda-funktion som startar förbearbetningen av indata, och använder förbearbetade data för att träna Amazon Comprehends anpassade klassificerare för att skapa den anpassade klassificeringsmodellen. Du använder sedan Amazon Resource Name (ARN) för den anpassade klassificeringsmodellen för att skapa slutledningsstacken, som skapar en Amazon Comprehend-slutpunkt med hjälp av AWS CDK leverantörsram, som du sedan kan använda för slutsatser från en tredjepartsapplikation eller klientdator.

Följande diagram illustrerar arkitekturen för träningsstacken.

Arbetsflödesstegen är följande:

  1. Ladda upp SEOSS-datauppsättningen till S3-bucketen som skapats som en del av implementeringsprocessen för utbildningsstack. Detta skapar en händelseutlösare som anropar etl_lambda funktion.
  2. Smakämnen etl_lambda funktionen laddar ner rådatauppsättningen från Amazon S3 till Amazon EFS.
  3. Smakämnen etl_lambda funktionen utför dataförbehandlingsuppgiften för SEOSS-datauppsättningen.
  4. När funktionsexekveringen är klar laddar den upp den transformerade datan med prepped_data prefix till S3-skopan.
  5. Efter att uppladdningen av den transformerade datan är klar skickas ett framgångsrikt ETL-slutförandemeddelande till Amazon SNS.
  6. I Amazon Comprehend kan du klassificera dina dokument med två lägen: multi-class eller multi-label. Multi-class mode identifierar en och endast en klass för varje dokument, och multi-label mode identifierar en eller flera etiketter för varje dokument. Eftersom vi vill identifiera en enda klass för varje dokument, tränar vi den anpassade klassificeringsmodellen i flerklassläge. Amazon SNS utlöser train_classifier_lambda funktion, som initierar Amazon Comprehend klassificerare utbildning i ett multi-klass läge.
  7. Smakämnen train_classifier_lambda funktionen startar Amazon Comprehends anpassade klassificeringsutbildning.
  8. Amazon Comprehend laddar ner transformerade data från prepped_data prefix i Amazon S3 för att träna den anpassade klassificeringsmodellen.
  9. När modellutbildningen är klar laddar Amazon Comprehend upp model.tar.gz fil till output_data prefix för S3-skopan. Den genomsnittliga slutföringstiden för att träna denna anpassade klassificeringsmodell är cirka 10 timmar.
  10. Amazon S3-uppladdningsutlösaren anropar extract_comprehend_model_name_lambda funktion, som hämtar den anpassade klassificeringsmodellen ARN.
  11. Funktionen extraherar den anpassade klassificeringsmodellen ARN från S3-händelsenyttolasten och svaret på list-document-classifiers ring upp.
  12. Funktionen skickar den anpassade klassificeringsmodellen ARN till e-postadressen som du hade prenumererat på tidigare som en del av processen för att skapa träningsstack. Du använder sedan denna ARN för att distribuera slutledningsstacken.

Denna distribution skapar slutledningsstacken, som visas i följande figur. Slutledningsstacken ger dig ett REST API säkrat av en AWS identitets- och åtkomsthantering (IAM)-auktoriserare, som du sedan kan använda för att generera konfidenspoäng för etiketterna baserat på den inmatade texten från en tredjepartsapplikation eller klientdator.

Inferensstackarkitektur

Förutsättningar

För denna demo bör du ha följande förutsättningar:

  • An AWS-konto.
  • Python 3.7 eller senare, node.jsoch i utvecklingsmaskinen. AWS CDK använder specifika versioner av Node.js (>=10.13.0, förutom version 13.0.0 – 13.6.0). En version i aktivt långtidsstöd (LTS) rekommenderas.
    För att installera den aktiva LTS-versionen av Node.js kan du använda följande installera skript för nvm Och använda nvm till installera versionen av Node.js LTS. Du kan också installera den nuvarande aktiva LTS Node.js via pakethanteraren beroende på vilket operativsystem du väljer.

    För macOS kan du installera Node.js via pakethanteraren med följande instruktioner.

    För Windows kan du installera Node.js via pakethanteraren med följande instruktioner.

  • AWS CDK v2 är förinstallerat om du använder en AWS Cloud9 ID. Om du använder AWS Cloud9 IDE kan du hoppa över det här steget. Om du inte har AWS CDK installerat i utvecklingsmaskinen installerar du AWS CDK v2 globalt med kommandot Node Package Manager npm install -g aws-cdk. Detta steg kräver att Node.js är installerat i utvecklingsmaskinen.
  • Konfigurera dina AWS-uppgifter för att komma åt och skapa AWS-resurser med AWS CDK. För instruktioner, se Ange autentiseringsuppgifter och region.
  • ladda ner SEOSS dataset bestående av krav, buggrapporter, kodhistorik och spårningslänkar för 33 mjukvaruprojekt med öppen källkod. Spara filen dataverse_files.zip på din lokala maskin.

SEOSS dataset

Distribuera AWS CDK-utbildningsstacken

För AWS CDK-distribution börjar vi med utbildningsstacken. Slutför följande steg:

  1. Klona GitHub-förvaret:
$ git clone https://github.com/aws-samples/amazon-comprehend-custom-automate-classification-it-service-request.git

  1. Navigera till amazon-comprehend-custom-automate-classification-it-service-request mapp:
$ cd amazon-comprehend-custom-automate-classification-it-service-request/

Alla följande kommandon körs inom amazon-comprehend-custom-automate-classification-it-service-request katalog.

  1. I katalogen amazon-comprehend-custom-automate-classification-it-service-request, initiera den virtuella Python-miljön och installera requirements.txt med pip:
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -r requirements.txt

  1. Om du använder AWS CDK i ett specifikt AWS-konto och område för första gången, se instruktionerna för starta upp din AWS CDK-miljö:
$ cdk bootstrap aws:///

  1. Syntetisera CloudFormation-mallarna för den här lösningen med hjälp av cdk synth Och använda cdk deploy för att skapa AWS-resurserna som nämnts tidigare:
$ cdk synth
$ cdk deploy VPCStack EFSStack S3Stack SNSStack ExtractLoadTransformEndPointCreateStack --parameters SNSStack:emailaddressarnnotification=

Efter att du gått in cdk deploy, frågar AWS CDK om du vill distribuera ändringar för var och en av stackarna som anropas i kommandot cdk deploy.

  1. ange y för var och en av uppmaningarna om att skapa stack, skapar cdk-deployeringssteget dessa stackar. Prenumerera på den e-postadress du uppger för SNS-ämnet som skapats som en del av cdk-distributionen.
  2. När cdk-distributionen är klar skapar du en mapp som heter raw_data i S3-skopan comprehendcustom---s3stack.
  3. Ladda upp SEOSS-datauppsättningen dataverse_files.zip som du laddade ner tidigare till den här mappen.

När uppladdningen är klar anropar lösningen etl_lambda funktion med hjälp av en Amazon S3-händelsetrigger för att starta extrahera, transformera och ladda (ETL) processen. Efter att ETL-processen har slutförts framgångsrikt skickas ett meddelande till SNS-ämnet, som anropar train_classifier_lambda fungera. Den här funktionen startar en Amazon Comprehend anpassad klassificeringsmodellutbildning. Beroende på om du tränar din modell på den fullständiga SEOSS-datauppsättningen, kan utbildningen ta upp till 10 timmar. När utbildningsprocessen är klar laddar Amazon Comprehend upp model.tar.gz fil till output_data prefix i S3-skopan.

Denna uppladdning utlöser extract_comprehend_model_name_lambda funktion med hjälp av en S3-händelseutlösare som extraherar den anpassade klassificeringsmodellen ARN och skickar den till den e-postadress du hade prenumererat på tidigare. Denna anpassade klassificeringsmodell ARN används sedan för att skapa slutledningsstacken. När modellutbildningen är klar kan du se prestandamåtten för den anpassade klassificeringsmodellen genom att navigera till avsnittet versionsdetaljer i Amazon Comprehend-konsolen (se följande skärmdump) eller genom att använda Amazon Comprehend Boto3 SDK.

Prestandamått

Distribuera AWS CDK-inferensstacken

Nu är du redo att distribuera slutledningsstacken.

  1. Kopiera den anpassade klassificeringsmodellen ARN från e-postmeddelandet du fick och använd följande cdk deploy kommando för att skapa slutledningsstacken.

Detta kommando distribuerar ett API Gateway REST API säkrat av en IAM-auktoriserare, som du använder för att sluta med ett AWS-användar-ID eller IAM-roll som bara har execute-api:Invoke IAM-privilegiet. Följande cdk deploy-kommando distribuerar slutledningsstacken. Denna stack använder AWS CDK leverantörsram att skapa Amazon Comprehend-slutpunkten som en anpassad resurs, så att skapa, ta bort och uppdatera Amazon Comprehend-slutpunkten kan göras som en del av slutsatsens livscykel med hjälp av kommandona cdk deploy och cdk destroy.

Eftersom du måste köra följande kommando efter att modellträningen är klar, vilket kan ta upp till 10 timmar, se till att du är i den virtuella Python-miljön som du initierade i ett tidigare steg och i amazon-comprehend-custom-automate-classification-it-service-request katalogen:

$ cdk deploy APIGWInferenceStack --parameters APIGWInferenceStack:documentclassifierarn=

Till exempel:

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

  1. Efter cdk deploy kommandot slutförs framgångsrikt, kopiera APIGWInferenceStack.ComprehendCustomClassfierInvokeAPI värde från konsolutgången och använd detta REST API för att generera slutsatser från en klientdator eller en tredjepartsapplikation som har execute-api:Invoke IAM-privilegium. Om du kör den här lösningen i us-east-2 är formatet för detta REST API https://.execute-api.us-east-2.amazonaws.com/prod/invokecomprehendV1.

Alternativt kan du använda testklienten apiclientinvoke.py från GitHub-förrådet för att skicka en begäran till den anpassade klassificeringsmodellen. Innan du använder apiclientinvoke.py, se till att följande förutsättningar är på plats:

  • Du har boto3 och requests Python-paketet installerat med pip på klientdatorn.
  • Du har konfigurerat Boto3-uppgifter. Som standard antar testklienten att en profil med namnet default finns och den har execute-api:Invoke IAM-behörighet på REST API.
  • SigV4Auth pekar på den region där REST API är utplacerat. Uppdatera värde till us-east-2 in apiclientinvoke.py om ditt REST API är distribuerat i us-east-2.
  • Du har tilldelat raw_data variabel med texten som du vill göra klassprediktionen eller klassificeringsbegäran på:
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."""

  • Du har tilldelat restapi variabel med REST API kopierat tidigare:

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

  1. Kör apiclientinvoke.py efter föregående uppdateringar:
$ python3 apiclientinvoke.py

Du får följande svar från den anpassade klassificeringsmodellen:

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

Amazon Comprehend returnerar konfidenspoäng för varje etikett som den har tillskrivit korrekt. Om tjänsten är mycket säker på en etikett kommer poängen att vara närmare 1. Därför, för Amazon Comprehends anpassade klassificeringsmodell som tränades med hjälp av SEOSS-datauppsättningen, förutsäger den anpassade klassificeringsmodellen att texten tillhör klassen SPARK. Denna klassificering som returneras av Amazon Comprehends anpassade klassificeringsmodell kan sedan användas för att klassificera IT-tjänstbegäranden eller förutsäga den korrekta kategorin av IT-tjänstbegäranden, och därigenom minska manuella fel eller felklassificering av tjänsteförfrågningar.

Städa upp

För att rensa upp alla resurser som skapats i det här inlägget som skapades som en del av träningsstacken och slutledningsstacken, använd följande kommando. Detta kommando tar bort alla AWS-resurser som skapats som en del av de tidigare kommandona för cdk-distribution:

$ cdk destroy --all

Slutsats

I det här inlägget visade vi dig hur företag kan implementera en övervakad ML-modell med hjälp av anpassad klassificering från Amazon Comprehend för att förutsäga kategorin av IT-tjänstförfrågningar baserat på antingen ämnet eller beskrivningen av begäran som lämnats av slutanvändaren. När du har byggt och tränat en anpassad klassificeringsmodell kan du köra realtidsanalys för anpassad klassificering genom att skapa en slutpunkt. Efter att du har distribuerat den här modellen till en Amazon Comprehend-slutpunkt kan den användas för att köra slutledningar i realtid av tredjepartsapplikationer eller andra klientmaskiner, inklusive IT-tjänsthanteringsverktyg. Du kan sedan använda denna slutledning för att förutsäga defektkategorin och minska manuella fel eller felklassificeringar av biljetter. Detta hjälper till att minska förseningar för biljettupplösning och ökar upplösningsnoggrannheten och kundproduktiviteten, vilket i slutändan resulterar i ökad kundnöjdhet.

Du kan utöka koncepten i det här inlägget till andra användningsfall, som att dirigera företag eller IT-biljetter till olika interna team som affärsavdelningar, kundtjänstagenter och Tier 2/3 IT-support, skapad antingen av slutanvändare eller genom automatiserad betyder att.

Referensprojekt

  • Rath, Michael; Mäder, Patrick, 2019, "SEOSS-datauppsättningen – krav, felrapporter, kodhistorik och spårningslänkar för hela projekt", https://doi.org/10.7910/DVN/PDDZ4Q, Harvard Dataverse, V1

Om författarna

Automatisera klassificering av IT-tjänstförfrågningar med en anpassad Amazon Comprehend klassificerare PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Arnab Chakraborty är Sr. Solutions Architect på AWS baserad i Cincinnati, Ohio. Han brinner för ämnen inom företags- och lösningsarkitektur, dataanalys, serverlös och maskininlärning. På fritiden tycker han om att titta på filmer, reseprogram och sport.

ViralAutomatisera klassificering av IT-tjänstförfrågningar med en anpassad Amazon Comprehend klassificerare PlatoBlockchain Data Intelligence. Vertikal sökning. Ai. Desai är en Principal Solutions Architect på AWS. Med mer än 25 års erfarenhet av informationsteknologi har han hjälpt kunder att använda AWS och modernisera deras arkitekturer. Han gillar att vandra och gillar att dyka djupt med kunder på allt som har med AWS att göra.

Tidsstämpel:

Mer från AWS maskininlärning