Anreicherung von Echtzeit-Nachrichtenströmen mit der Refinitiv-Datenbibliothek, AWS-Services und Amazon SageMaker

Anreicherung von Echtzeit-Nachrichtenströmen mit der Refinitiv-Datenbibliothek, AWS-Services und Amazon SageMaker

Dieser Beitrag wurde von Marios Skevofylakas, Jason Ramchandani und Haykaz Aramyan von Refinitiv, An LSEG Business, gemeinsam verfasst.

Finanzdienstleister müssen häufig relevante Nachrichten identifizieren, analysieren, Erkenntnisse gewinnen und in Echtzeit Maßnahmen ergreifen, z. B. den Handel mit bestimmten Instrumenten (wie Rohstoffen, Aktien, Fonds) auf der Grundlage zusätzlicher Informationen oder des Kontexts der Nachricht. Eine solche zusätzliche Information (die wir in diesem Beitrag als Beispiel verwenden) ist die Stimmung der Nachrichten.

Refinitiv Data (RD) Libraries bieten eine umfassende Reihe von Schnittstellen für den einheitlichen Zugriff auf den Refinitiv Data Catalogue. Die Bibliothek bietet mehrere Abstraktionsebenen mit unterschiedlichen Stilen und Programmiertechniken, die für alle Entwickler geeignet sind, von Echtzeitzugriff mit geringer Latenz bis hin zur Stapelaufnahme von Refinitiv-Daten.

In diesem Beitrag stellen wir einen Prototyp einer AWS-Architektur vor, die unsere Newsfeeds mithilfe von RD-Bibliotheken aufnimmt und sie mit Modellvorhersagen des maschinellen Lernens (ML) verbessert Amazon Sage Maker, ein vollständig verwalteter ML-Service von AWS.

In dem Bemühen, eine modulare Architektur zu entwerfen, die in einer Vielzahl von Anwendungsfällen verwendet werden kann, wie Stimmungsanalyse, Erkennung benannter Entitäten und mehr, haben wir uns entschieden, uns auf den Echtzeitbereich zu konzentrieren, unabhängig vom ML-Modell, das für die Verbesserung verwendet wird. Der Grund für diese Entscheidung ist, dass Echtzeit-Anwendungsfälle in der Regel komplexer sind und die gleiche Architektur mit minimalen Anpassungen auch für Batch-Inferenz verwendet werden kann. In unserem Anwendungsfall implementieren wir eine Architektur, die unseren Echtzeit-Newsfeed aufnimmt, die Stimmung zu jeder Schlagzeile mithilfe von ML berechnet und den KI-erweiterten Feed über eine Publisher/Subscriber-Architektur reserviert.

Um eine umfassende und wiederverwendbare Möglichkeit zur Produktion von ML-Modellen durch die Übernahme von MLOps-Praktiken zu präsentieren, führen wir außerdem das Konzept der Infrastruktur als Code (IaC) während des gesamten MLOps-Lebenszyklus des Prototyps ein. Durch die Verwendung von Terraform und einem konfigurierbaren Skript mit einem einzigen Einstiegspunkt sind wir in der Lage, die gesamte Infrastruktur in nur wenigen Minuten im Produktionsmodus auf AWS zu instanziieren.

In dieser Lösung gehen wir nicht auf den MLOps-Aspekt der Entwicklung, Schulung und Bereitstellung der einzelnen Modelle ein. Wenn Sie daran interessiert sind, mehr darüber zu erfahren, lesen Sie unter MLOps Foundation Roadmap für Unternehmen mit Amazon SageMaker, in dem ein Framework für die Modellerstellung, Schulung und Bereitstellung nach Best Practices ausführlich erläutert wird.

Lösungsüberblick

In diesem Prototyp verfolgen wir eine vollständig automatisierte Bereitstellungsmethodik gemäß IaC Best Practices. IaC ist der Prozess der programmgesteuerten Bereitstellung von Ressourcen mithilfe automatisierter Skripts anstelle der Verwendung interaktiver Konfigurationstools. Ressourcen können sowohl Hardware als auch benötigte Software sein. In unserem Fall verwenden wir Terraform, um die Implementierung eines einzelnen konfigurierbaren Einstiegspunkts zu erreichen, der automatisch die gesamte benötigte Infrastruktur hochfahren kann, einschließlich Sicherheits- und Zugriffsrichtlinien sowie automatisierter Überwachung. Mit diesem einzigen Einstiegspunkt, der eine Sammlung von Terraform-Skripten auslöst, eines pro Dienst- oder Ressourcenentität, können wir den Lebenszyklus aller oder Teile der Komponenten der Architektur vollständig automatisieren und so eine granulare Kontrolle sowohl auf den DevOps als auch auf den DevOps implementieren die MLOps-Seite. Nachdem Terraform korrekt installiert und in AWS integriert wurde, können wir die meisten Vorgänge replizieren, die auf den AWS-Service-Dashboards ausgeführt werden können.

Das folgende Diagramm zeigt unsere Lösungsarchitektur.

Anreicherung von Echtzeit-Nachrichtenströmen mit der Refinitiv Data Library, AWS-Services und Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Die Architektur besteht aus drei Phasen: Aufnahme, Anreicherung und Veröffentlichung. In der ersten Phase werden die Echtzeit-Feeds auf einem aufgenommen Amazon Elastic Compute-Cloud (Amazon EC2)-Instance, die über ein Refinitiv Data Library-fähiges AMI erstellt wird. Die Instanz verbindet sich auch mit einem Datenstrom über Amazon Kinesis-Datenströme, was eine auslöst AWS Lambda Funktion.

In der zweiten Stufe stellt die von Kinesis Data Streams ausgelöste Lambda-Funktion eine Verbindung zu einem SageMaker her und sendet die Schlagzeilen an diesen FinBERT endpoint, der die berechnete Stimmung für die Nachricht zurückgibt. Diese berechnete Stimmung ist die Anreicherung in den Echtzeitdaten, die die Lambda-Funktion dann mit der Nachricht umschließt und in einer speichert Amazon DynamoDB Tabelle.

In der dritten Stufe der Architektur löst ein DynamoDB-Stream eine Lambda-Funktion bei neuen Elementinserts aus, die in eine integriert ist Amazon MQ-Server Ausführen von RabbitMQ, das den AI-erweiterten Stream bereitstellt.

Die Entscheidung für dieses dreistufige Konstruktionsdesign, anstatt dass die erste Lambda-Schicht direkt mit dem Amazon MQ-Server kommuniziert oder mehr Funktionalität in der EC2-Instance implementiert, wurde getroffen, um in Zukunft die Erforschung komplexerer, weniger gekoppelter KI-Designarchitekturen zu ermöglichen.

Erstellen und Bereitstellen des Prototyps

Wir präsentieren diesen Prototyp in einer Serie von drei detaillierten Blaupausen. In jedem Blueprint und für jeden genutzten Dienst finden Sie Übersichten und relevante Informationen zu dessen technischen Implementierungen sowie Terraform-Skripte, mit denen Sie den Dienst automatisch starten, konfigurieren und in die übrige Struktur integrieren können. Am Ende jeder Blaupause finden Sie Anweisungen, wie Sie sicherstellen können, dass bis zu jeder Stufe alles wie erwartet funktioniert. Die Blaupausen sind wie folgt:

Um mit der Implementierung dieses Prototyps zu beginnen, empfehlen wir, eine neue Python-Umgebung dafür zu erstellen und die erforderlichen Pakete und Tools getrennt von anderen Umgebungen zu installieren, die Sie möglicherweise haben. Erstellen und aktivieren Sie dazu die neue Umgebung in Anaconda mit den folgenden Befehlen:

conda create —name rd_news_aws_terraform python=3.7
conda activate rd_news_aws_terraform

Wir sind jetzt bereit, die zu installieren AWS-Befehlszeilenschnittstelle (AWS CLI)-Toolset, mit dem wir alle erforderlichen programmatischen Interaktionen in und zwischen AWS-Services erstellen können:

pip install awscli

Nachdem die AWS CLI installiert ist, müssen wir Terraform installieren. HashiCorp stellt Terraform ein binäres Installationsprogramm zur Verfügung, das Sie verwenden können herunterladen und installieren.

Nachdem Sie beide Tools installiert haben, stellen Sie mit den folgenden Befehlen sicher, dass sie ordnungsgemäß funktionieren:

terraform -help
AWS – version

Sie können nun den detaillierten Blaupausen in jeder der drei Phasen der Implementierung folgen.

Dieser Entwurf stellt die Anfangsstadien der Architektur dar, die es uns ermöglichen, die Echtzeit-Newsfeeds aufzunehmen. Es besteht aus folgenden Komponenten:

  • Amazon EC2 bereitet Ihre Instance für die Aufnahme von RD News vor – Dieser Abschnitt richtet eine EC2-Instanz so ein, dass sie die Verbindung zur RD-Bibliotheks-API und zum Echtzeit-Stream ermöglicht. Wir zeigen auch, wie Sie das Image der erstellten Instanz speichern, um ihre Wiederverwendbarkeit und Skalierbarkeit sicherzustellen.
  • Nachrichtenaufnahme in Echtzeit von Amazon EC2 – Eine detaillierte Implementierung der Konfigurationen, die erforderlich sind, damit Amazon EC2 die RD-Bibliotheken verbinden kann, sowie die Skripte zum Starten der Aufnahme.
  • Erstellen und Starten von Amazon EC2 über das AMI – Starten Sie eine neue Instanz, indem Sie gleichzeitig Aufnahmedateien auf die neu erstellte Instanz übertragen, alles automatisch mit Terraform.
  • Erstellen eines Kinesis-Datenstroms – Dieser Abschnitt bietet einen Überblick über Kinesis Data Streams und wie man einen Stream auf AWS einrichtet.
  • Verbinden und Übertragen von Daten an Kinesis – Sobald der Aufnahmecode funktioniert, müssen wir ihn verbinden und Daten an einen Kinesis-Stream senden.
  • Testen des Prototypen bisher - Wir gebrauchen Amazon CloudWatch und Befehlszeilentools, um zu überprüfen, ob der Prototyp bis zu diesem Punkt funktioniert und ob wir mit dem nächsten Entwurf fortfahren können. Das Protokoll der aufgenommenen Daten sollte wie im folgenden Screenshot aussehen.

Anreicherung von Echtzeit-Nachrichtenströmen mit der Refinitiv Data Library, AWS-Services und Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

In diesem zweiten Entwurf konzentrieren wir uns auf den Hauptteil der Architektur: die Lambda-Funktion, die den Nachrichtenstrom aufnimmt und analysiert, die KI-Inferenz daran anfügt und für die weitere Verwendung speichert. Es enthält die folgenden Komponenten:

  • Lambda – Definieren Sie eine Terraform Lambda-Konfiguration, die eine Verbindung mit einem SageMaker-Endpunkt ermöglicht.
  • Amazon S3 – Um Lambda zu implementieren, müssen wir den entsprechenden Code auf hochladen Amazon Simple Storage-Service (Amazon S3) und erlauben der Lambda-Funktion, sie in ihre Umgebung aufzunehmen. In diesem Abschnitt wird beschrieben, wie wir Terraform verwenden können, um dies zu erreichen.
  • Implementieren der Lambda-Funktion: Schritt 1, Behandlung des Kinesis-Ereignisses – In diesem Abschnitt beginnen wir mit dem Erstellen der Lambda-Funktion. Hier bauen wir nur den Kinesis Data Stream Response Handler-Teil.
  • SageMaker – In diesem Prototyp verwenden wir ein vortrainiertes Hugging Face-Modell, das wir in einem SageMaker-Endpunkt speichern. Hier stellen wir vor, wie dies mit Terraform-Skripten erreicht werden kann und wie die entsprechenden Integrationen stattfinden, damit SageMaker-Endpunkte und Lambda-Funktionen zusammenarbeiten können.
    • An dieser Stelle können Sie stattdessen jedes andere Modell verwenden, das Sie entwickelt und hinter einem SageMaker-Endpunkt bereitgestellt haben. Ein solches Modell könnte basierend auf Ihren Anforderungen eine andere Verbesserung der ursprünglichen Nachrichtendaten bieten. Optional kann dies auf mehrere Modelle für mehrere Verbesserungen extrapoliert werden, falls solche vorhanden sind. Dank der restlichen Architektur werden solche Modelle Ihre Datenquellen in Echtzeit bereichern.
  • Erstellen der Lambda-Funktion: Schritt 2, Aufrufen des SageMaker-Endpunkts – In diesem Abschnitt bauen wir unsere ursprüngliche Lambda-Funktion auf, indem wir den SageMaker-Block hinzufügen, um durch Aufrufen des SageMaker-Endpunkts eine Schlagzeile mit verbesserter Stimmung zu erhalten.
  • DynamoDB – Wenn sich die KI-Inferenz schließlich im Speicher der Lambda-Funktion befindet, bündelt sie das Element neu und sendet es zur Speicherung an eine DynamoDB-Tabelle. Hier besprechen wir sowohl den geeigneten Python-Code, der dazu benötigt wird, als auch die erforderlichen Terraform-Skripte, die diese Interaktionen ermöglichen.
  • Erstellen der Lambda-Funktion: Schritt 3, Übertragen erweiterter Daten an DynamoDB – Hier bauen wir unsere Lambda-Funktion weiter auf, indem wir den letzten Teil hinzufügen, der einen Eintrag in der Dynamo-Tabelle erstellt.
  • Testen des Prototypen bisher – Wir können zur DynamoDB-Tabelle in der DynamoDB-Konsole navigieren, um zu überprüfen, ob unsere Verbesserungen in der Tabelle erscheinen.

Anreicherung von Echtzeit-Nachrichtenströmen mit der Refinitiv Data Library, AWS-Services und Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Dieser dritte Blueprint stellt diesen Prototyp fertig. Es konzentriert sich auf die Weiterverteilung des neu erstellten, KI-erweiterten Datenelements an einen RabbitMQ-Server in Amazon MQ, sodass Verbraucher eine Verbindung herstellen und die erweiterten Nachrichtenelemente in Echtzeit abrufen können. Es enthält die folgenden Komponenten:

  • DynamoDB-Streams – Wenn sich die erweiterte Nachricht in DynamoDB befindet, richten wir ein Ereignis ein, das ausgelöst wird, das dann von der entsprechenden Lambda-Funktion erfasst werden kann.
  • Schreiben des Lambda-Produzenten – Diese Lambda-Funktion erfasst das Ereignis und fungiert als Produzent des RabbitMQ-Streams. Diese neue Funktion führt das Konzept der Lambda-Ebenen ein, da sie Python-Bibliotheken verwendet, um die Producer-Funktionalität zu implementieren.
  • Verbraucher von Amazon MQ und RabbitMQ – Der letzte Schritt des Prototyps ist die Einrichtung des RabbitMQ-Dienstes und die Implementierung eines Beispielkonsumenten, der sich mit dem Nachrichtenstrom verbindet und die KI-erweiterten Nachrichten empfängt.
  • Letzter Test des Prototyps – Wir verwenden einen End-to-End-Prozess, um zu überprüfen, ob der Prototyp voll funktionsfähig ist, von der Aufnahme bis zum Reservieren und Konsumieren des neuen KI-erweiterten Streams.

In diesem Stadium können Sie überprüfen, ob alles funktioniert hat, indem Sie zum RabbitMQ-Dashboard navigieren, wie im folgenden Screenshot gezeigt.

Anreicherung von Echtzeit-Nachrichtenströmen mit der Refinitiv Data Library, AWS-Services und Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Im endgültigen Entwurf finden Sie auch einen detaillierten Testvektor, um sicherzustellen, dass sich die gesamte Architektur wie geplant verhält.

Zusammenfassung

In diesem Beitrag haben wir eine Lösung mit ML in der Cloud mit AWS-Diensten wie SageMaker (ML), Lambda (serverlos) und Kinesis Data Streams (Streaming) geteilt, um Streaming-Nachrichtendaten anzureichern, die von Refinitiv Data Libraries bereitgestellt werden. Die Lösung fügt Nachrichten in Echtzeit einen Sentiment-Score hinzu und skaliert die Infrastruktur mithilfe von Code.

Der Vorteil dieser modularen Architektur besteht darin, dass Sie sie mit Ihrem eigenen Modell wiederverwenden können, um andere Arten der Datenerweiterung auf eine serverlose, skalierbare und kosteneffiziente Weise durchzuführen, die auf der Refinitiv Data Library angewendet werden kann. Dies kann einen Mehrwert für Handels-/Investitions-/Risikomanagement-Workflows schaffen.

Wenn Sie Kommentare oder Fragen haben, hinterlassen Sie diese bitte im Kommentarbereich.

Weitere Informationen


 Über die Autoren

Anreicherung von Echtzeit-Nachrichtenströmen mit der Refinitiv Data Library, AWS-Services und Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Marios Skevofylakas kommt aus den Bereichen Finanzdienstleistungen, Investmentbanking und Beratungstechnologie. Er hat einen Ph.D. in Künstlicher Intelligenz und einen M.Sc. im maschinellen Sehen. Im Laufe seiner Karriere hat er an zahlreichen multidisziplinären KI- und DLT-Projekten teilgenommen. Derzeit ist er Developer Advocate bei Refinitiv, einem LSEG-Unternehmen, und konzentriert sich auf KI- und Quantum-Anwendungen in Finanzdienstleistungen.

Anreicherung von Echtzeit-Nachrichtenströmen mit der Refinitiv Data Library, AWS-Services und Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Jason Ramchandani arbeitet seit 8 Jahren bei Refinitiv, einem LSEG-Unternehmen, als Lead Developer Advocate und hilft beim Aufbau der Entwickler-Community. Zuvor war er über 15 Jahre lang auf den Finanzmärkten tätig und hatte einen quantitativen Hintergrund im Bereich Aktien/Equity-linked bei Okasan Securities, Sakura Finance und Jefferies LLC. Seine Alma Mater ist die UCL.

Anreicherung von Echtzeit-Nachrichtenströmen mit der Refinitiv Data Library, AWS-Services und Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Haykaz Aramjan hat einen Finanz- und Technologiehintergrund. Er hat einen Ph.D. in Finance und einen M.Sc. in Finanzen, Technologie und Politik. Während seiner 10-jährigen Berufserfahrung arbeitete Haykaz an mehreren multidisziplinären Projekten, an denen Renten, VC-Fonds und Technologie-Startups beteiligt waren. Derzeit ist er Developer Advocate bei Refinitiv, einem LSEG-Unternehmen, und konzentriert sich auf KI-Anwendungen in Finanzdienstleistungen.

Anreicherung von Echtzeit-Nachrichtenströmen mit der Refinitiv Data Library, AWS-Services und Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Georgios Schinas ist Senior Specialist Solutions Architect für AI/ML in der EMEA-Region. Er hat seinen Sitz in London und arbeitet eng mit Kunden in Großbritannien und Irland zusammen. Georgios unterstützt Kunden bei der Entwicklung und Bereitstellung von Anwendungen für maschinelles Lernen in der Produktion auf AWS mit besonderem Interesse an MLOps-Praktiken und ermöglicht Kunden, maschinelles Lernen in großem Maßstab durchzuführen. In seiner Freizeit reist er gerne, kocht und verbringt Zeit mit Freunden und Familie.

Anreicherung von Echtzeit-Nachrichtenströmen mit der Refinitiv Data Library, AWS-Services und Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Muthuvelan Swaminathan ist ein Enterprise Solutions Architect mit Sitz in New York. Er arbeitet mit Unternehmenskunden zusammen und bietet architektonische Anleitungen zum Aufbau belastbarer, kostengünstiger und innovativer Lösungen, die ihre Geschäftsanforderungen erfüllen und ihnen helfen, mithilfe von AWS-Produkten und -Services in großem Maßstab zu arbeiten.

Anreicherung von Echtzeit-Nachrichtenströmen mit der Refinitiv Data Library, AWS-Services und Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Mayur Udernani leitet AWS AI & ML-Geschäft mit Handelsunternehmen in Großbritannien und Irland. In seiner Rolle verbringt Mayur den größten Teil seiner Zeit mit Kunden und Partnern, um bei der Entwicklung wirkungsvoller Lösungen zu helfen, die die dringendsten Bedürfnisse eines Kunden oder einer breiteren Branche erfüllen und AWS Cloud-, KI- und ML-Services nutzen. Mayur lebt im Großraum London. Er hat einen MBA vom Indian Institute of Management und einen Bachelor in Computer Engineering von der Mumbai University.

Zeitstempel:

Mehr von AWS Maschinelles Lernen