Blog

Predictive LLMs: Kann GPT-3.5 die Prognosen von XGBoost verbessern?

Large Language Models (LLMs), wie z.B. GPTs (Generative Pre-trained Transformer), sind darauf trainiert menschliche Sprache zu verstehen und zu generieren. Ihre Anwendungen reichen von der Beantwortung von Fragen und der Erstellung von Texten bis hin zu komplexeren Aufgaben wie Übersetzungen und der automatisierten Erzeugung von Inhalten.

Doch können wir LLMs auch für die Prognose metrischer Zielvariablen nutzen? Diese Frage haben wir uns gestellt, weil ein Großteil unserer Projekte sich um die Prognose metrischer Werte oder Trends dreht. Sie führt uns zu einem näheren Blick auf die Vorteile, die LLMs gegenüber herkömmlichen Machine-Learning Verfahren wie zum Beispiel XGBoost bieten. LLMs sind nicht nur in der Lage, eine Vielzahl von Datenformaten nahtlos zu verarbeiten - von metrischen über binäre bis hin zu kategorialen und Freitextdaten - sondern sie bringen auch eine bemerkenswerte Fähigkeit zur Erkennung komplexer Muster und Zusammenhänge mit sich, weil sie auf riesigen Datenmengen vortrainiert werden. Im Vergleich zu Standardverfahren wie XGBoost eröffnen LLMs somit großes Potenzial in Bezug auf Feature-Generierung sowie Prognosegüte. Im Folgenden zeigen wir, wie Large Language Models (LLMs) im Vergleich zu XGBoost die Prognosegenauigkeit einer metrischen Zielvariable steigern können.

Use Case

Über unseren Partner LOT Internet haben wir Zugang zu einem Datensatz über Fahrzeuge erhalten, die auf der Plattform mobile.de angeboten werden. Unser Hauptaugenmerk liegt auf dem Fahrzeugpreis, den wir prognostizieren, während wir verschiedene Fahrzeugmerkmale wie Kilometerstand und Alter als Einflussgrößen betrachten. Neben diesen tabularen Features sind für uns die Freitexte im Datensatz besonders interessant, in denen die Verkäufer*innen detaillierte Beschreibungen zum Zustand der Autos und den Verkaufsbedingungen geben. Mit Hilfe eines LLMs können wir auch den Freitext als Feature verwenden.

Umsetzung

Im ersten Schritt übersetzen wir die tabularen Daten in ein Textformat. Ein Beispielprompt sieht so aus:

"Note that the cars we are talking about are offered on the platform mobile.de and their make is Skoda. Estimate the value of my used 2020 Skoda SCALA, a sedan with 999cc petrol engine, cloth upholstery, 5 seats, 11801 mileage, and 69 kW power output in euros. Consider in your estimate that the equipment of the Skoda includes -Liste von Equipment-."

Im Fall, wo wir auch den Freitext mit einbeziehen, fügen wir zum Prompt schlicht eine weitere Zeile hinzu:

"For your estimate, consider also the following German description of the car: (deutsche Beschreibung).

Dies ist der sogenannte User-Prompt. Vorgeschaltet findet sich außerdem der system prompt, mit dem sich der allgemeine Charakter der Antworten des LLMs steuern lässt. In unserem Fall schreiben wir:

"I want you to be very short and precise in your answers and only answer with numbers. Remember also that we are talking about the value of used cars for which characteristics such as mileage, construction date, body type, engine displacement, power in kw, fuel use, model, make, equipment on board and the number of seats provide important information. I want only a number as an answer."

Wir haben die Prompts sorgfältig gewählt, um sicherzustellen, dass das Sprachmodell eine Schätzung liefert, die nicht allzu weit vom tatsächlichen Autopreis entfernt ist. Tatsächlich ist es möglich, dem Modell für jedes Auto eine spezifische Frage zu stellen und eine Preisvorstellung zu erhalten. Dieses Vorgehen wird als "zero-shot Learning" bezeichnet, da das Modell zuvor keine Fall-spezifischen Trainingsdaten gesehen hat. In unserem Fall ist die Prognosegenauigkeit beim zero-shot Learning deutlich niedriger als die Genauigkeit von XGBoost.

Der entscheidende Schritt für den Erfolg der Vorhersage durch das Sprachmodell liegt im sogenannten Finetuning. Dabei wird ein bereits vortrainiertes Modell speziell für eine bestimmte Aufgabe angepasst. In unserem Fall besteht diese Aufgabe darin, Fahrzeugpreise vorherzusagen. Dazu müssen wir dem Modell Beispieldialoge mit den entsprechenden Antworten bereitstellen. Beim Finetuning wird also jeder Dialog wie im vorherigen Beispiel zusammen mit der korrekten Antwort (dem Fahrzeugpreis) als Trainingsbeobachtung verwendet.

Wir haben das openAI LLM gpt-3.5-turbo über die API von openAI gefinetuned und anschließend auf einem Testdatensatz die Fahrzeugpreise prognostiziert. In XGBoost nutzen wir die gleichen Features bis auf den Freitext. Wer hat das Rennen gemacht? Hier sind die Ergebnisse.

ModelMean APEMedian APE
XGBoost (n = 6000)14.1 %7.5 %
XGBoost (n = 5000)14.5 %7.6 %
XGBoost (n = 4000)14.7 %7.5 %
XGBoost (n = 3000)15.1 %7.6 %
XGBoost (n = 2000)16.0 %7.7 %
XGBoost (n = 1000)17.6 %8.5 %
XGBoost (n = 600)20.4 %8.8 %
LLM bei zero-shot Learning (n=0)27.2 %15.1 %
LLM ohne Freitext mit finetuning (n = 600)14.0 %7.5 %
LLM mit Freitext mit finetuning (n = 600)11.8 %6.6 %

Betrachten wir als erstes die Prognosegüte von XGBoost mit 6000 Trainingsbeobachtungen. Hierbei wird der Freitext nicht als Feature verwendet, was eine weitere Vorverarbeitung erfordern würde. Wir sehen, dass der mean absolute percentage error (MAPE) zwischen prognostizierten und wahren Fahrzeugpreisen 14.1% beträgt. Dies ist unser wichtigster Vergleichswert. Im Fall des zero-shot Learnings sind die Prognosen des LLMs wesentlich schlechter (MAPE 27.2 %). Doch bereits ohne Freitext erreicht die Prognosegenauigkeit durch das Finetuning ein ähnliches Niveau wie der Vergleichswert (14.0 vs. 14.1 %). Bemerkenswert ist zudem, dass das LLM dies mit nur 600 Trainingsbeobachtungen schafft, während XGBoost für den Vergleichswert 6000 Beobachtungen benötigt. Die Bedeutung der Anzahl der Trainingsbeobachtungen werden wir unten weiter diskutieren. Zunächst sei herausgestellt, dass der Freitext dem finetuned LLM einen wesentlichen Vorteil verschafft und die Prognosegenauigkeit gegenüber dem XGBoost-Vergleichswert um 2.3 Prozentpunkte auf einen MAPE von 11.8 % verbessert.

Fallzahldiskussion

Das LLM wurde vor dem Finetuning bereits auf einer riesigen Menge an Daten trainiert. Wirkt sich dies darauf aus, wie viele Trainingsbeobachtungen es braucht, um gute Prognosen zu machen? Unsere Ergenisse zeigen, dass es durchaus so ist. Das LLM erreicht mit 600 Trainingsbeobachtungen die gleiche Prognosequalität wie XGBoost mit 6000. Wir führen dies auf den Effekt des Vortrainings zurück, wodurch das LLM über ein breit gestreutes Wissen verfügt, dass auch für den spezifischen Use-Case nützlich ist. Auf diesem Vorteil begründet sich auch der neue Trend hin zu sogenannten Foundation-Modellen, von denen LLMs ein Spezialfall sind. Wie verändert sich die Prognosequalität, wenn man die Anzahl der Trainingsbeobachtungen variiert? In unseren Experimenten mit dem openAI LLM hat sich gezeigt, dass es keinen wesentlichen Unterschied macht, ob 600 oder 6000 Beobachtungen im Finetuning genutzt werden. Nach den ersten 600 Beobachtungen zieht das LLM in unserem Fall keine neuen Informationen mehr aus den Daten. Dies ist ein Unterschied zu XGBoost. Bei der Nutzung dieses Algorithmus beobachten wir eine kontinuierliche Verbesserung der Prognosegüte wenn wir die Trainingsbeobachtungen schrittweise von 600 auf 6000 erhöhen. Trainieren wir XGBoost mit den gleichen 600 Beobachtungen wie das LLM, kommt XGBoost bei weitem nicht an die Güte des LLMs heran (MAPEs von 20.4 vs. 14.0 %). Wir leiten daraus ab, dass sich der Einsatz von LLMs gerade bei kleinen Zahlen von Beobachtungen sehr lohnen kann.

Fazit

Sollten wir bewährte Algorithmen wie XGBoost schon jetzt durch LLMs ersetzen? Das wäre eine vorschnelle Schlussfolgerung. Wenn die Anzahl der Trainingsbeobachtungen groß genug ist und es sich um rein tabulare Daten handelt, zeigen unsere Ergebnisse, dass XGBoost immer noch genau so gut wie das openAI LLM ist. Zudem hat das LLM den Nachteil fehlender Erklärbarkeit. Auch wenn der Freitext die Prognose deutlich verbessert, ist nicht gleich ersichtlich, welche Aspekte des Freitextes für diese Verbesserung verantwortlich sind. Insgesamt ist es beeindruckend, wie gut das LLM die metrischen Fahrzeugpreise prognostizieren kann. In unserem Use-Case zeigt sich das LLM vor allem in zwei Fällen überlegen. Im ersten Fall verwenden wir auch den Freitext als Feature. Das LLM ermöglicht hier eine unkomplizierte Kombination von tabularen Features und einer unstrukturierten Datenquelle. Der zweite Fall ist eine geringe Anzahl von Trainingsbeobachtungen, bei uns 600. Auch hier schlägt das finetuned LLM XGBoost deutlich bzgl. der Prognosegüte.