Îmbogățirea fluxurilor de știri în timp real cu Biblioteca de date Refinitiv, serviciile AWS și Amazon SageMaker

Îmbogățirea fluxurilor de știri în timp real cu Biblioteca de date Refinitiv, serviciile AWS și Amazon SageMaker

Acest post este co-autor de Marios Skevofylakas, Jason Ramchandani și Haykaz Aramyan de la Refinitiv, An LSEG Business.

Furnizorii de servicii financiare trebuie adesea să identifice știrile relevante, să le analizeze, să extragă informații și să întreprindă acțiuni în timp real, cum ar fi tranzacționarea unor instrumente specifice (cum ar fi mărfuri, acțiuni, fonduri) pe baza informațiilor suplimentare sau a contextului știrii. O astfel de informație suplimentară (pe care o folosim ca exemplu în această postare) este sentimentul știrii.

Bibliotecile Refinitiv Data (RD) oferă un set cuprinzător de interfețe pentru acces uniform la Catalogul de date Refinitiv. Biblioteca oferă mai multe straturi de abstractizare, oferind diferite stiluri și tehnici de programare potrivite pentru toți dezvoltatorii, de la acces în timp real cu latență scăzută până la ingerări în loturi de date Refinitiv.

În această postare, prezentăm un prototip de arhitectură AWS care ingerează fluxurile noastre de știri utilizând biblioteci RD și le îmbunătățește cu predicții model de învățare automată (ML) folosind Amazon SageMaker, un serviciu ML complet gestionat de la AWS.

În efortul de a proiecta o arhitectură modulară care ar putea fi utilizată într-o varietate de cazuri de utilizare, cum ar fi analiza sentimentelor, recunoașterea entităților numite și multe altele, indiferent de modelul ML utilizat pentru îmbunătățire, am decis să ne concentrăm pe spațiul în timp real. Motivul acestei decizii este că cazurile de utilizare în timp real sunt, în general, mai complexe și că aceeași arhitectură poate fi utilizată, cu ajustări minime, pentru inferența pe lot. În cazul nostru de utilizare, implementăm o arhitectură care ingerează fluxul nostru de știri în timp real, calculează sentimentul pentru fiecare titlu de știri folosind ML și reservește feedul îmbunătățit AI printr-o arhitectură de editor/abonat.

Mai mult, pentru a prezenta o modalitate cuprinzătoare și reutilizabilă de a produce modele ML prin adoptarea practicilor MLOps, introducem conceptul de infrastructură ca cod (IaC) pe parcursul întregului ciclu de viață MLOps al prototipului. Utilizând Terraform și un script configurabil cu un singur punct de intrare, suntem capabili să instanțiăm întreaga infrastructură, în modul de producție, pe AWS în doar câteva minute.

În această soluție, nu abordăm aspectul MLOps al dezvoltării, instruirii și implementării modelelor individuale. Dacă sunteți interesat să aflați mai multe despre acest lucru, consultați Foaia de parcurs a fundației MLOps pentru întreprinderi cu Amazon SageMaker, care explică în detaliu un cadru pentru construirea de modele, instruire și implementare urmând cele mai bune practici.

Prezentare generală a soluțiilor

În acest prototip, urmăm o metodologie de furnizare complet automatizată în conformitate cu IaC Cele mai bune practici. IaC este procesul de furnizare a resurselor în mod programatic folosind scripturi automate, mai degrabă decât utilizarea instrumentelor de configurare interactive. Resursele pot fi atât hardware, cât și software necesare. În cazul nostru, folosim Terraform pentru a realiza implementarea unui singur punct de intrare configurabil care poate activa automat întreaga infrastructură de care avem nevoie, inclusiv politicile de securitate și acces, precum și monitorizarea automată. Cu acest punct de intrare unic care declanșează o colecție de scripturi Terraform, unul pentru fiecare serviciu sau entitate de resursă, putem automatiza complet ciclul de viață al tuturor sau părților componente ale arhitecturii, permițându-ne să implementăm control granular atât pe DevOps, cât și pe partea MLOps. După ce Terraform este instalat și integrat corect cu AWS, putem replica majoritatea operațiunilor care pot fi efectuate pe tablourile de bord ale serviciilor AWS.

Următoarea diagramă ilustrează arhitectura soluției noastre.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Arhitectura constă din trei etape: asimilare, îmbogățire și publicare. În prima etapă, fluxurile în timp real sunt ingerate pe un Cloud Elastic de calcul Amazon (Amazon EC2) instanță care este creată printr-un AMI pregătit pentru biblioteca de date Refinitiv. Instanța se conectează și la un flux de date prin Fluxuri de date Amazon Kinesis, care declanșează un AWS Lambdas Funcția.

În a doua etapă, funcția Lambda care este declanșată de la Kinesis Data Streams se conectează la și trimite titlurile de știri către un SageMaker FinBERT punctul final, care returnează sentimentul calculat pentru articolul de știre. Acest sentiment calculat este îmbogățirea datelor în timp real cu care funcția Lambda înglobează apoi știrea și le stochează într-un Amazon DynamoDB tabel.

În a treia etapă a arhitecturii, un flux DynamoDB declanșează o funcție Lambda pe inserții de articole noi, care este integrată cu un Serverul Amazon MQ rulează RabbitMQ, care reservește fluxul îmbunătățit AI.

Decizia privind acest design ingineresc în trei etape, mai degrabă decât primul strat Lambda care comunică direct cu serverul Amazon MQ sau implementează mai multe funcționalități în instanța EC2, a fost luată pentru a permite explorarea arhitecturilor de proiectare AI mai complexe, mai puțin cuplate în viitor.

Construirea și implementarea prototipului

Prezentăm acest prototip într-o serie de trei planuri detaliate. În fiecare plan și pentru fiecare serviciu utilizat, veți găsi prezentari generale și informații relevante despre implementările sale tehnice, precum și scripturi Terraform care vă permit să porniți, să configurați și să integrați automat serviciul cu restul structurii. La sfârșitul fiecărui plan, veți găsi instrucțiuni despre cum să vă asigurați că totul funcționează conform așteptărilor până la fiecare etapă. Planurile sunt după cum urmează:

Pentru a începe implementarea acestui prototip, vă sugerăm să creați un nou mediu Python dedicat acestuia și să instalați pachetele și instrumentele necesare separat de alte medii pe care le aveți. Pentru a face acest lucru, creați și activați noul mediu în Anaconda utilizând următoarele comenzi:

conda create —name rd_news_aws_terraform python=3.7
conda activate rd_news_aws_terraform

Acum suntem gata să instalăm Interfața liniei de comandă AWS (AWS CLI) set de instrumente care ne va permite să construim toate interacțiunile programatice necesare în și între serviciile AWS:

pip install awscli

Acum că AWS CLI este instalat, trebuie să instalăm Terraform. HashiCorp oferă Terraform un program de instalare binar, pe care îl puteți Descarca și instalați.

După ce ați instalat ambele instrumente, asigurați-vă că funcționează corect folosind următoarele comenzi:

terraform -help
AWS – version

Acum sunteți gata să urmați planurile detaliate pentru fiecare dintre cele trei etape ale implementării.

Acest plan reprezintă etapele inițiale ale arhitecturii care ne permit să ingerăm fluxurile de știri în timp real. Se compune din următoarele componente:

  • Amazon EC2 vă pregătește instanța pentru absorbția RD News – Această secțiune configurează o instanță EC2 astfel încât să permită conexiunea la API-ul RD Libraries și fluxul în timp real. De asemenea, arătăm cum să salvați imaginea instanței create pentru a asigura reutilizarea și scalabilitatea acesteia.
  • Asimilare de știri în timp real de la Amazon EC2 – O implementare detaliată a configurațiilor necesare pentru a permite Amazon EC2 să conecteze bibliotecile RD, precum și scripturile pentru a începe asimilarea.
  • Crearea și lansarea Amazon EC2 din AMI – Lansați o nouă instanță prin transferarea simultană a fișierelor de asimilare la instanța nou creată, toate automat folosind Terraform.
  • Crearea unui flux de date Kinesis – Această secțiune oferă o prezentare generală a fluxurilor de date Kinesis și a modului de configurare a unui flux pe AWS.
  • Conectarea și transmiterea datelor către Kinesis – Odată ce codul de asimilare funcționează, trebuie să-l conectăm și să trimitem date către un flux Kinesis.
  • Testarea prototipului până acum - Folosim Amazon CloudWatch și instrumente de linie de comandă pentru a verifica dacă prototipul funcționează până în acest moment și că putem continua la următorul model. Jurnalul de date ingerate ar trebui să arate ca următoarea captură de ecran.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

În acest al doilea plan, ne concentrăm pe partea principală a arhitecturii: funcția Lambda care ingerează și analizează fluxul de știri, îi atașează inferența AI și îl stochează pentru utilizare ulterioară. Acesta include următoarele componente:

  • Lambda – Definiți o configurație Terraform Lambda permițându-i să se conecteze la un punct final SageMaker.
  • Amazon S3 – Pentru a implementa Lambda, trebuie să încărcăm codul corespunzător în Serviciul Amazon de stocare simplă (Amazon S3) și permiteți funcției Lambda să-l ingereze în mediul său. Această secțiune descrie cum putem folosi Terraform pentru a realiza acest lucru.
  • Implementarea funcției Lambda: Pasul 1, Gestionarea evenimentului Kinesis – În această secțiune, începem construirea funcției Lambda. Aici, construim doar partea de gestionare a răspunsului la fluxul de date Kinesis.
  • SageMaker – În acest prototip, folosim un model Hugging Face pre-antrenat pe care îl stocăm într-un punct final SageMaker. Aici, vă prezentăm cum se poate realiza acest lucru folosind scripturile Terraform și cum au loc integrările corespunzătoare pentru a permite punctelor finale SageMaker și funcțiilor Lambda să funcționeze împreună.
    • În acest moment, puteți utiliza în schimb orice alt model pe care l-ați dezvoltat și implementat în spatele unui punct final SageMaker. Un astfel de model ar putea oferi o îmbunătățire diferită a datelor de știri originale, în funcție de nevoile dvs. Opțional, acest lucru poate fi extrapolat la mai multe modele pentru mai multe îmbunătățiri, dacă există. Datorită restului arhitecturii, orice astfel de modele vă vor îmbogăți sursele de date în timp real.
  • Crearea funcției Lambda: Pasul 2, Invocarea punctului final SageMaker – În această secțiune, construim funcția noastră originală Lambda adăugând blocul SageMaker pentru a obține un titlu de știri îmbunătățit de sentiment prin invocarea punctului final SageMaker.
  • DynamoDB – În cele din urmă, când inferența AI este în memoria funcției Lambda, regrupează articolul și îl trimite la un tabel DynamoDB pentru stocare. Aici, discutăm atât codul Python adecvat necesar pentru a realiza acest lucru, cât și scripturile Terraform necesare care permit aceste interacțiuni.
  • Crearea funcției Lambda: Pasul 3, transmiterea datelor îmbunătățite către DynamoDB – Aici, continuăm construirea funcției noastre Lambda adăugând ultima parte care creează o intrare în tabelul Dynamo.
  • Testarea prototipului până acum – Putem naviga la tabelul DynamoDB de pe consola DynamoDB pentru a verifica dacă îmbunătățirile noastre apar în tabel.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Acest al treilea Blueprint finalizează acest prototip. Se concentrează pe redistribuirea elementului de date îmbunătățit cu inteligență artificială nou creat către un server RabbitMQ din Amazon MQ, permițând consumatorilor să se conecteze și să recupereze articolele de știri îmbunătățite în timp real. Acesta include următoarele componente:

  • Fluxuri DynamoDB – Când știrile îmbunătățite sunt în DynamoDB, am configurat un eveniment care va fi declanșat, care poate fi apoi capturat din funcția Lambda corespunzătoare.
  • Scrierea producătorului Lambda – Această funcție Lambda captează evenimentul și acționează ca un producător al fluxului RabbitMQ. Această nouă funcție introduce conceptul de straturi Lambda, deoarece folosește bibliotecile Python pentru a implementa funcționalitatea producătorului.
  • Consumatorii Amazon MQ și RabbitMQ – Pasul final al prototipului este configurarea serviciului RabbitMQ și implementarea unui exemplu de consumator care se va conecta la fluxul de mesaje și va primi știrile îmbunătățite AI.
  • Testul final al prototipului – Utilizăm un proces de la capăt la capăt pentru a verifica dacă prototipul funcționează pe deplin, de la ingerare până la reservire și consumarea noului flux îmbunătățit de AI.

În această etapă, puteți valida că totul a funcționat navigând la tabloul de bord RabbitMQ, așa cum se arată în următoarea captură de ecran.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

În planul final, găsiți și un vector de testare detaliat pentru a vă asigura că întreaga arhitectură se comportă conform planificării.

Concluzie

În această postare, am împărtășit o soluție care utilizează ML în cloud cu servicii AWS precum SageMaker (ML), Lambda (fără server) și Kinesis Data Streams (streaming) pentru a îmbogăți datele de știri în flux furnizate de Refinitiv Data Libraries. Soluția adaugă un scor de sentiment la știri în timp real și scalează infrastructura folosind cod.

Avantajul acestei arhitecturi modulare este că o puteți reutiliza cu propriul dvs. model pentru a efectua alte tipuri de creștere a datelor, într-un mod fără server, scalabil și eficient din punct de vedere al costurilor, care poate fi aplicat pe lângă Refinitiv Data Library. Acest lucru poate adăuga valoare pentru fluxurile de lucru de tranzacționare/investiții/gestionare a riscurilor.

Dacă aveți orice comentarii sau întrebări, vă rugăm să le lăsați în secțiunea de comentarii.

Informații corelate


 Despre Autori

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Marios Skevofylakas provine din domeniul serviciilor financiare, al domeniului bancar de investiții și al tehnologiei de consultanță. Deține un doctorat în inginerie. în Inteligență Artificială și un M.Sc. în Viziune Mașină. De-a lungul carierei sale, a participat la numeroase proiecte multidisciplinare de IA și DLT. În prezent, este Developer Advocate la Refinitiv, o afacere LSEG, care se concentrează pe aplicații AI și Quantum în serviciile financiare.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Jason Ramchandani a lucrat la Refinitiv, o afacere LSEG, timp de 8 ani ca Lead Developer Advocate, ajutând la construirea comunității de dezvoltatori. Anterior, a lucrat pe piețele financiare de peste 15 ani, cu experiență în domeniul acțiunilor/legate de acțiuni la Okasan Securities, Sakura Finance și Jefferies LLC. Universitatea sa este UCL.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Haykaz Aramyan provine dintr-un mediu financiar și tehnologic. El deține un doctorat. în Finanțe și un M.Sc. în Finanțe, Tehnologie și Politică. Prin cei 10 ani de experiență profesională, Haykaz a lucrat la mai multe proiecte multidisciplinare care implică pensii, fonduri de capital de risc și startup-uri tehnologice. În prezent, este avocat pentru dezvoltatori la Refinitiv, o afacere LSEG, concentrându-se pe aplicațiile AI în serviciile financiare.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Georgios Schinas este arhitect de soluții de specialitate senior pentru AI/ML în regiunea EMEA. Are sediul la Londra și lucrează îndeaproape cu clienții din Marea Britanie și Irlanda. Georgios îi ajută pe clienți să proiecteze și să implementeze aplicații de învățare automată în producție pe AWS, cu un interes deosebit pentru practicile MLOps și le permite clienților să efectueze învățarea automată la scară. În timpul liber, îi place să călătorească, să gătească și să petreacă timpul cu prietenii și familia.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Muthuvelan Swaminathan este un arhitect de soluții pentru întreprinderi cu sediul în New York. El lucrează cu clienții întreprinderi, oferind îndrumări arhitecturale în construirea de soluții inovatoare, eficiente și rezistente, care să răspundă nevoilor lor de afaceri și să-i ajute să execute la scară utilizând produsele și serviciile AWS.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Mayur Udernani conduce afacerile AWS AI și ML cu întreprinderi comerciale din Marea Britanie și Irlanda. În rolul său, Mayur își petrece cea mai mare parte a timpului cu clienții și partenerii pentru a ajuta la crearea de soluții de impact care să rezolve cele mai stringente nevoi ale unui client sau pentru o industrie mai largă care folosește serviciile AWS Cloud, AI și ML. Mayur locuiește în zona Londrei. Are un MBA de la Institutul Indian de Management și o licență în Inginerie Calculatoare de la Universitatea din Mumbai.

Timestamp-ul:

Mai mult de la Învățare automată AWS