Case Study: LLMs und große Datenmengen
In folgender Case Study sollen alle Wetterdaten des Deutschen Wetterdienstes (Quelle: Deutscher Wetterdienst) benutzt werden. Dabei handelt es sich um 17,6 Mio.(!) historische Datensätze vom 01.01.1828 bis 31.12.2023. Sie stammen von 1367 Wetterstationen aus Deutschland.
Ziel ist es, für einen vorgegebenen Ort (über die PLZ) und ein Datum zwischen dem 01.01.1838 und dem 31.12.2023 das Wetter für Ort und Datum möglichst genau nachzuvollziehen. Dazu wird klassische Programmierung und ein LLM (hier Open AI model="gpt-4o") für eine ansprechende Ausgabe kombiniert. In diesem Fall wird das LLM also die Daten erhalten.
Die klassiche Programmierung gliedert sich in 4 Schritten:
Schritt 1: Ermittlung der geographischen Koordination der PLZ. Dies geschieht über die API von OpenStreetMap.
Schritt 2: Auf Basis der geographischen Koordinaten wird die Höhe über Meeresspiegel des Ortes ermittelt mit der Open-Elevation-API
Schritt 3: Die geographischen Daten der Wetterstationen und deren Höhe sind in einer Tabelle 'wetterstation' gespeichert. Die Entfernung des Ortes zu jeder Wetterstation wird mit der Haversine-Formel berechnet. Die Wetterstationen werden dann nach aufsteigender Entfernung geordnet. Dabei werden nur die Wetterstationen berücksichtigt, die einen Höhenunterschied von maximal 250m zum angegebenen Ort aufweisen.
Schritt 4: Für jede Wetterstation wird nacheinander überprüft, ob die Daten für den relevanten Zeitpunkt und das relevant Feld vorhanden sind. Wenn nicht, wird auf die nächste nächstgelegene Wetterstation ausgewichen.
Als Ergebnis erhält man die zum Ort nächstgelegenen Wetterstationen, die alle notwendigen Daten erhalten. Diese sind Basis einer SQL-Abfrage, die diese Daten (Temperatur, Niederschlag, Bedeckungsgrad, Schneehöhe) für das angebene Datum und für die 10 Jahre davor (für Vergleichszwecke) enthält. Dies wird einem entsprechenden Prompt an das LLM weitergegeben, um eine verbale Antwort zu erhalten.
Die Einzelteile der klassischen Programmierung 1. bis 4. können ebenfalls als Python-Programm über LLMs erstellt werden. Für die gesamte Aufgabenstellung wäre ein LLM (noch) überfordert und würde nicht performante Abfragen generieren.
Die verwendeten Modell sind "gpt-4o-mini" bzw. "gemini-1.5-flash". Die Quellen der in der Antwort des LLMs benutzten Wetterstationen sind in der Antwort ganz unten angegeben.