Automatisez la classification des demandes de services informatiques avec un classificateur personnalisé Amazon Comprehend PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Automatisez la classification des demandes de service informatique avec un classificateur personnalisé Amazon Comprehend

Les entreprises traitent souvent de gros volumes de demandes de services informatiques. Traditionnellement, il incombe au demandeur de choisir la bonne catégorie pour chaque problème. Une erreur manuelle ou une mauvaise classification d'un ticket signifie généralement un retard dans la résolution de la demande de service informatique. Cela peut entraîner une réduction de la productivité, une diminution de la satisfaction client, un impact sur les accords de niveau de service (SLA) et des impacts opérationnels plus larges. Au fur et à mesure que votre entreprise se développe, le problème de transmettre la bonne demande de service à la bonne équipe devient encore plus important. L'utilisation d'une approche basée sur l'apprentissage automatique (ML) et l'intelligence artificielle peut aider à répondre aux besoins en constante évolution de votre entreprise.

Le ML supervisé est un processus qui utilise des ensembles de données et des sorties étiquetés pour former des algorithmes d'apprentissage sur la façon de classer les données ou de prédire un résultat. Amazon comprendre est un service de traitement du langage naturel (NLP) qui utilise le ML pour découvrir des informations et des connexions précieuses dans le texte. Il fournit des API alimentées par ML pour extraire des phrases clés, des entités, une analyse des sentiments, etc.

Dans cet article, nous vous montrons comment mettre en œuvre un modèle de ML supervisé qui peut aider à classer automatiquement les demandes de services informatiques à l'aide de Classification personnalisée Amazon Comprehend. La classification personnalisée Amazon Comprehend vous aide à personnaliser Amazon Comprehend en fonction de vos besoins spécifiques sans les compétences requises pour créer des solutions NLP basées sur ML. Avec le ML automatique, ou AutoML, la classification personnalisée Amazon Comprehend crée des modèles NLP personnalisés en votre nom, à l'aide des données de formation que vous fournissez.

Présentation de la solution

Pour illustrer la classification des demandes de service informatique, cette solution utilise le Ensemble de données SEOSS. Cet ensemble de données est un ensemble de données récupéré systématiquement composé de 33 projets de logiciels open source qui contient un grand nombre d'artefacts typés et de liens de trace entre eux. Cette solution utilise les données de problème de ces 33 projets open source, des résumés et des descriptions tels que rapportés par les utilisateurs finaux pour créer un modèle de classificateur personnalisé à l'aide d'Amazon Comprehend.

Cet article montre comment implémenter et déployer la solution à l'aide de Kit de développement AWS Cloud (AWS CDK) dans un environnement isolé Cloud privé virtuel Amazon (Amazon VPC) composé uniquement de sous-réseaux privés. Nous utilisons également le code pour montrer comment vous pouvez utiliser AWS CDK cadre du fournisseur, un mini-framework pour implémenter un fournisseur pour AWS CloudFormation ressources personnalisées pour créer, mettre à jour ou supprimer une ressource personnalisée, telle qu'un point de terminaison Amazon Comprehend. Le point de terminaison Amazon Comprehend inclut des ressources gérées qui rendent votre modèle personnalisé disponible pour une inférence en temps réel sur une machine cliente ou des applications tierces. La code pour cette solution est disponible sur Github.

Vous utilisez AWS CDK pour déployer l'infrastructure, le code d'application et la configuration de la solution. Vous avez également besoin d'un compte AWS et de la possibilité de créer des ressources AWS. Vous utilisez AWS CDK pour créer des ressources AWS telles qu'un VPC avec des sous-réseaux privés, Points de terminaison Amazon VPC, Système de fichiers Amazon Elastic (Amazon EFS), un Service de notification simple d'Amazon (Amazon SNS), une rubrique Service de stockage simple Amazon (Amazon S3) compartiment, Notifications d'événements Amazon S3et AWS Lambda les fonctions. Collectivement, ces ressources AWS constituent la pile de formation, que vous utilisez pour créer et former le modèle de classificateur personnalisé.

Après avoir créé ces ressources AWS, vous téléchargez l'ensemble de données SEOSS et chargez l'ensemble de données dans le compartiment S3 créé par la solution. Si vous déployez cette solution dans la région AWS us-east-2, le format du nom du compartiment S3 est comprehendcustom--us-east-2-s3stack. La solution utilise le déclencheur de téléchargement en plusieurs parties d'Amazon S3 pour appeler une fonction Lambda qui démarre le prétraitement des données d'entrée et utilise les données prétraitées pour former le classificateur personnalisé Amazon Comprehend afin de créer le modèle de classificateur personnalisé. Vous utilisez ensuite l'Amazon Resource Name (ARN) du modèle de classificateur personnalisé pour créer la pile d'inférence, qui crée un point de terminaison Amazon Comprehend à l'aide d'AWS CDK. cadre du fournisseur, que vous pouvez ensuite utiliser pour les inférences à partir d'une application tierce ou d'un ordinateur client.

Le diagramme suivant illustre l'architecture de la pile de formation.

Les étapes du flux de travail sont les suivantes :

  1. Chargez l'ensemble de données SEOSS dans le compartiment S3 créé dans le cadre du processus de déploiement de la pile de formation. Cela crée un déclencheur d'événement qui appelle le etl_lambda la fonction.
  2. La etl_lambda télécharge l'ensemble de données brutes d'Amazon S3 vers Amazon EFS.
  3. La etl_lambda La fonction effectue la tâche de prétraitement des données de l'ensemble de données SEOSS.
  4. Lorsque l'exécution de la fonction est terminée, elle télécharge les données transformées avec prepped_data préfixe au compartiment S3.
  5. Une fois le téléchargement des données transformées terminé, un message d'achèvement ETL réussi est envoyé à Amazon SNS.
  6. Dans Amazon Comprehend, vous pouvez classer vos documents en utilisant deux modes : multi-classes ou multi-étiquettes. Le mode multi-classes identifie une et une seule classe pour chaque document, et le mode multi-étiquettes identifie une ou plusieurs étiquettes pour chaque document. Parce que nous voulons identifier une seule classe pour chaque document, nous entraînons le modèle de classificateur personnalisé en mode multi-classes. Amazon SNS déclenche le train_classifier_lambda fonction, qui lance la formation du classificateur Amazon Comprehend en mode multi-classe.
  7. La train_classifier_lambda La fonction lance la formation du classificateur personnalisé Amazon Comprehend.
  8. Amazon Comprehend télécharge les données transformées à partir du prepped_data préfixe dans Amazon S3 pour former le modèle de classificateur personnalisé.
  9. Lorsque la formation du modèle est terminée, Amazon Comprehend télécharge le model.tar.gz fichier au output_data préfixe du compartiment S3. Le temps d'exécution moyen pour former ce modèle de classificateur personnalisé est d'environ 10 heures.
  10. Le déclencheur de chargement Amazon S3 appelle le extract_comprehend_model_name_lambda fonction, qui récupère l'ARN du modèle de classificateur personnalisé.
  11. La fonction extrait l'ARN du modèle de classificateur personnalisé de la charge utile de l'événement S3 et la réponse de list-document-classifiers appel.
  12. La fonction envoie l'ARN du modèle de classificateur personnalisé à l'adresse e-mail que vous avez souscrite précédemment dans le cadre du processus de création de la pile de formation. Vous utilisez ensuite cet ARN pour déployer la pile d'inférence.

Ce déploiement crée la pile d'inférence, comme illustré dans la figure suivante. La pile d'inférence vous fournit une API REST sécurisée par un Gestion des identités et des accès AWS (IAM), que vous pouvez ensuite utiliser pour générer des scores de confiance des étiquettes en fonction du texte d'entrée fourni à partir d'une application tierce ou d'un ordinateur client.

Architecture de la pile d'inférence

Pré-requis

Pour cette démo, vous devez avoir les prérequis suivants :

  • An Compte AWS.
  • Python 3.7 ou version ultérieure, Node.jset Git dans la machine de développement. Le CDK AWS utilise des versions spécifiques de Node.js (>=10.13.0, sauf pour la version 13.0.0 – 13.6.0). Une version en support actif à long terme (LTS) est recommandée.
    Pour installer la version LTS active de Node.js, vous pouvez utiliser les éléments suivants script d'installation en nvm et utilise nvm à installer la version Node.js LTS. Vous pouvez également installer le LTS Node.js actuellement actif via le gestionnaire de packages en fonction du système d'exploitation de votre choix.

    Pour macOS, vous pouvez installer Node.js via le gestionnaire de packages en utilisant ce qui suit Des instructions.

    Pour Windows, vous pouvez installer Node.js via le gestionnaire de packages en utilisant les éléments suivants Des instructions.

  • AWS CDK v2 est préinstallé si vous utilisez un AWSCloud9 IDE. Si vous utilisez AWS Cloud9 IDE, vous pouvez ignorer cette étape. Si vous n'avez pas installé AWS CDK sur la machine de développement, installez AWS CDK v2 globalement à l'aide de la commande Node Package Manager. npm install -g aws-cdk. Cette étape nécessite l'installation de Node.js sur la machine de développement.
  • Configurez vos informations d'identification AWS pour accéder et créer des ressources AWS à l'aide d'AWS CDK. Pour obtenir des instructions, reportez-vous à Spécification des informations d'identification et de la région.
  • Télécharger Ensemble de données SEOSS composé des exigences, des rapports de bogues, de l'historique du code et des liens de trace de 33 projets de logiciels open source. Enregistrez le fichier dataverse_files.zip sur votre machine locale.

Ensemble de données SEOSS

Déployer la pile de formation AWS CDK

Pour le déploiement d'AWS CDK, nous commençons par la pile de formation. Effectuez les étapes suivantes :

  1. Clonez le référentiel GitHub:
$ git clone https://github.com/aws-samples/amazon-comprehend-custom-automate-classification-it-service-request.git

  1. Accédez à la amazon-comprehend-custom-automate-classification-it-service-request dossier:
$ cd amazon-comprehend-custom-automate-classification-it-service-request/

Toutes les commandes suivantes sont exécutées dans le amazon-comprehend-custom-automate-classification-it-service-request répertoire.

  1. Dans le répertoire amazon-comprehend-custom-automate-classification-it-service-request, initialisez l'environnement virtuel Python et installez requirements.txt avec pip :
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -r requirements.txt

  1. Si vous utilisez le CDK AWS dans un compte et une région AWS spécifiques pour la première fois, consultez les instructions pour démarrage de votre environnement AWS CDK:
$ cdk bootstrap aws:///

  1. Synthétisez les modèles CloudFormation pour cette solution en utilisant cdk synth et utilise cdk deploy pour créer les ressources AWS mentionnées précédemment :
$ cdk synth
$ cdk deploy VPCStack EFSStack S3Stack SNSStack ExtractLoadTransformEndPointCreateStack --parameters SNSStack:emailaddressarnnotification=

Après avoir entré cdk deploy, l'AWS CDK vous demande si vous souhaitez déployer des modifications pour chacune des piles appelées dans la commande cdk deploy.

  1. Entrer y pour chacune des invites de création de pile, l'étape de déploiement cdk crée ces piles. Abonnez-vous à l'adresse e-mail que vous fournissez à la rubrique SNS créée dans le cadre du déploiement de cdk.
  2. Une fois le déploiement de cdk terminé, créez un dossier appelé raw_data dans le compartiment S3 comprehendcustom---s3stack.
  3. Télécharger le jeu de données SEOSS dataverse_files.zip que vous avez téléchargé précédemment dans ce dossier.

Une fois le téléchargement terminé, la solution appelle le etl_lambda fonction à l'aide d'un déclencheur d'événement Amazon S3 pour démarrer le processus d'extraction, de transformation et de chargement (ETL). Une fois le processus ETL terminé avec succès, un message est envoyé à la rubrique SNS, qui appelle le train_classifier_lambda fonction. Cette fonction déclenche une formation de modèle de classificateur personnalisé Amazon Comprehend. Selon que vous formez ou non votre modèle sur l'ensemble de données SEOSS complet, la formation peut prendre jusqu'à 10 heures. Lorsque le processus de formation est terminé, Amazon Comprehend télécharge le model.tar.gz fichier au output_data préfixe dans le compartiment S3.

Ce téléchargement déclenche le extract_comprehend_model_name_lambda à l'aide d'un déclencheur d'événement S3 qui extrait l'ARN du modèle de classificateur personnalisé et l'envoie à l'adresse e-mail à laquelle vous vous êtes abonné précédemment. Cet ARN de modèle de classificateur personnalisé est ensuite utilisé pour créer la pile d'inférence. Une fois la formation du modèle terminée, vous pouvez afficher les métriques de performances du modèle de classificateur personnalisé en accédant à la section des détails de la version dans la console Amazon Comprehend (voir la capture d'écran suivante) ou en utilisant Amazon Comprehend SDK Boto3.

Indicateurs de performance

Déployer la pile d'inférence AWS CDK

Vous êtes maintenant prêt à déployer la pile d'inférence.

  1. Copiez l'ARN du modèle de classificateur personnalisé à partir de l'e-mail que vous avez reçu et utilisez ce qui suit cdk deploy commande pour créer la pile d'inférence.

Cette commande déploie une API REST API Gateway sécurisée par un mécanisme d'autorisation IAM, que vous utilisez pour l'inférence avec un ID utilisateur AWS ou un rôle IAM qui dispose uniquement du privilège execute-api:Invoke IAM. La commande cdk deploy suivante déploie la pile d'inférence. Cette pile utilise le CDK AWS cadre du fournisseur pour créer le point de terminaison Amazon Comprehend en tant que ressource personnalisée, afin que la création, la suppression et la mise à jour du point de terminaison Amazon Comprehend puissent être effectuées dans le cadre du cycle de vie de la pile d'inférence à l'aide des commandes cdk deploy et cdk destroy.

Étant donné que vous devez exécuter la commande suivante une fois la formation du modèle terminée, ce qui peut prendre jusqu'à 10 heures, assurez-vous que vous êtes dans l'environnement virtuel Python que vous avez initialisé à une étape précédente et dans le amazon-comprehend-custom-automate-classification-it-service-request annuaire:

$ cdk deploy APIGWInferenceStack --parameters APIGWInferenceStack:documentclassifierarn=

Par exemple :

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

  1. Après le cdk deploy commande se termine avec succès, copiez le APIGWInferenceStack.ComprehendCustomClassfierInvokeAPI valeur de la sortie de la console et utilisez cette API REST pour générer des inférences à partir d'une machine cliente ou d'une application tierce qui a execute-api:Invoke Privilège IAM. Si vous exécutez cette solution dans us-east-2, le format de cette API REST est https://.execute-api.us-east-2.amazonaws.com/prod/invokecomprehendV1.

Alternativement, vous pouvez utiliser le client de test apiclientinvoke.py depuis le référentiel GitHub pour envoyer une requête au modèle de classificateur personnalisé. Avant d'utiliser apiclientinvoke.py, assurez-vous que les prérequis suivants sont en place :

  • Tu as le boto3 ainsi que requests Package Python installé à l'aide de pip sur la machine cliente.
  • Vous avez configuré les identifiants Boto3. Par défaut, le client de test suppose qu'un profil nommé par défaut est présent et qu'il a le execute-api:Invoke Privilège IAM sur l'API REST.
  • SigV4Auth pointe vers la région où l'API REST est déployée. Mettre à jour le Valeur à us-east-2 in apiclientinvoke.py si votre API REST est déployée dans us-east-2.
  • Vous avez attribué le raw_data variable avec le texte sur lequel on veut faire la prédiction de classe ou la demande de classement :
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."""

  • Vous avez attribué le restapi variable avec l'API REST copiée précédemment :

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

  1. Exécutez le apiclientinvoke.py après les mises à jour précédentes :
$ python3 apiclientinvoke.py

Vous obtenez la réponse suivante du modèle de classificateur personnalisé :

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

Amazon Comprehend renvoie des scores de confiance pour chaque étiquette qu'il a attribuée correctement. Si le service est très sûr d'une étiquette, le score sera plus proche de 1. Par conséquent, pour le modèle de classificateur personnalisé Amazon Comprehend qui a été formé à l'aide de l'ensemble de données SEOSS, le modèle de classificateur personnalisé prédit que le texte appartient à la classe SPARK. Cette classification renvoyée par le modèle de classificateur personnalisé Amazon Comprehend peut ensuite être utilisée pour classer les demandes de service informatique ou prédire la catégorie correcte des demandes de service informatique, réduisant ainsi les erreurs manuelles ou la mauvaise classification des demandes de service.

Nettoyer

Pour nettoyer toutes les ressources créées dans cet article qui ont été créées dans le cadre de la pile de formation et de la pile d'inférence, utilisez la commande suivante. Cette commande supprime toutes les ressources AWS créées dans le cadre des commandes de déploiement cdk précédentes :

$ cdk destroy --all

Conclusion

Dans cet article, nous vous avons montré comment les entreprises peuvent implémenter un modèle ML supervisé à l'aide de la classification personnalisée Amazon Comprehend pour prédire la catégorie des demandes de services informatiques en fonction du sujet ou de la description de la demande soumise par l'utilisateur final. Après avoir créé et entraîné un modèle de classificateur personnalisé, vous pouvez exécuter une analyse en temps réel pour une classification personnalisée en créant un point de terminaison. Une fois que vous avez déployé ce modèle sur un point de terminaison Amazon Comprehend, il peut être utilisé pour exécuter une inférence en temps réel par des applications tierces ou d'autres machines clientes, y compris des outils de gestion des services informatiques. Vous pouvez ensuite utiliser cette inférence pour prédire la catégorie de défaut et réduire les erreurs manuelles ou les erreurs de classification des tickets. Cela permet de réduire les délais de résolution des tickets et d'augmenter la précision de la résolution et la productivité des clients, ce qui se traduit finalement par une satisfaction client accrue.

Vous pouvez étendre les concepts de cet article à d'autres cas d'utilisation, tels que le routage des tickets commerciaux ou informatiques vers diverses équipes internes telles que les services commerciaux, les agents du service client et le support informatique de niveau 2/3, créés soit par les utilisateurs finaux, soit par le biais de processus automatisés. moyens.

Bibliographie

  • Rath, Michael ; Mäder, Patrick, 2019, "L'ensemble de données SEOSS - Exigences, rapports de bogues, historique du code et liens de trace pour des projets entiers", https://doi.org/10.7910/DVN/PDDZ4Q, Harvard Dataverse, V1

À propos des auteurs

Automatisez la classification des demandes de services informatiques avec un classificateur personnalisé Amazon Comprehend PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Arnab Chakraborti est un architecte de solutions senior chez AWS basé à Cincinnati, Ohio. Il est passionné par les sujets d'architecture d'entreprise et de solution, l'analyse de données, le sans serveur et l'apprentissage automatique. Dans ses temps libres, il aime regarder des films, des émissions de voyage et des sports.

ViralAutomatisez la classification des demandes de services informatiques avec un classificateur personnalisé Amazon Comprehend PlatoBlockchain Data Intelligence. Recherche verticale. Aï. Désaï est architecte principal de solutions chez AWS. Avec plus de 25 ans d'expérience dans les technologies de l'information, il aide les clients à adopter AWS et à moderniser leurs architectures. Il aime la randonnée et aime plonger profondément avec les clients sur tout ce qui concerne AWS.

Horodatage:

Plus de Apprentissage automatique AWS