Cree un sistema de alertas en tiempo real basado en noticias con Twitter, Amazon SageMaker y Hugging Face PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Cree un sistema de alertas en tiempo real basado en noticias con Twitter, Amazon SageMaker y Hugging Face

Hoy en día, las redes sociales son una gran fuente de noticias. Los usuarios confían en plataformas como Facebook y Twitter para consumir noticias. Para ciertas industrias, como las compañías de seguros, los primeros en responder, las fuerzas del orden público y las agencias gubernamentales, poder procesar rápidamente las noticias sobre eventos relevantes que ocurren puede ayudarlos a tomar medidas mientras estos eventos aún se están desarrollando.

No es raro que las organizaciones que intentan extraer valor de los datos de texto busquen una solución que no implique el entrenamiento de un modelo complejo de NLP (procesamiento del lenguaje natural). Para esas organizaciones, usar un modelo de PNL previamente entrenado es más práctico. Además, si el modelo elegido no satisface sus métricas de éxito, las organizaciones querrán poder elegir fácilmente otro modelo y volver a evaluarlo.

En la actualidad, es más fácil que nunca extraer información de los datos de texto gracias a lo siguiente:

  • El auge de las arquitecturas NLP de uso general y de última generación, como los transformadores.
  • La capacidad que tienen los desarrolladores y científicos de datos para crear, entrenar e implementar rápidamente modelos de aprendizaje automático (ML) a escala en la nube con servicios como Amazon SageMaker
  • La disponibilidad de miles de modelos de PNL preentrenados en cientos de idiomas y con soporte para múltiples marcos proporcionados por la comunidad en plataformas como abrazando la cara hub

En esta publicación, le mostramos cómo crear un sistema de alerta en tiempo real que consuma noticias de Twitter y clasifique los tweets usando un modelo previamente entrenado de Hugging Face Hub. Puede usar esta solución para la clasificación de tiro cero, lo que significa que puede clasificar tweets en prácticamente cualquier conjunto de categorías e implementar el modelo con SageMaker para la inferencia en tiempo real.

Alternativamente, si está buscando información sobre las conversaciones de sus clientes y profundizar el conocimiento de la marca mediante el análisis de las interacciones en las redes sociales, lo alentamos a que consulte la Panel de medios sociales impulsado por IA. La solución utiliza Amazon Comprehend, un servicio de NLP completamente administrado que descubre información y conexiones valiosas en el texto sin necesidad de experiencia en aprendizaje automático.

Aprendizaje zero-shot

Los campos de NLP y comprensión del lenguaje natural (NLU) han evolucionado rápidamente para abordar casos de uso que involucran clasificación de texto, respuesta a preguntas, resumen, generación de texto y más. Esta evolución ha sido posible, en parte, gracias al surgimiento de arquitecturas de uso general de última generación, como los transformadores, pero también a la disponibilidad de más corpus de texto y de mejor calidad disponibles para el entrenamiento de dichos modelos.

La arquitectura del transformador es una red neuronal compleja que requiere experiencia en el dominio y una gran cantidad de datos para ser entrenada desde cero. Una práctica común es tomar un transformador de última generación previamente capacitado como BERT, Roberta, T5, GPT-2 o DistilBERT y ajustar (aprendizaje de transferencia) el modelo a un caso de uso específico.

Sin embargo, incluso realizar transferencias de aprendizaje en un modelo de PNL previamente entrenado a menudo puede ser una tarea desafiante, que requiere grandes cantidades de datos de texto etiquetados y un equipo de expertos para seleccionar los datos. Esta complejidad impide que la mayoría de las organizaciones usen estos modelos de manera efectiva, pero el aprendizaje de disparo cero ayuda a los profesionales y organizaciones de ML a superar esta deficiencia.

El aprendizaje de disparo cero es una tarea de ML específica en la que un clasificador aprende en un conjunto de etiquetas durante el entrenamiento y luego, durante la inferencia, se evalúa en un conjunto diferente de etiquetas que el clasificador nunca antes había visto. En NLP, puede usar un clasificador de secuencia de tiro cero entrenado en una tarea de inferencia de lenguaje natural (NLI) para clasificar texto sin ningún ajuste fino. En esta publicación, usamos el popular NLI BART modelo bart-large-mnli para clasificar tweets. Este es un modelo preentrenado grande (1.6 GB), disponible en el centro del modelo Hugging Face.

Hugging Face es una empresa de IA que administra una plataforma de código abierto (Hugging Face Hub) con miles de modelos NLP (transformadores) preentrenados en más de 100 idiomas diferentes y con soporte para diferentes marcos como TensorFlow y PyTorch. La biblioteca de transformadores ayuda a los desarrolladores y científicos de datos a iniciarse en tareas complejas de NLP y NLU, como clasificación, extracción de información, respuesta a preguntas, resumen, traducción y generación de texto.

AWS y cara de abrazo han estado colaborando para simplificar y acelerar la adopción de modelos NLP. Ya están disponibles un conjunto de contenedores de aprendizaje profundo (DLC) para entrenamiento e inferencia en PyTorch o TensorFlow, y estimadores y predictores Hugging Face para SageMaker Python SDK. Estas capacidades ayudan a los desarrolladores con todos los niveles de experiencia a comenzar fácilmente con NLP.

Resumen de la solución

Brindamos una solución de trabajo que obtiene tweets en tiempo real de cuentas de Twitter seleccionadas. Para la demostración de nuestra solución, utilizamos tres cuentas, Amazon Web Services (@awscloud), seguridad de AWS (@AWSSecurityInfo) y Amazon Science (@AmazonScience) y clasificar su contenido en una de las siguientes categorías: seguridad, base de datos, computación, almacenamiento y aprendizaje automático. Si el modelo devuelve una categoría con una puntuación de confianza superior al 40 %, se envía una notificación.

En el siguiente ejemplo, el modelo clasificó un tweet de Amazon Web Services en la categoría de aprendizaje automático, con una puntuación de confianza del 97 %, generando una alerta.

La solución se basa en un modelo de transformador preentrenado Hugging Face (de Hugging Face Hub) para clasificar los tweets en función de un conjunto de etiquetas que se proporcionan en el momento de la inferencia; no es necesario entrenar el modelo. Las siguientes capturas de pantalla muestran más ejemplos y cómo se clasificaron.
Algunos ejemplos relevantes
Te animamos a que pruebes la solución por ti mismo. Simplemente descargue el código fuente de la Repositorio GitHub y siga las instrucciones de implementación en el archivo README.

Arquitectura de soluciones

La solución mantiene una conexión abierta con el terminal de Twitter y, cuando llega un nuevo tuit, envía un mensaje a una cola. Un consumidor lee los mensajes de la cola, llama al extremo de clasificación y, según los resultados, notifica al usuario final.

El siguiente es el diagrama de arquitectura de la solución.
Alcance de la solución
El flujo de trabajo de la solución consta de los siguientes componentes:

  1. La solución se basa en la API Stream de Twitter para obtener tweets que coincidan con las reglas configuradas (tweets de las cuentas de interés) en tiempo real. Para hacerlo, una aplicación que se ejecuta dentro de un contenedor mantiene una conexión abierta con el punto final de Twitter. Referirse a API de Twitter para más información.
  2. El contenedor se ejecuta en Servicio de contenedor elástico de Amazon (Amazon ECS), un servicio de orquestación de contenedores completamente administrado que le facilita la implementación, administración y escalado de aplicaciones en contenedores. Una sola tarea se ejecuta en una infraestructura sin servidor administrada por AWS Fargate.
  3. El token de Twitter Bearer se almacena de forma segura en Almacén de parámetros de AWS Systems Manager, una capacidad de Gerente de sistemas de AWS que proporciona almacenamiento seguro y jerárquico para datos de configuración y secretos. La imagen del contenedor está alojada en Registro de contenedores elásticos de Amazon (Amazon ECR), un registro de contenedores completamente administrado que ofrece alojamiento de alto rendimiento.
  4. Cada vez que llega un nuevo tweet, la aplicación contenedora coloca el tweet en un Servicio de cola simple de Amazon (Amazon SQS) cola. Amazon SQS es un servicio de cola de mensajes completamente administrado que le permite desacoplar y escalar microservicios, sistemas distribuidos y aplicaciones sin servidor.
  5. La lógica de la solución reside en una AWS Lambda función. Lambda es un servicio informático basado en eventos y sin servidor. La función consume nuevos tweets de la cola y los clasifica llamando a un punto final.
  6. El punto final se basa en un modelo Hugging Face y está alojado en SageMaker. El punto final ejecuta la inferencia y genera la clase del tweet.
  7. Dependiendo de la clasificación, la función genera una notificación a través de Servicio de notificación simple de Amazon (Amazon SNS), un servicio de mensajería completamente administrado. Puede suscribirse al tema SNS y varios destinos pueden recibir esa notificación (consulte Destinos de eventos de Amazon SNS). Por ejemplo, puede enviar la notificación a las bandejas de entrada como mensajes de correo electrónico (consulte Notificaciónes de Correo Electrónico).

Implemente modelos Hugging Face con SageMaker

Puede seleccionar cualquiera de los más de 10,000 modelos disponibles públicamente de la Hub modelo de cara abrazada e implementarlos con SageMaker usando DLC de inferencia de cara abrazada.

Cuando usas Formación en la nube de AWS, seleccione uno de los disponibles públicamente Contenedores de inferencia de cara abrazada y configurar el modelo y la tarea. Esta solución utiliza el facebook/bart-grande-mnli modelo y la tarea de clasificación de disparo cero, pero puede elegir cualquiera de los modelos en Clasificación de disparo cero en el centro de modelo Hugging Face. Los configura configurando las variables de entorno HF_MODEL_ID y HF_TASK en su plantilla de CloudFormation, como en el siguiente código:

SageMakerModel:
  Type: AWS::SageMaker::Model
  Properties:
    ExecutionRoleArn: !GetAtt SageMakerModelRole.Arn
    PrimaryContainer:
      Image: 763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-pytorch-inference:1.7-transformers4.6-cpu-py36-ubuntu18.04
      Environment:
        HF_MODEL_ID: facebook/bart-large-mnli
        HF_TASK: zero-shot-classification
        SAGEMAKER_CONTAINER_LOG_LEVEL: 20
        SAGEMAKER_REGION: us-east-1

Como alternativa, si no utiliza AWS CloudFormation, puede lograr los mismos resultados con unas pocas líneas de código. Referirse a Implementar modelos en Amazon SageMaker para más información.

Para clasificar el contenido, simplemente llame al extremo de SageMaker. El siguiente es un fragmento de código de Python:

endpoint_name = os.environ['ENDPOINT_NAME']
labels = os.environ['ENDPOINT_NAME']

data = {
    'inputs': tweet,
    'parameters': {
        'candidate_labels': labels,
        'multi_class': False
    }
}

response = sagemaker.invoke_endpoint(EndpointName=endpoint_name,
                                     ContentType='application/json',
                                     Body=json.dumps(data))

response_body = json.loads(response['Body'].read())

Nota la Falso valor para el multi_clase parámetro para indicar que la suma de todas las probabilidades de cada clase suman 1.

Mejoras en la solución

Puede mejorar la solución propuesta aquí almacenando los tweets y los resultados del modelo. Servicio de almacenamiento simple de Amazon (Amazon S3), un servicio de almacenamiento de objetos, es una opción. Puede escribir tweets, resultados y otros metadatos como objetos JSON en un depósito S3. Luego puede realizar consultas ad hoc contra ese contenido usando Atenea amazónica, un servicio de consulta interactivo que facilita el análisis de datos en Amazon S3 mediante SQL estándar.

Puede usar el historial no solo para extraer información, sino también para entrenar un modelo personalizado. Puede usar la compatibilidad con Hugging Face para entrenar un modelo con sus propios datos con SageMaker. Obtenga más información sobre Ejecute la capacitación en Amazon SageMaker.

Casos de uso en el mundo real.

Los clientes ya están experimentando con los modelos Hugging Face en SageMaker. Seguros Bolívar, una compañía financiera y de seguros colombiana fundada en 1939, es un ejemplo.

“Desarrollamos una solución de notificación de amenazas para clientes y corredores de seguros. Usamos modelos de NLP previamente entrenados de Hugging Face para clasificar los tweets de cuentas relevantes para generar notificaciones para nuestros clientes casi en tiempo real como una estrategia de prevención para ayudar a mitigar los reclamos. Un reclamo ocurre porque los clientes no son conscientes del nivel de riesgo al que están expuestos. La solución nos permite generar conciencia en nuestros clientes, convirtiendo el riesgo en algo medible en situaciones concretas.”

– Julián Rico, Jefe de Investigación y Conocimiento de Seguros Bolívar.

Seguros Bolívar trabajó con AWS para reestructurar su solución; ahora se basa en SageMaker y se parece al que se describe en esta publicación.

Conclusión

La clasificación de disparo cero es ideal cuando tiene pocos datos para entrenar un clasificador de texto personalizado o cuando no puede permitirse el lujo de entrenar un modelo NLP personalizado. Para casos de uso especializados, cuando el texto se basa en palabras o términos específicos, es mejor optar por un modelo de clasificación supervisado basado en un conjunto de entrenamiento personalizado.

En esta publicación, le mostramos cómo crear un clasificador de noticias utilizando un modelo de disparo cero de Hugging Face en AWS. Usamos Twitter como nuestra fuente de noticias, pero puede elegir una fuente de noticias que se adapte mejor a sus necesidades específicas. Además, puede cambiar fácilmente el modelo, simplemente especifique su modelo elegido en la plantilla de CloudFormation.

Para el código fuente, consulte el Repositorio GitHub Incluye las instrucciones completas de configuración. Puede clonarlo, cambiarlo, implementarlo y ejecutarlo usted mismo. También puede usarlo como punto de partida y personalizar las categorías y la lógica de alerta o crear otra solución para un caso de uso similar.

Pruébelo y háganos saber lo que piensa. Como siempre, esperamos sus comentarios. Puede enviarlo a sus contactos habituales de AWS Support o en el Foro de AWS para SageMaker.


Sobre los autores

Cree un sistema de alertas en tiempo real basado en noticias con Twitter, Amazon SageMaker y Hugging Face PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.david laredo es Arquitecto de Prototipos en AWS Envision Engineering en LATAM, donde ha ayudado a desarrollar múltiples prototipos de aprendizaje automático. Anteriormente, trabajó como ingeniero de aprendizaje automático y ha estado haciendo aprendizaje automático durante más de 5 años. Sus áreas de interés son PNL, series temporales y ML de extremo a extremo.

Cree un sistema de alertas en tiempo real basado en noticias con Twitter, Amazon SageMaker y Hugging Face PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Rafael Werneck es arquitecto sénior de creación de prototipos en AWS Envision Engineering, con sede en Brasil. Anteriormente, trabajó como ingeniero de desarrollo de software en Amazon.com.br y Amazon RDS Performance Insights.

Cree un sistema de alertas en tiempo real basado en noticias con Twitter, Amazon SageMaker y Hugging Face PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Vikram Elango es Arquitecto de Soluciones Especializado en AI/ML en Amazon Web Services, con sede en Virginia, EE. UU. Vikram ayuda a los clientes de la industria financiera y de seguros con diseño y liderazgo intelectual para crear e implementar aplicaciones de aprendizaje automático a escala. Actualmente se centra en el procesamiento del lenguaje natural, la IA responsable, la optimización de inferencias y el escalado de ML en toda la empresa. En su tiempo libre, disfruta viajar, hacer caminatas, cocinar y acampar con su familia.

Sello de tiempo:

Mas de Aprendizaje automático de AWS