Berikende nyhetsstrømmer i sanntid med Refinitiv Data Library, AWS-tjenester og Amazon SageMaker

Berikende nyhetsstrømmer i sanntid med Refinitiv Data Library, AWS-tjenester og Amazon SageMaker

Dette innlegget er medforfatter av Marios Skevofylakas, Jason Ramchandani og Haykaz Aramyan fra Refinitiv, An LSEG Business.

Finansielle tjenesteleverandører trenger ofte å identifisere relevante nyheter, analysere dem, trekke ut innsikt og iverksette handlinger i sanntid, som å handle spesifikke instrumenter (som råvarer, aksjer, fond) basert på tilleggsinformasjon eller konteksten til nyhetssaken. En slik tilleggsinformasjon (som vi bruker som eksempel i dette innlegget) er følelsen av nyhetene.

Refinitiv Data (RD)-biblioteker tilbyr et omfattende sett med grensesnitt for enhetlig tilgang til Refinitiv Data Catalogue. Biblioteket tilbyr flere lag med abstraksjon som gir forskjellige stiler og programmeringsteknikker som passer for alle utviklere, fra lav latens, sanntidstilgang til batch-inntak av Refinitiv-data.

I dette innlegget presenterer vi en prototype AWS-arkitektur som tar inn nyhetsfeedene våre ved hjelp av RD Libraries og forbedrer dem med maskinlæringsmodell (ML) modellprediksjoner ved hjelp av Amazon SageMaker, en fullstendig administrert ML-tjeneste fra AWS.

I et forsøk på å designe en modulær arkitektur som kan brukes i en rekke brukstilfeller, som sentimentanalyse, navngitt enhetsgjenkjenning og mer, uavhengig av ML-modellen som brukes til forbedring, bestemte vi oss for å fokusere på sanntidsrommet. Årsaken til denne avgjørelsen er at sanntidsbrukstilfeller generelt er mer komplekse og at den samme arkitekturen også kan brukes, med minimale justeringer, for batchslutninger. I vårt brukstilfelle implementerer vi en arkitektur som inntar vår sanntidsnyhetsfeed, beregner sentiment på hver nyhetsoverskrift ved hjelp av ML, og omserverer den forbedrede AI-strømmen gjennom en utgiver-/abonnentarkitektur.

I tillegg, for å presentere en omfattende og gjenbrukbar måte å produsere ML-modeller ved å ta i bruk MLOps-praksis, introduserer vi konseptet infrastruktur som kode (IaC) under hele MLOps-livssyklusen til prototypen. Ved å bruke Terraform og et enkelt konfigurerbart skript for inngangspunkt, er vi i stand til å instansiere hele infrastrukturen, i produksjonsmodus, på AWS på bare noen få minutter.

I denne løsningen tar vi ikke opp MLOps-aspektet ved utvikling, opplæring og distribusjon av de individuelle modellene. Hvis du er interessert i å lære mer om dette, se MLOps foundation roadmap for bedrifter med Amazon SageMaker, som forklarer i detalj et rammeverk for modellbygging, opplæring og distribusjon etter beste praksis.

Løsningsoversikt

I denne prototypen følger vi en helautomatisert leveringsmetodikk i samsvar med IaC beste praksis. IaC er prosessen med å klargjøre ressurser programmatisk ved hjelp av automatiserte skript i stedet for å bruke interaktive konfigurasjonsverktøy. Ressurser kan være både maskinvare og nødvendig programvare. I vårt tilfelle bruker vi Terraform for å gjennomføre implementeringen av et enkelt konfigurerbart inngangspunkt som automatisk kan spinne opp hele infrastrukturen vi trenger, inkludert sikkerhets- og tilgangspolicyer, samt automatisert overvåking. Med dette enkelt inngangspunktet som utløser en samling av Terraform-skript, ett per tjeneste eller ressursenhet, kan vi fullt ut automatisere livssyklusen til alle eller deler av komponentene i arkitekturen, slik at vi kan implementere granulær kontroll både på DevOps så vel som MLOps-siden. Etter at Terraform er riktig installert og integrert med AWS, kan vi replikere de fleste operasjoner som kan gjøres på AWS-tjenestedashboardene.

Følgende diagram illustrerer løsningsarkitekturen.

Berikende nyhetsstrømmer i sanntid med Refinitiv Data Library, AWS-tjenester og Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Arkitekturen består av tre stadier: inntak, berikelse og publisering. I løpet av det første trinnet inntas sanntidsfeedene på en Amazon Elastic Compute Cloud (Amazon EC2)-forekomst som er opprettet gjennom en Refinitiv Data Library-klar AMI. Forekomsten kobles også til en datastrøm via Amazon Kinesis datastrømmer, som utløser en AWS Lambda funksjon.

I det andre trinnet kobles Lambda-funksjonen som utløses fra Kinesis Data Streams til og sender nyhetsoverskriftene til en SageMaker FinBERT endepunkt, som returnerer det beregnede sentimentet for nyheten. Dette beregnede sentimentet er berikelsen i sanntidsdataene som Lambda-funksjonen deretter pakker nyheten med og lagrer i en Amazon DynamoDB tabellen.

I det tredje trinnet av arkitekturen utløser en DynamoDB-strøm en Lambda-funksjon på nye vareinnlegg, som er integrert med en Amazon MQ-server kjører RabbitMQ, som gjenserverer den forbedrede AI-strømmen.

Beslutningen om dette tre-trinns ingeniørdesignet, i stedet for at det første Lambda-laget kommuniserer direkte med Amazon MQ-serveren eller implementerer mer funksjonalitet i EC2-forekomsten, ble tatt for å muliggjøre utforskning av mer komplekse, mindre koblede AI-designarkitekturer i fremtiden.

Bygge og distribuere prototypen

Vi presenterer denne prototypen i en serie med tre detaljerte tegninger. I hver blåkopi og for hver tjeneste som brukes, vil du finne oversikter og relevant informasjon om dens tekniske implementeringer samt Terraform-skript som lar deg automatisk starte, konfigurere og integrere tjenesten med resten av strukturen. På slutten av hver blåkopi finner du instruksjoner om hvordan du sørger for at alt fungerer som forventet frem til hvert trinn. Tegningene er som følger:

For å starte implementeringen av denne prototypen, foreslår vi at du oppretter et nytt Python-miljø dedikert til det og installerer de nødvendige pakkene og verktøyene separat fra andre miljøer du måtte ha. For å gjøre det, opprette og aktiver det nye miljøet i Anaconda ved å bruke følgende kommandoer:

conda create —name rd_news_aws_terraform python=3.7
conda activate rd_news_aws_terraform

Vi er nå klare til å installere AWS kommandolinjegrensesnitt (AWS CLI) verktøysett som lar oss bygge alle nødvendige programmatiske interaksjoner i og mellom AWS-tjenester:

pip install awscli

Nå som AWS CLI er installert, må vi installere Terraform. HashiCorp gir Terraform et binært installasjonsprogram, som du kan nedlasting og installer.

Etter at du har installert begge verktøyene, sørg for at de fungerer som de skal ved å bruke følgende kommandoer:

terraform -help
AWS – version

Du er nå klar til å følge de detaljerte tegningene på hvert av de tre trinnene i implementeringen.

Denne planen representerer de innledende stadiene av arkitekturen som lar oss innta sanntids nyhetsfeeds. Den består av følgende komponenter:

  • Amazon EC2 forbereder instansen din for RD News-inntak – Denne delen setter opp en EC2-forekomst på en måte som muliggjør tilkobling til RD Libraries API og sanntidsstrømmen. Vi viser også hvordan du lagrer bildet av den opprettede forekomsten for å sikre gjenbrukbarhet og skalerbarhet.
  • Nyhetsinntak i sanntid fra Amazon EC2 – En detaljert implementering av konfigurasjonene som trengs for å gjøre det mulig for Amazon EC2 å koble til RD-bibliotekene samt skriptene for å starte inntaket.
  • Opprette og lansere Amazon EC2 fra AMI – Start en ny forekomst ved samtidig å overføre innføringsfiler til den nyopprettede forekomsten, alt automatisk ved hjelp av Terraform.
  • Opprette en Kinesis-datastrøm – Denne delen gir en oversikt over Kinesis Data Streams og hvordan du setter opp en strøm på AWS.
  • Koble til og skyve data til Kinesis – Når inntakskoden fungerer, må vi koble den til og sende data til en Kinesis-strøm.
  • Tester prototypen så langt - Vi bruker Amazon CloudWatch og kommandolinjeverktøy for å bekrefte at prototypen fungerer frem til dette punktet, og at vi kan fortsette til neste plan. Loggen over inntatte data skal se ut som følgende skjermbilde.

Berikende nyhetsstrømmer i sanntid med Refinitiv Data Library, AWS-tjenester og Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

I denne andre planen fokuserer vi på hoveddelen av arkitekturen: Lambda-funksjonen som inntar og analyserer nyhetsstrømmen, knytter AI-slutningen til den og lagrer den for videre bruk. Den inkluderer følgende komponenter:

  • Lambda – Definer en Terraform Lambda-konfigurasjon som lar den koble til et SageMaker-endepunkt.
  • Amazon S3 – For å implementere Lambda må vi laste opp riktig kode til Amazon enkel lagringstjeneste (Amazon S3) og la Lambda-funksjonen innta den i sitt miljø. Denne delen beskriver hvordan vi kan bruke Terraform for å oppnå det.
  • Implementering av Lambda-funksjonen: Trinn 1, Håndtering av Kinesis-hendelsen – I denne delen begynner vi å bygge Lambda-funksjonen. Her bygger vi kun Kinesis datastrømresponsbehandlingsdelen.
  • SageMaker – I denne prototypen bruker vi en forhåndstrent Hugging Face-modell som vi lagrer i et SageMaker-endepunkt. Her presenterer vi hvordan dette kan oppnås ved hjelp av Terraform-skript og hvordan de riktige integrasjonene finner sted for å la SageMaker-endepunkter og Lambda-funksjoner fungere sammen.
    • På dette tidspunktet kan du i stedet bruke en hvilken som helst annen modell du har utviklet og distribuert bak et SageMaker-endepunkt. En slik modell kan gi en annen forbedring av de originale nyhetsdataene, basert på dine behov. Eventuelt kan dette ekstrapoleres til flere modeller for flere forbedringer hvis slike finnes. Takket være resten av arkitekturen vil slike modeller berike datakildene dine i sanntid.
  • Bygge Lambda-funksjonen: Trinn 2, Påkalling av SageMaker-endepunktet – I denne delen bygger vi opp vår originale Lambda-funksjon ved å legge til SageMaker-blokken for å få en følelsesforbedret nyhetsoverskrift ved å påkalle SageMaker-endepunktet.
  • DynamoDB – Til slutt, når AI-slutningen er i minnet til Lambda-funksjonen, samler den varen på nytt og sender den til en DynamoDB-tabell for lagring. Her diskuterer vi både den passende Python-koden som trengs for å oppnå det, så vel som de nødvendige Terraform-skriptene som muliggjør disse interaksjonene.
  • Bygge Lambda-funksjonen: Trinn 3, Pushing av forbedrede data til DynamoDB – Her fortsetter vi å bygge opp Lambda-funksjonen vår ved å legge til den siste delen som oppretter en oppføring i Dynamo-tabellen.
  • Tester prototypen så langt – Vi kan navigere til DynamoDB-tabellen på DynamoDB-konsollen for å bekrefte at forbedringene våre vises i tabellen.

Berikende nyhetsstrømmer i sanntid med Refinitiv Data Library, AWS-tjenester og Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Denne tredje Blueprint fullfører denne prototypen. Den fokuserer på å redistribuere det nyopprettede, forbedrede AI-dataelementet til en RabbitMQ-server i Amazon MQ, slik at forbrukere kan koble til og hente de forbedrede nyhetssakene i sanntid. Den inkluderer følgende komponenter:

  • DynamoDB Strømmer – Når den forbedrede nyheten er i DynamoDB, setter vi opp en hendelse som utløses som deretter kan fanges opp fra den aktuelle Lambda-funksjonen.
  • Skriver Lambda-produsenten – Denne Lambda-funksjonen fanger opp hendelsen og fungerer som en produsent av RabbitMQ-strømmen. Denne nye funksjonen introduserer konseptet med Lambda-lag ettersom den bruker Python-biblioteker for å implementere produsentfunksjonaliteten.
  • Amazon MQ og RabbitMQ-forbrukere – Det siste trinnet i prototypen er å sette opp RabbitMQ-tjenesten og implementere en eksempelforbruker som kobler seg til meldingsstrømmen og mottar de forbedrede AI-nyhetene.
  • Endelig test av prototypen – Vi bruker en ende-til-ende-prosess for å verifisere at prototypen fungerer fullt ut, fra inntak til gjenservering og forbruk av den nye AI-forbedrede strømmen.

På dette stadiet kan du validere at alt har fungert ved å navigere til RabbitMQ-dashbordet, som vist i følgende skjermbilde.

Berikende nyhetsstrømmer i sanntid med Refinitiv Data Library, AWS-tjenester og Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

I den endelige planen finner du også en detaljert testvektor for å sikre at hele arkitekturen oppfører seg som planlagt.

konklusjonen

I dette innlegget delte vi en løsning som bruker ML på skyen med AWS-tjenester som SageMaker (ML), Lambda (serverløs) og Kinesis Data Streams (streaming) for å berike streaming av nyhetsdata levert av Refinitiv Data Libraries. Løsningen legger til en følelsesscore til nyhetssaker i sanntid og skalerer infrastrukturen ved hjelp av kode.

Fordelen med denne modulære arkitekturen er at du kan gjenbruke den med din egen modell for å utføre andre typer dataforstørrelse, på en serverløs, skalerbar og kostnadseffektiv måte som kan brukes på toppen av Refinitiv Data Library. Dette kan gi merverdi for arbeidsflyter for handel/investering/risikostyring.

Hvis du har kommentarer eller spørsmål, kan du legge dem igjen i kommentarfeltet.

Relatert informasjon


 Om forfatterne

Berikende nyhetsstrømmer i sanntid med Refinitiv Data Library, AWS-tjenester og Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Marios Skevofylakas kommer fra en bakgrunn innen finansielle tjenester, investeringsbank og konsulentteknologi. Han har en ingeniør Ph.D. i kunstig intelligens og en M.Sc. i Machine Vision. Gjennom sin karriere har han deltatt i en rekke tverrfaglige AI- og DLT-prosjekter. Han er for tiden en utvikleradvokat hos Refinitiv, en LSEG-virksomhet, med fokus på AI og Quantum-applikasjoner i finansielle tjenester.

Berikende nyhetsstrømmer i sanntid med Refinitiv Data Library, AWS-tjenester og Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Jason Ramchandani har jobbet hos Refinitiv, en LSEG-bedrift, i 8 år som ledende utvikleradvokat og hjalp til med å bygge utviklerfellesskapet deres. Tidligere har han jobbet i finansmarkedene i over 15 år med mengdebakgrunn innen aksje-/aksjerelaterte områder hos Okasan Securities, Sakura Finance og Jefferies LLC. Hans alma mater er UCL.

Berikende nyhetsstrømmer i sanntid med Refinitiv Data Library, AWS-tjenester og Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Haykaz Aramyan kommer fra finans- og teknologibakgrunn. Han har en Ph.D. i finans, og en M.Sc. innen finans, teknologi og politikk. Gjennom 10 års yrkeserfaring jobbet Haykaz med flere tverrfaglige prosjekter som involverte pensjon, VC-fond og teknologistartups. Han er for tiden en utvikleradvokat hos Refinitiv, An LSEG Business, med fokus på AI-applikasjoner i finansielle tjenester.

Berikende nyhetsstrømmer i sanntid med Refinitiv Data Library, AWS-tjenester og Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Georgios Schinas er en senior spesialistløsningsarkitekt for AI/ML i EMEA-regionen. Han er basert i London og jobber tett med kunder i Storbritannia og Irland. Georgios hjelper kunder med å designe og distribuere maskinlæringsapplikasjoner i produksjon på AWS med en spesiell interesse for MLOps-praksis og gjør det mulig for kunder å utføre maskinlæring i stor skala. På fritiden liker han å reise, lage mat og tilbringe tid med venner og familie.

Berikende nyhetsstrømmer i sanntid med Refinitiv Data Library, AWS-tjenester og Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Muthuvelan Swaminathan er en Enterprise Solutions Architect basert i New York. Han jobber med bedriftskunder som gir arkitektonisk veiledning i å bygge robuste, kostnadseffektive, innovative løsninger som dekker deres forretningsbehov og hjelper dem med å utføre i stor skala ved hjelp av AWS-produkter og -tjenester.

Berikende nyhetsstrømmer i sanntid med Refinitiv Data Library, AWS-tjenester og Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Mayur Udernani leder AWS AI & ML-virksomhet med kommersielle foretak i Storbritannia og Irland. I sin rolle bruker Mayur mesteparten av tiden sin med kunder og partnere for å bidra til å skape effektive løsninger som løser de mest presserende behovene til en kunde eller for en bredere bransje som utnytter AWS Cloud, AI og ML-tjenester. Mayur bor i London-området. Han har en MBA fra Indian Institute of Management og Bachelors in Computer Engineering fra Mumbai University.

Tidstempel:

Mer fra AWS maskinlæring