Automate classification of IT service requests with an Amazon Comprehend custom classifier PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Automatizați clasificarea solicitărilor de servicii IT cu un clasificator personalizat Amazon Comprehend

Întreprinderile se confruntă adesea cu volume mari de solicitări de servicii IT. În mod tradițional, solicitantul îi revine sarcina de a alege categoria corectă pentru fiecare problemă. O eroare manuală sau o clasificare greșită a unui bilet înseamnă de obicei o întârziere în soluționarea cererii de serviciu IT. Acest lucru poate duce la o productivitate redusă, o scădere a satisfacției clienților, un impact asupra acordurilor de nivel de servicii (SLA) și impact operațional mai amplu. Pe măsură ce întreprinderea dvs. crește, problema primirii cererii de servicii potrivite către echipa potrivită devine și mai importantă. Utilizarea unei abordări bazate pe învățarea automată (ML) și pe inteligența artificială poate ajuta la nevoile în continuă evoluție ale întreprinderii dvs.

ML supravegheat este un proces care utilizează seturi de date și rezultate etichetate pentru a antrena algoritmi de învățare despre cum să clasifice datele sau să prezică un rezultat. Amazon Comprehend este un serviciu de procesare a limbajului natural (NLP) care utilizează ML pentru a descoperi informații și conexiuni valoroase în text. Oferă API-uri bazate pe ML pentru a extrage expresii cheie, entități, analize de sentiment și multe altele.

În această postare, vă arătăm cum să implementați un model ML supravegheat care poate ajuta la clasificarea automată a cererilor de servicii IT folosind Amazon Comprehend clasificare personalizată. Clasificarea personalizată Amazon Comprehend vă ajută să personalizați Amazon Comprehend pentru cerințele dvs. specifice, fără setul de abilități necesare pentru a construi soluții NLP bazate pe ML. Cu ML automat sau AutoML, clasificarea personalizată Amazon Comprehend creează modele NLP personalizate în numele dvs., folosind datele de instruire pe care le furnizați.

Prezentare generală a soluției

Pentru a ilustra clasificarea cererilor de servicii IT, această soluție utilizează Setul de date SEOSS. Acest set de date este un set de date recuperat sistematic, format din 33 de proiecte software open-source, care conține un număr mare de artefacte tipizate și legături de urmărire între ele. Această soluție utilizează datele problemelor din aceste 33 de proiecte open-source, rezumate și descrieri, așa cum sunt raportate de utilizatorii finali, pentru a construi un model personalizat de clasificare folosind Amazon Comprehend.

Această postare demonstrează cum să implementați și să implementați soluția folosind Kit AWS Cloud Development (AWS CDK) într-un mod izolat Cloud virtual virtual Amazon Mediu (Amazon VPC) constând numai din subrețele private. De asemenea, folosim codul pentru a demonstra cum puteți utiliza AWS CDK cadrul furnizorului, un mini-cadru pentru implementarea unui furnizor pentru Formarea AWS Cloud resurse personalizate pentru a crea, actualiza sau șterge o resursă personalizată, cum ar fi un punct final Amazon Comprehend. Punctul final Amazon Comprehend include resurse gestionate care fac modelul dvs. personalizat disponibil pentru inferență în timp real către o mașină client sau aplicații terță parte. The cod pentru această soluție este disponibil pe Github.

Utilizați AWS CDK pentru a implementa infrastructura, codul aplicației și configurația pentru soluție. De asemenea, aveți nevoie de un cont AWS și de abilitatea de a crea resurse AWS. Utilizați AWS CDK pentru a crea resurse AWS, cum ar fi un VPC cu subrețele private, Puncte finale Amazon VPC, Sistem de fișiere elastice Amazon (Amazon EFS), an Serviciul de notificare simplă Amazon (Amazon SNS) subiect, an Serviciul Amazon de stocare simplă găleată (Amazon S3), Notificări de evenimente Amazon S3, și AWS Lambdas funcții. În mod colectiv, aceste resurse AWS constituie stiva de instruire, pe care o utilizați pentru a construi și a antrena modelul de clasificator personalizat.

După ce creați aceste resurse AWS, descărcați setul de date SEOSS și încărcați setul de date în compartimentul S3 creat de soluție. Dacă implementați această soluție în regiunea AWS us-east-2, formatul numelui compartimentului S3 este comprehendcustom--us-east-2-s3stack. Soluția folosește declanșatorul de încărcare în mai multe părți Amazon S3 pentru a invoca o funcție Lambda care începe preprocesarea datelor de intrare și utilizează datele preprocesate pentru a antrena clasificatorul personalizat Amazon Comprehend pentru a crea modelul de clasificator personalizat. Apoi utilizați Amazon Resource Name (ARN) al modelului de clasificator personalizat pentru a crea stiva de inferență, care creează un punct final Amazon Comprehend folosind AWS CDK cadrul furnizorului, pe care apoi îl puteți utiliza pentru deduceri dintr-o aplicație terță parte sau un computer client.

Următoarea diagramă ilustrează arhitectura stivei de antrenament.

Pașii fluxului de lucru sunt următorii:

  1. Încărcați setul de date SEOSS în compartimentul S3 creat ca parte a procesului de implementare a stivei de instruire. Acest lucru creează un declanșator de eveniment care invocă etl_lambda Funcția.
  2. etl_lambda funcția descarcă setul de date brute din Amazon S3 în Amazon EFS.
  3. etl_lambda funcția îndeplinește sarcina de preprocesare a datelor din setul de date SEOSS.
  4. Când execuția funcției se încheie, încarcă datele transformate cu prepped_data prefix la găleată S3.
  5. După ce încărcarea datelor transformate este completă, un mesaj de finalizare ETL cu succes este trimis către Amazon SNS.
  6. În Amazon Comprehend, vă puteți clasifica documentele folosind două moduri: cu mai multe clase sau cu mai multe etichete. Modul cu mai multe clase identifică una și o singură clasă pentru fiecare document, iar modul cu mai multe etichete identifică una sau mai multe etichete pentru fiecare document. Deoarece dorim să identificăm o singură clasă pentru fiecare document, antrenăm modelul de clasificator personalizat în modul multi-clasă. Amazon SNS declanșează train_classifier_lambda funcția, care inițiază instruirea clasificatorului Amazon Comprehend într-un mod cu mai multe clase.
  7. train_classifier_lambda funcția inițiază instruirea Amazon Comprehend cu clasificare personalizată.
  8. Amazon Comprehend descarcă datele transformate din prepped_data prefix în Amazon S3 pentru a antrena modelul de clasificator personalizat.
  9. Când instruirea modelului este finalizată, Amazon Comprehend încarcă fișierul model.tar.gz dosar la output_data prefixul găleții S3. Timpul mediu de finalizare pentru instruirea acestui model de clasificator personalizat este de aproximativ 10 ore.
  10. Declanșatorul de încărcare Amazon S3 invocă extract_comprehend_model_name_lambda funcția, care preia ARN-ul modelului de clasificator personalizat.
  11. Funcția extrage ARN-ul modelului de clasificator personalizat din sarcina utilă a evenimentului S3 și răspunsul lui list-document-classifiers apel.
  12. Funcția trimite ARN-ul modelului de clasificator personalizat la adresa de e-mail la care v-ați abonat mai devreme ca parte a procesului de creare a stivei de antrenament. Apoi utilizați acest ARN pentru a implementa stiva de inferență.

Această implementare creează stiva de inferențe, așa cum se arată în figura următoare. Stiva de inferență vă oferă un API REST securizat de un Gestionarea identității și accesului AWS (IAM), pe care îl puteți utiliza apoi pentru a genera scoruri de încredere ale etichetelor pe baza textului de intrare furnizat de la o aplicație terță parte sau de la un computer client.

Arhitectura stivei de inferență

Cerințe preliminare

Pentru această demonstrație, ar trebui să aveți următoarele cerințe preliminare:

  • An Cont AWS.
  • Python 3.7 sau o versiune ulterioară, Node.js, și merge în mașina de dezvoltare. AWS CDK utilizează versiuni specifice de Node.js (>=10.13.0, cu excepția versiunii 13.0.0 – 13.6.0). Se recomandă o versiune în suport activ pe termen lung (LTS).
    Pentru a instala versiunea LTS activă a Node.js, puteți folosi următoarele script de instalare pentru nvm Și utilizarea nvm la instala versiunea LTS Node.js. De asemenea, puteți instala LTS Node.js activ curent prin managerul de pachete, în funcție de sistemul de operare ales.

    Pentru macOS, puteți instala Node.js prin managerul de pachete folosind următoarele instrucțiuni.

    Pentru Windows, puteți instala Node.js prin managerul de pachete folosind următoarele instrucțiuni.

  • AWS CDK v2 este preinstalat dacă utilizați un AWS Cloud9 IDE. Dacă utilizați AWS Cloud9 IDE, puteți sări peste acest pas. Dacă nu aveți AWS CDK instalat în mașina de dezvoltare, instalați AWS CDK v2 global folosind comanda Node Package Manager npm install -g aws-cdk. Acest pas necesită instalarea Node.js în mașina de dezvoltare.
  • Configurați-vă acreditările AWS pentru a accesa și crea resurse AWS utilizând AWS CDK. Pentru instrucțiuni, consultați Specificarea acreditărilor și a regiunii.
  • Descărcați Setul de date SEOSS constând din cerințe, rapoarte de erori, istoric de cod și legături de urmărire a 33 de proiecte software open-source. Salvați fișierul dataverse_files.zip pe aparatul local.

Setul de date SEOSS

Implementați stiva de instruire AWS CDK

Pentru implementarea AWS CDK, începem cu stiva de instruire. Parcurgeți următorii pași:

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

  1. Navigați către amazon-comprehend-custom-automate-classification-it-service-request pliant:
$ cd amazon-comprehend-custom-automate-classification-it-service-request/

Toate comenzile următoare sunt executate în amazon-comprehend-custom-automate-classification-it-service-request director.

  1. În directorul amazon-comprehend-custom-automate-classification-it-service-request, inițializați mediul virtual Python și instalați requirements.txt cu pip:
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -r requirements.txt

  1. Dacă utilizați AWS CDK într-un anumit cont AWS și într-o regiune pentru prima dată, consultați instrucțiunile pentru pornirea mediului dvs. AWS CDK:
$ cdk bootstrap aws:///

  1. Sintetizați șabloanele CloudFormation pentru această soluție folosind cdk synth Și utilizarea cdk deploy pentru a crea resursele AWS menționate mai devreme:
$ cdk synth
$ cdk deploy VPCStack EFSStack S3Stack SNSStack ExtractLoadTransformEndPointCreateStack --parameters SNSStack:emailaddressarnnotification=

După ce intri cdk deploy, AWS CDK vă solicită dacă doriți să implementați modificări pentru fiecare dintre stivele numite în comanda cdk deploy.

  1. Intrați y pentru fiecare dintre solicitările de creare a stivei, apoi pasul de implementare cdk creează aceste stive. Abonați-vă la adresa de e-mail furnizată de dvs. la subiectul SNS creat ca parte a implementării cdk.
  2. După ce cdk deploy s-a încheiat cu succes, creați un folder numit raw_data în găleata S3 comprehendcustom---s3stack.
  3. Încărcați setul de date SEOSS dataverse_files.zip pe care le-ați descărcat mai devreme în acest folder.

După ce încărcarea este completă, soluția invocă etl_lambda funcția utilizând un declanșator de eveniment Amazon S3 pentru a porni procesul de extragere, transformare și încărcare (ETL). După ce procesul ETL se încheie cu succes, este trimis un mesaj către subiectul SNS, care invocă train_classifier_lambda funcţie. Această funcție declanșează un antrenament al modelului de clasificator personalizat Amazon Comprehend. În funcție de modul în care vă instruiți modelul pe setul complet de date SEOSS, antrenamentul poate dura până la 10 ore. Când procesul de instruire este finalizat, Amazon Comprehend încarcă fișierul model.tar.gz dosar la output_data prefix în găleata S3.

Această încărcare declanșează extract_comprehend_model_name_lambda funcția utilizând un declanșator de eveniment S3 care extrage ARN-ul modelului de clasificator personalizat și îl trimite la adresa de e-mail la care v-ați abonat mai devreme. Acest model de clasificator personalizat ARN este apoi utilizat pentru a crea stiva de inferență. Când instruirea modelului este finalizată, puteți vizualiza valorile de performanță ale modelului de clasificator personalizat navigând la secțiunea cu detaliile versiunii din consola Amazon Comprehend (consultați următoarea captură de ecran) sau utilizând Amazon Comprehend Boto3 SDK.

Măsuri de performanță

Implementați stiva de inferențe AWS CDK

Acum sunteți gata să implementați stiva de inferențe.

  1. Copiați modelul de clasificator personalizat ARN din e-mailul primit și utilizați următoarele cdk deploy comandă pentru a crea stiva de inferențe.

Această comandă implementează un API REST API Gateway securizat de un autorizator IAM, pe care îl utilizați pentru a deduce un ID de utilizator AWS sau un rol IAM care are doar privilegiul execute-api:Invoke IAM. Următoarea comandă cdk deploy implementează stiva de inferență. Această stivă folosește AWS CDK cadrul furnizorului pentru a crea punctul final Amazon Comprehend ca resursă personalizată, astfel încât crearea, ștergerea și actualizarea punctului final Amazon Comprehend să se poată face ca parte a ciclului de viață al stivei de inferență folosind comenzile cdk deploy și cdk destroy.

Deoarece trebuie să rulați următoarea comandă după finalizarea antrenamentului de model, ceea ce poate dura până la 10 ore, asigurați-vă că vă aflați în mediul virtual Python pe care l-ați inițializat într-un pas anterior și în amazon-comprehend-custom-automate-classification-it-service-request director:

$ cdk deploy APIGWInferenceStack --parameters APIGWInferenceStack:documentclassifierarn=

De exemplu:

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

  1. După cdk deploy comanda s-a finalizat cu succes, copiați APIGWInferenceStack.ComprehendCustomClassfierInvokeAPI valoare din ieșirea consolei și utilizați acest API REST pentru a genera inferențe de la o mașină client sau o aplicație terță parte care are execute-api:Invoke privilegiul IAM. Dacă rulați această soluție în us-east-2, formatul acestui API REST este https://.execute-api.us-east-2.amazonaws.com/prod/invokecomprehendV1.

Alternativ, puteți utiliza clientul de testare apiclientinvoke.py din depozitul GitHub pentru a trimite o solicitare către modelul de clasificator personalizat. Înainte de a utiliza apiclientinvoke.py, asigurați-vă că sunt îndeplinite următoarele cerințe preliminare:

  • Tu ai boto3 și requests Pachetul Python instalat folosind pip pe computerul client.
  • Ați configurat acreditările Boto3. În mod implicit, clientul de testare presupune că este prezent un profil numit implicit și are execute-api:Invoke Privilegiul IAM pe API-ul REST.
  • SigV4Auth indică regiunea în care este implementat API-ul REST. Actualizați valoare pentru us-east-2 in apiclientinvoke.py dacă API-ul dvs. REST este implementat în us-east-2.
  • Ai atribuit raw_data variabilă cu textul pe care doriți să faceți predicția de clasă sau cererea de clasificare:
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."""

  • Ai atribuit restapi variabilă cu API-ul REST copiat mai devreme:

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

  1. Pornește apiclientinvoke.py după actualizările anterioare:
$ python3 apiclientinvoke.py

Primiți următorul răspuns de la modelul de clasificator personalizat:

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

Amazon Comprehend returnează scoruri de încredere pentru fiecare etichetă pe care a atribuit-o corect. Dacă serviciul are mare încredere în ceea ce privește o etichetă, scorul va fi mai aproape de 1. Prin urmare, pentru modelul de clasificator personalizat Amazon Comprehend care a fost antrenat utilizând setul de date SEOSS, modelul de clasificator personalizat prezice că textul aparține clasei SPARK. Această clasificare returnată de modelul de clasificare personalizat Amazon Comprehend poate fi apoi utilizată pentru a clasifica cererile de servicii IT sau pentru a prezice categoria corectă a solicitărilor de servicii IT, reducând astfel erorile manuale sau clasificarea greșită a solicitărilor de servicii.

A curăța

Pentru a curăța toate resursele create în această postare care au fost create ca parte a stivei de antrenament și a stivei de inferență, utilizați următoarea comandă. Această comandă șterge toate resursele AWS create ca parte a comenzilor anterioare cdk deploy:

$ cdk destroy --all

Concluzie

În această postare, v-am arătat cum companiile pot implementa un model ML supravegheat folosind clasificarea personalizată Amazon Comprehend pentru a prezice categoria solicitărilor de servicii IT pe baza subiectului sau a descrierii cererii transmise de utilizatorul final. După ce construiți și instruiți un model de clasificator personalizat, puteți rula analize în timp real pentru clasificarea personalizată prin crearea unui punct final. După ce implementați acest model într-un punct final Amazon Comprehend, acesta poate fi utilizat pentru a rula inferențe în timp real de către aplicații terțe sau alte mașini client, inclusiv instrumente de management al serviciilor IT. Puteți utiliza apoi această inferență pentru a prezice categoria de defect și pentru a reduce erorile manuale sau clasificările greșite ale biletelor. Acest lucru ajută la reducerea întârzierilor pentru rezolvarea biletelor și crește acuratețea rezoluției și productivitatea clienților, ceea ce duce în cele din urmă la o satisfacție sporită a clienților.

Puteți extinde conceptele din această postare la alte cazuri de utilizare, cum ar fi direcționarea biletelor de afaceri sau IT către diferite echipe interne, cum ar fi departamente de afaceri, agenți de servicii pentru clienți și suport IT de nivel 2/3, creat fie de utilizatorii finali, fie prin intermediul automatizării. mijloace.

Referinte

  • Rath, Michael; Mäder, Patrick, 2019, „Setul de date SEOSS – cerințe, rapoarte de eroare, istoric de cod și legături de urmărire pentru proiecte întregi”, https://doi.org/10.7910/DVN/PDDZ4Q, Harvard Dataverse, V1

Despre Autori

Automate classification of IT service requests with an Amazon Comprehend custom classifier PlatoBlockchain Data Intelligence. Vertical Search. Ai.Arnab Chakraborty este arhitect senior de soluții la AWS, cu sediul în Cincinnati, Ohio. Este pasionat de subiecte din arhitectura Enterprise & Solution, Data analytics, Serverless și Machine Learning. În timpul liber, îi place să se uite la filme, spectacole de călătorie și sport.

ViralAutomate classification of IT service requests with an Amazon Comprehend custom classifier PlatoBlockchain Data Intelligence. Vertical Search. Ai. Desai este arhitect principal de soluții la AWS. Cu peste 25 de ani de experiență în tehnologia informației, el a ajutat clienții să adopte AWS și să își modernizeze arhitecturile. Îi plac drumețiile și îi place să se scufunde cu clienții în toate aspectele AWS.

Timestamp-ul:

Mai mult de la Învățare automată AWS