Mit Sprache Daten analysieren - Der intelligent BI Bot

Heute braucht es eine BI Abteilung um Managern Auswertungen über die Unternehmensdaten bereitzustellen. Wir fragen uns: Schaffen wir es simple Business Intelligence Reports für Manager per KI einfacher zugänglich zu machen?

Mit Sprache Daten analysieren - Der intelligent BI Bot

Unser Ziel: Ein Manager soll via einfacher Sprache strukturierte Daten auswerten können.

Hierfür lohnt es sich zu beleuchten, auf welcher Datengrundlage die sogenannten Large Language Models (LLM) wie ChatGPT und co trainiert wurden. Während für die GPT-Serie von OpenAI diese Information nicht veröffentlicht wurde, lässt sich für das OpenSource Modell LLaMA nachvollziehen, welche Grundlage verwendet wurde. Bei genauerem Hinsehen lässt sich erkennen, dass mit GitHub, ArXiv und StackExchange (~9% des Trainingskorpus) sehr technische Quellen genutzt wurden, um das Modell zu trainieren. Zu Trainingszeiten hat das Modell somit riesige Mengen an Programm-Quellcode gesehen und ist in der Lage diesen zu generieren. Dies inkludiert die Fähigkeit, SQL-Abfragen zu erstellen.

Diese Fähigkeit der Modelle haben wir uns zu Nutze gemacht, um eine Applikation zu erstellen, die es uns erlaubt, unsere internen Business Intelligence oder Reporting Datenbanken mithilfe von natürlicher Sprache auszuwerten. Wir nutzen die Modelle und das LLM Framework LangChain, um basierend auf unserer Anfrage und dem Schema der Datenbank die sprachliche Version in eine SQL-Abfrage zu übersetzen und die Ergebnisse dem Nutzer darzustellen. Von einfachen Fragen zu komplexen Anwendungsfällen sind erstaunliche Ergebnisse möglich.

Das Besondere: Es werden keine vertraulichen Informationen an das LLM übertragen, bis auf die Anfrage und die abstrakte Datenstruktur der Datenbank. Die schützenswerten Inhalte der Datenbank werden nicht übertragen. Mit Hilfe der eingesetzten Technologie (LangChain) lässt sich zudem das verwendete OpenAI-Cloud Modell gegen ein in der eigenen Infrastruktur bereitgestelltes Modell, wie z.B. Falcon, austauschen, sodass keine sensiblen Informationen nach außen dringen.

Wie immer, weisen wir auch auf die Limitierungen und Risiken einer solchen Lösung hin:

  • LLMs können und werden halluzinieren. Das betrifft auch SQL-Generierung. Es können Statements generiert werden, die Daten in falsche Relation setzen oder ganz falsche Daten abfragen.
  • Ohne Schutz der API können ohne weiteres Anfragen ausgelöst werden welche Daten löschen oder manipulieren würden.
  • Große Datenbanken besitzen ein zu großes Schema, um es komplett an die LLMs zu schicken, da diese durch ihr Context Window begrenzt sind. Sie müssen auf einzelne Tabellen begrenzt werden oder die relevanten Tabelle mit Hilfe einer vorgelagerten Anfrage ausgewählt werden.
  • Durch die Übertragung des Schemas entstehen pro Anfrage Kosten, die über einfache Anwendungsfälle hinausgehen. Wir rechnen mit 0,01$ pro Anfrage.

Fußnoten