Berigende nyhedsstrømme i realtid med Refinitiv Data Library, AWS-tjenester og Amazon SageMaker

Berigende nyhedsstrømme i realtid med Refinitiv Data Library, AWS-tjenester og Amazon SageMaker

Dette indlæg er medforfattet af Marios Skevofylakas, Jason Ramchandani og Haykaz Aramyan fra Refinitiv, An LSEG Business.

Udbydere af finansielle tjenester har ofte behov for at identificere relevante nyheder, analysere dem, uddrage indsigt og foretage handlinger i realtid, som f.eks. handel med specifikke instrumenter (såsom råvarer, aktier, fonde) baseret på yderligere information eller kontekst af nyheden. En sådan yderligere information (som vi bruger som et eksempel i dette indlæg) er nyhedens følelser.

Refinitiv Data (RD) biblioteker tilbyder et omfattende sæt grænseflader til ensartet adgang til Refinitiv Data Catalogue. Biblioteket tilbyder flere lag af abstraktion, der giver forskellige stilarter og programmeringsteknikker, der passer til alle udviklere, fra lav latens, realtidsadgang til batch-indtagelser af Refinitiv-data.

I dette indlæg præsenterer vi en prototype AWS-arkitektur, der indtager vores nyhedsfeeds ved hjælp af RD Libraries og forbedrer dem med maskinlæring (ML) modelforudsigelser ved hjælp af Amazon SageMaker, en fuldt administreret ML-tjeneste fra AWS.

I et forsøg på at designe en modulær arkitektur, der kunne bruges i en række forskellige anvendelsessager, såsom sentimentanalyse, navngiven enhedsgenkendelse og mere, uanset hvilken ML-model, der blev brugt til forbedring, besluttede vi at fokusere på realtidsrummet. Årsagen til denne beslutning er, at brugssager i realtid generelt er mere komplekse, og at den samme arkitektur også kan bruges, med minimale justeringer, til batch-inferens. I vores anvendelsestilfælde implementerer vi en arkitektur, der indtager vores nyhedsfeed i realtid, beregner stemningen på hver nyhedsoverskrift ved hjælp af ML og genserverer det forbedrede AI-feed gennem en udgiver-/abonnentarkitektur.

For at præsentere en omfattende og genanvendelig måde at producere ML-modeller på ved at anvende MLOps-praksis introducerer vi begrebet infrastruktur som kode (IaC) under hele prototypens MLOps-livscyklus. Ved at bruge Terraform og et enkelt indgangspunkt konfigurerbart script, er vi i stand til at instansiere hele infrastrukturen, i produktionstilstand, på AWS på blot et par minutter.

I denne løsning behandler vi ikke MLOps-aspektet af udvikling, træning og implementering af de enkelte modeller. Hvis du er interesseret i at lære mere om dette, så se MLOps fundament køreplan for virksomheder med Amazon SageMaker, som i detaljer forklarer en ramme for modelopbygning, træning og implementering efter bedste praksis.

Løsningsoversigt

I denne prototype følger vi en fuldautomatisk leveringsmetodologi i overensstemmelse med IaC bedste praksis. IaC er processen med at klargøre ressourcer programmatisk ved hjælp af automatiserede scripts i stedet for at bruge interaktive konfigurationsværktøjer. Ressourcer kan være både hardware og nødvendig software. I vores tilfælde bruger vi Terraform til at gennemføre implementeringen af ​​et enkelt konfigurerbart indgangspunkt, der automatisk kan spinne op hele den infrastruktur, vi har brug for, inklusive sikkerheds- og adgangspolitikker samt automatiseret overvågning. Med dette enkelt indgangspunkt, der udløser en samling af Terraform-scripts, et pr. tjeneste eller ressourceentitet, kan vi fuldt ud automatisere livscyklussen for alle eller dele af komponenterne i arkitekturen, hvilket giver os mulighed for at implementere granulær kontrol både på DevOps såvel som MLOps-siden. Efter at Terraform er korrekt installeret og integreret med AWS, kan vi replikere de fleste operationer, der kan udføres på AWS service dashboards.

Følgende diagram illustrerer vores løsningsarkitektur.

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

Arkitekturen består af tre faser: indtagelse, berigelse og udgivelse. Under den første fase indtages realtidsfeeds på en Amazon Elastic Compute Cloud (Amazon EC2) instans, der er oprettet gennem en Refinitiv Data Library-klar AMI. Forekomsten forbinder også til en datastrøm via Amazon Kinesis datastrømme, som udløser en AWS Lambda funktion.

I anden fase forbindes Lambda-funktionen, der udløses fra Kinesis Data Streams, til og sender nyhedsoverskrifterne til en SageMaker FinBERT endepunkt, som returnerer den beregnede stemning for nyheden. Denne beregnede stemning er berigelsen i realtidsdata, som Lambda-funktionen derefter pakker nyheden ind med og gemmer i en Amazon DynamoDB tabel.

I tredje fase af arkitekturen udløser en DynamoDB-stream en Lambda-funktion på nye emneindsatser, som er integreret med en Amazon MQ server kører RabbitMQ, som genserverer den forbedrede AI-stream.

Beslutningen om dette tre-trins ingeniørdesign, snarere end det første Lambda-lag, der kommunikerer direkte med Amazon MQ-serveren eller implementerer mere funktionalitet i EC2-instansen, blev truffet for at muliggøre udforskning af mere komplekse, mindre koblede AI-designarkitekturer i fremtiden.

Opbygning og implementering af prototypen

Vi præsenterer denne prototype i en serie af tre detaljerede tegninger. I hver plan og for hver brugt tjeneste finder du oversigter og relevant information om dens tekniske implementeringer samt Terraform-scripts, der giver dig mulighed for automatisk at starte, konfigurere og integrere tjenesten med resten af ​​strukturen. I slutningen af ​​hver plan finder du instruktioner om, hvordan du sikrer dig, at alt fungerer som forventet op til hvert trin. Tegningerne er som følger:

For at starte implementeringen af ​​denne prototype foreslår vi at oprette et nyt Python-miljø dedikeret til det og installere de nødvendige pakker og værktøjer adskilt fra andre miljøer, du måtte have. For at gøre det skal du oprette og aktivere det nye miljø i Anaconda ved hjælp af følgende kommandoer:

conda create —name rd_news_aws_terraform python=3.7
conda activate rd_news_aws_terraform

Vi er nu klar til at installere AWS kommandolinjegrænseflade (AWS CLI) værktøjssæt, der giver os mulighed for at bygge alle de nødvendige programmatiske interaktioner i og mellem AWS-tjenester:

pip install awscli

Nu hvor AWS CLI er installeret, skal vi installere Terraform. HashiCorp giver Terraform et binært installationsprogram, som du kan downloade og installer.

Når du har installeret begge værktøjer, skal du sikre dig, at de fungerer korrekt ved hjælp af følgende kommandoer:

terraform -help
AWS – version

Du er nu klar til at følge de detaljerede tegninger på hver af de tre faser af implementeringen.

Denne plan repræsenterer de indledende faser af arkitekturen, der giver os mulighed for at indtage nyhedsfeeds i realtid. Den består af følgende komponenter:

  • Amazon EC2 forbereder din instans til indtagelse af RD News – Dette afsnit opsætter en EC2-instans på en måde, så den muliggør forbindelse til RD Libraries API og realtidsstrømmen. Vi viser også, hvordan man gemmer billedet af den oprettede instans for at sikre dets genbrugelighed og skalerbarhed.
  • Nyhedsindtagelse i realtid fra Amazon EC2 – En detaljeret implementering af de nødvendige konfigurationer for at sætte Amazon EC2 i stand til at forbinde RD-bibliotekerne samt scripts for at starte indtagelsen.
  • Oprettelse og lancering af Amazon EC2 fra AMI – Start en ny instans ved samtidig at overføre indlæsningsfiler til den nyoprettede instans, alt sammen automatisk ved hjælp af Terraform.
  • Oprettelse af en Kinesis-datastrøm – Dette afsnit giver et overblik over Kinesis Data Streams og hvordan man opsætter en stream på AWS.
  • Tilslutning og push af data til Kinesis – Når indtagelseskoden virker, skal vi forbinde den og sende data til en Kinesis-strøm.
  • Test af prototypen indtil videre - Vi bruger amazoncloudwatch og kommandolinjeværktøjer til at verificere, at prototypen fungerer indtil dette punkt, og at vi kan fortsætte til næste plan. Loggen over indtagne data skal se ud som følgende skærmbillede.

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

I denne anden plan fokuserer vi på hoveddelen af ​​arkitekturen: Lambda-funktionen, der indtager og analyserer nyhedsstrømmen, knytter AI-slutningen til den og gemmer den til videre brug. Det omfatter følgende komponenter:

  • Lambda – Definer en Terraform Lambda-konfiguration, så den kan oprette forbindelse til et SageMaker-slutpunkt.
  • Amazon S3 – For at implementere Lambda skal vi uploade den relevante kode til Amazon Simple Storage Service (Amazon S3) og tillade Lambda-funktionen at indtage det i sit miljø. Dette afsnit beskriver, hvordan vi kan bruge Terraform til at opnå det.
  • Implementering af Lambda-funktionen: Trin 1, Håndtering af Kinesis-hændelsen – I dette afsnit begynder vi at bygge Lambda-funktionen. Her bygger vi kun Kinesis datastream response handler-delen.
  • SageMaker – I denne prototype bruger vi en fortrænet Hugging Face-model, som vi gemmer i et SageMaker-slutpunkt. Her præsenterer vi, hvordan dette kan opnås ved hjælp af Terraform-scripts, og hvordan de passende integrationer finder sted for at tillade SageMaker-endepunkter og Lambda-funktioner at arbejde sammen.
    • På dette tidspunkt kan du i stedet bruge enhver anden model, som du har udviklet og implementeret bag et SageMaker-slutpunkt. En sådan model kunne give en anden forbedring af de originale nyhedsdata baseret på dine behov. Dette kan eventuelt ekstrapoleres til flere modeller for flere forbedringer, hvis sådanne findes. Takket være resten af ​​arkitekturen vil sådanne modeller berige dine datakilder i realtid.
  • Opbygning af Lambda-funktionen: Trin 2, Påkaldelse af SageMaker-slutpunktet – I dette afsnit opbygger vi vores originale Lambda-funktion ved at tilføje SageMaker-blokken for at få en følelsesforstærket nyhedsoverskrift ved at påkalde SageMaker-slutpunktet.
  • DynamoDB – Endelig, når AI-inferensen er i Lambda-funktionens hukommelse, samler den varen igen og sender den til en DynamoDB-tabel til opbevaring. Her diskuterer vi både den passende Python-kode, der er nødvendig for at opnå det, såvel som de nødvendige Terraform-scripts, der muliggør disse interaktioner.
  • Opbygning af Lambda-funktionen: Trin 3, Pushing af forbedrede data til DynamoDB – Her fortsætter vi med at opbygge vores Lambda-funktion ved at tilføje den sidste del, der skaber en indgang i Dynamo-tabellen.
  • Test af prototypen indtil videre – Vi kan navigere til DynamoDB-tabellen på DynamoDB-konsollen for at kontrollere, at vores forbedringer vises i tabellen.

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

Denne tredje Blueprint færdiggør denne prototype. Det fokuserer på at omfordele det nyoprettede, AI-forbedrede dataelement til en RabbitMQ-server i Amazon MQ, hvilket giver forbrugerne mulighed for at oprette forbindelse og hente de forbedrede nyheder i realtid. Det omfatter følgende komponenter:

  • DynamoDB-streams – Når den forbedrede nyhed er i DynamoDB, konfigurerer vi en begivenhed, der udløses, som derefter kan fanges fra den relevante Lambda-funktion.
  • Skriver Lambda-producenten – Denne Lambda-funktion fanger begivenheden og fungerer som producent af RabbitMQ-strømmen. Denne nye funktion introducerer konceptet med Lambda-lag, da den bruger Python-biblioteker til at implementere producentfunktionaliteten.
  • Amazon MQ og RabbitMQ forbrugere – Det sidste trin af prototypen er at opsætte RabbitMQ-tjenesten og implementere en eksempelforbruger, der vil oprette forbindelse til beskedstrømmen og modtage de AI-forstærkede nyheder.
  • Afsluttende test af prototypen – Vi bruger en ende-til-ende-proces til at verificere, at prototypen fungerer fuldt ud, fra indtagelse til genservering og forbrug af den nye AI-forbedrede stream.

På dette stadium kan du validere, at alt har fungeret, ved at navigere til RabbitMQ-dashboardet, som vist på det følgende skærmbillede.

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

I den endelige blueprint finder du også en detaljeret testvektor for at sikre, at hele arkitekturen opfører sig som planlagt.

Konklusion

I dette indlæg delte vi en løsning, der bruger ML på skyen med AWS-tjenester som SageMaker (ML), Lambda (serverløs) og Kinesis Data Streams (streaming) for at berige streaming af nyhedsdata leveret af Refinitiv Data Libraries. Løsningen tilføjer en følelsesscore til nyheder i realtid og skalerer infrastrukturen ved hjælp af kode.

Fordelen ved denne modulære arkitektur er, at du kan genbruge den med din egen model til at udføre andre typer dataforøgelse på en serverløs, skalerbar og omkostningseffektiv måde, der kan anvendes oven på Refinitiv Data Library. Dette kan tilføje værdi til arbejdsgange for handel/investering/risikostyring.

Hvis du har kommentarer eller spørgsmål, bedes du efterlade dem i kommentarfeltet.

Relaterede oplysninger


 Om forfatterne

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Marios Skevofylakas kommer fra en baggrund inden for finansielle tjenesteydelser, investeringsbankvirksomhed og konsulentteknologi. Han har en ingeniør-ph.d. i kunstig intelligens og en M.Sc. i Machine Vision. Gennem sin karriere har han deltaget i adskillige tværfaglige AI- og DLT-projekter. Han er i øjeblikket udvikleradvokat hos Refinitiv, en LSEG-virksomhed, der fokuserer på kunstig intelligens og kvanteapplikationer i finansielle tjenester.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Jason Ramchandani har arbejdet hos Refinitiv, en LSEG Business, i 8 år som Lead Developer Advocate og hjalp med at opbygge deres udviklerfællesskab. Tidligere har han arbejdet på de finansielle markeder i over 15 år med en kvant baggrund inden for aktie-/aktierelaterede områder hos Okasan Securities, Sakura Finance og Jefferies LLC. Hans alma mater er UCL.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Haykaz Aramyan kommer fra en finans- og teknologibaggrund. Han har en ph.d. i finans og en M.Sc. i finans, teknologi og politik. Gennem 10 års erhvervserfaring arbejdede Haykaz på adskillige tværfaglige projekter, der involverede pension, VC-fonde og teknologistartups. Han er i øjeblikket udvikleradvokat hos Refinitiv, An LSEG Business, med fokus på AI-applikationer i finansielle tjenester.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Georgios Schinas er Senior Specialist Solutions Architect for AI/ML i EMEA-regionen. Han er baseret i London og arbejder tæt sammen med kunder i Storbritannien og Irland. Georgios hjælper kunder med at designe og implementere maskinlæringsapplikationer i produktion på AWS med en særlig interesse i MLOps-praksis og gør det muligt for kunder at udføre maskinlæring i stor skala. I sin fritid nyder han at rejse, lave mad og tilbringe tid med venner og familie.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Muthuvelan Swaminathan er en Enterprise Solutions Architect baseret i New York. Han arbejder med virksomhedskunder, der giver arkitektonisk vejledning i at bygge robuste, omkostningseffektive, innovative løsninger, der imødekommer deres forretningsbehov og hjælper dem med at eksekvere i stor skala ved hjælp af AWS-produkter og -tjenester.

Enriching real-time news streams with the Refinitiv Data Library, AWS services, and Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Mayur Udernani leder AWS AI & ML forretning med kommercielle virksomheder i Storbritannien og Irland. I sin rolle bruger Mayur størstedelen af ​​sin tid med kunder og partnere for at hjælpe med at skabe effektive løsninger, der løser de mest presserende behov hos en kunde eller for en bredere industri, der udnytter AWS Cloud, AI & ML-tjenester. Mayur bor i London-området. Han har en MBA fra Indian Institute of Management og bachelorer i Computer Engineering fra Mumbai University.

Tidsstempel:

Mere fra AWS maskinindlæring