Wzbogacanie strumieni wiadomości w czasie rzeczywistym dzięki Refinitiv Data Library, usługom AWS i Amazon SageMaker

Wzbogacanie strumieni wiadomości w czasie rzeczywistym dzięki Refinitiv Data Library, usługom AWS i Amazon SageMaker

Ten post jest współautorem Marios Skevofylakas, Jason Ramchandani i Haykaz Aramyan z Refinitiv, An LSEG Business.

Dostawcy usług finansowych często muszą identyfikować istotne wiadomości, analizować je, wyciągać wnioski i podejmować działania w czasie rzeczywistym, takie jak obrót określonymi instrumentami (takimi jak towary, akcje, fundusze) w oparciu o dodatkowe informacje lub kontekst wiadomości. Jedną z takich dodatkowych informacji (której używamy jako przykładu w tym poście) jest sentyment wiadomości.

Biblioteki danych Refinitiv (RD) zapewniają kompleksowy zestaw interfejsów zapewniający jednolity dostęp do katalogu danych Refinitiv. Biblioteka oferuje wiele warstw abstrakcji, zapewniając różne style i techniki programowania odpowiednie dla wszystkich programistów, od dostępu w czasie rzeczywistym o niskich opóźnieniach po przetwarzanie wsadowe danych Refinitiv.

W tym poście przedstawiamy prototypową architekturę AWS, która pobiera nasze kanały informacyjne za pomocą bibliotek RD i wzbogaca je o prognozy modelu uczenia maszynowego (ML) za pomocą Amazon Sage Maker, w pełni zarządzana usługa ML od AWS.

Starając się zaprojektować modułową architekturę, która mogłaby być używana w różnych przypadkach użycia, takich jak analiza nastrojów, rozpoznawanie nazwanych jednostek i nie tylko, niezależnie od modelu ML użytego do ulepszeń, zdecydowaliśmy się skupić na przestrzeni czasu rzeczywistego. Powodem tej decyzji jest to, że przypadki użycia w czasie rzeczywistym są generalnie bardziej złożone i że ta sama architektura może być również używana, z minimalnymi modyfikacjami, do wnioskowania wsadowego. W naszym przypadku implementujemy architekturę, która przetwarza nasz kanał informacyjny w czasie rzeczywistym, oblicza nastroje dla każdego nagłówka wiadomości za pomocą uczenia maszynowego i ponownie udostępnia kanał ulepszony AI za pośrednictwem architektury wydawcy/subskrybenta.

Ponadto, aby przedstawić kompleksowy i wielokrotnego użytku sposób produkcji modeli ML poprzez przyjęcie praktyk MLOps, wprowadzamy koncepcję infrastruktury jako kodu (IaC) podczas całego cyklu życia prototypu MLOps. Korzystając z Terraform i konfigurowalnego skryptu z jednym punktem wejścia, jesteśmy w stanie utworzyć instancję całej infrastruktury w trybie produkcyjnym w AWS w ciągu zaledwie kilku minut.

W tym rozwiązaniu nie zajmujemy się aspektem MLOps dotyczącym opracowywania, szkolenia i wdrażania poszczególnych modeli. Jeśli chcesz dowiedzieć się więcej na ten temat, zobacz Mapa drogowa fundacji MLOps dla przedsiębiorstw z Amazon SageMaker, w którym szczegółowo wyjaśniono ramy budowania modelu, szkolenia i wdrażania zgodnie z najlepszymi praktykami.

Omówienie rozwiązania

W tym prototypie stosujemy w pełni zautomatyzowaną metodologię udostępniania zgodnie z IaC Najlepsze praktyki. IaC to proces programowego udostępniania zasobów przy użyciu zautomatyzowanych skryptów zamiast korzystania z interaktywnych narzędzi konfiguracyjnych. Zasobami mogą być zarówno sprzęt, jak i potrzebne oprogramowanie. W naszym przypadku używamy Terraform do wdrożenia pojedynczego konfigurowalnego punktu wejścia, który może automatycznie uruchomić całą potrzebną nam infrastrukturę, w tym zasady bezpieczeństwa i dostępu, a także zautomatyzowany monitoring. Dzięki temu pojedynczemu punktowi wejścia, który uruchamia zbiór skryptów Terraform, po jednym na usługę lub jednostkę zasobów, możemy w pełni zautomatyzować cykl życia wszystkich lub części komponentów architektury, co pozwala nam na wdrożenie szczegółowej kontroli zarówno w DevOps, jak i stronie MLOps. Po poprawnym zainstalowaniu i zintegrowaniu Terraform z AWS możemy replikować większość operacji, które można wykonać na pulpitach serwisowych AWS.

Poniższy diagram ilustruje naszą architekturę rozwiązania.

Wzbogacanie strumieni wiadomości w czasie rzeczywistym za pomocą biblioteki danych Refinitiv, usług AWS i Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Architektura składa się z trzech etapów: pozyskiwania, wzbogacania i publikowania. Podczas pierwszego etapu kanały w czasie rzeczywistym są przetwarzane na Elastyczna chmura obliczeniowa Amazon (Amazon EC2), która jest tworzona za pomocą Refinitiv Data Library AMI. Instancja łączy się również ze strumieniem danych za pośrednictwem Strumienie danych Amazon Kinesis, który wyzwala AWS Lambda funkcja.

W drugim etapie funkcja Lambda, która jest uruchamiana z Kinesis Data Streams, łączy się i wysyła nagłówki wiadomości do SageMaker FinBERT punkt końcowy, który zwraca obliczoną opinię dla elementu wiadomości. To obliczone nastawienie to wzbogacenie danych w czasie rzeczywistym, w które funkcja Lambda następnie opakowuje wiadomość i przechowuje ją w Amazon DynamoDB tabela.

W trzecim etapie architektury strumień DynamoDB uruchamia funkcję Lambda na wstawkach nowych elementów, która jest zintegrowana z Serwer Amazon MQ z uruchomionym RabbitMQ, który ponownie obsługuje ulepszony strumień AI.

Decyzja o tym trzyetapowym projekcie inżynierskim, zamiast pierwszej warstwy Lambda bezpośrednio komunikującej się z serwerem Amazon MQ lub implementacji większej funkcjonalności w instancji EC2, została podjęta, aby umożliwić eksplorację bardziej złożonych, mniej powiązanych architektur projektowych AI w przyszłości.

Budowa i wdrażanie prototypu

Przedstawiamy ten prototyp w serii trzech szczegółowych planów. W każdym schemacie i dla każdej używanej usługi znajdziesz przeglądy i istotne informacje na temat jej technicznych wdrożeń, a także skrypty Terraform, które pozwalają automatycznie uruchomić, skonfigurować i zintegrować usługę z resztą struktury. Na końcu każdego planu znajdziesz instrukcje, jak upewnić się, że wszystko działa zgodnie z oczekiwaniami do każdego etapu. Plany są następujące:

Aby rozpocząć wdrażanie tego prototypu, sugerujemy utworzenie nowego dedykowanego mu środowiska Python i zainstalowanie niezbędnych pakietów i narzędzi oddzielnie od innych środowisk, które możesz mieć. Aby to zrobić, utwórz i aktywuj nowe środowisko w Anacondzie za pomocą następujących poleceń:

conda create —name rd_news_aws_terraform python=3.7
conda activate rd_news_aws_terraform

Jesteśmy teraz gotowi do zainstalowania Interfejs wiersza poleceń AWS (AWS CLI), który pozwoli nam zbudować wszystkie niezbędne interakcje programistyczne w usługach AWS i pomiędzy nimi:

pip install awscli

Po zainstalowaniu AWS CLI musimy zainstalować Terraform. HashiCorp zapewnia Terraform instalator binarny, który możesz pobieranie i zainstaluj.

Po zainstalowaniu obu narzędzi upewnij się, że działają one poprawnie, używając następujących poleceń:

terraform -help
AWS – version

Teraz możesz przejść do szczegółowych planów na każdym z trzech etapów wdrażania.

Ten plan przedstawia początkowe etapy architektury, które pozwalają nam przetwarzać kanały informacyjne w czasie rzeczywistym. Składa się z następujących elementów:

  • Amazon EC2 przygotowuje Twoją instancję do przetwarzania RD News – Ta sekcja konfiguruje instancję EC2 w sposób umożliwiający połączenie z interfejsem API bibliotek usług pulpitu zdalnego i strumieniem w czasie rzeczywistym. Pokazujemy również, jak zapisać obraz tworzonej instancji, aby zapewnić jej ponowne użycie i skalowalność.
  • Pozyskiwanie wiadomości w czasie rzeczywistym z Amazon EC2 – Szczegółowa implementacja konfiguracji potrzebnych do umożliwienia Amazon EC2 połączenia bibliotek RD, a także skryptów do rozpoczęcia przetwarzania.
  • Tworzenie i uruchamianie Amazon EC2 z AMI – Uruchom nową instancję, jednocześnie przesyłając pliki pozyskiwania do nowo utworzonej instancji, a wszystko to automatycznie przy użyciu Terraform.
  • Tworzenie strumienia danych Kinesis – Ta sekcja zawiera przegląd strumieni danych Kinesis oraz sposób konfigurowania strumienia w AWS.
  • Łączenie i przesyłanie danych do Kinesis – Gdy kod przetwarzania działa, musimy go podłączyć i wysłać dane do strumienia Kinesis.
  • Na razie test prototypu - Używamy Amazon Cloud Watch i narzędzia wiersza poleceń, aby sprawdzić, czy prototyp działa do tego momentu i czy możemy przejść do następnego planu. Dziennik pobranych danych powinien wyglądać jak na poniższym zrzucie ekranu.

Wzbogacanie strumieni wiadomości w czasie rzeczywistym za pomocą biblioteki danych Refinitiv, usług AWS i Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

W tym drugim schemacie skupiamy się na głównej części architektury: funkcji Lambda, która pobiera i analizuje strumień wiadomości, dołącza do niego wnioskowanie AI i przechowuje je do dalszego wykorzystania. Zawiera następujące elementy:

  • Lambda – Zdefiniuj konfigurację Terraform Lambda umożliwiającą połączenie z punktem końcowym SageMaker.
  • Amazon S3 – Aby zaimplementować Lambdę, musimy wgrać odpowiedni kod do Usługa Amazon Simple Storage (Amazon S3) i pozwól, aby funkcja Lambda pochłonęła go w swoim środowisku. W tej sekcji opisano, w jaki sposób możemy wykorzystać Terraform do osiągnięcia tego celu.
  • Implementacja funkcji Lambda: Krok 1, Obsługa zdarzenia Kinesis – W tej sekcji zaczniemy budować funkcję Lambda. Tutaj budujemy tylko część obsługi odpowiedzi strumienia danych Kinesis.
  • SageMaker – W tym prototypie używamy wstępnie wytrenowanego modelu Hugging Face, który przechowujemy w punkcie końcowym SageMaker. Tutaj przedstawiamy, jak można to osiągnąć za pomocą skryptów Terraform i jak przebiegają odpowiednie integracje, aby umożliwić współpracę punktów końcowych SageMaker i funkcji Lambda.
    • W tym momencie możesz zamiast tego użyć dowolnego innego modelu, który opracowałeś i wdrożyłeś za punktem końcowym SageMaker. Taki model może zapewnić inne udoskonalenie oryginalnych danych wiadomości, w zależności od Twoich potrzeb. Opcjonalnie można to ekstrapolować na wiele modeli w celu uzyskania wielu ulepszeń, jeśli takie istnieją. Dzięki pozostałej architekturze każdy taki model wzbogaci Twoje źródła danych w czasie rzeczywistym.
  • Budowanie funkcji Lambda: krok 2, wywołanie punktu końcowego SageMaker – W tej sekcji budujemy naszą oryginalną funkcję Lambda, dodając blok SageMaker, aby uzyskać nagłówek wiadomości wzbogacony o sentyment, wywołując punkt końcowy SageMaker.
  • DynamoDB – Wreszcie, gdy wnioskowanie AI znajduje się w pamięci funkcji Lambda, ponownie łączy element i wysyła go do tabeli DynamoDB w celu przechowywania. Tutaj omawiamy zarówno odpowiedni kod Pythona potrzebny do osiągnięcia tego celu, jak i niezbędne skrypty Terraform, które umożliwiają te interakcje.
  • Budowanie funkcji Lambda: krok 3, przesyłanie ulepszonych danych do DynamoDB – Tutaj kontynuujemy budowanie naszej funkcji Lambda, dodając ostatnią część, która tworzy wpis w tabeli Dynamo.
  • Na razie test prototypu – Możemy przejść do tabeli DynamoDB w konsoli DynamoDB, aby sprawdzić, czy nasze ulepszenia pojawiają się w tabeli.

Wzbogacanie strumieni wiadomości w czasie rzeczywistym za pomocą biblioteki danych Refinitiv, usług AWS i Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Ten trzeci plan finalizuje ten prototyp. Koncentruje się na redystrybucji nowo utworzonego elementu danych wzbogaconego sztuczną inteligencją na serwer RabbitMQ w Amazon MQ, umożliwiając konsumentom łączenie się i pobieranie ulepszonych wiadomości w czasie rzeczywistym. Zawiera następujące elementy:

  • Strumienie DynamoDB – Kiedy udoskonalona wiadomość znajduje się w DynamoDB, konfigurujemy uruchamiane zdarzenie, które można następnie przechwycić z odpowiedniej funkcji Lambda.
  • Pisanie producenta Lambdy – Ta funkcja Lambda przechwytuje zdarzenie i działa jako producent strumienia RabbitMQ. Ta nowa funkcja wprowadza koncepcję warstw Lambda, ponieważ wykorzystuje biblioteki Pythona do implementacji funkcjonalności producenta.
  • Konsumenci Amazon MQ i RabbitMQ – Ostatnim krokiem prototypu jest skonfigurowanie usługi RabbitMQ i wdrożenie przykładowego konsumenta, który połączy się ze strumieniem wiadomości i otrzyma wiadomości wzbogacone o sztuczną inteligencję.
  • Ostateczny test prototypu – Używamy kompleksowego procesu, aby zweryfikować, czy prototyp w pełni działa, od przetwarzania po ponowne udostępnianie i konsumowanie nowego strumienia wzmocnionego sztuczną inteligencją.

Na tym etapie możesz sprawdzić, czy wszystko działa, przechodząc do pulpitu nawigacyjnego RabbitMQ, jak pokazano na poniższym zrzucie ekranu.

Wzbogacanie strumieni wiadomości w czasie rzeczywistym za pomocą biblioteki danych Refinitiv, usług AWS i Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

W ostatecznym planie znajduje się również szczegółowy wektor testowy, aby upewnić się, że cała architektura działa zgodnie z planem.

Wnioski

W tym poście udostępniliśmy rozwiązanie wykorzystujące ML w chmurze z usługami AWS, takimi jak SageMaker (ML), Lambda (bezserwerowy) i Kinesis Data Streams (streaming), aby wzbogacić przesyłane strumieniowo dane wiadomości dostarczane przez Refinitiv Data Libraries. Rozwiązanie dodaje ocenę nastrojów do wiadomości w czasie rzeczywistym i skaluje infrastrukturę za pomocą kodu.

Zaletą tej modułowej architektury jest to, że można ją ponownie wykorzystać z własnym modelem do wykonywania innych typów rozszerzania danych, w sposób bezserwerowy, skalowalny i ekonomiczny, który można zastosować na bazie Refinitiv Data Library. Może to stanowić wartość dodaną dla przepływów pracy związanych z handlem/inwestycjami/zarządzaniem ryzykiem.

Jeśli masz jakieś uwagi lub pytania, zostaw je w sekcji komentarzy.

Informacje na podobny temat


 O autorach

Wzbogacanie strumieni wiadomości w czasie rzeczywistym za pomocą biblioteki danych Refinitiv, usług AWS i Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Marios Skevofylakas wywodzi się z usług finansowych, bankowości inwestycyjnej i technologii konsultingowych. Posiada tytuł doktora inżyniera. w sztucznej inteligencji i mgr inż. w wizji maszynowej. W swojej karierze brał udział w wielu multidyscyplinarnych projektach AI i DLT. Obecnie jest rzecznikiem programistów w Refinitiv, firmie LSEG, koncentrując się na zastosowaniach AI i Quantum w usługach finansowych.

Wzbogacanie strumieni wiadomości w czasie rzeczywistym za pomocą biblioteki danych Refinitiv, usług AWS i Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Jasona Ramchandaniego pracował w Refinitiv, firmie LSEG, przez 8 lat jako główny rzecznik programistów, pomagając budować społeczność programistów. Wcześniej przez ponad 15 lat pracował na rynkach finansowych z doświadczeniem ilościowym w obszarze akcji/powiązanych z akcjami w Okasan Securities, Sakura Finance i Jefferies LLC. Jego alma mater jest UCL.

Wzbogacanie strumieni wiadomości w czasie rzeczywistym za pomocą biblioteki danych Refinitiv, usług AWS i Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Haykaz Aramejski wywodzi się z finansów i technologii. Posiada stopień doktora. w finansach i mgr inż. w finansach, technologii i polityce. Przez 10 lat doświadczenia zawodowego Haykaz pracował przy kilku multidyscyplinarnych projektach z udziałem funduszy emerytalnych, funduszy VC i startupów technologicznych. Obecnie jest rzecznikiem programistów w firmie Refinitiv, An LSEG Business, koncentrując się na zastosowaniach sztucznej inteligencji w usługach finansowych.

Wzbogacanie strumieni wiadomości w czasie rzeczywistym za pomocą biblioteki danych Refinitiv, usług AWS i Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Georgios Schinas jest Senior Specialist Solutions Architect for AI/ML w regionie EMEA. Ma siedzibę w Londynie i ściśle współpracuje z klientami w Wielkiej Brytanii i Irlandii. Georgios pomaga klientom projektować i wdrażać aplikacje do uczenia maszynowego w środowisku produkcyjnym w AWS, ze szczególnym uwzględnieniem praktyk MLOps i umożliwiając klientom przeprowadzanie uczenia maszynowego na dużą skalę. W wolnym czasie lubi podróżować, gotować i spędzać czas z przyjaciółmi i rodziną.

Wzbogacanie strumieni wiadomości w czasie rzeczywistym za pomocą biblioteki danych Refinitiv, usług AWS i Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Muthuvelan Swaminathan jest architektem rozwiązań dla przedsiębiorstw z siedzibą w Nowym Jorku. Współpracuje z klientami korporacyjnymi, udzielając wskazówek architektonicznych w budowaniu odpornych, opłacalnych, innowacyjnych rozwiązań, które odpowiadają ich potrzebom biznesowym i pomagają im realizować na dużą skalę przy użyciu produktów i usług AWS.

Wzbogacanie strumieni wiadomości w czasie rzeczywistym za pomocą biblioteki danych Refinitiv, usług AWS i Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Mayura Udernaniego prowadzi biznes AWS AI & ML z przedsiębiorstwami komercyjnymi w Wielkiej Brytanii i Irlandii. W swojej roli Mayur spędza większość czasu z klientami i partnerami, pomagając tworzyć skuteczne rozwiązania, które rozwiązują najpilniejsze potrzeby klientów lub szerszej branży, wykorzystując usługi AWS Cloud, AI i ML. Mayur mieszka w okolicach Londynu. Posiada tytuł MBA uzyskany w Indyjskim Instytucie Zarządzania oraz tytuł licencjata w dziedzinie inżynierii komputerowej uzyskany na Mumbai University.

Znak czasu:

Więcej z Uczenie maszynowe AWS