Enrichir les flux d'actualités en temps réel avec la bibliothèque de données Refinitiv, les services AWS et Amazon SageMaker

Enrichir les flux d'actualités en temps réel avec la bibliothèque de données Refinitiv, les services AWS et Amazon SageMaker

Cet article est co-écrit par Marios Skevofylakas, Jason Ramchandani et Haykaz Aramyan de Refinitiv, An LSEG Business.

Les prestataires de services financiers ont souvent besoin d'identifier les actualités pertinentes, de les analyser, d'extraire des informations et de prendre des mesures en temps réel, comme la négociation d'instruments spécifiques (tels que des matières premières, des actions, des fonds) en fonction d'informations supplémentaires ou du contexte de l'actualité. L'une de ces informations supplémentaires (que nous utilisons comme exemple dans cet article) est le sentiment de l'actualité.

Les bibliothèques de données Refinitiv (RD) fournissent un ensemble complet d'interfaces pour un accès uniforme au catalogue de données Refinitiv. La bibliothèque offre plusieurs couches d'abstraction fournissant différents styles et techniques de programmation adaptés à tous les développeurs, de l'accès en temps réel à faible latence aux ingestions par lots de données Refinitiv.

Dans cet article, nous présentons un prototype d'architecture AWS qui ingère nos flux d'actualités à l'aide de bibliothèques RD et les améliore avec des prédictions de modèles d'apprentissage automatique (ML) à l'aide de Amazon Sage Maker, un service ML entièrement géré d'AWS.

Dans un effort pour concevoir une architecture modulaire qui pourrait être utilisée dans une variété de cas d'utilisation, comme l'analyse des sentiments, la reconnaissance d'entités nommées, etc., quel que soit le modèle ML utilisé pour l'amélioration, nous avons décidé de nous concentrer sur l'espace en temps réel. La raison de cette décision est que les cas d'utilisation en temps réel sont généralement plus complexes et que la même architecture peut également être utilisée, avec des ajustements minimes, pour l'inférence par lots. Dans notre cas d'utilisation, nous implémentons une architecture qui ingère notre flux d'actualités en temps réel, calcule le sentiment sur chaque titre d'actualité à l'aide de ML et réserve le flux amélioré par l'IA via une architecture éditeur/abonné.

De plus, pour présenter une manière complète et réutilisable de produire des modèles ML en adoptant les pratiques MLOps, nous introduisons le concept d'infrastructure en tant que code (IaC) pendant tout le cycle de vie MLOps du prototype. En utilisant Terraform et un script configurable à point d'entrée unique, nous sommes en mesure d'instancier toute l'infrastructure, en mode production, sur AWS en quelques minutes seulement.

Dans cette solution, nous n'abordons pas l'aspect MLOps du développement, de la formation et du déploiement des modèles individuels. Si vous souhaitez en savoir plus à ce sujet, consultez Feuille de route de la fondation MLOps pour les entreprises avec Amazon SageMaker, qui explique en détail un cadre pour la création, la formation et le déploiement de modèles conformément aux meilleures pratiques.

Vue d'ensemble de la solution

Dans ce prototype, nous suivons une méthodologie de provisionnement entièrement automatisée conformément à IaC les meilleures pratiques. IaC est le processus de provisionnement des ressources par programmation à l'aide de scripts automatisés plutôt que d'utiliser des outils de configuration interactifs. Les ressources peuvent être à la fois matérielles et logicielles nécessaires. Dans notre cas, nous utilisons Terraform pour réaliser la mise en œuvre d'un seul point d'entrée configurable qui peut automatiquement faire tourner toute l'infrastructure dont nous avons besoin, y compris les politiques de sécurité et d'accès, ainsi que la surveillance automatisée. Avec ce point d'entrée unique qui déclenche une collection de scripts Terraform, un par service ou entité de ressource, nous pouvons entièrement automatiser le cycle de vie de tout ou partie des composants de l'architecture, nous permettant de mettre en œuvre un contrôle granulaire à la fois sur le DevOps ainsi que le côté MLOps. Une fois Terraform correctement installé et intégré à AWS, nous pouvons répliquer la plupart des opérations pouvant être effectuées sur les tableaux de bord de service AWS.

Le diagramme suivant illustre notre architecture de solution.

Enrichissez les flux d'actualités en temps réel avec la bibliothèque de données Refinitiv, les services AWS et Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

L'architecture se compose de trois étapes : l'ingestion, l'enrichissement et la publication. Au cours de la première étape, les flux en temps réel sont ingérés sur un Cloud de calcul élastique Amazon (Amazon EC2) qui est créée via une AMI prête pour la bibliothèque de données Refinitiv. L'instance se connecte également à un flux de données via Flux de données Amazon Kinesis, ce qui déclenche un AWS Lambda la fonction.

Dans la deuxième étape, la fonction Lambda qui est déclenchée à partir de Kinesis Data Streams se connecte et envoie les titres de l'actualité à un SageMaker FinBERT point de terminaison, qui renvoie le sentiment calculé pour l'élément d'actualité. Ce sentiment calculé est l'enrichissement des données en temps réel avec lequel la fonction Lambda encapsule ensuite l'élément d'actualité et le stocke dans un Amazon DynamoDB tableau.

Dans la troisième étape de l'architecture, un flux DynamoDB déclenche une fonction Lambda sur les insertions de nouveaux éléments, qui est intégrée à un Serveur Amazon MQ exécutant RabbitMQ, qui réserve le flux amélioré par l'IA.

La décision concernant cette conception technique en trois étapes, plutôt que la première couche Lambda communiquant directement avec le serveur Amazon MQ ou mettant en œuvre plus de fonctionnalités dans l'instance EC2, a été prise pour permettre l'exploration d'architectures de conception d'IA plus complexes et moins couplées à l'avenir.

Construire et déployer le prototype

Nous présentons ce prototype dans une série de trois plans détaillés. Dans chaque blueprint et pour chaque service utilisé, vous trouverez des aperçus et des informations pertinentes sur ses implémentations techniques ainsi que des scripts Terraform qui vous permettent de démarrer, configurer et intégrer automatiquement le service avec le reste de la structure. À la fin de chaque plan, vous trouverez des instructions sur la façon de vous assurer que tout fonctionne comme prévu jusqu'à chaque étape. Les plans sont les suivants :

Pour commencer la mise en œuvre de ce prototype, nous vous suggérons de créer un nouvel environnement Python qui lui est dédié et d'installer les packages et outils nécessaires séparément des autres environnements que vous pourriez avoir. Pour ce faire, créez et activez le nouvel environnement dans Anaconda à l'aide des commandes suivantes :

conda create —name rd_news_aws_terraform python=3.7
conda activate rd_news_aws_terraform

Nous sommes maintenant prêts à installer le Interface de ligne de commande AWS (AWS CLI) qui nous permettra de créer toutes les interactions programmatiques nécessaires dans et entre les services AWS :

pip install awscli

Maintenant que l'AWS CLI est installée, nous devons installer Terraform. HashiCorp fournit à Terraform un programme d'installation binaire, que vous pouvez download et installer.

Une fois les deux outils installés, assurez-vous qu'ils fonctionnent correctement à l'aide des commandes suivantes :

terraform -help
AWS – version

Vous êtes maintenant prêt à suivre les plans détaillés de chacune des trois étapes de la mise en œuvre.

Ce plan représente les premières étapes de l'architecture qui nous permettent d'ingérer les flux d'actualités en temps réel. Il se compose des composants suivants :

  • Amazon EC2 prépare votre instance pour l'ingestion de RD News – Cette section configure une instance EC2 de manière à permettre la connexion à l'API des bibliothèques RD et au flux en temps réel. Nous montrons également comment sauvegarder l'image de l'instance créée pour assurer sa réutilisabilité et sa scalabilité.
  • Ingestion d'actualités en temps réel depuis Amazon EC2 – Une implémentation détaillée des configurations nécessaires pour permettre à Amazon EC2 de connecter les bibliothèques RD ainsi que les scripts pour démarrer l'ingestion.
  • Création et lancement d'Amazon EC2 à partir de l'AMI – Lancez une nouvelle instance en transférant simultanément les fichiers d'ingestion vers l'instance nouvellement créée, le tout automatiquement à l'aide de Terraform.
  • Création d'un flux de données Kinesis – Cette section fournit une vue d'ensemble de Kinesis Data Streams et explique comment configurer un flux sur AWS.
  • Connexion et transfert de données vers Kinesis – Une fois que le code d'ingestion fonctionne, nous devons le connecter et envoyer des données à un flux Kinesis.
  • Test du prototype jusqu'à présent - Nous utilisons Amazon Cloud Watch et des outils de ligne de commande pour vérifier que le prototype fonctionne jusqu'à présent et que nous pouvons passer au plan suivant. Le journal des données ingérées devrait ressembler à la capture d'écran suivante.

Enrichissez les flux d'actualités en temps réel avec la bibliothèque de données Refinitiv, les services AWS et Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Dans ce deuxième plan, nous nous concentrons sur la partie principale de l'architecture : la fonction Lambda qui ingère et analyse le flux d'informations, y attache l'inférence de l'IA et la stocke pour une utilisation ultérieure. Il comprend les composants suivants :

  • Lambda – Définissez une configuration Terraform Lambda lui permettant de se connecter à un point de terminaison SageMaker.
  • Amazon S3 – Pour implémenter Lambda, nous devons télécharger le code approprié sur Service de stockage simple Amazon (Amazon S3) et autorisez la fonction Lambda à l'ingérer dans son environnement. Cette section décrit comment nous pouvons utiliser Terraform pour y parvenir.
  • Implémentation de la fonction Lambda : étape 1, gestion de l'événement Kinesis – Dans cette section, nous commençons à créer la fonction Lambda. Ici, nous créons uniquement la partie du gestionnaire de réponse du flux de données Kinesis.
  • SageMaker – Dans ce prototype, nous utilisons un modèle Hugging Face pré-formé que nous stockons dans un point de terminaison SageMaker. Ici, nous présentons comment cela peut être réalisé à l'aide de scripts Terraform et comment les intégrations appropriées ont lieu pour permettre aux points de terminaison SageMaker et aux fonctions Lambda de fonctionner ensemble.
    • À ce stade, vous pouvez utiliser à la place tout autre modèle que vous avez développé et déployé derrière un point de terminaison SageMaker. Un tel modèle pourrait apporter une amélioration différente aux données d'actualités d'origine, en fonction de vos besoins. En option, cela peut être extrapolé à plusieurs modèles pour plusieurs améliorations, le cas échéant. Grâce au reste de l'architecture, de tels modèles viendront enrichir vos sources de données en temps réel.
  • Création de la fonction Lambda : étape 2, appel du point de terminaison SageMaker – Dans cette section, nous construisons notre fonction Lambda d'origine en ajoutant le bloc SageMaker pour obtenir un titre d'actualité amélioré en appelant le point de terminaison SageMaker.
  • DynamoDB – Enfin, lorsque l'inférence AI se trouve dans la mémoire de la fonction Lambda, elle regroupe l'élément et l'envoie à une table DynamoDB pour le stockage. Ici, nous discutons à la fois du code Python approprié nécessaire pour accomplir cela, ainsi que des scripts Terraform nécessaires qui permettent ces interactions.
  • Création de la fonction Lambda : étape 3, transmission des données améliorées à DynamoDB – Ici, nous continuons à construire notre fonction Lambda en ajoutant la dernière partie qui crée une entrée dans la table Dynamo.
  • Test du prototype jusqu'à présent – Nous pouvons accéder au tableau DynamoDB sur la console DynamoDB pour vérifier que nos améliorations apparaissent dans le tableau.

Enrichissez les flux d'actualités en temps réel avec la bibliothèque de données Refinitiv, les services AWS et Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Ce troisième Blueprint finalise ce prototype. Il se concentre sur la redistribution de l'élément de données amélioré par l'IA nouvellement créé vers un serveur RabbitMQ dans Amazon MQ, permettant aux consommateurs de se connecter et de récupérer les éléments d'actualité améliorés en temps réel. Il comprend les composants suivants :

  • Flux DynamoDB – Lorsque l'élément d'actualité amélioré se trouve dans DynamoDB, nous configurons un événement déclenché qui peut ensuite être capturé à partir de la fonction Lambda appropriée.
  • Écrire le producteur Lambda – Cette fonction Lambda capture l'événement et agit en tant que producteur du flux RabbitMQ. Cette nouvelle fonction introduit le concept de couches Lambda car elle utilise des bibliothèques Python pour implémenter la fonctionnalité de producteur.
  • Consommateurs Amazon MQ et RabbitMQ – La dernière étape du prototype consiste à configurer le service RabbitMQ et à mettre en œuvre un exemple de consommateur qui se connectera au flux de messages et recevra les actualités améliorées par l'IA.
  • Essai final du prototype – Nous utilisons un processus de bout en bout pour vérifier que le prototype fonctionne pleinement, de l'ingestion à la réservation et à la consommation du nouveau flux amélioré par l'IA.

À ce stade, vous pouvez valider que tout a fonctionné en accédant au tableau de bord RabbitMQ, comme illustré dans la capture d'écran suivante.

Enrichissez les flux d'actualités en temps réel avec la bibliothèque de données Refinitiv, les services AWS et Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Dans le plan final, vous trouverez également un vecteur de test détaillé pour vous assurer que l'ensemble de l'architecture se comporte comme prévu.

Conclusion

Dans cet article, nous avons partagé une solution utilisant ML sur le cloud avec des services AWS tels que SageMaker (ML), Lambda (sans serveur) et Kinesis Data Streams (streaming) pour enrichir les données d'actualités en streaming fournies par les bibliothèques de données Refinitiv. La solution ajoute un score de sentiment aux articles d'actualité en temps réel et fait évoluer l'infrastructure à l'aide de code.

L'avantage de cette architecture modulaire est que vous pouvez la réutiliser avec votre propre modèle pour effectuer d'autres types d'augmentation de données, d'une manière sans serveur, évolutive et économique qui peut être appliquée au-dessus de la bibliothèque de données Refinitiv. Cela peut ajouter de la valeur aux workflows de trading/investissement/gestion des risques.

Si vous avez des commentaires ou des questions, veuillez les laisser dans la section commentaires.

Informations connexes


 À propos des auteurs

Enrichissez les flux d'actualités en temps réel avec la bibliothèque de données Refinitiv, les services AWS et Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Marios Skevofylakas vient d'une formation en services financiers, en banque d'investissement et en technologie de conseil. Il est titulaire d'un doctorat en génie. en intelligence artificielle et un M.Sc. en vision industrielle. Tout au long de sa carrière, il a participé à de nombreux projets multidisciplinaires d'IA et de DLT. Il est actuellement Developer Advocate chez Refinitiv, une entreprise de LSEG, se concentrant sur l'IA et les applications quantiques dans les services financiers.

Enrichissez les flux d'actualités en temps réel avec la bibliothèque de données Refinitiv, les services AWS et Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Jason Ramchandani a travaillé chez Refinitiv, une entreprise LSEG, pendant 8 ans en tant que Lead Developer Advocate aidant à construire leur communauté de développeurs. Auparavant, il a travaillé sur les marchés financiers pendant plus de 15 ans avec une expérience quantitative dans le domaine des actions/actions liées chez Okasan Securities, Sakura Finance et Jefferies LLC. Son alma mater est l'UCL.

Enrichissez les flux d'actualités en temps réel avec la bibliothèque de données Refinitiv, les services AWS et Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Haykaz Aramyan vient d'un milieu financier et technologique. Il est titulaire d'un doctorat. en finance et un M.Sc. en finance, technologie et politique. Au cours de 10 ans d'expérience professionnelle, Haykaz a travaillé sur plusieurs projets multidisciplinaires impliquant des pensions, des fonds de capital-risque et des startups technologiques. Il est actuellement développeur avocat chez Refinitiv, une entreprise LSEG, se concentrant sur les applications d'IA dans les services financiers.

Enrichissez les flux d'actualités en temps réel avec la bibliothèque de données Refinitiv, les services AWS et Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Georgios Schinas est un architecte de solutions spécialisé senior pour l'IA/ML dans la région EMEA. Il est basé à Londres et travaille en étroite collaboration avec des clients au Royaume-Uni et en Irlande. Georgios aide les clients à concevoir et à déployer des applications d'apprentissage automatique en production sur AWS avec un intérêt particulier pour les pratiques MLOps et permettant aux clients d'effectuer l'apprentissage automatique à grande échelle. Dans ses temps libres, il aime voyager, cuisiner et passer du temps avec ses amis et sa famille.

Enrichissez les flux d'actualités en temps réel avec la bibliothèque de données Refinitiv, les services AWS et Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Muthuvélan Swaminathan est un architecte de solutions d'entreprise basé à New York. Il travaille avec des entreprises clientes en fournissant des conseils architecturaux dans la création de solutions résilientes, rentables et innovantes qui répondent à leurs besoins commerciaux et les aident à s'exécuter à grande échelle à l'aide des produits et services AWS.

Enrichissez les flux d'actualités en temps réel avec la bibliothèque de données Refinitiv, les services AWS et Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Mayur Udernani dirige les activités AWS AI & ML avec des entreprises commerciales au Royaume-Uni et en Irlande. Dans son rôle, Mayur passe la majorité de son temps avec des clients et des partenaires pour aider à créer des solutions percutantes qui répondent aux besoins les plus urgents d'un client ou pour une industrie plus large tirant parti des services AWS Cloud, AI et ML. Mayur vit dans la région de Londres. Il est titulaire d'un MBA de l'Indian Institute of Management et d'un baccalauréat en génie informatique de l'Université de Mumbai.

Horodatage:

Plus de Apprentissage automatique AWS