← Zurück

February 15, 2024

Equity Analysis: Erstellung eines zuverlässigen LLM mit Bavest und OpenAI

Autor:
Bavest
Engineering
Einleitung

Das Aufkommen großer Sprachmodelle (LLMs) hat eine neue Ära der Innovation in der natürlichen Sprachverarbeitung (NLP) eingeläutet und verspricht transformative Fähigkeiten in verschiedenen Bereichen. Insbesondere der Finanzbereich hat sich zu einem Schwerpunkt der Forschung entwickelt, da LLMs das Potenzial haben, die Analyse und Interpretation von Finanzdaten zu revolutionieren. Zunächst werden wir einen Blick auf den Tech-Stack und die Architektur im Allgemeinen werfen, dann werden wir ein konkretes Beispiel anführen, das Sie selbst ausprobieren können.

Beim Equity Research gibt es jedoch zwei große Herausforderungen:

  1. Es ist eine minimale Halluzination von LLMs erforderlich.
  2. Beschaffung sämtlicher und aktueller Finanzdaten von börsennotierten Unternehmen, einschließlich aller gemeldeten KPIs wie Nachhaltigkeitsdaten.

Diese Herausforderungen können mit "RAG" gelöst werden, was für Retrieval-Augmented Generation steht. Retrieval-Augmented Generation (RAG) ist eine KI-Technik, die sich mit der anhaltenden Herausforderung von Halluzinationen befasst. Durch die Ergänzung bestehender KI-Modelle mit externen Informationen, die über ihre Trainingsdatensätze hinausgehen, steigert RAG deren Fähigkeiten, bestimmte Aufgaben effektiv zu bewältigen.

Daher muss RAG mit einem operativen Datenspeicher integriert werden, der in der Lage ist, Abfragen in numerische Vektoren umzuwandeln und somit eine Vektordatenbank zu bilden. Diese Vektordatenbank ermöglicht es dem Modell, kontinuierlich zu lernen und sich in Echtzeit anzupassen und so sein Verständnis dynamisch zu verbessern. Bei der Aktienanalyse greifen wir auf Geschäftsberichte, Quartalsberichte und Nachhaltigkeitsberichte von Unternehmen zu. Dies ermöglicht der RAG den Zugriff auf alle aktuellen Finanzzahlen und andere KPIs sowie auf ältere Datenpunkte.

Nun ist es eine große Herausforderung, alle Berichte von Unternehmen seit dem Börsengang zu sammeln. Wir bei Bavest stellen alle veröffentlichten Berichte seit dem Börsengang zur Verfügung. Wir verwenden KI, insbesondere Reasoning. Unsere KI nutzt Reasoning, um die Berichte aus dem Kontext der Websites herunterzuladen. Sie erkennt die neueren Berichte und kann so automatisch historische und aktuelle Berichte für über 60.000 Aktien sammeln.

Strategie für die interne LLM-Entwicklung

Die Entwicklung eines internen RAG-Systems erfordert einen systematischen Ansatz, der mit einem klaren Verständnis der Ziele und Anforderungen des Projekts beginnt. Es ist wichtig, ein multidisziplinäres Team aus Fachexperten, Datenwissenschaftlern und Softwareingenieuren zusammenzustellen, um einen ganzheitlichen Ansatz für die Entwicklung zu gewährleisten. Darüber hinaus ist die Erstellung einer klar definierten Projekt-Roadmap mit eindeutigen Meilensteinen und Ergebnissen entscheidend für die Steuerung der Erwartungen und die Ausrichtung an den Unternehmenszielen. Kontinuierliche Feedbackschleifen und iterative Entwicklungsprozesse sollten implementiert werden, um auf die sich verändernden Bedürfnisse der Nutzer und technischen Herausforderungen effektiv eingehen zu können.

Tech Stack Overview

Der Aufbau eines RAG-Systems erfordert den Einsatz einer Vielzahl von Technologien und Bibliotheken zur Bewältigung verschiedener Aufgaben, einschließlich Datenerfassung, Textextraktion, Abfrage, Generierung und Entwicklung von Benutzeroberflächen. Zu den häufig verwendeten Bibliotheken und Frameworks gehören PyPDF2, pdfminer oder Textract für die Textextraktion aus PDF-Dokumenten sowie Elasticsearch oder Apache Solr für die Indizierung und Abfrage von Dokumenten. Für Aufgaben der Verarbeitung natürlicher Sprache können vortrainierte Sprachmodelle wie GPT (z. B. GPT-3) auf domänenspezifischen Datensätzen feinabgestimmt werden, um die Generierung aufschlussreicher Antworten zu ermöglichen.

Datenbeschaffung

Die Nutzung von Bavest, das Zugang zu Aktien weltweit, historisch seit dem Börsengang, bietet, ist eine strategische Wahl für den Erwerb von Jahres- und Quartalsberichten. Die Bavest-API bietet eine umfassende Datenbank mit Berichten für Large-, Mid- und Small-Cap-Unternehmen und ermöglicht so eine umfassende Analyse der Marktlandschaft. Durch die Nutzung unserer API können Ihre Software-Ingenieure und Datenwissenschaftler den Prozess des Abrufs der neuesten Berichte rationalisieren und den Zugang zu aktuellen Informationen für die Analyse sicherstellen.

Text Extrahierung

Sobald die Berichte von API X abgerufen wurden, besteht der nächste Schritt darin, relevante Textinhalte aus den PDF-Dokumenten zu extrahieren. Zu diesem Zweck können Bibliotheken wie PyPDF2, pdfminer oder Textract eingesetzt werden. Diese Bibliotheken ermöglichen es Entwicklern, Text zu extrahieren und dabei Herausforderungen wie Formatierungsinkonsistenzen und nicht-textliche Elemente in den Dokumenten zu bewältigen.

Abfrage

Die Implementierung eines robusten Retrievalsystems ist für die effiziente Identifizierung relevanter Dokumente auf der Grundlage von Benutzeranfragen unerlässlich. Techniken wie BM25 oder TF-IDF können für das Abrufen von Dokumenten verwendet werden, wobei die Indizierung mit Elasticsearch oder Apache Solr erfolgt. Durch die Indizierung der vorverarbeiteten Textdaten kann das Abfragesystem Berichte, die den Suchkriterien des Benutzers entsprechen, schnell abrufen und so die Benutzerfreundlichkeit des RAG-Systems insgesamt verbessern.

Generierung

Die Generierungskomponente des RAG-Systems umfasst die Nutzung von vorab trainierten Sprachmodellen wie GPT, um auf der Grundlage der abgerufenen Berichte Erkenntnisse und Antworten zu generieren. Die Feinabstimmung des Sprachmodells anhand eines Datensatzes, der Fragen und Antworten zu Geschäftsberichten enthält, ermöglicht es dem Modell, präzise und kontextbezogene Antworten auf Benutzeranfragen zu geben. Diese Fähigkeit verbessert die Fähigkeit des Systems, komplexe Finanzinformationen zu analysieren und zu interpretieren, so dass die Benutzer fundierte Entscheidungen treffen können.

Integration/UI

Die Entwicklung einer benutzerfreundlichen Schnittstelle für Portfoliomanager zur Interaktion mit dem RAG-System ist entscheidend für die Maximierung seines Nutzens und seiner Akzeptanz. Unabhängig davon, ob es sich um ein webbasiertes Dashboard oder eine Befehlszeilenschnittstelle handelt, sollte die Schnittstelle es den Nutzern ermöglichen, auf einfache Weise Abfragen zu stellen, relevante Berichte anzuzeigen und auf generierte Erkenntnisse zuzugreifen. Die Integration der Abfrage- und Generierungskomponenten gewährleistet eine nahtlose Benutzererfahrung, die es den Portfoliomanagern ermöglicht, effizient verwertbare Erkenntnisse zu gewinnen.

Evaluierungs- und Testphase

Während der Evaluierungs- und Testphase wird die Leistung des RAG-Systems anhand einer Kombination aus Testfällen und realen Nutzungsszenarien bewertet. Rückmeldungen von Portfoliomanagern und anderen Beteiligten werden gesammelt, um Verbesserungsmöglichkeiten zu ermitteln und die Fähigkeiten des Systems zu verfeinern. Durch iterative Tests und Validierung wird sichergestellt, dass das System den Bedürfnissen der Benutzer entspricht und in der Praxis einen Mehrwert bietet.

Deployment

Der Einsatz des RAG-Systems in einer Produktionsumgebung erfordert die Gewährleistung von Skalierbarkeit, Zuverlässigkeit und Sicherheit. Die kontinuierliche Überwachung der Systemleistung und des Nutzerfeedbacks ermöglicht iterative Verbesserungen nach der Bereitstellung. Durch die Nutzung von Cloud-basierter Infrastruktur und DevOps-Praktiken können die Entwickler den Bereitstellungsprozess rationalisieren und das System im Laufe der Zeit effektiv warten.

Erstellen eines Chatbots für die Equity Analyse mit Bavest & OpenAI

Wie bereits erklärt, wird ChatGPT in diesem Anwendungsfall ziemlich gut funktionieren. Wir werden die LLM-APIs von OpenAI verwenden. Obwohl ChatGPT verwendet werden kann, unterliegt es einer Einschränkung hinsichtlich der in einer einzigen Anfrage zulässigen Textmenge. Diese Einschränkung ergibt sich aus der Tatsache, dass das Modell nur maximal 4000 Token unterstützt (der Einfachheit halber entspricht jedes Wort eines Textes einem Token). Folglich ist es notwendig, einen großen Text in kleinere Portionen zu unterteilen. Die Schritte 1, 2 und 3 beziehen sich auf die Erstellung eines Indexes.

1. Voraussetzung
  • Ein OpenAI API-Schlüssel ist erforderlich. Bitte erstellen Sie einen hier: https://openai.com/blog/openai-api
  • Einen Test-API-Schlüssel von Bavest für die Datenbank der Unternehmensberichte erhalten Sie hier: Schreiben Sie uns an support@bavest.co und nennen Sie uns Ihr Projektziel oder vereinbaren Sie einen Gesprächstermin, wenn Sie mehr erfahren möchten und wissen wollen, wie wir Sie bei der Umsetzung Ihres internen LLM unterstützen können: https://calendly.com/ramtin-babaei/bavest-demo-en

2. Datenverarbeitung

Schritt 1: Der umfangreiche Text wird in kleinere Segmente aufgeteilt. Diese Segmentierung gewährleistet die Einhaltung der Token-Grenze von 4096 bei Verwendung der txt-davinci-003-API.

Schritt 2: Generierung von Einbettungen für jedes Textsegment durch die Nutzung der kostengünstigeren ADA-API von OpenAI. Einbettungen dienen als numerische Repräsentationen von Text.

Bitte beachten Sie, dass der Code das Modell "text-embedding-ada-002" verwendet, das die wirtschaftlichste verfügbare Option ist.

Schritt 3: Sobald der Index erstellt ist, speichern wir ihn in einem Indexspeicher. Es gibt einige Optionen für produktionsreife Systeme wie Pinecone, Redis usw. Um die Dinge einfach zu halten, wird das Beispiel unten in einer JSON-Datei gespeichert. Dies war der letzte Schritt bei der Vorbereitung der Daten. In den nächsten Schritten A-D geht es um die Frage, wie wir mit unseren Daten umgehen.

Chat mit Dokumenten

Schritt 1: Laden Sie den Index aus der JSON-Datei und übergeben Sie ihm eine Frage.

Schritt 2: Basierend auf der Frage führt der Index eine Ähnlichkeitssuche im Index durch, um relevante Textabschnitte zu identifizieren.

Schritt 3: Dies ist ähnlich wie bei ChatGPT Q&A, in diesem Schritt wird die Frage zusammen mit dem Kontext (relavent chunk of text) an OpenAI's txt-davinci-003 API gesendet.

Schritt 4: OpenAI's txt-davinci-003 API antwortet mit einer Antwort aus dem Kontext, der ihr übermittelt wurde.

Im folgenden Beispiel wird eine PDF-Datei, die Informationen zu Nvidia's Quartalsbericht enthält, für die Fragen und Antworten verwendet, wobei die Llama_Index Python-Bibliothek die meiste Arbeit übernimmt.

Fazit

Zusammenfassend lässt sich sagen, dass die Entwicklung eines Retrieval-Augmented Generation-Systems ein erhebliches Potenzial zur Verbesserung der Portfolioanalyse und Entscheidungsfindung im Finanzsektor bietet. Durch den Einsatz fortschrittlicher NLP-Techniken und APIs wie API X können Unternehmen den Abruf und die Analyse von Unternehmensberichten automatisieren, so dass Portfoliomanager effizient verwertbare Erkenntnisse gewinnen können. Mit der Weiterentwicklung der Technologie sind RAG-Systeme in der Lage, eine zentrale Rolle bei der Förderung von Innovation und Effizienz in der Vermögensverwaltung und bei Anlagestrategien zu spielen.

blog

Weitere Artikel