Automatice la clasificación de solicitudes de servicios de TI con un clasificador personalizado de Amazon Comprehend PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Automatice la clasificación de las solicitudes de servicios de TI con un clasificador personalizado de Amazon Comprehend

Las empresas a menudo se ocupan de grandes volúmenes de solicitudes de servicios de TI. Tradicionalmente, el solicitante tiene la responsabilidad de elegir la categoría correcta para cada problema. Un error manual o clasificación errónea de un ticket generalmente significa un retraso en la resolución de la solicitud de servicio de TI. Esto puede resultar en una productividad reducida, una disminución en la satisfacción del cliente, un impacto en los acuerdos de nivel de servicio (SLA) e impactos operativos más amplios. A medida que su empresa crece, el problema de hacer llegar la solicitud de servicio adecuada al equipo adecuado se vuelve aún más importante. El uso de un enfoque basado en el aprendizaje automático (ML) y la inteligencia artificial puede ayudar con las necesidades en constante evolución de su empresa.

El aprendizaje automático supervisado es un proceso que utiliza conjuntos de datos y resultados etiquetados para entrenar algoritmos de aprendizaje sobre cómo clasificar datos o predecir un resultado. Amazon Comprehend es un servicio de procesamiento de lenguaje natural (NLP) que utiliza ML para descubrir información valiosa y conexiones en el texto. Proporciona API con tecnología de ML para extraer frases clave, entidades, análisis de sentimientos y más.

En esta publicación, le mostramos cómo implementar un modelo de aprendizaje automático supervisado que puede ayudar a clasificar las solicitudes de servicios de TI automáticamente mediante Clasificación personalizada de Amazon Comprehend. La clasificación personalizada de Amazon Comprehend lo ayuda a personalizar Amazon Comprehend para sus requisitos específicos sin el conjunto de habilidades necesario para crear soluciones NLP basadas en ML. Con ML automático, o AutoML, la clasificación personalizada de Amazon Comprehend crea modelos NLP personalizados en su nombre, utilizando los datos de capacitación que usted proporciona.

Resumen de la solución

Para ilustrar la clasificación de solicitudes de servicios de TI, esta solución utiliza el Conjunto de datos SEOSS. Este conjunto de datos es un conjunto de datos recuperado sistemáticamente que consta de 33 proyectos de software de código abierto que contiene una gran cantidad de artefactos escritos y vínculos de rastreo entre ellos. Esta solución utiliza los datos de problemas de estos 33 proyectos de código abierto, resúmenes y descripciones según lo informado por los usuarios finales para crear un modelo de clasificador personalizado con Amazon Comprehend.

Esta publicación demuestra cómo implementar e implementar la solución usando el Kit de desarrollo en la nube de AWS (AWS CDK) en un lugar aislado Nube privada virtual de Amazon (Amazon VPC) que consta de solo subredes privadas. También usamos el código para demostrar cómo puede usar el CDK de AWS marco de proveedor, un mini-marco para implementar un proveedor de Formación en la nube de AWS recursos personalizados para crear, actualizar o eliminar un recurso personalizado, como un punto de enlace de Amazon Comprehend. El punto de enlace de Amazon Comprehend incluye recursos administrados que hacen que su modelo personalizado esté disponible para la inferencia en tiempo real para una máquina cliente o aplicaciones de terceros. los código para esta solución está disponible en Github.

Utiliza el CDK de AWS para implementar la infraestructura, el código de la aplicación y la configuración de la solución. También necesita una cuenta de AWS y la capacidad de crear recursos de AWS. Utiliza el CDK de AWS para crear recursos de AWS, como una VPC con subredes privadas, Puntos de enlace de Amazon VPC, Sistema de archivos elástico de Amazon (Amazon EFS), un Servicio de notificación simple de Amazon (Amazon SNS), un tema Servicio de almacenamiento simple de Amazon (Amazon S3) cubeta, Notificaciones de eventos de Amazon S3y AWS Lambda funciones En conjunto, estos recursos de AWS constituyen la pila de entrenamiento, que utiliza para crear y entrenar el modelo de clasificador personalizado.

Después de crear estos recursos de AWS, descarga el conjunto de datos de SEOSS y carga el conjunto de datos en el depósito de S3 creado por la solución. Si está implementando esta solución en la región de AWS us-east-2, el formato del nombre del depósito S3 es comprehendcustom--us-east-2-s3stack. La solución utiliza el activador de carga de varias partes de Amazon S3 para invocar una función Lambda que inicia el preprocesamiento de los datos de entrada y utiliza los datos preprocesados ​​para entrenar el clasificador personalizado de Amazon Comprehend para crear el modelo de clasificador personalizado. A continuación, utiliza el nombre de recurso de Amazon (ARN) del modelo de clasificador personalizado para crear la pila de inferencia, que crea un punto de enlace de Amazon Comprehend mediante el CDK de AWS. marco de proveedor, que luego puede usar para inferencias desde una aplicación de terceros o una máquina cliente.

El siguiente diagrama ilustra la arquitectura de la pila de entrenamiento.

Los pasos del flujo de trabajo son los siguientes:

  1. Cargue el conjunto de datos de SEOSS en el depósito de S3 creado como parte del proceso de implementación de la pila de entrenamiento. Esto crea un disparador de eventos que invoca el etl_lambda función.
  2. El etl_lambda La función descarga el conjunto de datos sin procesar de Amazon S3 a Amazon EFS.
  3. El etl_lambda La función realiza la tarea de preprocesamiento de datos del conjunto de datos SEOSS.
  4. Cuando se completa la ejecución de la función, carga los datos transformados con prepped_data prefijo del depósito S3.
  5. Una vez completada la carga de los datos transformados, se envía un mensaje de finalización de ETL correcto a Amazon SNS.
  6. En Amazon Comprehend, puede clasificar sus documentos utilizando dos modos: multiclase o multietiqueta. El modo multiclase identifica una y solo una clase para cada documento, y el modo multietiqueta identifica una o más etiquetas para cada documento. Como queremos identificar una sola clase para cada documento, entrenamos el modelo de clasificador personalizado en modo multiclase. Amazon SNS activa el train_classifier_lambda función, que inicia el entrenamiento del clasificador de Amazon Comprehend en un modo multiclase.
  7. El train_classifier_lambda La función inicia el entrenamiento del clasificador personalizado de Amazon Comprehend.
  8. Amazon Comprehend descarga los datos transformados de la prepped_data prefijo en Amazon S3 para entrenar el modelo de clasificador personalizado.
  9. Cuando se completa el entrenamiento del modelo, Amazon Comprehend carga el model.tar.gz presentar a la output_data prefijo del depósito S3. El tiempo promedio de finalización para entrenar este modelo de clasificador personalizado es de aproximadamente 10 horas.
  10. El disparador de carga de Amazon S3 invoca el extract_comprehend_model_name_lambda que recupera el ARN del modelo de clasificador personalizado.
  11. La función extrae el ARN del modelo de clasificador personalizado de la carga útil del evento S3 y la respuesta de list-document-classifiers llamada.
  12. La función envía el ARN del modelo de clasificador personalizado a la dirección de correo electrónico a la que se suscribió anteriormente como parte del proceso de creación de la pila de entrenamiento. Luego usa este ARN para implementar la pila de inferencia.

Esta implementación crea la pila de inferencia, como se muestra en la siguiente figura. La pila de inferencia le proporciona una API REST protegida por un Gestión de identidades y accesos de AWS (IAM), que luego puede usar para generar puntajes de confianza de las etiquetas en función del texto de entrada proporcionado por una aplicación de terceros o una máquina cliente.

Arquitectura de pila de inferencia

Requisitos previos

Para esta demostración, debe tener los siguientes requisitos previos:

  • An Cuenta de AWS.
  • Pitón 3.7 o posterior, Node.jsy Git en la máquina de desarrollo. AWS CDK utiliza versiones específicas de Node.js (>=10.13.0, excepto la versión 13.0.0 – 13.6.0). Se recomienda una versión con soporte activo a largo plazo (LTS).
    Para instalar la versión LTS activa de Node.js, puede usar lo siguiente instalar script para nvm y use nvm a instalar la versión LTS de Node.js. También puede instalar el LTS Node.js activo actual a través del administrador de paquetes según el sistema operativo de su elección.

    Para macOS, puede instalar Node.js a través del administrador de paquetes usando lo siguiente Instrucciones.

    Para Windows, puede instalar Node.js a través del administrador de paquetes usando lo siguiente Instrucciones.

  • AWS CDK v2 está preinstalado si está utilizando un Nube de AWS9 IDE. Si está utilizando el IDE de AWS Cloud9, puede omitir este paso. Si no tiene el CDK de AWS instalado en la máquina de desarrollo, instale AWS CDK v2 globalmente mediante el comando Node Package Manager. npm install -g aws-cdk. Este paso requiere que Node.js esté instalado en la máquina de desarrollo.
  • Configure sus credenciales de AWS para acceder y crear recursos de AWS utilizando el CDK de AWS. Para obtener instrucciones, consulte Especificación de credenciales y región.
  • Descargue nuestra Conjunto de datos SEOSS que consta de requisitos, informes de errores, historial de código y enlaces de seguimiento de 33 proyectos de software de código abierto. Guarda el archivo dataverse_files.zip en su máquina local

Conjunto de datos SEOSS

Implemente la pila de capacitación de AWS CDK

Para la implementación de AWS CDK, comenzamos con la pila de entrenamiento. Complete los siguientes pasos:

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

  1. Navegue hasta la amazon-comprehend-custom-automate-classification-it-service-request carpeta:
$ cd amazon-comprehend-custom-automate-classification-it-service-request/

Todos los siguientes comandos se ejecutan dentro del amazon-comprehend-custom-automate-classification-it-service-request directorio.

  1. En el directorio amazon-comprehend-custom-automate-classification-it-service-request, inicialice el entorno virtual de Python e instale requirements.txt con pip:
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -r requirements.txt

  1. Si está utilizando el CDK de AWS en una cuenta y región de AWS específicas por primera vez, consulte las instrucciones para arranque de su entorno de CDK de AWS:
$ cdk bootstrap aws:///

  1. Sintetice las plantillas de CloudFormation para esta solución usando cdk synth y use cdk deploy para crear los recursos de AWS mencionados anteriormente:
$ cdk synth
$ cdk deploy VPCStack EFSStack S3Stack SNSStack ExtractLoadTransformEndPointCreateStack --parameters SNSStack:emailaddressarnnotification=

Después de entrar cdk deploy, AWS CDK le pregunta si desea implementar cambios para cada una de las pilas llamadas en el comando de implementación de cdk.

  1. Participar y para cada una de las solicitudes de creación de pilas, el paso de implementación de cdk crea estas pilas. Suscriba la dirección de correo electrónico que proporcionó al tema de SNS creado como parte de la implementación de cdk.
  2. Después de que la implementación de cdk se complete con éxito, cree una carpeta llamada raw_data en el cubo S3 comprehendcustom---s3stack.
  3. Cargue el conjunto de datos SEOSS dataverse_files.zip que descargó anteriormente en esta carpeta.

Una vez completada la carga, la solución invoca el etl_lambda función mediante un desencadenador de eventos de Amazon S3 para iniciar el proceso de extracción, transformación y carga (ETL). Una vez que el proceso ETL se completa con éxito, se envía un mensaje al tema de SNS, que invoca el train_classifier_lambda función. Esta función activa un entrenamiento del modelo de clasificador personalizado de Amazon Comprehend. Dependiendo de si entrena su modelo en el conjunto de datos SEOSS completo, la capacitación puede demorar hasta 10 horas. Cuando se completa el proceso de capacitación, Amazon Comprehend carga el model.tar.gz presentar a la output_data prefijo en el depósito S3.

Esta carga activa el extract_comprehend_model_name_lambda función mediante un desencadenador de eventos S3 que extrae el ARN del modelo de clasificador personalizado y lo envía a la dirección de correo electrónico a la que se suscribió anteriormente. Este ARN de modelo de clasificador personalizado se usa luego para crear la pila de inferencia. Cuando se completa el entrenamiento del modelo, puede ver las métricas de rendimiento del modelo de clasificador personalizado navegando a la sección de detalles de la versión en la consola de Amazon Comprehend (consulte la siguiente captura de pantalla) o utilizando Amazon Comprehend SDK de Boto3.

Métricas de rendimiento

Implemente la pila de inferencia de AWS CDK

Ahora está listo para implementar la pila de inferencia.

  1. Copie el ARN del modelo de clasificador personalizado del correo electrónico que recibió y use lo siguiente cdk deploy comando para crear la pila de inferencia.

Este comando implementa una API REST de API Gateway protegida por un autorizador de IAM, que se utiliza para la inferencia con un ID de usuario de AWS o una función de IAM que solo tiene el privilegio de ejecución de API: Invocar IAM. El siguiente comando cdk deployment implementa la pila de inferencia. Esta pila utiliza el CDK de AWS marco de proveedor para crear el punto de enlace de Amazon Comprehend como un recurso personalizado, de modo que la creación, eliminación y actualización del punto de enlace de Amazon Comprehend se pueda realizar como parte del ciclo de vida de la pila de inferencia mediante los comandos cdk deployment y cdk destroy.

Debido a que debe ejecutar el siguiente comando después de completar el entrenamiento del modelo, lo que podría demorar hasta 10 horas, asegúrese de estar en el entorno virtual de Python que inicializó en un paso anterior y en el amazon-comprehend-custom-automate-classification-it-service-request directorio:

$ cdk deploy APIGWInferenceStack --parameters APIGWInferenceStack:documentclassifierarn=

Por ejemplo:

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

  1. Una vez que el cdk deploy el comando se completa con éxito, copie el APIGWInferenceStack.ComprehendCustomClassfierInvokeAPI valor de la salida de la consola, y use esta API REST para generar inferencias desde una máquina cliente o una aplicación de terceros que tiene execute-api:Invoke Privilegio de IAM. Si está ejecutando esta solución en us-east-2, el formato de esta API REST es https://.execute-api.us-east-2.amazonaws.com/prod/invokecomprehendV1.

Alternativamente, puede usar el cliente de prueba apiclientinvoke.py desde el repositorio de GitHub para enviar una solicitud al modelo de clasificador personalizado. Antes de usar apiclientinvoke.py, asegúrese de cumplir los siguientes requisitos previos:

  • Tienes el boto3 y requests Paquete Python instalado usando pip en la máquina cliente.
  • Ha configurado las credenciales de Boto3. De forma predeterminada, el cliente de prueba asume que está presente un perfil denominado predeterminado y que tiene la execute-api:Invoke Privilegio de IAM en la API REST.
  • SigV4Auth apunta a la región donde se implementa la API REST. Actualizar el valor para us-east-2 in apiclientinvoke.py si su API REST está implementada en us-east-2.
  • has asignado el raw_data variable con el texto sobre el que se quiere hacer la predicción de clase o la petición de clasificación:
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."""

  • has asignado el restapi variable con la API REST copiada anteriormente:

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

  1. Ejecute el apiclientinvoke.py después de las actualizaciones anteriores:
$ python3 apiclientinvoke.py

Obtiene la siguiente respuesta del modelo de clasificador personalizado:

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

Amazon Comprehend devuelve puntuaciones de confianza para cada etiqueta que ha atribuido correctamente. Si el servicio confía mucho en una etiqueta, la puntuación estará más cerca de 1. Por lo tanto, para el modelo de clasificador personalizado de Amazon Comprehend que se entrenó con el conjunto de datos SEOSS, el modelo de clasificador personalizado predice que el texto pertenece a la clase SPARK. Esta clasificación devuelta por el modelo de clasificador personalizado de Amazon Comprehend se puede usar para clasificar las solicitudes de servicio de TI o predecir la categoría correcta de las solicitudes de servicio de TI, lo que reduce los errores manuales o la clasificación errónea de las solicitudes de servicio.

Limpiar

Para limpiar todos los recursos creados en esta publicación que se crearon como parte de la pila de entrenamiento y la pila de inferencia, use el siguiente comando. Este comando elimina todos los recursos de AWS creados como parte de los comandos de implementación de cdk anteriores:

$ cdk destroy --all

Conclusión

En esta publicación, le mostramos cómo las empresas pueden implementar un modelo de aprendizaje automático supervisado mediante la clasificación personalizada de Amazon Comprehend para predecir la categoría de las solicitudes de servicios de TI según el tema o la descripción de la solicitud enviada por el usuario final. Después de crear y entrenar un modelo de clasificador personalizado, puede ejecutar un análisis en tiempo real para la clasificación personalizada mediante la creación de un punto final. Después de implementar este modelo en un punto de enlace de Amazon Comprehend, se puede utilizar para ejecutar inferencias en tiempo real por parte de aplicaciones de terceros u otras máquinas cliente, incluidas las herramientas de administración de servicios de TI. Luego puede usar esta inferencia para predecir la categoría del defecto y reducir los errores manuales o las clasificaciones erróneas de los tickets. Esto ayuda a reducir los retrasos en la resolución de tickets y aumenta la precisión de la resolución y la productividad del cliente, lo que en última instancia se traduce en una mayor satisfacción del cliente.

Puede ampliar los conceptos de esta publicación a otros casos de uso, como el enrutamiento de tickets comerciales o de TI a varios equipos internos, como departamentos comerciales, agentes de servicio al cliente y soporte de TI de nivel 2/3, creados por usuarios finales o a través de procesos automatizados. medio.

Referencias

  • Rath, Michael; Mäder, Patrick, 2019, "El conjunto de datos SEOSS: requisitos, informes de errores, historial de código y enlaces de rastreo para proyectos completos", https://doi.org/10.7910/DVN/PDDZ4Q, Dataverso de Harvard, V1

Acerca de los autores

Automatice la clasificación de solicitudes de servicios de TI con un clasificador personalizado de Amazon Comprehend PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Arnab Chakraborty es arquitecto de soluciones sénior en AWS con sede en Cincinnati, Ohio. Le apasionan los temas de arquitectura empresarial y de soluciones, análisis de datos, aprendizaje automático y sin servidor. En su tiempo libre, disfruta viendo películas, programas de viajes y deportes.

ViralAutomatice la clasificación de solicitudes de servicios de TI con un clasificador personalizado de Amazon Comprehend PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai. Desai es Arquitecto Principal de Soluciones en AWS. Con más de 25 años de experiencia en tecnología de la información, ha estado ayudando a los clientes a adoptar AWS y modernizar sus arquitecturas. Le gusta el senderismo y disfruta profundizar con los clientes en todo lo relacionado con AWS.

Sello de tiempo:

Mas de Aprendizaje automático de AWS