Enriquecimiento de los flujos de noticias en tiempo real con la biblioteca de datos de Refinitiv, los servicios de AWS y Amazon SageMaker

Enriquecimiento de los flujos de noticias en tiempo real con la biblioteca de datos de Refinitiv, los servicios de AWS y Amazon SageMaker

Esta publicación es coautora de Marios Skevofylakas, Jason Ramchandani y Haykaz Aramyan de Refinitiv, An LSEG Business.

Los proveedores de servicios financieros a menudo necesitan identificar noticias relevantes, analizarlas, extraer información y tomar medidas en tiempo real, como operar con instrumentos específicos (como materias primas, acciones, fondos) en función de información adicional o el contexto de la noticia. Una de esas piezas adicionales de información (que usamos como ejemplo en esta publicación) es el sentimiento de la noticia.

Las bibliotecas de datos de Refinitiv (RD) proporcionan un conjunto completo de interfaces para un acceso uniforme al catálogo de datos de Refinitiv. La biblioteca ofrece múltiples capas de abstracción que brindan diferentes estilos y técnicas de programación adecuadas para todos los desarrolladores, desde acceso en tiempo real de baja latencia hasta ingestiones por lotes de datos de Refinitiv.

En esta publicación, presentamos un prototipo de arquitectura de AWS que ingiere nuestras fuentes de noticias utilizando bibliotecas RD y las mejora con predicciones de modelo de aprendizaje automático (ML) utilizando Amazon SageMaker, un servicio de aprendizaje automático completamente administrado de AWS.

En un esfuerzo por diseñar una arquitectura modular que pudiera usarse en una variedad de casos de uso, como análisis de sentimientos, reconocimiento de entidades con nombre y más, independientemente del modelo de ML utilizado para la mejora, decidimos centrarnos en el espacio en tiempo real. El motivo de esta decisión es que los casos de uso en tiempo real suelen ser más complejos y que la misma arquitectura también se puede utilizar, con ajustes mínimos, para la inferencia por lotes. En nuestro caso de uso, implementamos una arquitectura que ingiere nuestra fuente de noticias en tiempo real, calcula el sentimiento en cada titular de noticias usando ML y vuelve a servir la fuente mejorada de IA a través de una arquitectura de editor/suscriptor.

Además, para presentar una forma integral y reutilizable de producir modelos ML mediante la adopción de prácticas MLOps, presentamos el concepto de infraestructura como código (IaC) durante todo el ciclo de vida MLOps del prototipo. Mediante el uso de Terraform y un script configurable de punto de entrada único, podemos instanciar toda la infraestructura, en modo de producción, en AWS en solo unos minutos.

En esta solución, no abordamos el aspecto MLOps del desarrollo, capacitación e implementación de los modelos individuales. Si está interesado en aprender más sobre esto, consulte Hoja de ruta básica de MLOps para empresas con Amazon SageMaker, que explica en detalle un marco para la creación, capacitación e implementación de modelos siguiendo las mejores prácticas.

Resumen de la solución

En este prototipo, seguimos una metodología de aprovisionamiento completamente automatizada de acuerdo con IaC y las mejores prácticas. IaC es el proceso de aprovisionamiento de recursos mediante programación utilizando scripts automatizados en lugar de utilizar herramientas de configuración interactivas. Los recursos pueden ser tanto hardware como software necesario. En nuestro caso, usamos Terraform para lograr la implementación de un único punto de entrada configurable que puede activar automáticamente toda la infraestructura que necesitamos, incluidas las políticas de seguridad y acceso, así como el monitoreo automatizado. Con este único punto de entrada que activa una colección de scripts de Terraform, uno por servicio o entidad de recursos, podemos automatizar por completo el ciclo de vida de todos o parte de los componentes de la arquitectura, lo que nos permite implementar un control granular tanto en DevOps como en el lado de MLOps. Una vez que Terraform está correctamente instalado e integrado con AWS, podemos replicar la mayoría de las operaciones que se pueden realizar en los paneles de servicio de AWS.

El siguiente diagrama ilustra la arquitectura de nuestra solución.

Enriquecimiento de flujos de noticias en tiempo real con la biblioteca de datos de Refinitiv, los servicios de AWS y la inteligencia de datos de Amazon SageMaker PlatoBlockchain. Búsqueda vertical. Ai.

La arquitectura consta de tres etapas: ingestión, enriquecimiento y publicación. Durante la primera etapa, las transmisiones en tiempo real se ingieren en un Nube informática elástica de Amazon (Amazon EC2) que se crea a través de una AMI preparada para la biblioteca de datos de Refinitiv. La instancia también se conecta a un flujo de datos a través de Secuencias de datos de Amazon Kinesis, que desencadena un AWS Lambda función.

En la segunda etapa, la función Lambda que se activa desde Kinesis Data Streams se conecta y envía los titulares de las noticias a un SageMaker. FinBERT endpoint, que devuelve la opinión calculada para la noticia. Este sentimiento calculado es el enriquecimiento de los datos en tiempo real con los que la función Lambda envuelve la noticia y la almacena en un Amazon DynamoDB mesa.

En la tercera etapa de la arquitectura, un flujo de DynamoDB activa una función Lambda en las inserciones de nuevos elementos, que se integra con un servidor Amazon MQ ejecutando RabbitMQ, que vuelve a servir la transmisión mejorada de IA.

La decisión sobre este diseño de ingeniería de tres etapas, en lugar de la primera capa Lambda que se comunica directamente con el servidor Amazon MQ o implementa más funciones en la instancia EC2, se tomó para permitir la exploración de arquitecturas de diseño de IA más complejas y menos acopladas en el futuro.

Construyendo y desplegando el prototipo

Presentamos este prototipo en una serie de tres planos detallados. En cada blueprint y para cada servicio utilizado, encontrará resúmenes e información relevante sobre sus implementaciones técnicas, así como scripts de Terraform que le permiten iniciar, configurar e integrar automáticamente el servicio con el resto de la estructura. Al final de cada plano, encontrará instrucciones sobre cómo asegurarse de que todo funcione como se espera en cada etapa. Los planos son los siguientes:

Para comenzar la implementación de este prototipo, sugerimos crear un nuevo entorno de Python dedicado a él e instalar los paquetes y herramientas necesarios por separado de otros entornos que pueda tener. Para hacerlo, cree y active el nuevo entorno en Anaconda usando los siguientes comandos:

conda create —name rd_news_aws_terraform python=3.7
conda activate rd_news_aws_terraform

Ahora estamos listos para instalar el Interfaz de línea de comandos de AWS (AWS CLI) conjunto de herramientas que nos permitirá crear todas las interacciones programáticas necesarias en y entre los servicios de AWS:

pip install awscli

Ahora que la AWS CLI está instalada, necesitamos instalar Terraform. HashiCorp proporciona a Terraform un instalador binario, que puede descargar e instalar.

Una vez que haya instalado ambas herramientas, asegúrese de que funcionen correctamente con los siguientes comandos:

terraform -help
AWS – version

Ahora está listo para seguir los planos detallados de cada una de las tres etapas de la implementación.

Este plano representa las etapas iniciales de la arquitectura que nos permiten ingerir las noticias en tiempo real. Consta de los siguientes componentes:

  • Amazon EC2 preparando su instancia para la ingestión de RD News – Esta sección configura una instancia EC2 de manera que permite la conexión a la API de bibliotecas de escritorio remoto y la transmisión en tiempo real. También mostramos cómo guardar la imagen de la instancia creada para garantizar su reutilización y escalabilidad.
  • Ingesta de noticias en tiempo real de Amazon EC2 – Una implementación detallada de las configuraciones necesarias para permitir que Amazon EC2 conecte las bibliotecas RD, así como los scripts para iniciar la ingesta.
  • Creación y lanzamiento de Amazon EC2 desde la AMI – Inicie una nueva instancia transfiriendo simultáneamente los archivos de ingestión a la instancia recién creada, todo automáticamente usando Terraform.
  • Creación de un flujo de datos de Kinesis – Esta sección proporciona una descripción general de Kinesis Data Streams y cómo configurar una transmisión en AWS.
  • Conexión y envío de datos a Kinesis – Una vez que el código de ingestión esté funcionando, debemos conectarlo y enviar datos a una transmisión de Kinesis.
  • Probando el prototipo hasta ahora - Usamos Reloj en la nube de Amazon y herramientas de línea de comandos para verificar que el prototipo está funcionando hasta este punto y que podemos continuar con el siguiente plano. El registro de datos ingeridos debería parecerse a la siguiente captura de pantalla.

Enriquecimiento de flujos de noticias en tiempo real con la biblioteca de datos de Refinitiv, los servicios de AWS y la inteligencia de datos de Amazon SageMaker PlatoBlockchain. Búsqueda vertical. Ai.

En este segundo plano, nos enfocamos en la parte principal de la arquitectura: la función Lambda que ingiere y analiza el flujo de noticias, le adjunta la inferencia de IA y la almacena para su uso posterior. Incluye los siguientes componentes:

  • lambda – Defina una configuración de Terraform Lambda que le permita conectarse a un punto final de SageMaker.
  • Amazon S3 – Para implementar Lambda, necesitamos cargar el código apropiado en Servicio de almacenamiento simple de Amazon (Amazon S3) y permitir que la función Lambda lo ingiera en su entorno. Esta sección describe cómo podemos usar Terraform para lograrlo.
  • Implementación de la función Lambda: Paso 1, Manejo del evento de Kinesis – En esta sección, comenzamos a construir la función Lambda. Aquí, creamos solo la parte del controlador de respuesta del flujo de datos de Kinesis.
  • SageMaker – En este prototipo, usamos un modelo Hugging Face preentrenado que almacenamos en un punto final de SageMaker. Aquí, presentamos cómo se puede lograr esto utilizando scripts de Terraform y cómo se llevan a cabo las integraciones adecuadas para permitir que los extremos de SageMaker y las funciones de Lambda funcionen juntas.
    • En este punto, puede usar cualquier otro modelo que haya desarrollado e implementado detrás de un punto final de SageMaker. Dicho modelo podría proporcionar una mejora diferente a los datos de noticias originales, según sus necesidades. Opcionalmente, esto se puede extrapolar a múltiples modelos para múltiples mejoras si existen. Gracias al resto de la arquitectura, cualquiera de estos modelos enriquecerá sus fuentes de datos en tiempo real.
  • Creación de la función Lambda: paso 2, invocación del punto final de SageMaker – En esta sección, construimos nuestra función Lambda original agregando el bloque SageMaker para obtener un titular de noticias mejorado con el sentimiento al invocar el punto final de SageMaker.
  • DynamoDB – Finalmente, cuando la inferencia de IA está en la memoria de la función Lambda, vuelve a agrupar el elemento y lo envía a una tabla de DynamoDB para su almacenamiento. Aquí, discutimos tanto el código de Python apropiado que se necesita para lograrlo, como los scripts de Terraform necesarios que permiten estas interacciones.
  • Creación de la función Lambda: Paso 3, Envío de datos mejorados a DynamoDB – Aquí, continuamos construyendo nuestra función Lambda agregando la última parte que crea una entrada en la tabla de Dynamo.
  • Probando el prototipo hasta ahora – Podemos navegar a la tabla de DynamoDB en la consola de DynamoDB para verificar que nuestras mejoras aparecen en la tabla.

Enriquecimiento de flujos de noticias en tiempo real con la biblioteca de datos de Refinitiv, los servicios de AWS y la inteligencia de datos de Amazon SageMaker PlatoBlockchain. Búsqueda vertical. Ai.

Este tercer Blueprint finaliza este prototipo. Se enfoca en redistribuir el elemento de datos mejorado con IA recién creado a un servidor RabbitMQ en Amazon MQ, lo que permite a los consumidores conectarse y recuperar los elementos de noticias mejorados en tiempo real. Incluye los siguientes componentes:

  • Secuencias de DynamoDB – Cuando la noticia mejorada está en DynamoDB, configuramos un evento que se activa y que luego se puede capturar desde la función Lambda adecuada.
  • Escribiendo el productor Lambda – Esta función Lambda captura el evento y actúa como productor de la transmisión RabbitMQ. Esta nueva función introduce el concepto de capas de Lambda, ya que utiliza bibliotecas de Python para implementar la funcionalidad del productor.
  • Consumidores de Amazon MQ y RabbitMQ – El paso final del prototipo es configurar el servicio RabbitMQ e implementar un consumidor de ejemplo que se conectará al flujo de mensajes y recibirá las noticias mejoradas por IA.
  • Prueba final del prototipo – Usamos un proceso de extremo a extremo para verificar que el prototipo funcione completamente, desde la ingestión hasta la reserva y el consumo de la nueva transmisión mejorada por IA.

En esta etapa, puede validar que todo ha funcionado navegando al panel de control de RabbitMQ, como se muestra en la siguiente captura de pantalla.

Enriquecimiento de flujos de noticias en tiempo real con la biblioteca de datos de Refinitiv, los servicios de AWS y la inteligencia de datos de Amazon SageMaker PlatoBlockchain. Búsqueda vertical. Ai.

En el plano final, también encontrará un vector de prueba detallado para asegurarse de que toda la arquitectura se comporte según lo planeado.

Conclusión

En esta publicación, compartimos una solución que usa ML en la nube con servicios de AWS como SageMaker (ML), Lambda (sin servidor) y Kinesis Data Streams (transmisión) para enriquecer la transmisión de datos de noticias proporcionados por Refinitiv Data Libraries. La solución agrega una puntuación de sentimiento a las noticias en tiempo real y escala la infraestructura usando código.

El beneficio de esta arquitectura modular es que puede reutilizarla con su propio modelo para realizar otros tipos de aumento de datos, sin servidor, escalable y rentable que se puede aplicar sobre la biblioteca de datos de Refinitiv. Esto puede agregar valor a los flujos de trabajo de negociación/inversión/gestión de riesgos.

Si tiene algún comentario o pregunta, déjelo en la sección de comentarios.

Información relacionada


 Acerca de los autores

Enriquecimiento de flujos de noticias en tiempo real con la biblioteca de datos de Refinitiv, los servicios de AWS y la inteligencia de datos de Amazon SageMaker PlatoBlockchain. Búsqueda vertical. Ai.Marios Skevofylakas proviene de una experiencia en servicios financieros, banca de inversión y tecnología de consultoría. Tiene un doctorado en ingeniería. en Inteligencia Artificial y un M.Sc. en Visión Artificial. A lo largo de su carrera ha participado en numerosos proyectos multidisciplinares de IA y DLT. Actualmente es promotor de desarrollo en Refinitiv, una empresa de LSEG, que se centra en aplicaciones de inteligencia artificial y cuántica en servicios financieros.

Enriquecimiento de flujos de noticias en tiempo real con la biblioteca de datos de Refinitiv, los servicios de AWS y la inteligencia de datos de Amazon SageMaker PlatoBlockchain. Búsqueda vertical. Ai.Jason Ramchandani ha trabajado en Refinitiv, una empresa LSEG, durante 8 años como promotor principal de desarrolladores ayudando a construir su comunidad de desarrolladores. Anteriormente, trabajó en los mercados financieros durante más de 15 años con experiencia cuantitativa en el espacio vinculado a acciones/acciones en Okasan Securities, Sakura Finance y Jefferies LLC. Su alma mater es UCL.

Enriquecimiento de flujos de noticias en tiempo real con la biblioteca de datos de Refinitiv, los servicios de AWS y la inteligencia de datos de Amazon SageMaker PlatoBlockchain. Búsqueda vertical. Ai.Haykaz Aramyan proviene de una formación en finanzas y tecnología. Tiene un doctorado. en Finanzas, y un M.Sc. en Finanzas, Tecnología y Política. A lo largo de 10 años de experiencia profesional, Haykaz trabajó en varios proyectos multidisciplinarios relacionados con pensiones, fondos de capital de riesgo y nuevas empresas de tecnología. Actualmente es desarrollador defensor de Refinitiv, una empresa LSEG, y se centra en las aplicaciones de inteligencia artificial en los servicios financieros.

Enriquecimiento de flujos de noticias en tiempo real con la biblioteca de datos de Refinitiv, los servicios de AWS y la inteligencia de datos de Amazon SageMaker PlatoBlockchain. Búsqueda vertical. Ai.Georgios Schinas es Arquitecto de Soluciones Especialista Senior para AI/ML en la región EMEA. Tiene su sede en Londres y trabaja en estrecha colaboración con clientes en el Reino Unido e Irlanda. Georgios ayuda a los clientes a diseñar e implementar aplicaciones de aprendizaje automático en producción en AWS con un interés particular en las prácticas de MLOps y permite a los clientes realizar aprendizaje automático a escala. En su tiempo libre, le gusta viajar, cocinar y pasar tiempo con amigos y familiares.

Enriquecimiento de flujos de noticias en tiempo real con la biblioteca de datos de Refinitiv, los servicios de AWS y la inteligencia de datos de Amazon SageMaker PlatoBlockchain. Búsqueda vertical. Ai.Muthuvelan Swaminathan es un arquitecto de soluciones empresariales con sede en Nueva York. Trabaja con clientes empresariales brindando orientación arquitectónica en la creación de soluciones resistentes, rentables e innovadoras que aborden sus necesidades comerciales y los ayuden a ejecutarse a escala con los productos y servicios de AWS.

Enriquecimiento de flujos de noticias en tiempo real con la biblioteca de datos de Refinitiv, los servicios de AWS y la inteligencia de datos de Amazon SageMaker PlatoBlockchain. Búsqueda vertical. Ai.Mayur Udernani lidera el negocio de AWS AI & ML con empresas comerciales en el Reino Unido e Irlanda. En su función, Mayur pasa la mayor parte de su tiempo con clientes y socios para ayudar a crear soluciones impactantes que resuelvan las necesidades más apremiantes de un cliente o para una industria más amplia que aprovecha los servicios de AWS Cloud, AI y ML. Mayur vive en el área de Londres. Tiene un MBA del Instituto Indio de Administración y una Licenciatura en Ingeniería Informática de la Universidad de Mumbai.

Sello de tiempo:

Mas de Aprendizaje automático de AWS