Arricchimento dei flussi di notizie in tempo reale con Refinitiv Data Library, i servizi AWS e Amazon SageMaker

Arricchimento dei flussi di notizie in tempo reale con Refinitiv Data Library, i servizi AWS e Amazon SageMaker

Questo post è stato scritto da Marios Skevofylakas, Jason Ramchandani e Haykaz Aramyan di Refinitiv, An LSEG Business.

I fornitori di servizi finanziari spesso hanno bisogno di identificare notizie rilevanti, analizzarle, estrarre approfondimenti e intraprendere azioni in tempo reale, come negoziare strumenti specifici (come materie prime, azioni, fondi) sulla base di informazioni aggiuntive o contesto della notizia. Una di queste informazioni aggiuntive (che usiamo come esempio in questo post) è il sentimento delle notizie.

Le librerie Refinitiv Data (RD) forniscono un set completo di interfacce per un accesso uniforme al Refinitiv Data Catalogue. La libreria offre più livelli di astrazione che forniscono diversi stili e tecniche di programmazione adatti a tutti gli sviluppatori, dall'accesso in tempo reale a bassa latenza alle ingest in batch di dati Refinitiv.

In questo post, presentiamo un prototipo di architettura AWS che importa i nostri feed di notizie utilizzando le librerie RD e li migliora con previsioni del modello di machine learning (ML) utilizzando Amazon Sage Maker, un servizio ML completamente gestito da AWS.

Nel tentativo di progettare un'architettura modulare che potesse essere utilizzata in una varietà di casi d'uso, come l'analisi del sentimento, il riconoscimento di entità denominate e altro, indipendentemente dal modello ML utilizzato per il miglioramento, abbiamo deciso di concentrarci sullo spazio in tempo reale. Il motivo di questa decisione è che i casi d'uso in tempo reale sono generalmente più complessi e che la stessa architettura può essere utilizzata anche, con aggiustamenti minimi, per l'inferenza batch. Nel nostro caso d'uso, implementiamo un'architettura che ingerisce il nostro feed di notizie in tempo reale, calcola il sentiment su ogni titolo di notizia utilizzando ML e ripubblica il feed potenziato dall'intelligenza artificiale attraverso un'architettura editore/abbonato.

Inoltre, per presentare un modo completo e riutilizzabile per produrre modelli ML adottando pratiche MLOps, introduciamo il concetto di infrastruttura come codice (IaC) durante l'intero ciclo di vita MLOps del prototipo. Utilizzando Terraform e uno script configurabile a punto di ingresso singolo, siamo in grado di istanziare l'intera infrastruttura, in modalità di produzione, su AWS in pochi minuti.

In questa soluzione, non affrontiamo l'aspetto MLOps dello sviluppo, della formazione e della distribuzione dei singoli modelli. Se sei interessato a saperne di più su questo, fare riferimento a Roadmap della fondazione MLOps per le aziende con Amazon SageMaker, che spiega in dettaglio un framework per la creazione, la formazione e la distribuzione di modelli seguendo le best practice.

Panoramica della soluzione

In questo prototipo, seguiamo una metodologia di provisioning completamente automatizzata in conformità con IaC best practice. IaC è il processo di provisioning delle risorse a livello di programmazione utilizzando script automatizzati anziché utilizzare strumenti di configurazione interattivi. Le risorse possono essere sia hardware che software necessario. Nel nostro caso, utilizziamo Terraform per realizzare l'implementazione di un singolo punto di ingresso configurabile che può avviare automaticamente l'intera infrastruttura di cui abbiamo bisogno, comprese le policy di sicurezza e di accesso, nonché il monitoraggio automatizzato. Con questo singolo punto di ingresso che attiva una raccolta di script Terraform, uno per entità servizio o risorsa, possiamo automatizzare completamente il ciclo di vita di tutti o parte dei componenti dell'architettura, consentendoci di implementare un controllo granulare sia su DevOps che su il lato MLOps. Dopo che Terraform è stato correttamente installato e integrato con AWS, possiamo replicare la maggior parte delle operazioni che possono essere eseguite sui dashboard dei servizi AWS.

Il diagramma seguente illustra l'architettura della nostra soluzione.

Arricchimento dei flussi di notizie in tempo reale con Refinitiv Data Library, servizi AWS e Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

L'architettura si compone di tre fasi: ingestione, arricchimento e pubblicazione. Durante la prima fase, i feed in tempo reale vengono importati su un file Cloud di calcolo elastico di Amazon (Amazon EC2) creata tramite un'AMI pronta per la libreria di dati Refinitiv. L'istanza si connette anche a un flusso di dati tramite Flussi di dati di Amazon Kinesis, che attiva un AWS Lambda funzione.

Nella seconda fase, la funzione Lambda attivata da Kinesis Data Streams si connette e invia i titoli delle notizie a un SageMaker FinBERT endpoint, che restituisce il sentimento calcolato per la notizia. Questo sentimento calcolato è l'arricchimento dei dati in tempo reale con cui la funzione Lambda avvolge la notizia e la memorizza in un Amazon DynamoDB tabella.

Nella terza fase dell'architettura, un flusso DynamoDB attiva una funzione Lambda su nuovi inserimenti di elementi, che è integrata con un Server Amazon MQ eseguendo RabbitMQ, che serve nuovamente il flusso potenziato dall'intelligenza artificiale.

La decisione su questa progettazione ingegneristica in tre fasi, piuttosto che sul primo livello Lambda che comunica direttamente con il server Amazon MQ o sull'implementazione di più funzionalità nell'istanza EC2, è stata presa per consentire l'esplorazione di architetture di progettazione AI più complesse e meno accoppiate in futuro.

Costruzione e distribuzione del prototipo

Presentiamo questo prototipo in una serie di tre progetti dettagliati. In ogni blueprint e per ogni servizio utilizzato, troverai panoramiche e informazioni rilevanti sulle sue implementazioni tecniche, nonché script Terraform che ti consentono di avviare, configurare e integrare automaticamente il servizio con il resto della struttura. Alla fine di ogni progetto, troverai le istruzioni su come assicurarti che tutto funzioni come previsto fino a ogni fase. I progetti sono i seguenti:

Per iniziare l'implementazione di questo prototipo, suggeriamo di creare un nuovo ambiente Python ad esso dedicato e di installare i pacchetti e gli strumenti necessari separatamente dagli altri ambienti che potresti avere. Per fare ciò, crea e attiva il nuovo ambiente in Anaconda usando i seguenti comandi:

conda create —name rd_news_aws_terraform python=3.7
conda activate rd_news_aws_terraform

Ora siamo pronti per installare il Interfaccia della riga di comando di AWS (AWS CLI) set di strumenti che ci consentirà di creare tutte le interazioni programmatiche necessarie all'interno e tra i servizi AWS:

pip install awscli

Ora che AWS CLI è installato, dobbiamo installare Terraform. HashiCorp fornisce a Terraform un programma di installazione binario, cosa che puoi fare scaricare e installare.

Dopo aver installato entrambi gli strumenti, assicurati che funzionino correttamente utilizzando i seguenti comandi:

terraform -help
AWS – version

Ora sei pronto per seguire i progetti dettagliati su ciascuna delle tre fasi dell'implementazione.

Questo progetto rappresenta le fasi iniziali dell'architettura che ci consentono di acquisire i feed di notizie in tempo reale. Consiste dei seguenti componenti:

  • Amazon EC2 prepara la tua istanza per l'importazione di RD News – Questa sezione configura un'istanza EC2 in modo da abilitare la connessione all'API RD Libraries e al flusso in tempo reale. Mostriamo anche come salvare l'immagine dell'istanza creata per garantirne la riusabilità e la scalabilità.
  • Importazione di notizie in tempo reale da Amazon EC2 – Un'implementazione dettagliata delle configurazioni necessarie per consentire ad Amazon EC2 di connettere le librerie RD e gli script per avviare l'acquisizione.
  • Creazione e avvio di Amazon EC2 dall'AMI – Avvia una nuova istanza trasferendo simultaneamente i file di importazione nell'istanza appena creata, il tutto automaticamente utilizzando Terraform.
  • Creazione di un flusso di dati Kinesis – Questa sezione fornisce una panoramica di Kinesis Data Streams e come configurare un flusso su AWS.
  • Connessione e push dei dati a Kinesis – Una volta che il codice di importazione funziona, dobbiamo connetterlo e inviare i dati a un flusso Kinesis.
  • Testare il prototipo finora - Noi usiamo Amazon Cloud Watch e strumenti a riga di comando per verificare che il prototipo funzioni fino a questo punto e che possiamo continuare con il progetto successivo. Il registro dei dati acquisiti dovrebbe essere simile allo screenshot seguente.

Arricchimento dei flussi di notizie in tempo reale con Refinitiv Data Library, servizi AWS e Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

In questo secondo progetto, ci concentriamo sulla parte principale dell'architettura: la funzione Lambda che ingerisce e analizza il flusso di notizie, vi allega l'inferenza AI e lo memorizza per un ulteriore utilizzo. Include i seguenti componenti:

  • Lambda – Definisci una configurazione Terraform Lambda che consenta la connessione a un endpoint SageMaker.
  • Amazon S3 – Per implementare Lambda, dobbiamo caricare il codice appropriato su Servizio di archiviazione semplice Amazon (Amazon S3) e consentire alla funzione Lambda di inserirlo nel proprio ambiente. Questa sezione descrive come possiamo utilizzare Terraform per raggiungere questo obiettivo.
  • Implementazione della funzione Lambda: passaggio 1, gestione dell'evento Kinesis – In questa sezione, iniziamo a costruire la funzione Lambda. Qui creiamo solo la parte del gestore di risposta del flusso di dati Kinesis.
  • SageMaker – In questo prototipo, utilizziamo un modello Hugging Face pre-addestrato che memorizziamo in un endpoint SageMaker. Qui, presentiamo come ottenere questo risultato utilizzando gli script Terraform e come avvengono le integrazioni appropriate per consentire agli endpoint SageMaker e alle funzioni Lambda di lavorare insieme.
    • A questo punto, puoi invece utilizzare qualsiasi altro modello che hai sviluppato e distribuito dietro un endpoint SageMaker. Tale modello potrebbe fornire un miglioramento diverso ai dati delle notizie originali, in base alle tue esigenze. Facoltativamente, questo può essere estrapolato a più modelli per più miglioramenti, se esistenti. Grazie al resto dell'architettura, qualsiasi modello di questo tipo arricchirà le tue fonti di dati in tempo reale.
  • Creazione della funzione Lambda: passaggio 2, invocazione dell'endpoint SageMaker – In questa sezione, costruiamo la nostra funzione Lambda originale aggiungendo il blocco SageMaker per ottenere un titolo di notizie migliorato dal sentiment invocando l'endpoint SageMaker.
  • DynamoDB – Infine, quando l'inferenza AI è nella memoria della funzione Lambda, raggruppa nuovamente l'elemento e lo invia a una tabella DynamoDB per l'archiviazione. Qui, discutiamo sia del codice Python appropriato necessario per farlo, sia degli script Terraform necessari che consentono queste interazioni.
  • Creazione della funzione Lambda: passaggio 3, invio di dati avanzati a DynamoDB – Qui, continuiamo a costruire la nostra funzione Lambda aggiungendo l'ultima parte che crea una voce nella tabella Dynamo.
  • Testare il prototipo finora – Possiamo accedere alla tabella DynamoDB sulla console DynamoDB per verificare che i nostri miglioramenti vengano visualizzati nella tabella.

Arricchimento dei flussi di notizie in tempo reale con Refinitiv Data Library, servizi AWS e Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Questo terzo Blueprint finalizza questo prototipo. Si concentra sulla ridistribuzione dell'elemento di dati potenziato dall'intelligenza artificiale appena creato su un server RabbitMQ in Amazon MQ, consentendo ai consumatori di connettersi e recuperare gli elementi di notizie migliorati in tempo reale. Comprende i seguenti componenti:

  • Flussi DynamoDB – Quando la notizia migliorata si trova in DynamoDB, impostiamo l'attivazione di un evento che può quindi essere acquisito dalla funzione Lambda appropriata.
  • Scrivere il produttore Lambda – Questa funzione Lambda acquisisce l'evento e funge da produttore del flusso RabbitMQ. Questa nuova funzione introduce il concetto di layer Lambda in quanto utilizza le librerie Python per implementare la funzionalità producer.
  • Consumatori Amazon MQ e RabbitMQ – Il passaggio finale del prototipo è la configurazione del servizio RabbitMQ e l'implementazione di un consumatore di esempio che si connetterà al flusso di messaggi e riceverà le notizie potenziate dall'intelligenza artificiale.
  • Collaudo finale del prototipo – Utilizziamo un processo end-to-end per verificare che il prototipo sia completamente funzionante, dall'acquisizione alla prenotazione e all'utilizzo del nuovo flusso potenziato dall'intelligenza artificiale.

A questo punto, puoi confermare che tutto ha funzionato accedendo alla dashboard di RabbitMQ, come mostrato nello screenshot seguente.

Arricchimento dei flussi di notizie in tempo reale con Refinitiv Data Library, servizi AWS e Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Nel progetto finale, trovi anche un vettore di test dettagliato per assicurarti che l'intera architettura si comporti come previsto.

Conclusione

In questo post, abbiamo condiviso una soluzione che utilizza ML sul cloud con servizi AWS come SageMaker (ML), Lambda (serverless) e Kinesis Data Streams (streaming) per arricchire i dati di notizie in streaming forniti da Refinitiv Data Libraries. La soluzione aggiunge un punteggio di sentiment alle notizie in tempo reale e ridimensiona l'infrastruttura utilizzando il codice.

Il vantaggio di questa architettura modulare è che puoi riutilizzarla con il tuo modello per eseguire altri tipi di aumento dei dati, in modo serverless, scalabile ed economico che può essere applicato su Refinitiv Data Library. Ciò può aggiungere valore ai flussi di lavoro di trading/investimento/gestione del rischio.

Se hai commenti o domande, ti preghiamo di lasciarli nella sezione commenti.

Informazioni correlate


 Informazioni sugli autori

Arricchimento dei flussi di notizie in tempo reale con Refinitiv Data Library, servizi AWS e Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Marios Skevofylakas proviene da servizi finanziari, investment banking e tecnologia di consulenza. Ha conseguito un dottorato di ricerca in ingegneria. in Intelligenza Artificiale e un M.Sc. nella visione artificiale. Nel corso della sua carriera, ha partecipato a numerosi progetti multidisciplinari di AI e DLT. Attualmente è Developer Advocate presso Refinitiv, un'azienda LSEG, che si occupa di applicazioni AI e Quantum nei servizi finanziari.

Arricchimento dei flussi di notizie in tempo reale con Refinitiv Data Library, servizi AWS e Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Jason Ramchandani ha lavorato presso Refinitiv, un'azienda di LSEG, per 8 anni come Lead Developer Advocate aiutando a costruire la propria community di sviluppatori. In precedenza ha lavorato nei mercati finanziari per oltre 15 anni con un background quantitativo nello spazio equity/equity-linked presso Okasan Securities, Sakura Finance e Jefferies LLC. La sua alma mater è l'UCL.

Arricchimento dei flussi di notizie in tempo reale con Refinitiv Data Library, servizi AWS e Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Haykaz Aramyan proviene da un background finanziario e tecnologico. Ha conseguito un dottorato di ricerca. in Finanza e un M.Sc. in finanza, tecnologia e politica. Attraverso 10 anni di esperienza professionale Haykaz ha lavorato a diversi progetti multidisciplinari che coinvolgono pensioni, fondi di venture capital e startup tecnologiche. Attualmente è Developer Advocate presso Refinitiv, An LSEG Business, che si occupa di applicazioni AI nei servizi finanziari.

Arricchimento dei flussi di notizie in tempo reale con Refinitiv Data Library, servizi AWS e Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Giorgio Schina è Senior Specialist Solutions Architect per AI/ML nella regione EMEA. Ha sede a Londra e lavora a stretto contatto con i clienti nel Regno Unito e in Irlanda. Georgios aiuta i clienti a progettare e distribuire applicazioni di machine learning in produzione su AWS con un particolare interesse per le pratiche MLOps e consentendo ai clienti di eseguire machine learning su larga scala. Nel tempo libero ama viaggiare, cucinare e passare il tempo con amici e familiari.

Arricchimento dei flussi di notizie in tempo reale con Refinitiv Data Library, servizi AWS e Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Muthuvelan Swaminathan è un Enterprise Solutions Architect con sede a New York. Lavora con i clienti aziendali fornendo indicazioni sull'architettura nella creazione di soluzioni resilienti, convenienti e innovative che rispondano alle loro esigenze aziendali e li aiutino a eseguire su larga scala utilizzando prodotti e servizi AWS.

Arricchimento dei flussi di notizie in tempo reale con Refinitiv Data Library, servizi AWS e Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Mayur Udernani guida l'attività di AI e ML di AWS con imprese commerciali nel Regno Unito e in Irlanda. Nel suo ruolo, Mayur trascorre la maggior parte del suo tempo con clienti e partner per contribuire a creare soluzioni di impatto che risolvano le esigenze più urgenti di un cliente o per un settore più ampio sfruttando i servizi AWS Cloud, AI e ML. Mayur vive nella zona di Londra. Ha conseguito un MBA presso l'Indian Institute of Management e una laurea in ingegneria informatica presso l'Università di Mumbai.

Timestamp:

Di più da Apprendimento automatico di AWS