Automatisieren Sie die Klassifizierung von IT-Serviceanfragen mit dem benutzerdefinierten Klassifikator PlatoBlockchain Data Intelligence von Amazon Comprehend. Vertikale Suche. Ai.

Automatisieren Sie die Klassifizierung von IT-Serviceanfragen mit einem benutzerdefinierten Amazon Comprehend-Klassifikator

Unternehmen haben oft mit großen Mengen an IT-Serviceanfragen zu tun. Traditionell wird dem Antragsteller die Last aufgebürdet, für jede Ausgabe die richtige Kategorie auszuwählen. Ein manueller Fehler oder eine falsche Klassifizierung eines Tickets bedeutet normalerweise eine Verzögerung bei der Lösung der IT-Serviceanfrage. Dies kann zu einer verringerten Produktivität, einem Rückgang der Kundenzufriedenheit, einer Auswirkung auf Service Level Agreements (SLAs) und umfassenderen betrieblichen Auswirkungen führen. Wenn Ihr Unternehmen wächst, wird das Problem, die richtige Serviceanfrage an das richtige Team weiterzuleiten, noch wichtiger. Die Verwendung eines auf maschinellem Lernen (ML) und künstlicher Intelligenz basierenden Ansatzes kann bei den sich ständig weiterentwickelnden Anforderungen Ihres Unternehmens hilfreich sein.

Überwachtes ML ist ein Prozess, der beschriftete Datensätze und Ausgaben verwendet, um Lernalgorithmen darin zu trainieren, wie Daten klassifiziert oder ein Ergebnis vorhergesagt werden. Amazon verstehen ist ein Dienst zur Verarbeitung natürlicher Sprache (NLP), der ML verwendet, um wertvolle Einblicke und Verbindungen in Texten aufzudecken. Es bietet APIs, die von ML unterstützt werden, um Schlüsselphrasen, Entitäten, Stimmungsanalysen und mehr zu extrahieren.

In diesem Beitrag zeigen wir Ihnen, wie Sie ein überwachtes ML-Modell implementieren, das dabei helfen kann, IT-Serviceanfragen automatisch zu klassifizieren Amazon Verstehen Sie die benutzerdefinierte Klassifizierung. Die benutzerdefinierte Amazon Comprehend-Klassifizierung hilft Ihnen, Amazon Comprehend an Ihre spezifischen Anforderungen anzupassen, ohne dass die erforderlichen Fähigkeiten zum Erstellen ML-basierter NLP-Lösungen erforderlich sind. Mit Automatic ML oder AutoML erstellt die benutzerdefinierte Amazon Comprehend-Klassifizierung angepasste NLP-Modelle in Ihrem Namen unter Verwendung der von Ihnen bereitgestellten Trainingsdaten.

Lösungsübersicht

Um die Klassifizierung von IT-Serviceanfragen zu veranschaulichen, verwendet diese Lösung die SEOS-Datensatz. Dieser Datensatz ist ein systematisch abgerufener Datensatz, der aus 33 Open-Source-Softwareprojekten besteht, die eine große Anzahl von typisierten Artefakten und Spurenverbindungen zwischen ihnen enthalten. Diese Lösung verwendet die von Endbenutzern gemeldeten Problemdaten aus diesen 33 Open-Source-Projekten, Zusammenfassungen und Beschreibungen, um mit Amazon Comprehend ein benutzerdefiniertes Klassifizierungsmodell zu erstellen.

Dieser Beitrag zeigt, wie die Lösung mithilfe von implementiert und bereitgestellt wird AWS Cloud-Entwicklungskit (AWS CDK) in einem isolierten Amazon Virtual Private Cloud (Amazon VPC)-Umgebung, die nur aus privaten Subnetzen besteht. Wir verwenden den Code auch, um zu demonstrieren, wie Sie das AWS CDK verwenden können Anbieter Rahmen, ein Mini-Framework zum Implementieren eines Anbieters für AWS CloudFormation benutzerdefinierte Ressourcen zum Erstellen, Aktualisieren oder Löschen einer benutzerdefinierten Ressource, z. B. eines Amazon Comprehend-Endpunkts. Der Amazon Comprehend-Endpunkt umfasst verwaltete Ressourcen, die Ihr benutzerdefiniertes Modell für Echtzeit-Inferenz für einen Clientcomputer oder Anwendungen von Drittanbietern verfügbar machen. Das Code für diese Lösung ist auf Github verfügbar.

Sie verwenden das AWS CDK, um die Infrastruktur, den Anwendungscode und die Konfiguration für die Lösung bereitzustellen. Sie benötigen außerdem ein AWS-Konto und die Möglichkeit, AWS-Ressourcen zu erstellen. Sie verwenden das AWS CDK zum Erstellen von AWS-Ressourcen wie einer VPC mit privaten Subnetzen, Amazon VPC-Endpunkte, Amazon Elastic File System (Amazon EFS), ein Amazon Simple Notification Service (Amazon SNS) Thema, ein Amazon Simple Storage-Service (Amazon S3) Eimer, Amazon S3-Ereignisbenachrichtigungen und AWS Lambda Funktionen. Zusammen bilden diese AWS-Ressourcen den Trainingsstack, den Sie zum Erstellen und Trainieren des benutzerdefinierten Klassifikatormodells verwenden.

Nachdem Sie diese AWS-Ressourcen erstellt haben, laden Sie das SEOSS-Dataset herunter und laden das Dataset in den von der Lösung erstellten S3-Bucket hoch. Wenn Sie diese Lösung in der AWS-Region us-east-2 bereitstellen, lautet das Format des S3-Bucket-Namens comprehendcustom--us-east-2-s3stack. Die Lösung verwendet den mehrteiligen Upload-Trigger von Amazon S3, um eine Lambda-Funktion aufzurufen, die die Vorverarbeitung der Eingabedaten startet, und verwendet die vorverarbeiteten Daten, um den benutzerdefinierten Amazon Comprehend-Klassifikator zu trainieren, um das benutzerdefinierte Klassifikatormodell zu erstellen. Sie verwenden dann den Amazon-Ressourcennamen (ARN) des benutzerdefinierten Klassifikatormodells, um den Inferenz-Stack zu erstellen, der einen Amazon Comprehend-Endpunkt mit dem AWS CDK erstellt Anbieter Rahmen, die Sie dann für Rückschlüsse von einer Drittanbieteranwendung oder einem Clientcomputer verwenden können.

Das folgende Diagramm veranschaulicht die Architektur des Trainingsstapels.

Die Arbeitsschritte sind wie folgt:

  1. Laden Sie das SEOSS-Dataset in den S3-Bucket hoch, der als Teil des Bereitstellungsprozesses des Trainingsstacks erstellt wurde. Dadurch wird ein Ereignisauslöser erstellt, der die aufruft etl_lambda Funktion.
  2. Das etl_lambda -Funktion lädt den Rohdatensatz von Amazon S3 auf Amazon EFS herunter.
  3. Das etl_lambda -Funktion führt die Datenvorverarbeitungsaufgabe des SEOSS-Datensatzes aus.
  4. Wenn die Funktionsausführung abgeschlossen ist, werden die transformierten Daten mit hochgeladen prepped_data Präfix für den S3-Bucket.
  5. Nachdem das Hochladen der transformierten Daten abgeschlossen ist, wird eine erfolgreiche ETL-Abschlussmeldung an Amazon SNS gesendet.
  6. In Amazon Comprehend können Sie Ihre Dokumente mit zwei Modi klassifizieren: Multi-Class oder Multi-Label. Der Mehrklassenmodus identifiziert eine und nur eine Klasse für jedes Dokument, und der Mehretikettenmodus identifiziert ein oder mehrere Etiketten für jedes Dokument. Da wir für jedes Dokument eine einzelne Klasse identifizieren möchten, trainieren wir das benutzerdefinierte Klassifikatormodell im Mehrklassenmodus. Amazon SNS löst die aus train_classifier_lambda -Funktion, die das Amazon Comprehend-Klassifikatortraining in einem Mehrklassenmodus initiiert.
  7. Das train_classifier_lambda -Funktion initiiert das Amazon Comprehend-Training für benutzerdefinierte Klassifikatoren.
  8. Amazon Comprehend lädt die transformierten Daten aus der herunter prepped_data Präfix in Amazon S3, um das benutzerdefinierte Klassifikatormodell zu trainieren.
  9. Wenn das Modelltraining abgeschlossen ist, lädt Amazon Comprehend die model.tar.gz Datei an die output_data Präfix des S3-Buckets. Die durchschnittliche Abschlusszeit zum Trainieren dieses benutzerdefinierten Klassifikatormodells beträgt ungefähr 10 Stunden.
  10. Der Amazon S3-Upload-Trigger ruft die extract_comprehend_model_name_lambda -Funktion, die den benutzerdefinierten Klassifizierungsmodell-ARN abruft.
  11. Die Funktion extrahiert den benutzerdefinierten Klassifizierungsmodell-ARN aus der S3-Ereignisnutzlast und der Antwort von list-document-classifiers Anruf.
  12. Die Funktion sendet den ARN des benutzerdefinierten Klassifikatormodells an die E-Mail-Adresse, die Sie zuvor im Rahmen der Erstellung des Trainingsstacks abonniert hatten. Anschließend verwenden Sie diesen ARN, um den Inferenzstapel bereitzustellen.

Diese Bereitstellung erstellt den Inferenzstapel, wie in der folgenden Abbildung dargestellt. Der Inferenzstapel stellt Ihnen eine durch eine gesicherte REST-API zur Verfügung AWS Identity and Access Management and (IAM)-Genehmiger, den Sie dann verwenden können, um Konfidenzwerte der Bezeichnungen basierend auf dem Eingabetext zu generieren, der von einer Drittanbieteranwendung oder einem Clientcomputer bereitgestellt wird.

Inferenz-Stack-Architektur

Voraussetzungen:

Für diese Demo sollten Sie die folgenden Voraussetzungen mitbringen:

  • An AWS-Konto.
  • Python 3.7 oder höher, Node.js und Git in der Entwicklungsmaschine. Das AWS CDK verwendet bestimmte Versionen von Node.js (>=10.13.0, außer Version 13.0.0 – 13.6.0). Eine Version im aktiven Langzeitsupport (LTS) wird empfohlen.
    Um die aktive LTS-Version von Node.js zu installieren, können Sie Folgendes verwenden Installationsskript für nvm Und verwenden nvm zu installieren die Node.js LTS-Version. Je nach Betriebssystem Ihrer Wahl können Sie auch das aktuell aktive LTS Node.js per Paketmanager installieren.

    Für macOS können Sie Node.js wie folgt über den Paketmanager installieren Anleitung.

    Für Windows können Sie Node.js wie folgt über den Paketmanager installieren Anleitung.

  • AWS CDK v2 ist vorinstalliert, wenn Sie eine verwenden AWS Cloud9 IDE. Wenn Sie AWS Cloud9 IDE verwenden, können Sie diesen Schritt überspringen. Wenn Sie das AWS CDK nicht auf dem Entwicklungscomputer installiert haben, installieren Sie AWS CDK v2 global mit dem Node Package Manager-Befehl npm install -g aws-cdk. Für diesen Schritt muss Node.js auf dem Entwicklungscomputer installiert sein.
  • Konfigurieren Sie Ihre AWS-Anmeldeinformationen, um mithilfe des AWS CDK auf AWS-Ressourcen zuzugreifen und diese zu erstellen. Anweisungen finden Sie unter Angeben von Anmeldeinformationen und Region.
  • Laden Sie die SEOS-Datensatz bestehend aus Anforderungen, Fehlerberichten, Codeverlauf und Ablaufverfolgungslinks von 33 Open-Source-Softwareprojekten. Speicher die Datei dataverse_files.zip auf Ihrem lokalen Computer.

SEOS-Datensatz

Stellen Sie den AWS CDK-Trainingsstack bereit

Für die AWS CDK-Bereitstellung beginnen wir mit dem Trainingsstack. Führen Sie die folgenden Schritte aus:

  1. Klonen Sie das GitHub-Repository:
$ git clone https://github.com/aws-samples/amazon-comprehend-custom-automate-classification-it-service-request.git

  1. Navigieren Sie zu der amazon-comprehend-custom-automate-classification-it-service-request Ordner:
$ cd amazon-comprehend-custom-automate-classification-it-service-request/

Alle folgenden Befehle werden innerhalb der ausgeführt amazon-comprehend-custom-automate-classification-it-service-request Verzeichnis.

  1. Initialisieren Sie im Verzeichnis amazon-comprehend-custom-automate-classification-it-service-request die virtuelle Python-Umgebung und installieren Sie requirements.txt mit pip:
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -r requirements.txt

  1. Wenn Sie das AWS CDK zum ersten Mal in einem bestimmten AWS-Konto und einer bestimmten Region verwenden, lesen Sie die Anweisungen für Bootstrapping Ihrer AWS CDK-Umgebung:
$ cdk bootstrap aws:///

  1. Synthetisieren Sie die CloudFormation-Vorlagen für diese Lösung mit cdk synth Und verwenden cdk deploy um die zuvor erwähnten AWS-Ressourcen zu erstellen:
$ cdk synth
$ cdk deploy VPCStack EFSStack S3Stack SNSStack ExtractLoadTransformEndPointCreateStack --parameters SNSStack:emailaddressarnnotification=

Nachdem Sie eingetreten sind cdk deploy, fragt das AWS CDK, ob Sie Änderungen für jeden der im cdk deploy-Befehl aufgerufenen Stacks bereitstellen möchten.

  1. Enter y für jede Aufforderung zur Stack-Erstellung erstellt der cdk-Bereitstellungsschritt diese Stacks. Abonnieren Sie die von Ihnen angegebene E-Mail-Adresse für das SNS-Thema, das im Rahmen der cdk-Bereitstellung erstellt wurde.
  2. Nachdem die cdk-Bereitstellung erfolgreich abgeschlossen wurde, erstellen Sie einen Ordner mit dem Namen raw_data im S3-Bucket comprehendcustom---s3stack.
  3. Laden Sie den SEOSS-Datensatz hoch dataverse_files.zip die Sie zuvor in diesen Ordner heruntergeladen haben.

Nachdem der Upload abgeschlossen ist, ruft die Lösung die etl_lambda Funktion, die einen Amazon S3-Ereignisauslöser verwendet, um den Extraktions-, Transformations- und Ladeprozess (ETL) zu starten. Nachdem der ETL-Prozess erfolgreich abgeschlossen wurde, wird eine Nachricht an das SNS-Thema gesendet, das die aufruft train_classifier_lambda Funktion. Diese Funktion löst ein benutzerdefiniertes Klassifikatormodelltraining von Amazon Comprehend aus. Je nachdem, ob Sie Ihr Modell mit dem vollständigen SEOSS-Datensatz trainieren, kann das Training bis zu 10 Stunden dauern. Wenn der Trainingsprozess abgeschlossen ist, lädt Amazon Comprehend die model.tar.gz Datei an die output_data Präfix im S3-Bucket.

Dieser Upload löst das aus extract_comprehend_model_name_lambda Funktion mit einem S3-Ereignisauslöser, der den ARN des benutzerdefinierten Klassifikatormodells extrahiert und an die E-Mail-Adresse sendet, die Sie zuvor abonniert haben. Dieser benutzerdefinierte Klassifizierungsmodell-ARN wird dann verwendet, um den Inferenzstapel zu erstellen. Wenn das Modelltraining abgeschlossen ist, können Sie die Leistungsmetriken des benutzerdefinierten Klassifikatormodells anzeigen, indem Sie zum Abschnitt mit den Versionsdetails in der Amazon Comprehend-Konsole navigieren (siehe folgenden Screenshot) oder indem Sie Amazon Comprehend verwenden Boto3-SDK.

Leistungskennzahlen

Stellen Sie den AWS CDK-Inferenz-Stack bereit

Jetzt können Sie den Inferenzstapel bereitstellen.

  1. Kopieren Sie den benutzerdefinierten Klassifizierungsmodell-ARN aus der E-Mail, die Sie erhalten haben, und verwenden Sie Folgendes cdk deploy Befehl zum Erstellen des Inferenzstapels.

Dieser Befehl stellt eine durch einen IAM-Genehmiger gesicherte API Gateway-REST-API bereit, die Sie für Rückschlüsse mit einer AWS-Benutzer-ID oder IAM-Rolle verwenden, die nur über die Berechtigung „execute-api:Invoke IAM“ verfügt. Der folgende cdk deploy-Befehl stellt den Inferenzstapel bereit. Dieser Stack verwendet das AWS CDK Anbieter Rahmen um den Amazon Comprehend-Endpunkt als benutzerdefinierte Ressource zu erstellen, sodass das Erstellen, Löschen und Aktualisieren des Amazon Comprehend-Endpunkts als Teil des Inferenz-Stack-Lebenszyklus mit den Befehlen cdk deploy und cdk destroy erfolgen kann.

Da Sie den folgenden Befehl nach Abschluss des Modelltrainings ausführen müssen, was bis zu 10 Stunden dauern kann, stellen Sie sicher, dass Sie sich in der virtuellen Python-Umgebung befinden, die Sie in einem früheren Schritt initialisiert haben, und in der amazon-comprehend-custom-automate-classification-it-service-request Verzeichnis:

$ cdk deploy APIGWInferenceStack --parameters APIGWInferenceStack:documentclassifierarn=

Beispielsweise:

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

  1. Nach dem cdk deploy Befehl erfolgreich abgeschlossen wurde, kopieren Sie die APIGWInferenceStack.ComprehendCustomClassfierInvokeAPI Wert aus der Konsolenausgabe, und verwenden Sie diese REST-API, um Rückschlüsse von einem Clientcomputer oder einer Drittanbieteranwendung zu generieren, die über execute-api:Invoke IAM-Privileg. Wenn Sie diese Lösung in us-east-2 ausführen, lautet das Format dieser REST-API https://.execute-api.us-east-2.amazonaws.com/prod/invokecomprehendV1.

Alternativ können Sie den Testclient verwenden apiclientinvoke.py aus dem GitHub-Repository, um eine Anfrage an das benutzerdefinierte Klassifikatormodell zu senden. Stellen Sie vor der Verwendung von apiclientinvoke.py sicher, dass die folgenden Voraussetzungen erfüllt sind:

  • Du hast die boto3 und requests Python-Paket, das mit pip auf dem Clientcomputer installiert wurde.
  • Sie haben Boto3-Anmeldeinformationen konfiguriert. Standardmäßig geht der Testclient davon aus, dass ein Profil mit dem Namen default vorhanden ist und über die execute-api:Invoke IAM-Berechtigung für die REST-API.
  • SigV4Auth verweist auf die Region, in der die REST-API bereitgestellt wird. Aktualisieren Sie die Wert zu us-east-2 in apiclientinvoke.py wenn Ihre REST-API in us-east-2 bereitgestellt wird.
  • Sie haben die zugewiesen raw_data Variable mit dem Text, zu dem Sie die Klassenvorhersage oder die Einstufungsanfrage machen möchten:
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."""

  • Sie haben die zugewiesen restapi Variable mit der zuvor kopierten REST-API:

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

  1. Führen Sie die apiclientinvoke.py nach den vorherigen Updates:
$ python3 apiclientinvoke.py

Sie erhalten die folgende Antwort vom benutzerdefinierten Klassifikatormodell:

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

Amazon Comprehend gibt Konfidenzwerte für jedes Etikett zurück, das es korrekt zugeordnet hat. Wenn der Service in Bezug auf eine Bezeichnung sehr zuversichtlich ist, liegt die Punktzahl näher bei 1. Daher sagt das benutzerdefinierte Klassifikatormodell für das benutzerdefinierte Klassifikatormodell von Amazon Comprehend, das mit dem SEOSS-Datensatz trainiert wurde, voraus, dass der Text zur Klasse SPARK gehört. Diese vom benutzerdefinierten Klassifizierungsmodell von Amazon Comprehend zurückgegebene Klassifizierung kann dann verwendet werden, um die IT-Serviceanfragen zu klassifizieren oder die richtige Kategorie der IT-Serviceanfragen vorherzusagen, wodurch manuelle Fehler oder Fehlklassifizierungen von Serviceanfragen reduziert werden.

Aufräumen

Verwenden Sie den folgenden Befehl, um alle in diesem Beitrag erstellten Ressourcen zu bereinigen, die als Teil des Trainingsstapels und des Inferenzstapels erstellt wurden. Dieser Befehl löscht alle AWS-Ressourcen, die als Teil der vorherigen cdk-Bereitstellungsbefehle erstellt wurden:

$ cdk destroy --all

Zusammenfassung

In diesem Beitrag haben wir Ihnen gezeigt, wie Unternehmen ein überwachtes ML-Modell mithilfe der benutzerdefinierten Amazon Comprehend-Klassifizierung implementieren können, um die Kategorie von IT-Serviceanfragen entweder basierend auf dem Betreff oder der Beschreibung der vom Endbenutzer eingereichten Anfrage vorherzusagen. Nachdem Sie ein benutzerdefiniertes Klassifikatormodell erstellt und trainiert haben, können Sie eine Echtzeitanalyse für die benutzerdefinierte Klassifizierung ausführen, indem Sie einen Endpunkt erstellen. Nachdem Sie dieses Modell auf einem Amazon Comprehend-Endpunkt bereitgestellt haben, kann es verwendet werden, um Echtzeit-Inferenz durch Anwendungen von Drittanbietern oder andere Client-Computer, einschließlich IT-Service-Management-Tools, auszuführen. Sie können diese Inferenz dann verwenden, um die Fehlerkategorie vorherzusagen und manuelle Fehler oder falsche Klassifizierungen von Tickets zu reduzieren. Dies trägt dazu bei, Verzögerungen bei der Ticketlösung zu reduzieren und die Auflösungsgenauigkeit und Kundenproduktivität zu erhöhen, was letztendlich zu einer höheren Kundenzufriedenheit führt.

Sie können die Konzepte in diesem Beitrag auf andere Anwendungsfälle ausdehnen, z. B. das Weiterleiten von Geschäfts- oder IT-Tickets an verschiedene interne Teams wie Geschäftsabteilungen, Kundendienstmitarbeiter und Tier-2/3-IT-Support, die entweder von Endbenutzern oder automatisiert erstellt wurden meint.

Bibliographie

  • Rath, Michael; Mäder, Patrick, 2019, „Der SEOSS-Datensatz – Anforderungen, Fehlerberichte, Code-Historie und Trace-Links für ganze Projekte“, https://doi.org/10.7910/DVN/PDDZ4Q, Harvard Dataverse, V1

Über die Autoren

Automatisieren Sie die Klassifizierung von IT-Serviceanfragen mit dem benutzerdefinierten Klassifikator PlatoBlockchain Data Intelligence von Amazon Comprehend. Vertikale Suche. Ai.Arnab Chakraborty ist Senior Solutions Architect bei AWS mit Sitz in Cincinnati, Ohio. Er beschäftigt sich leidenschaftlich mit Themen in den Bereichen Enterprise & Solution Architecture, Data Analytics, Serverless und Machine Learning. In seiner Freizeit schaut er gerne Filme, Reisesendungen und Sport.

ViralAutomatisieren Sie die Klassifizierung von IT-Serviceanfragen mit dem benutzerdefinierten Klassifikator PlatoBlockchain Data Intelligence von Amazon Comprehend. Vertikale Suche. Ai. Desai ist Principal Solutions Architect bei AWS. Mit mehr als 25 Jahren Erfahrung in der Informationstechnologie hat er Kunden bei der Einführung von AWS und der Modernisierung ihrer Architekturen unterstützt. Er wandert gerne und taucht gerne mit Kunden in alle AWS-Fragen ein.

Zeitstempel:

Mehr von AWS Maschinelles Lernen