"Los datos encerrados en texto, audio, redes sociales y otras fuentes no estructuradas pueden ser una ventaja competitiva para las empresas que descubren cómo utilizarlos".
Sólo el 18% de las organizaciones en un Encuesta 2019 de Deloitte informó poder aprovechar los datos no estructurados. La mayoría de los datos, entre 80% y 90%, son datos no estructurados. Se trata de un gran recurso sin explotar que tiene el potencial de dar a las empresas una ventaja competitiva si saben cómo utilizarlo. Puede resultar difícil encontrar información a partir de estos datos, especialmente si se necesitan esfuerzos para clasificarlos, etiquetarlos o etiquetarlos. La clasificación personalizada de Amazon Comprehend puede resultar útil en esta situación. Amazon Comprehend es un servicio de procesamiento de lenguaje natural (NLP) que utiliza el aprendizaje automático para descubrir información y conexiones valiosas en el texto.
La categorización o clasificación de documentos tiene importantes beneficios en todos los ámbitos empresariales:
- Búsqueda y recuperación mejoradas – Al categorizar los documentos en temas o categorías relevantes, a los usuarios les resulta mucho más fácil buscar y recuperar los documentos que necesitan. Pueden buscar dentro de categorías específicas para limitar los resultados.
- Conocimiento administrativo – Categorizar los documentos de forma sistemática ayuda a organizar la base de conocimientos de una organización. Hace que sea más fácil localizar información relevante y ver conexiones entre contenido relacionado.
- Flujos de trabajo optimizados – La clasificación automática de documentos puede ayudar a optimizar muchos procesos comerciales, como el procesamiento de facturas, la atención al cliente o el cumplimiento normativo. Los documentos se pueden enviar automáticamente a las personas o flujos de trabajo adecuados.
- Ahorro de costes y tiempo – La categorización manual de documentos es tediosa, requiere mucho tiempo y es costosa. Las técnicas de inteligencia artificial pueden hacerse cargo de esta tarea mundana y categorizar miles de documentos en poco tiempo y a un costo mucho menor.
- Generación de conocimientos – El análisis de tendencias en categorías de documentos puede proporcionar información empresarial útil. Por ejemplo, un aumento en las quejas de los clientes en una categoría de producto podría significar que es necesario abordar algunos problemas.
- Gobernanza y aplicación de políticas – La configuración de reglas de categorización de documentos ayuda a garantizar que los documentos se clasifiquen correctamente de acuerdo con las políticas y los estándares de gobernanza de una organización. Esto permite un mejor seguimiento y auditoría.
- Experiencias personalizadas – En contextos como el contenido de un sitio web, la categorización de documentos permite mostrar contenido personalizado a los usuarios en función de sus intereses y preferencias, según lo determinado por su comportamiento de navegación. Esto puede aumentar la participación del usuario.
La complejidad de desarrollar un modelo de aprendizaje automático de clasificación personalizado varía dependiendo de una variedad de aspectos como la calidad de los datos, el algoritmo, la escalabilidad y el conocimiento del dominio, por mencionar algunos. Es esencial comenzar con una definición clara del problema, datos limpios y relevantes, y avanzar gradualmente a través de las diferentes etapas del desarrollo del modelo. Sin embargo, las empresas pueden crear sus propios modelos únicos de aprendizaje automático utilizando la clasificación personalizada de Amazon Comprehend para clasificar automáticamente los documentos de texto en categorías o etiquetas, para cumplir con los requisitos específicos de la empresa y asignarlos a la tecnología empresarial y las categorías de documentos. Como el etiquetado o la categorización humana ya no es necesario, esto puede ahorrarle a las empresas mucho tiempo, dinero y trabajo. Hemos simplificado este proceso al automatizar todo el proceso de capacitación.
En la primera parte de esta publicación de blog de varias series, aprenderá cómo crear un canal de capacitación escalable y preparar datos de capacitación para modelos Comprehend Custom Classification. Presentaremos un canal de capacitación de clasificadores personalizado que se puede implementar en su cuenta de AWS con unos pocos clics. Estamos utilizando el conjunto de datos de noticias de la BBC y entrenaremos un clasificador para identificar la clase (por ejemplo, política, deportes) a la que pertenece un documento. El proceso permitirá a su organización responder rápidamente a los cambios y entrenar nuevos modelos sin tener que empezar desde cero cada vez. Puede ampliar y entrenar varios modelos según su demanda fácilmente.
Requisitos previos
- Una cuenta de AWS activa (haga clic aquí para crear una nueva cuenta de AWS)
- Acceso a Amazon Comprehend, Amazon S3, Amazon Lambda, Amazon Step Function, Amazon SNS y Amazon CloudFormation
- Datos de entrenamiento (semiestructura o texto) preparados en la siguiente sección
- Conocimientos básicos sobre Python y Machine Learning en general.
Preparar datos de entrenamiento
Esta solución puede recibir información como formato de texto (ej. CSV) o formato semiestructurado (ej. PDF).
Entrada de texto
La clasificación personalizada de Amazon Comprehend admite dos modos: multiclase y multietiqueta.
En el modo multiclase, cada documento puede tener asignada una y sólo una clase. Los datos de entrenamiento deben prepararse como un archivo CSV de dos columnas y cada línea del archivo contiene una única clase y el texto de un documento que demuestra la clase.
Ejemplo para Conjunto de datos de noticias de la BBC:
En el modo de etiquetas múltiples, cada documento tiene al menos una clase asignada, pero puede tener más. Los datos de capacitación deben presentarse como un archivo CSV de dos columnas, cada línea del archivo debe contener una o más clases y el texto del documento de capacitación. Se debe indicar más de una clase utilizando un delimitador entre cada clase.
No se debe incluir ningún encabezado en el archivo CSV para ninguno de los modos de entrenamiento.
Entrada semiestructurada
A partir de 2023, Amazon Comprehend ahora admite modelos de capacitación que utilizan documentos semiestructurados. Los datos de entrenamiento para la entrada de semiestructura se componen de un conjunto de documentos etiquetados, que pueden ser documentos preidentificados de un repositorio de documentos al que ya tiene acceso. El siguiente es un ejemplo de un archivo de anotaciones con datos CSV necesarios para la capacitación (Data de muestra):
El archivo CSV de anotaciones contiene tres columnas: la primera columna contiene la etiqueta del documento, la segunda columna es el nombre del documento (es decir, el nombre del archivo) y la última columna es el número de página del documento que desea incluir en el archivo. conjunto de datos de entrenamiento. En la mayoría de los casos, si el archivo CSV de anotaciones se encuentra en la misma carpeta que todos los demás documentos, entonces sólo necesita especificar el nombre del documento en la segunda columna. Sin embargo, si el archivo CSV se encuentra en una ubicación diferente, deberá especificar la ruta a la ubicación en la segunda columna, como ruta/a/prefijo/document1.pdf
.
Para obtener más información sobre cómo preparar sus datos de entrenamiento, consulte aquí.
Descripción general de la solución
- El canal de capacitación de Amazon Comprehend comienza cuando los datos de capacitación (archivo .csv para entrada de texto y archivo .csv de anotación para entrada de semiestructura) se cargan en un depósito dedicado de Amazon Simple Storage Service (Amazon S3).
- El disparador de Amazon S3 invoca una función de AWS Lambda de modo que cada vez que se carga un objeto en una ubicación especificada de Amazon S3, la función de AWS Lambda recupera el nombre del depósito de origen y el nombre clave del objeto cargado y lo pasa al flujo de trabajo de la función de paso de entrenamiento.
- En la función de paso de entrenamiento, después de recibir el nombre del depósito de datos de entrenamiento y el nombre de la clave del objeto como parámetros de entrada, se inicia un flujo de trabajo de entrenamiento de modelo personalizado como una serie de funciones lambdas como se describe:
InicioComprenderEntrenamiento
: Esta función de AWS Lambda define unComprenderClasificador
objeto dependiendo del tipo de archivos de entrada (es decir, texto o semiestructurados) y luego inicia una tarea de capacitación de clasificación personalizada de Amazon Comprehend llamando crear_clasificador_documento Interfacto de programación de aplicaciones (API), que devuelve un trabajo de capacitación Nombres de recursos de Amazon (ARN). Posteriormente, esta función verifica el estado del trabajo de capacitación invocando describe_documento_clasificador API. Finalmente, devuelve un ARN del trabajo de capacitación y un estado del trabajo, como resultado para la siguiente etapa del flujo de trabajo de capacitación.Obtener estado del trabajo de capacitación
: Este AWS Lambda verifica el estado del trabajo de capacitación cada 15 minutos, llamando describe_documento_clasificador API, hasta que el estado del trabajo de capacitación cambie a Completo o Fallido.GenerarMultiClass
oGenerar MultiLabel
: Si seleccionas Sí para el informe de rendimiento al iniciar la pila, uno de estos dos AWS Lambdas ejecutará un análisis de acuerdo con los resultados del modelo de Amazon Comprehend, que genera un análisis de rendimiento por clase y lo guarda en Amazon S3.GenerarMultiClass
: Se llamará a este AWS Lambda si su entrada es Multiclase y tu seleccionas Sí para el informe de desempeño.Generar MultiLabel
: Se llamará a este AWS Lambda si su entrada es Etiqueta múltiple y tu seleccionas Sí para el informe de desempeño.
- Una vez que la capacitación se realiza exitosamente, la solución genera los siguientes resultados:
- Modelo de clasificación personalizado: un ARN modelo entrenado estará disponible en su cuenta para futuros trabajos de inferencia.
- Matriz de confusión [Opcionall]: Una matriz de confusión (
matriz de confusión
.json) estará disponible en la ruta de salida de Amazon S3 definida por el usuario, según la selección del usuario. - Notificación del servicio de notificación simple de Amazon [Opcionall]: Se enviará un correo electrónico de notificación sobre el estado del trabajo de capacitación a los suscriptores, dependiendo de la selección inicial del usuario.
Tutorial
Lanzando la solución
Para implementar su canalización, complete los siguientes pasos:
- Elegir Pila de lanzamiento botón:
- Elija Siguiente
- Especifique los detalles de la canalización con las opciones que se ajusten a su caso de uso:
Información para cada detalle de pila:
- Nombre de la pila (obligatorio) – el nombre que especificó para esta pila de AWS CloudFormation. El nombre debe ser único en la región en la que lo estás creando.
- Q01ClassifierInputBucketName (obligatorio) – El nombre del depósito de Amazon S3 para almacenar sus datos de entrada. Debe ser un nombre único a nivel mundial y la pila de AWS CloudFormation le ayudará a crear el depósito mientras se lanza.
- Q02ClassifierOutputBucketName (obligatorio) – El nombre del depósito de Amazon S3 para almacenar los resultados de Amazon Comprehend y la canalización. También debería ser un nombre único a nivel mundial.
- Q03Formato de entrada – Una selección desplegable, puedes elegir texto (si sus datos de entrenamiento son archivos csv) o semiestructura (si sus datos de entrenamiento son semiestructurados [por ejemplo, archivos PDF]) según el formato de entrada de datos.
- Q04Idioma – Una selección desplegable, eligiendo el idioma de los documentos de la lista admitida. Tenga en cuenta que actualmente solo se admite el inglés si su formato de entrada es semiestructurado.
- Q05Multiclase – Una selección desplegable, seleccione Sí si su entrada es el modo MultiClass. De lo contrario, seleccione No.
- Q06Delimitador de etiquetas – Sólo se requiere si su respuesta Q05MultiClass es No. Este delimitador se utiliza en sus datos de entrenamiento para separar cada clase.
- Q07Conjunto de datos de validación – Una selección desplegable, cambie la respuesta a Sí si desea probar el rendimiento del clasificador entrenado con sus propios datos de prueba.
- Q08S3Ruta de validación – Sólo es necesario si su respuesta Q07ValidationDataset es Sí.
- Q09Informe de desempeño – Una selección desplegable, seleccione Sí si desea generar el informe de rendimiento a nivel de clase después del entrenamiento del modelo. El informe se guardará en el depósito de salida especificado en Q02ClassifierOutputBucketName.
- Q10Notificación por correo electrónico – Una selección desplegable. Seleccionar Sí si desea recibir una notificación después de entrenar el modelo.
- Q11ID de correo electrónico – Ingrese una dirección de correo electrónico válida para recibir la notificación del informe de desempeño. Tenga en cuenta que debe confirmar la suscripción desde su correo electrónico después de que se lance la pila de AWS CloudFormation, antes de poder recibir una notificación cuando se complete la capacitación.
- En la sección Opciones de pila de configuración de Amazon, agregue etiquetas opcionales, permisos y otras configuraciones avanzadas.
- Elegir Próximo
- Revise los detalles de la pila y seleccione Reconozco que AWS CloudFormation podría crear recursos de AWS IAM.
- Elegir Entregar. Esto inicia la implementación de la canalización en su cuenta de AWS.
- Una vez que la pila se haya implementado correctamente, podrá comenzar a utilizar la canalización. Crear un
/datos de entrenamiento
carpeta debajo de la ubicación especificada de Amazon S3 para la entrada. Nota: Amazon S3 aplica automáticamente el cifrado del lado del servidor (SSE-S3) para cada objeto nuevo, a menos que especifique una opción de cifrado diferente. Consulte Protección de datos en Amazon S3 para obtener más detalles sobre la protección y el cifrado de datos en Amazon S3.
- Sube tus datos de entrenamiento a la carpeta. (Si los datos de entrenamiento son semiestructurados, cargue todos los archivos PDF antes de cargar la información de la etiqueta en formato .csv).
¡Ya terminaste! Ha implementado correctamente su canalización y puede verificar el estado de la canalización en la función de paso implementada. (Tendrás un modelo entrenado en tu panel de clasificación personalizado de Amazon Comprehend).
Si elige el modelo y su versión dentro de Amazon Comprehend Console, ahora podrá ver más detalles sobre el modelo que acaba de entrenar. Incluye el Modo que seleccione, que corresponde a la opción Q05MultiClass, la cantidad de etiquetas y la cantidad de documentos entrenados y de prueba dentro de sus datos de entrenamiento. También puedes comprobar el rendimiento general a continuación; sin embargo, si desea verificar el rendimiento detallado de cada clase, consulte el Informe de rendimiento generado por la canalización implementada.
Cuotas de servicio
Su cuenta de AWS tiene cuotas predeterminadas para Amazon Comprehend y AmazonTextract, si las entradas están en formato semiestructurado. Para ver las cuotas de servicio, consulte aquí para Amazon Comprehend y aquí para AmazonTextract.
Limpiar
Para evitar incurrir en cargos continuos, elimine los recursos que creó como parte de esta solución cuando haya terminado.
- En la consola de Amazon S3, elimine manualmente el contenido dentro de los depósitos que creó para los datos de entrada y salida.
- En la consola de AWS CloudFormation, elija pilas en el panel de navegación.
- Seleccione la pila principal y elija Borrar.
Esto elimina automáticamente la pila implementada.
- Su modelo de clasificación personalizado de Amazon Comprehend entrenado permanecerá en su cuenta. Si ya no lo necesita, en la consola de Amazon Comprehend, elimine el modelo creado.
Conclusión
En esta publicación, le mostramos el concepto de un canal de capacitación escalable para los modelos de clasificación personalizados de Amazon Comprehend y le brindamos una solución automatizada para entrenar nuevos modelos de manera eficiente. La plantilla de AWS CloudFormation proporcionada le permite crear sus propios modelos de clasificación de texto sin esfuerzo, atendiendo a las escalas de demanda. La solución adopta la característica Euclid anunciada recientemente y acepta entradas en formato de texto o semiestructurado.
Ahora, los animamos a ustedes, nuestros lectores, a probar estas herramientas. Puede encontrar más detalles sobre la preparación de datos de entrenamiento y comprender las métricas del clasificador personalizado. Pruébelo y vea de primera mano cómo puede optimizar el proceso de capacitación de su modelo y mejorar la eficiencia. ¡Por favor comparte tus comentarios con nosotros!
Sobre los autores
Sandeep Singh es un científico de datos sénior de los servicios profesionales de AWS. Le apasiona ayudar a los clientes a innovar y alcanzar sus objetivos comerciales mediante el desarrollo de soluciones impulsadas por IA/ML de última generación. Actualmente se centra en IA generativa, LLM, ingeniería rápida y ampliación del aprendizaje automático en las empresas. Aporta avances recientes en IA para crear valor para los clientes.
Yanyan Zhang es científico de datos sénior en el equipo de suministro de energía de AWS Professional Services. Le apasiona ayudar a los clientes a resolver problemas reales con conocimientos de IA/ML. Recientemente, su atención se ha centrado en explorar el potencial de la IA generativa y el LLM. Fuera del trabajo, le encanta viajar, hacer ejercicio y explorar cosas nuevas.
Wrick Talukdar es arquitecto senior del equipo de Amazon Comprehend Service. Trabaja con clientes de AWS para ayudarlos a adoptar el aprendizaje automático a gran escala. Fuera del trabajo, le gusta la lectura y la fotografía.
Deja una respuesta