Enriquecimento dos fluxos de notícias em tempo real com a Refinitiv Data Library, os serviços da AWS e o Amazon SageMaker

Enriquecimento dos fluxos de notícias em tempo real com a Refinitiv Data Library, os serviços da AWS e o Amazon SageMaker

Esta postagem é de coautoria de Marios Skevofylakas, Jason Ramchandani e Haykaz Aramyan da Refinitiv, An LSEG Business.

Os provedores de serviços financeiros geralmente precisam identificar notícias relevantes, analisá-las, extrair insights e tomar ações em tempo real, como negociar instrumentos específicos (como commodities, ações, fundos) com base em informações adicionais ou no contexto da notícia. Uma dessas informações adicionais (que usamos como exemplo neste post) é o sentimento da notícia.

As bibliotecas Refinitiv Data (RD) fornecem um conjunto abrangente de interfaces para acesso uniforme ao Refinitiv Data Catalogue. A biblioteca oferece várias camadas de abstração, fornecendo diferentes estilos e técnicas de programação adequadas para todos os desenvolvedores, desde acesso em tempo real e baixa latência até ingestões em lote de dados Refinitiv.

Nesta postagem, apresentamos um protótipo de arquitetura da AWS que ingere nossos feeds de notícias usando bibliotecas RD e os aprimora com previsões de modelo de aprendizado de máquina (ML) usando Amazon Sage Maker, um serviço de ML totalmente gerenciado da AWS.

Em um esforço para projetar uma arquitetura modular que pudesse ser usada em uma variedade de casos de uso, como análise de sentimento, reconhecimento de entidade nomeada e muito mais, independentemente do modelo de ML usado para aprimoramento, decidimos nos concentrar no espaço em tempo real. O motivo dessa decisão é que os casos de uso em tempo real geralmente são mais complexos e que a mesma arquitetura também pode ser usada, com ajustes mínimos, para inferência em lote. Em nosso caso de uso, implementamos uma arquitetura que ingere nosso feed de notícias em tempo real, calcula o sentimento em cada manchete de notícias usando ML e reserva o feed aprimorado de IA por meio de uma arquitetura de editor/assinante.

Além disso, para apresentar uma maneira abrangente e reutilizável de produzir modelos de ML adotando práticas de MLOps, introduzimos o conceito de infraestrutura como código (IaC) durante todo o ciclo de vida de MLOps do protótipo. Ao usar o Terraform e um único script configurável de ponto de entrada, podemos instanciar toda a infraestrutura, em modo de produção, na AWS em apenas alguns minutos.

Nesta solução, não abordamos o aspecto MLOps do desenvolvimento, treinamento e implantação dos modelos individuais. Se você estiver interessado em aprender mais sobre isso, consulte Roteiro básico de MLOps para empresas com o Amazon SageMaker, que explica em detalhes uma estrutura para construção, treinamento e implantação de modelo seguindo as melhores práticas.

Visão geral da solução

Neste protótipo, seguimos uma metodologia de provisionamento totalmente automatizada de acordo com IaC melhores práticas. IaC é o processo de provisionar recursos programaticamente usando scripts automatizados em vez de usar ferramentas de configuração interativas. Os recursos podem ser hardware e software necessário. No nosso caso, usamos o Terraform para realizar a implementação de um único ponto de entrada configurável que pode ativar automaticamente toda a infraestrutura necessária, incluindo políticas de segurança e acesso, bem como monitoramento automatizado. Com esse único ponto de entrada que aciona uma coleção de scripts Terraform, um por serviço ou entidade de recurso, podemos automatizar totalmente o ciclo de vida de todos ou partes dos componentes da arquitetura, permitindo implementar um controle granular tanto no DevOps quanto no o lado MLOps. Depois que o Terraform estiver corretamente instalado e integrado ao AWS, podemos replicar a maioria das operações que podem ser feitas nos painéis de serviço do AWS.

O diagrama a seguir ilustra nossa arquitetura de solução.

Enriquecendo os fluxos de notícias em tempo real com a Refinitiv Data Library, os serviços da AWS e o Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

A arquitetura consiste em três estágios: ingestão, enriquecimento e publicação. Durante o primeiro estágio, os feeds em tempo real são ingeridos em um Amazon Elastic Compute Nuvem (Amazon EC2) criada por meio de uma AMI pronta para a biblioteca de dados Refinitiv. A instância também se conecta a um fluxo de dados via Fluxos de dados do Amazon Kinesis, que desencadeia um AWS Lambda função.

No segundo estágio, a função Lambda que é acionada pelo Kinesis Data Streams se conecta e envia as manchetes de notícias para um SageMaker FinBERT endpoint, que retorna o sentimento calculado para o item de notícias. Esse sentimento calculado é o enriquecimento dos dados em tempo real com os quais a função do Lambda envolve o item de notícias e armazena em um Amazon DynamoDB tabela.

No terceiro estágio da arquitetura, um fluxo DynamoDB aciona uma função Lambda em novas inserções de itens, que é integrada a um Servidor Amazon MQ executando o RabbitMQ, que reserva o fluxo aprimorado de IA.

A decisão sobre esse projeto de engenharia de três estágios, em vez da primeira camada Lambda se comunicar diretamente com o servidor Amazon MQ ou implementar mais funcionalidades na instância do EC2, foi tomada para permitir a exploração de arquiteturas de design de IA mais complexas e menos acopladas no futuro.

Construindo e implantando o protótipo

Apresentamos este protótipo em uma série de três projetos detalhados. Em cada blueprint e para cada serviço utilizado, você encontrará visões gerais e informações relevantes sobre suas implementações técnicas, bem como scripts Terraform que permitem iniciar, configurar e integrar automaticamente o serviço com o restante da estrutura. Ao final de cada blueprint, você encontrará instruções sobre como garantir que tudo esteja funcionando conforme o esperado em cada etapa. Os esquemas são os seguintes:

Para iniciar a implementação deste protótipo, sugerimos criar um novo ambiente Python dedicado a ele e instalar os pacotes e ferramentas necessários separadamente de outros ambientes que você possa ter. Para isso, crie e ative o novo ambiente no Anaconda usando os seguintes comandos:

conda create —name rd_news_aws_terraform python=3.7
conda activate rd_news_aws_terraform

Agora estamos prontos para instalar o Interface de linha de comando da AWS (AWS CLI) conjunto de ferramentas que nos permitirá construir todas as interações programáticas necessárias dentro e entre os serviços da AWS:

pip install awscli

Agora que a AWS CLI está instalada, precisamos instalar o Terraform. A HashiCorp fornece ao Terraform um instalador binário, que você pode download e instale.

Depois de instalar as duas ferramentas, verifique se elas funcionam corretamente usando os seguintes comandos:

terraform -help
AWS – version

Agora você está pronto para seguir os esquemas detalhados de cada um dos três estágios da implementação.

Este blueprint representa os estágios iniciais da arquitetura que nos permitem ingerir os feeds de notícias em tempo real. É composto pelos seguintes componentes:

  • Amazon EC2 preparando sua instância para ingestão de RD News – Esta seção configura uma instância do EC2 de forma a permitir a conexão com a API de bibliotecas RD e o fluxo em tempo real. Também mostramos como salvar a imagem da instância criada para garantir sua reutilização e escalabilidade.
  • Ingestão de notícias em tempo real do Amazon EC2 – Uma implementação detalhada das configurações necessárias para permitir que o Amazon EC2 conecte as bibliotecas RD, bem como os scripts para iniciar a ingestão.
  • Criação e inicialização do Amazon EC2 a partir da AMI – Inicie uma nova instância transferindo simultaneamente arquivos de ingestão para a instância recém-criada, tudo automaticamente usando o Terraform.
  • Criar um fluxo de dados do Kinesis – Esta seção fornece uma visão geral do Kinesis Data Streams e como configurar um stream na AWS.
  • Conectando e enviando dados para o Kinesis – Depois que o código de ingestão estiver funcionando, precisamos conectá-lo e enviar os dados para um fluxo do Kinesis.
  • Testando o protótipo até agora - Nós usamos Amazon CloudWatch e ferramentas de linha de comando para verificar se o protótipo está funcionando até este ponto e se podemos continuar no próximo projeto. O registro dos dados ingeridos deve ser semelhante à captura de tela a seguir.

Enriquecendo os fluxos de notícias em tempo real com a Refinitiv Data Library, os serviços da AWS e o Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Neste segundo projeto, nos concentramos na parte principal da arquitetura: a função Lambda que ingere e analisa o fluxo de notícias, anexa a inferência de IA a ele e o armazena para uso posterior. Inclui os seguintes componentes:

  • Lambda – Defina uma configuração do Terraform Lambda permitindo que ele se conecte a um endpoint do SageMaker.
  • Amazon S3 – Para implementar o Lambda, precisamos carregar o código apropriado para Serviço de armazenamento simples da Amazon (Amazon S3) e permitir que a função Lambda o ingira em seu ambiente. Esta seção descreve como podemos usar o Terraform para fazer isso.
  • Implementando a função Lambda: Etapa 1, Manipulando o evento do Kinesis – Nesta seção, começamos a construir a função Lambda. Aqui, construímos apenas a parte do manipulador de resposta do fluxo de dados do Kinesis.
  • SageMaker – Neste protótipo, usamos um modelo Hugging Face pré-treinado que armazenamos em um endpoint do SageMaker. Aqui, apresentamos como isso pode ser feito usando scripts do Terraform e como as integrações apropriadas ocorrem para permitir que os endpoints do SageMaker e as funções do Lambda funcionem juntos.
    • Neste ponto, você pode usar qualquer outro modelo que tenha desenvolvido e implantado atrás de um terminal SageMaker. Esse modelo pode fornecer um aprimoramento diferente aos dados de notícias originais, com base em suas necessidades. Opcionalmente, isso pode ser extrapolado para vários modelos para vários aprimoramentos, se houver. Graças ao restante da arquitetura, qualquer um desses modelos enriquecerá suas fontes de dados em tempo real.
  • Construindo a função Lambda: Etapa 2, invocando o endpoint SageMaker – Nesta seção, construímos nossa função Lambda original adicionando o bloco SageMaker para obter uma manchete de notícias aprimorada de sentimento invocando o terminal SageMaker.
  • DynamoDB – Por fim, quando a inferência AI está na memória da função Lambda, ela agrupa novamente o item e o envia para uma tabela do DynamoDB para armazenamento. Aqui, discutimos o código Python apropriado necessário para realizar isso, bem como os scripts Terraform necessários que permitem essas interações.
  • Construindo a função Lambda: Etapa 3, enviando dados aprimorados para o DynamoDB – Aqui, continuamos construindo nossa função Lambda adicionando a última parte que cria uma entrada na tabela Dynamo.
  • Testando o protótipo até agora – Podemos navegar até a tabela do DynamoDB no console do DynamoDB para verificar se nossos aprimoramentos estão aparecendo na tabela.

Enriquecendo os fluxos de notícias em tempo real com a Refinitiv Data Library, os serviços da AWS e o Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Este terceiro Blueprint finaliza este protótipo. Ele se concentra na redistribuição do item de dados aprimorado de IA recém-criado para um servidor RabbitMQ no Amazon MQ, permitindo que os consumidores se conectem e recuperem os itens de notícias aprimorados em tempo real. Inclui os seguintes componentes:

  • Streams do DynamoDB – Quando o item de notícias aprimorado está no DynamoDB, configuramos um evento sendo acionado que pode ser capturado da função Lambda apropriada.
  • Escrevendo o produtor Lambda – Esta função do Lambda captura o evento e atua como um produtor do stream RabbitMQ. Essa nova função apresenta o conceito de camadas Lambda, pois usa bibliotecas Python para implementar a funcionalidade do produtor.
  • Consumidores Amazon MQ e RabbitMQ – A etapa final do protótipo é configurar o serviço RabbitMQ e implementar um consumidor de exemplo que se conectará ao fluxo de mensagens e receberá as notícias aprimoradas de IA.
  • Teste final do protótipo – Usamos um processo de ponta a ponta para verificar se o protótipo está funcionando totalmente, desde a ingestão até a reserva e consumo do novo fluxo aprimorado por IA.

Nesta fase, você pode validar se tudo está funcionando navegando até o painel do RabbitMQ, conforme mostrado na captura de tela a seguir.

Enriquecendo os fluxos de notícias em tempo real com a Refinitiv Data Library, os serviços da AWS e o Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

No blueprint final, você também encontra um vetor de teste detalhado para garantir que toda a arquitetura esteja se comportando conforme o planejado.

Conclusão

Nesta postagem, compartilhamos uma solução usando ML na nuvem com serviços da AWS como SageMaker (ML), Lambda (sem servidor) e Kinesis Data Streams (streaming) para enriquecer os dados de notícias de streaming fornecidos pelas Refinitiv Data Libraries. A solução adiciona uma pontuação de sentimento aos itens de notícias em tempo real e dimensiona a infraestrutura usando código.

O benefício dessa arquitetura modular é que você pode reutilizá-la com seu próprio modelo para realizar outros tipos de aumento de dados, de forma sem servidor, escalável e econômica que pode ser aplicada sobre a Refinitiv Data Library. Isso pode agregar valor aos fluxos de trabalho de negociação/investimento/gerenciamento de risco.

Se você tiver quaisquer comentários ou perguntas, por favor, deixe-os na seção de comentários.

Informações relacionadas


 Sobre os autores

Enriquecendo os fluxos de notícias em tempo real com a Refinitiv Data Library, os serviços da AWS e o Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Marios Skevofylakas vem de serviços financeiros, bancos de investimento e experiência em tecnologia de consultoria. Ele possui um Ph.D. em engenharia. em Inteligência Artificial e M.Sc. em Visão de Máquina. Ao longo de sua carreira, ele participou de vários projetos multidisciplinares de IA e DLT. Atualmente, ele é um Developer Advocate na Refinitiv, uma empresa LSEG, com foco em aplicativos de IA e Quantum em serviços financeiros.

Enriquecendo os fluxos de notícias em tempo real com a Refinitiv Data Library, os serviços da AWS e o Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Jason Ramchandani trabalhou na Refinitiv, uma empresa LSEG, por 8 anos como Lead Developer Advocate, ajudando a construir sua Comunidade de Desenvolvedores. Anteriormente, ele trabalhou nos mercados financeiros por mais de 15 anos com um histórico quantitativo no espaço vinculado a ações/ações na Okasan Securities, Sakura Finance e Jefferies LLC. Sua alma mater é a UCL.

Enriquecendo os fluxos de notícias em tempo real com a Refinitiv Data Library, os serviços da AWS e o Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Haykaz Aramyan vem de um fundo de finanças e tecnologia. Ele possui um Ph.D. em Finanças e um M.Sc. em Finanças, Tecnologia e Política. Ao longo de 10 anos de experiência profissional, Haykaz trabalhou em diversos projetos multidisciplinares envolvendo previdência, fundos de capital de risco e startups de tecnologia. Atualmente, ele é um Developer Advocate na Refinitiv, An LSEG Business, com foco em aplicativos de IA em serviços financeiros.

Enriquecendo os fluxos de notícias em tempo real com a Refinitiv Data Library, os serviços da AWS e o Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Georgios Schinas é Arquiteto de Soluções Especialista Sênior para AI/ML na região EMEA. Ele mora em Londres e trabalha em estreita colaboração com clientes no Reino Unido e na Irlanda. Georgios ajuda os clientes a projetar e implantar aplicativos de aprendizado de máquina em produção na AWS com um interesse particular em práticas MLOps e permitir que os clientes executem aprendizado de máquina em escala. Nas horas vagas gosta de viajar, cozinhar e passar o tempo com a família e amigos.

Enriquecendo os fluxos de notícias em tempo real com a Refinitiv Data Library, os serviços da AWS e o Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Muthuvelan Swaminathan é um Arquiteto de Soluções Empresariais baseado em Nova York. Ele trabalha com clientes corporativos fornecendo orientação arquitetônica na criação de soluções resilientes, econômicas e inovadoras que atendam às necessidades de negócios e os ajudem a executar em escala usando produtos e serviços da AWS.

Enriquecendo os fluxos de notícias em tempo real com a Refinitiv Data Library, os serviços da AWS e o Amazon SageMaker PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Mayur Udernani lidera os negócios de IA e ML da AWS com empresas comerciais no Reino Unido e na Irlanda. Em sua função, Mayur passa a maior parte do tempo com clientes e parceiros para ajudar a criar soluções impactantes que resolvem as necessidades mais prementes de um cliente ou para um setor mais amplo, aproveitando os serviços de Nuvem AWS, IA e ML. Mayur mora na área de Londres. Ele tem MBA pelo Indian Institute of Management e é bacharel em Engenharia da Computação pela Universidade de Mumbai.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS