Reworked the paper and integrated the change requests. #9

Open
Philipp wants to merge 2 commits from reveiew-integration into main
Showing only changes of commit 67db2aa209 - Show all commits

View File

@ -22,6 +22,8 @@
\usepackage{tabularray}
\usepackage{stfloats}
\usepackage{float}
\usepackage{verbatim}
\usepackage{acronym}
% Definiert die Kompatibilität mit der Version von pgfplots
\pgfplotsset{compat=1.17}
@ -64,20 +66,24 @@
Wintersemester 2023/24
}
\acrodef{LLM}{Large Langauge Model}
\acrodef{PAL}{Programming Aided Language Model}
\acrodef{CoT}{Chain of Though}
\acrodef{PoT}{Program of Thought}
\begin{document}
\maketitle
\begin{abstract}
Eine der Herausforderungen bei der Nutzung von umfangreichen Sprachmodellen (Large Language Models, LLMs) ist die eingeschränkte Fähigkeit,
Eine der Herausforderungen bei der Nutzung von umfangreichen Sprachmodellen \ac{LLM}s ist die eingeschränkte Fähigkeit,
mathematische Operationen präzise auszuführen.
Ähnlich wie der menschliche Verstand neigen sie dazu, mathematische Ergebnisse fehlerhaft zu berechnen.
Eine Lösung hierfür bietet die Umwandlung von mathematischen Problemstellungen in einfachen Programmcode.
Der hier vorgestellte Ansatz der Programm-unterstützten Sprachmodelle (Program-aided Language Models, PAL)
verwendet Python ähnlich einem Taschenrechner, um arithmetisch-logische Berechnungen durchzuführen und den Lösungsaufbau zu strukturieren.
Der hier vorgestellte Ansatz von \ac{PAL} verwendet Python ähnlich einem Taschenrechner, um arithmetisch-logische Berechnungen durchzuführen und den Lösungsaufbau zu strukturieren.
Dabei wird nicht auf die Generierung des nächsten wahrscheinlichen Tokens durch das Sprachmodell als Lösungsansatz
für mathematisch-logische Operationen vertraut.
Stattdessen werden die Stärken des LLMs mit denen der direkten Ausführung mathematischer Operationen über einen Interpreter kombiniert,
Stattdessen werden die Stärken des \ac{LLM}s mit denen der direkten Ausführung mathematischer Operationen über einen Interpreter kombiniert,
um mathematisch präzisere Ergebnisse zu erzielen.
Dieses Prinzip wird im Paper „PAL: Programming Aided Language Model“~\cite{gao2023pal} eingehend vorgestellt und die aktuelle Implementierung werden aufgezeigt.
\end{abstract}
@ -85,102 +91,102 @@ Dieses Prinzip wird im Paper „PAL: Programming Aided Language Model“~\cite{g
%„PAL: Programming Aided Language Model“
\begin{IEEEkeywords}
LLM, Prompt-Engineering, Mathematical, Informatik, NL
LLM, Prompt-Engineering, Mathematisch, Informatik, NL
\end{IEEEkeywords}
\section{Einleitung}\label{sec:einleitung}
Seit der Veröffentlichung von ChatGPT im Jahr 2023 haben umfangreichen Sprachmodellen (Large Language Models, LLMs) stark an Popularität gewonnen.
Seit der Veröffentlichung von ChatGPT im Jahr 2022 haben \ac{LLM} stark an Popularität gewonnen.
Allerdings begann ihre Entwicklung bereits früher.
Schon seit einigen Jahren ist es möglich, LLMs einzusetzen,
Schon seit einigen Jahren ist es möglich, \ac{LLM} einzusetzen,
um Rechenwege auszuformulieren und so zu symbolischen Lösungen zu gelangen,
die anschließend konkret berechnet werden konnten.
Jedoch hat diese schrittweise Berechnung das Problem, dass mathematische Operationen innerhalb eines Sprachmodells gelöst werden müssen,
das seine Kenntnisse aus einem Textkorpus ableitet, welcher als Grundlage zum Lernen dient.
Dies und die Tatsache, dass LLMs darauf ausgelegt sind, die nächsten Zeichen vorherzusagen, erschweren es ihnen,
Dies und die Tatsache, dass \ac{LLM}s darauf ausgelegt sind, die nächsten Zeichen vorherzusagen, erschweren es ihnen,
konkret formulierte Probleme präzise zu lösen.
Gerade dann wenn sich eine Mathematische Operation sich nicht genau so im Textkorpus wiederfindet
da Mathematische Operationen aus Text zu Interpolieren einen sehr hohen grad an abstraktion erfordern.
Verlagert man jedoch die Berechnung in eine Software, die vom LLM generiert wird,
Gerade dann, wenn sich eine mathematische Operation nicht genau so im Textkorpus wiederfindet,
da mathematische Operationen durch Zeichenketten zu interpolieren einen sehr hohen Grad an Abstraktion erfordern.
Verlagert man jedoch die Berechnung in eine Software, die vom \ac{LLM} generiert wird,
kann dieses Problem umgangen und so eine deutlich höhere Ergebnisqualität erzielt werden.
Zum Zeitpunkt des PAL-Papers wurde das Lösen von solchen Problemen mittels Few-Shot-Learning im Style von Chain of Though (CoT)~\cite{CoT} vorangetrieben.
Zum Zeitpunkt des PAL-Papers wurde das Lösen von solchen Problemen mittels Few-Shot-Learning im Stile von \ac{CoT} ~\cite{CoT} vorangetrieben.
Few-Shot-Learning verwendet eine Reihe von Frage- und Antwortpaaren als Beispiele, um zu zeigen, wie eine Problemlösung aussehen könnte.
Dies führt dazu, dass Fragestellungen vom LLM im Schema der Beispiele angegangen werden und das LLM somit eine gewisse Führung erhält.
CoT ist ein Promptpattern welches das LLM dazu anhält die eine Antwort schrittweise und Systematisch aufzubauen und nicht das Ergebnis zu raten.
PAL nutzt Few-Shot-Prompting, um ein LLM dazu zu bringen, eine Python-Funktion als Antwort zurückzugeben.
Dabei ist es wichtig zu Wissen, dass die verwendeten Beispiele in Prompts maßgeblich auf die zu lösenden Probleme zugeschnitten sind.
Dies führt dazu, dass Fragestellungen vom \ac{LLM} im Schema der Beispiele angegangen werden und das \ac{LLM} somit eine gewisse Führung erhält.
\ac{CoT} ist ein Promptpattern welches das \ac{LLM} dazu anhält die eine Antwort schrittweise und Systematisch aufzubauen und nicht das Ergebnis zu raten.
PAL nutzt Few-Shot-Prompting, um ein \ac{LLM} dazu zu bringen, eine Python-Funktion als Antwort zurückzugeben.
Dabei ist es wichtig zu wissen, dass die verwendeten Beispiele in Prompts maßgeblich auf die zu lösenden Probleme zugeschnitten sind.
Das im Januar 2023 vorgestellte PAL-Verfahren oder eine Variante davon ist nun ein integrierter Teil von beispielsweise ChatGPT oder LangChain~\cite{langchain}.
Ob dies eine Parallelentwicklung ist oder auf PAL basiert lässt sich zumindest bei OpenAI nur schwer sagen.
Ob dies eine Parallelentwicklung ist oder auf \ac{PAL} basiert lässt sich zumindest bei OpenAI nur schwer sagen.
In Abbildung \ref{fig:cot-pal-chatgpg} findet man ein Vergleich, wie das Lösen von mathematischen Problemen in Chain-of-Thought~\cite{CoT}, PAL~\cite{gao2023pal} und dem aktuellen ChatGPT4~\cite{ChatGPTexample} aussehen kann.
In Abbildung \ref{fig:cot-pal-chatgpg} findet man einen Vergleich, wie das Lösen von mathematischen Problemen in \ac{CoT}~\cite{CoT}, PAL~\cite{gao2023pal} und dem aktuellen ChatGPT4~\cite{ChatGPTexample} aussehen kann.
\begin{figure*}[htbp]
\centering
\includegraphics[width=\textwidth]{PAL Example Expanded.drawio.pdf}
\caption{CoT\cite{CoT} vs. PAL\cite{gao2023pal} vs. ChatGPT4\cite{ChatGPTexample} nach\cite{gao2023pal}}
\caption{\ac{CoT}~\cite{CoT} vs. \ac{PAL}~\cite{gao2023pal} vs. ChatGPT4~\cite{ChatGPTexample} nach~\cite{gao2023pal}}
\label{fig:cot-pal-chatgpg}
\end{figure*}
\section{Hintergrund}\label{sec:hintergrund}
\subsection{Few-shot Prompting}
Eine der erstaunlichen Fähigkeiten von Large Language Models (LLMs) besteht darin,
Eine der erstaunlichen Fähigkeiten von \ac{LLM} besteht darin,
dass sie anhand weniger Beispiele, die zeigen, wie man eine Problemstellung einer bestimmten Art lösen könnte,
diese Lösungsansätze oft auf andere Probleme übertragen können~\cite{few-shot2}~\cite{few-shot1}.
Dies geschieht of nur mit einer wirklich geringen Anzahl an Beispielen.
Typischerweise ist dies eine Anzahl im kleineren Einstelligen bereich.
Typischerweise ist dies eine Anzahl im kleineren Einstelligen Bereich.
Wichtig dabei ist, dass sich die Lösungen auch stilistisch sehr stark an den gegebenen Beispielen orientieren.
Dies ist eine Technik zur Nutzung eines LLMs im Englischen auch genant Prompting und keine Modifikation am LLM selbst.
Dies ist eine Technik zur Nutzung eines \ac{LLM}s im Englischen auch genant Prompting und keine Modifikation am \ac{LLM} selbst.
Alternative zu Few-Shot Prompts gibt es Zero-Shot Prompts.
Bei diesen wird lediglich eine Beschreibung des Lösungsansatzes oder eine Formatierungsanweisung gegeben.
\subsection{Chain of Thought (CoT)}
\subsection{Chain of Thought - CoT}
Eine der weit verbreiteten Techniken, um mehr aus LLMs herauszuholen, ist, diese anzuregen, ihre Antwort schrittweise aufzubauen.
Dies geschieht oft über eine Few-shot-Variante namens Chain of Though (CoT)~\cite{CoT} welche LLM durch Beispielhafte Lösungswege
mit zwischenschritten dazu anregt,
das Lösungswege mit sauber ausgeführten Zwischenschritten inhaltlich ausformuliert werden und die notwendigen mathematischen Operationen strukturieren niedergeschrieben werden.
Dies verbessert sowohl den Lösungsansatz und Schreibt die mthematischen Operationen sauber nieder.
Was deren lösung dann weniger Abstrakt werden lässt.
Dadurch wird das LLM angeregt, sowohl den Gedankengang, der zum Ergebnis führt, durchzuführen,
Eine der weit verbreiteten Techniken, um mehr aus \ac{LLM}s herauszuholen, ist, diese anzuregen, ihre Antwort schrittweise aufzubauen.
Dies geschieht oft über eine Few-shot-Variante namens \ac{CoT}~\cite{CoT} welche \ac{LLM} durch beispielhafte Lösungswege
mit Zwischenschritten dazu anregt,
dass Lösungswege mit sauber ausgeführten Zwischenschritten inhaltlich ausformuliert werden und die notwendigen mathematischen Operationen strukturiert niedergeschrieben werden.
Dies verbessert sowohl den Lösungsansatz und schreibt die mathematischen Operationen sauber nieder.
Was deren Lösung dann weniger abstrakt werden lässt.
Dadurch wird das \ac{LLM} angeregt, sowohl den Gedankengang, der zum Ergebnis führt, durchzuführen,
als auch nicht einfach zu einem Ergebnis wie z. B. „42“ zu gelangen, weil „42“ oft als Beispiel genutzt wird.
Chain of Thought kann nicht nur für Mathematische Problemstellungen verwendet werden.
\ac{CoT} kann nicht nur für mathematische Problemstellungen verwendet werden.
\section{Program-aided Language Models}
Die natürliche Fortsetzung von Chain of Thought (CoT)~\cite{CoT} besteht darin, das Modell anzuregen,
Die natürliche Fortsetzung von \ac{CoT}~\cite{CoT} besteht darin, das Modell anzuregen,
mathematische und logische Probleme in Form von Programmcode zu formatieren,
welcher dann ausgeführt wird um die eigentlichen mathematischen Operationen auszuführen.
Dieser Ansatz umgeht die Schwachstelle der mathematischen Operation vollständig.
Indem der Programmcode so gestaltet wird, dass er den Gedankengang der Problemlösung nachzeichnet,
werden die Stärken von Chain of Thought-Prompts genutzt und die Schwächen von LLMs bei mathematischen Operationen effektiv umgangen.
werden die Stärken von \ac{CoT}-Prompts genutzt und die Schwächen von \ac{LLM}s bei mathematischen Operationen effektiv umgangen.
Beim Aufbau von Program-Aided Language (PAL) Prompt-Beispielen ist zu beachten,
Beim Aufbau von \ac{PAL} Prompt-Beispielen ist zu beachten,
dass die Variablen sich an den Grundsatz der Verbalisierung halten und aussagekräftige Namen haben sollten,
die möglichst gut den einzelnen Werten aus dem Fließtext der Aufgabenstellung zuzuordnen sind
und das Beispiel dadurch besondere Klarheit bekommt.
Obwohl es möglich ist, die Schritte einzeln auszuführen und dann mit den Ergebnissen weiterzuarbeiten,
wurde der Ansatz der einfachen, statt der einmaligen Ausführung gewählt.
Obwohl es möglich wäre, die Berechnung in einzelnen Schritte auszuführen und dann mit den Zwischenergebnissen weiterzuarbeiten,
wurde \ac{PAL} so konzipiert, das der Rechenweg im ganzen definiert und danach einmalig ausgeführt wird.
\section{Experimente}
Die Experimente zur Quantifizierung der Effizienz von Program-Aided Language (PAL) wurden auf Datensätzen durchgeführt,
die bereits für Chain of Thought Experimente verwendet wurden~\cite{CoT}.
Für PAL wurde sowohl die Fähigkeit zum Lösen mathematischer, abstrakter als auch algorithmischer Probleme quantifiziert.
die bereits für \ac{CoT} Experimente verwendet wurden~\cite{CoT}.
Für \ac{PAL} wurde sowohl die Fähigkeit zum Lösen mathematischer, abstrakter als auch algorithmischer Probleme quantifiziert.
Die CoT-Prompt-Beispiele, welche die Lösungsstile/Wege aufzeigen, wurden direkt übernommen und in den PAL-Prompt Stil übertragen.
Um eine gute Vergleichbarkeit zu gewährleisten, wurden äquivalente Beispiele in beiden Stilen verwendet,
um die Qualität der Ergebnisse beider Algorithmen unter gleichen Bedingungen zu testen.
Beispielsweise wurden zufällig die CoT Beispiele 3, 6 und 8 aus der Menge der Beispiele ausgewählt.
Probleme wurden sowohl mit CoT als auch mit PAL unter Verwendung derselben zufälligen Kombination gelöst.
Beispielsweise wurden zufällig die \ac{CoT} Beispiele 3, 6 und 8 aus der Menge der Beispiele ausgewählt.
Probleme wurden sowohl mit \ac{CoT} als auch mit \ac{PAL} unter Verwendung derselben zufälligen Kombination gelöst.
Auf diese Weise kann der Zufallsfaktor, der die Passgenauigkeit der Beispiele zum Problem beeinflusst,
ausgeschlossen werden, was die Ergebnisse vergleichbarer macht.
Auf die Beispiele und die Fragestellung folgt stets die Aufforderung, Antworten in Python zu formulieren mit einem Hinweis auf die Formatbeispiele.
Neben CoT und PAL wurde auch die direkte Frage nach einem Ergebnis getestet, um die qualitativen Unterschiede deutlich aufzeigen zu können.
Die direkt Frage nach einem Ergebnis ist genau wie es klingt eine Einfache bitte um Antwort nach schilderung des Sachverhalts.
Neben \ac{CoT} und \ac{PAL} wurde auch die direkte Frage nach einem Ergebnis getestet, um die qualitativen Unterschiede deutlich aufzeigen zu können.
Die direkt Frage nach einem Ergebnis ist genau wie es klingt eine einfache Bitte um Antwort nach Schilderung des Sachverhalts.
\subsection{Mathematische Berechnungen}
@ -188,8 +194,8 @@ Zur Evaluation des KI-Modells wurden mathematische Aufgaben aus acht Datensätze
Die Experimente zeigten, dass Kommentare und lange Beschreibungen zwischen den Codezeilen die Ergebnisse nicht verbessern.
Daher sind die Beispiele recht schlicht gehalten.
Codebeispiel \ref{list:math-prompt-example} ist ein Beispiel aus dem PAL-Repository, welches zeigt,
wie ein solches Lösungsbeispiel für einen mathematischen Prompt aussehen kann.
Codebeispiel \ref{list:math-prompt-example} ist ein Beispiel aus dem \ac{PAL}-Repository, welches zeigt,
wie ein solches Lösungsbeispiel für eine Prompt der eine Mathematische Aufgabe lösen soll aussehen kann.
Das Beispiel wurde dabei nicht übersetzt, da unklar ist,
inwiefern eine Übersetzung die Qualität von generiertem Code schwächt,
besonders da Code im Wesentlichen in Englisch geschrieben wird.
@ -199,14 +205,14 @@ Um die mathematischen Anteile von den Lösungsansätzen zu unterscheiden,
bei denen die Ergebnisse von mathematischen Operationen nicht aus dem Gedächtnis kommen können, sondern definitiv gerechnet werden müssen.
Dies ermöglicht einen guten Vergleich, wie gut oder schlecht die Lösungsansätze im Gegensatz zur direkten Mathematik sind.
Es wird so ausgeschlossen, dass die korrekten Ergebnisse einfach geraten werden.
Dieser so editierte Datensatz wird als GSM-HARD bezeichnet und ist über Huggingface frei verfügbar.
Dieser so editierte Datensatz wird als GSM-HARD bezeichnet und ist über Hugging Face frei verfügbar.
\begin{lstlisting}[language=Python, caption=Prompt Beispiel für mathematische Probleme, label=list:math-prompt-example]
(*@\textbf{Q: Olivia has \$23. She bought five bagels for \$3 each. How much money does she have left?}@*)
# solution in Python:
ddef solution():
def solution():
"""Olivia has $23. She bought five bagels for $3 each. How much money does she have left?"""
money_initial = 23
bagels = 5
@ -242,10 +248,10 @@ cabbage, two onions, and three fridges. How many vegetables do I have?}@*)
# solution in Python:
def solution():
"""Olivia has $23. She bought five bagels for $3 each. How much money does she have left?"""
"""I have a chair, two potatoes, a cauliflower, a lettuce head, two tables, a cabbage, two onions, and
three fridges. How many vegetables do I have?"""
def soloution()
def solution()
"""Counting all vagetables. Chair, table and friges arn't counted."""
vegetables_to_count = {
'potato': 2,
@ -257,13 +263,13 @@ def soloution()
return sum(vegetables_to_count.values())
\end{lstlisting}
Als Standard-LLM für die Experimente welche PAL quantifizieren wurde das CODEX LLM model \DavinciCode genutzt.
Experimente mit andern Modellen wurden der einfachheit halber aus dieser Vorstellung herausgenommen.
Als Standard-\ac{LLM} für die Experimente welche \ac{PAL} quantifizieren wurde das CODEX \ac{LLM} model \DavinciCode{} genutzt.
Experimente mit anderen Modellen wurden der Einfachheit halber aus dieser Vorstellung herausgenommen.
\section{Ergebnisse}
Die Ergebnisse in den Tabellen \ref{tab:math-performance} und \ref{tab:algo-performance} zeigen,
dass PAL-Prompts wesentlich besser funktionieren als CoT Prompts und die direkte Anfrage an LLMs.
dass \ac{PAL}-Prompts wesentlich besser funktionieren als \ac{CoT} Prompts und die direkte Anfrage an \ac{LLM}s.
\subsection{Ergebnisse der mathematischen Aufgaben}
@ -282,49 +288,51 @@ PAL & 72,0 & 61,2 & 79,4 & 79,6 & 96,1 & 94,6 & 92,5 &
}
\caption[Mathematik prompt ergebnisse]{
Ergebnisqualität von verschiedenen Prompttechniken gegenüber verschiedenen Datensätzen.\\
Ausgelassen wurden dabei Ergebnisse von abweichenden LLMs.
Ausgelassen wurden dabei Ergebnisse von abweichenden \ac{LLM}s.
}
\label{tab:math-performance}
\end{table*}
In Tabelle \ref{tab:math-performance} zeigt sich, besonders durch den Unterschied zwischen GSM8K und GSM-HARD,
wie groß die Schwierigkeiten von CoT und der direkten Berechnung bei mathematischen Operationen sind.
Die wird dadurch unterstrichen das der einzige Unterschied die Größe der Zahlen ist.
Die direkte Berechnung fällt von ohnehin schon schlechten $19,7\%$ auf $5,0\%$ ($\Delta_{Direkt}=-74\%$).
Ähnlich verhält es sich bei der Berechnung mit CoT-Prompts, die von $65,6\%$ auf $23,1\%$ fallen ($\Delta_{CoT}=-70$).
Auch wenn die Qualität der Berechnungen für PAL fällt, geschieht dies nur von $72,0\%$ auf $61,2\%$ ($\Delta_{PAL}=-14,3\%$).
Das deutlich robustere Verhalten gegenüber komplexen Rechenoperationen macht sich mit einem Qualitätsunterschied von $1224\%$
zwischen der Direktberechnung und PAL bemerkbar.
Auch das wesentlich bessere CoT hat immer noch einen Qualitätsunterschied von $264\%$ zu PAL unter GSM-HARD.
Aber auch mit allen anderen Datensätzen sind PAL-Prompts CoT-Prompts und direkten Anfragen überlegen.
wie groß die Schwierigkeiten von \ac{CoT} und der direkten Berechnung bei mathematischen Operationen sind.
Die wird dadurch unterstrichen, dass der einzige Unterschied die Größe der Zahlen ist.
Die direkte Berechnung fällt von ohnehin schon schlechten $19,7 \%$ auf $5,0 \%$ ($\Delta_{Direkt}=-74 \%$).
Ähnlich verhält es sich bei der Berechnung mit CoT-Prompts, die von $65,6 \%$ auf $23,1 \%$ fallen ($\Delta_{CoT}=-70$).
Auch wenn die Qualität der Berechnungen für \ac{PAL} fällt, geschieht dies nur von $72,0 \%$ auf $61,2 \%$ ($\Delta_{PAL}=-14,3 \%$).
Das deutlich robustere Verhalten gegenüber komplexen Rechenoperationen macht sich mit einem Qualitätsunterschied von $1224 \%$
zwischen der Direktberechnung und \ac{PAL} bemerkbar.
Auch das wesentlich bessere \ac{CoT} hat immer noch einen Qualitätsunterschied von $264 \%$ zu \ac{PAL} unter GSM-HARD.
Aber auch mit allen anderen Datensätzen sind \ac{PAL}-Prompts CoT-Prompts und direkten Anfragen überlegen.
Eine manuelle Analyse der Prompts zeigt, dass das Vorgehen bei CoT- und PAL-Prompts in 16 von 25 Fällen die Antworten annähernd gleich aufbaut,
was wiederum die „einfache“ mathematische Operation mit komplexeren Zahlen als Fehlerquelle hinweist.
Eine manuelle Analyse der Prompts zeigt, dass das Vorgehen bei CoT- und \ac{PAL}-Prompts in 16 von 25 Fällen die Antworten annähernd gleich aufbaut,
was wiederum auf die „einfache“ mathematische Operation mit komplexeren Zahlen als Fehlerquelle hinweist.
Die Ergebnisqualität kann weiter gesteigert werden,
wenn man die Qualität des Ergebnisses über einen Mehrheitsentscheidung gegenüber Fehlern stabilisiert.
Die Ergebnisse von PAL steigen von $72,0\%$ auf $80,4\%$ ($\Delta_{PAL-M}=11\%$),
die von CoT von $65,6\%$ auf $78,4\%$ ($\Delta_{CoT-M}=19\%$).
Die Qualitätsverbesserung durch Mehrheitsentscheidungen ist zwar für PAL nicht so stark wie für CoT,
was allein schon durch das geringere Verbesserungspotenzial und den geringeren Zufallsanteil bei Berechnungen via PAL zu erklären ist.
wenn man die Qualität des Ergebnisses über eine Mehrheitsentscheidung gegenüber Fehlern stabilisiert.
Der Mehrheitsentscheid führt \ac{PAL} mehrfach aus und nimmt das Ergebnis, welches am öftesten ermittelt wurde.
Die Ergebnisse von \ac{PAL} steigen von $72,0 \%$ auf $80,4 \%$ ($\Delta_{PAL-M}=11 \%$),
die von \ac{CoT} von $65,6 \%$ auf $78,4 \%$ ($\Delta_{CoT-M}=19 \%$).
Die Qualitätsverbesserung durch Mehrheitsentscheidungen ist zwar für \ac{PAL} nicht so stark wie für CoT,
was allein schon durch das geringere Verbesserungspotenzial und den geringeren Zufallsanteil bei Berechnungen via \ac{PAL} zu erklären ist.
Die Experimente zum Mehrheitsentscheid wurden nur auf GSM8K durchgeführt.
\subsection{Ergebnisse der Aufgaben zum Abstrakten Denken \& Algorithmen}
Die Ergebnisse zum abstrakten Denken und zu Algorithmen können in Tabelle \ref{tab:algo-performance} gefunden werden.
Auch hier wurden die Ergebnisse, die nicht mit dem Codex-Modell \DavinciCode berechnet wurden, ausgelassen.
Auch hier wurden die Ergebnisse, die nicht mit dem Codex-Modell \DavinciCode{} berechnet wurden, ausgelassen.
So steigt das Lösen von Positionsaufgaben in Objektfolgen um $8,8\%$ (COLORED OBJECT).
Aussagen über tabellierte Daten steigen in ihrer Qualität um $14\%$ am Beispiel der Pinguin-Daten.
So steigt das Lösen von Positionsaufgaben in Objektfolgen um $8,8 \%$ (COLORED OBJECT).
Aussagen über tabellierte Daten steigen in ihrer Qualität um $14 \%$ am Beispiel der Pinguin-Daten.
Das Zählen von Objekten, welches bei der direkten Verwendung von LLMs besonders schwierig ist,
erreicht mit PAL eine Erfolgsrate von $96,7\%$. CoT erreicht hier immerhin $73\%$.
Das Zählen von Objekten, welches bei der direkten Verwendung von \ac{LLM}s besonders schwierig ist,
erreicht mit \ac{PAL} eine Erfolgsrate von $96,7 \%$. \ac{CoT} erreicht hier immerhin $73 \%$.
Auch hier sind wieder deutliche Qualitätssteigerungen zu erkennen.
Dabei ist wichtig zu erwähnen, dass die Ergebnisqualität beim Handeln von mehren Objekten bei PAL-Prompts stabil ist und bei CoT-Prompts annähernd stetig abnimmt.
Auch hier wird, wie bei den mathematischen Aufgaben, gezeigt, dass der Umgang mit mehr Datenpunkten für PAL wesentlich einfacher ist als für CoT.
Dabei ist wichtig zu erwähnen, dass die Ergebnisqualität beim Händeln von mehren Objekten bei \ac{PAL}-Prompts stabil ist und bei CoT-Prompts annähernd stetig abnimmt.
Auch hier wird, wie bei den mathematischen Aufgaben gezeigt, dass der Umgang mit mehr Datenpunkten für \ac{PAL} wesentlich einfacher ist als für CoT.
Dieses Verhalten findet sich in allen Ergebnissen wieder.
Die Stabilität von PAL ist auch hier messbar höher, insbesondere bei gesteigerter Komplexität.
Die Stabilität von \ac{PAL} ist auch hier messbar höher, insbesondere bei gesteigerter Komplexität.
\begin{table}[H]
\centering
@ -341,7 +349,7 @@ PAL & 95,1 & 93,3 & 76,2 & 90,6 & 96,7 \\
}
\caption{
Ergebnisqualität von verschiedenen Prompt Techniken gegenüber logischen und algorithmischen Aufgaben.\\
Ausgelassen wurden dabei Ergebnisse von abweichenden LLMs.
Ausgelassen wurden dabei Ergebnisse von abweichenden \ac{LLM}s.
}
\label{tab:algo-performance}
\end{table}
@ -351,19 +359,19 @@ PAL & 95,1 & 93,3 & 76,2 & 90,6 & 96,7 \\
Neben den oben beschriebenen Experimenten wurden weitere Fragestellungen untersucht. Hier sind die Ergebnisse:
\begin{itemize}
\item PAL funktioniert auch auf schwächeren LLMs. Die Vorteile skalieren etwa mit der Qualität des Modells.
\item \ac{PAL} funktioniert auch auf schwächeren \ac{LLM}s. Die Vorteile skalieren etwa mit der Qualität des Modells.
\item Experimente, die Modelle vergleichen, welche sowohl Code als auch Text generieren, zeigen,
dass diese nur eine Mindestqualität erfüllen müssen. Funktionieren tut es mit beiden.
\item Experimente, bei denen Python-Syntax als Strukturierungshilfe für CoT genutzt wurde,
\item Experimente, bei denen Python-Syntax als Strukturierungshilfe für \ac{CoT} genutzt wurde,
zeigten nur eine geringe Verbesserung gegenüber der direkten Berechnung.
\item Experimente zur Quantifizierung, ob und inwieweit Kommentare und gute Variablennamen eine Rolle spielen, zeigen, dass:
\begin{enumerate}
\item Code-Kommentare die Qualität von PAL leicht verbessern.
\item Code-Kommentare die Qualität von \ac{PAL} leicht verbessern.
\item Werden Variablennamen und Kommentare weggelassen, erhält man Ergebnisse, welche die Qualität von CoT-Prompts oft nicht erreichen.
\end{enumerate}
\item Steigende LLM Qualität verringert das durch PAL erschließbare Verbesserungspotential (Abbildung\ref{fig:diff-llm}).
Daher sind qualitative verbesserungen bei Besseren LLMs weniger stark sichtbar.
Auch bei geringerer Prozentualer verbesserung ist PAL für die Nachvollziehbarkeit durch den Nutzer aber sehr dankbar.
\item Steigende \ac{LLM} Qualität verringert das durch \ac{PAL} erschließbare Verbesserungspotential (Abbildung\ref{fig:diff-llm}).
Daher sind qualitative verbesserungen bei besseren \ac{LLM}s weniger stark sichtbar.
Auch bei geringerer prozentualer Verbesserung ist \ac{PAL} für die Nachvollziehbarkeit durch den Nutzer aber sehr dankbar.
\end{itemize}
\begin{figure}[htbp]
@ -393,33 +401,33 @@ coordinates {(text-davinci-001,8.6) (text-davinci-002,46.9) (text-davinci-003,69
\legend{CoT,PAL}
\end{axis}
\end{tikzpicture}
\caption{Vergleich der Ergebnisqualität von PAL und CoT bei verschiedenen LLM modellen.}
\caption{Vergleich der Ergebnisqualität von \ac{PAL} und \ac{CoT} bei verschiedenen \ac{LLM} modellen.}
\label{fig:diff-llm}
\end{figure}
\section{Ähnliche Werke \& Implementierungen}
Die Entwicklung des PAL-Papers wurde durch das Few-shot Prompting~\cite{few-shot2}~\cite{few-shot1} und das Konzept des
Chain of Thought (CoT) angeregt, erreichte jedoch eine überlegene Qualität in den Ergebnissen.
\ac{CoT} angeregt, erreichte jedoch eine überlegene Qualität in den Ergebnissen.
Weitere Ansätze, die zusätzliche Tokens für Daten und mathematische Operationen einsetzen~\cite{Demeter_Downey_2020},
sind zwar vorhanden, erweisen sich jedoch als komplexer, weniger zuverlässig und weniger universell einsetzbar.
Es existieren Large Language Models (LLMs), die speziell auf mathematische Probleme und Codeausgabe ausgerichtet sind
Es existieren \ac{LLM}s, die speziell auf mathematische Probleme und Codeausgabe ausgerichtet sind
und eine höhere Ergebnisqualität als Standardmodelle aufweisen, allerdings nur marginal~\cite{pi2022reasoning}.
Diese Modelle sind ebenfalls fähig, Code zu generieren und auszuführen.
Ein zeitgleich mit PAL veröffentlichter Ansatz, das Program of Thought (PoT)~\cite{chen2023program},
konzentriert sich stärker auf mathematische Probleme und wird in PAL zitiert.
Ein zeitgleich mit \ac{PAL} veröffentlichter Ansatz, das \ac{PoT}~\cite{chen2023program},
konzentriert sich stärker auf mathematische Probleme und wird in \ac{PAL} zitiert.
Es scheint, dass dort weniger Wert auf die Gestaltung von Prompts gelegt wird und auch keine Vergleiche mit dem
aussagekräftigen Datensatz GSM-HARD gezogen werden, stattdessen werden andere Datensätze verwendet.
Dies macht die Vergleichbarkeit schwierig.
Neue Techniken wie die „Automatic Model Selection with Large Language Models for Reasoning“ kombinieren CoT und PAL und
Neue Techniken wie die „Automatic Model Selection with Large Language Models for Reasoning“ kombinieren \ac{CoT} und \ac{PAL} und
überlassen die Entscheidung über die Korrektheit beider Ergebnisse einem LLM,
wodurch die Qualität der Ergebnisse für GSM8K auf $96,5\%$ gesteigert werden konnte, eine Verbesserung um $34\%$~\cite{zhao2023automatic}.
wodurch die Qualität der Ergebnisse für GSM8K auf $96,5 \%$ gesteigert werden konnte, eine Verbesserung um $34 \%$~\cite{zhao2023automatic}.
Die weit verbreitete Python/JavaScript-Bibliothek LangChain hat PAL-Prompts in ihr Repertoire aufgenommen~\cite{langchain}.
Aktuelle Studien belegen, dass die Qualität von PAL auch bei neueren LLMs besser ist als die von CoT~\cite{kabra2023programaided},
Aktuelle Studien belegen, dass die Qualität von \ac{PAL} auch bei neueren \ac{LLM}s besser ist als die von CoT~\cite{kabra2023programaided},
wobei dort noch andere Experimente gemacht werden und weitere Verbesserungen vorgenommen wurden.
Eine vergleichbare Integration von Programmiersprachen findet in Tools wie Binder~\cite{binder} statt,
@ -427,9 +435,9 @@ Eine vergleichbare Integration von Programmiersprachen findet in Tools wie Binde
Moderne Python-Libraries wie PandasAI~\cite{Venturi} setzen diesen Ansatz ein,
um Datenabfragen und -operationen zu bearbeiten, und gehen dabei über Zero-shot-Prompts vor.
Alternative Ansätze wie „Automatic Multi-Step Reasoning and Tool-Use for Large Language Models“~\cite{paranjape2023art}
frieren das LLM während der Codeausführung ein und fügen die Ergebnisse direkt in den Text ein,
bevor die Ausführung des LLMs basierend auf diesen Ergebnissen fortgesetzt wird.
Alternative Ansätze wie „Automatic Multi-Step Reasoning and Tool-Use for \ac{LLM}s“~\cite{paranjape2023art}
frieren das \ac{LLM} während der Codeausführung ein und fügen die Ergebnisse direkt in den Text ein,
bevor die Ausführung des \ac{LLM}s basierend auf diesen Ergebnissen fortgesetzt wird.
Das in ChatGPT verwendete Analysemodul erzeugt schnell Code, ohne die Berechnungen direkt im Code durchzuführen,
was einen weiteren interessanten Anwendungsfall darstellt.
@ -437,31 +445,34 @@ Das in ChatGPT verwendete Analysemodul erzeugt schnell Code, ohne die Berechnung
\section{Ausblick}
Die vorgestellte PAL-Technik illustriert einen innovativen Schritt,
indem sie Python-Code während der Beantwortung von Fragen oder Aufgaben durch LLMs ausführt.
Das aufgedeckte Verbesserungspotenzial für mathematisch-logische Operationen innerhalb von LLMs ist beeindruckend und zeugt von schlichter technischer Eleganz.
indem sie Python-Code während der Beantwortung von Fragen oder Aufgaben durch \ac{LLM}s ausführt.
Das aufgedeckte Verbesserungspotenzial für mathematisch-logische Operationen innerhalb von \ac{LLM}s ist beeindruckend und zeugt von schlichter technischer Eleganz.
Die Quantifizierung von Einflussfaktoren, wie die Reihenfolge und Art der Beispiele, trägt zur Verlässlichkeit der Methode bei.
Die Tatsache, dass PAL-Prompts als erweiterte CoT-Prompts fungieren, stärkt das Vertrauen in die Ergebnisse.
Der rasante technische Fortschritt im Bereich der LLMs und deren Integration in Software zeigt,
wie effektiv der von PAL verfolgte Ansatz ist.
Trotz der Versuche des PAL-Papers, die Ergebnisse des 175-Milliarden-Parameter-Modells zu kontextualisieren,
bleibt unklar, wie aktuelle LLMs abschneiden würden.
Der rasante technische Fortschritt im Bereich der \ac{LLM}s und deren Integration in Software zeigt,
wie effektiv der von \ac{PAL} verfolgte Ansatz ist.
Trotz der Versuche des \ac{PAL}-Papers, die Ergebnisse des 175-Milliarden-Parameter-Modells zu kontextualisieren,
bleibt unklar, wie aktuelle \ac{LLM}s abschneiden würden.
Dennoch ist es unwahrscheinlich, dass die Ergebnisse schlechter ausfallen als direkte Anfragen oder CoT-Resultate auf denselben Modellen.
Eine kritische Information, die im PAL-Paper fehlt, ist die Häufigkeit nicht ausführbaren Codes.
LLMs sind oft in der Lage, mit einem Fehler-Traceback den Code zu korrigieren, was eine Verbesserung darstellen könnte,
\ac{LLM}s sind oft in der Lage, mit einem Fehler-Traceback den Code zu korrigieren, was eine Verbesserung darstellen könnte,
ohne den CPU-Aufwand einer mehrfachen Ausführung für einen Mehrheitsentscheid zu erhöhen.
Es bleibt zu untersuchen, ob PAL in anderen Sprachen ähnlich effektiv ist,
Es bleibt zu untersuchen, ob \ac{PAL} in anderen Sprachen ähnlich effektiv ist,
da eine weniger enge Verknüpfung zwischen Aufgabenstellungen und Codevariablen in verschiedenen Sprachen
die Qualität potenziell beeinträchtigen könnte. Eine Quantifizierung dieser Effekte stellt sicherlich eine Herausforderung dar.
Neben den Wirklich beeindruckenden ergebnissen die PAL vorweisen kann ist aber besonders die Technische Implementierung
welche unabhängig voneinander in Verschiedenen Tools vorgenomen wurde ein Zeichen davon wie Zielführen die Nutzung von PAL oder der Interpretierung
Neben den wirklich beeindruckenden Ergebnissen die \ac{PAL} vorweisen kann ist aber besonders die technische Implementierung
welche unabhängig voneinander in verschiedenen Tools vorgenomen wurde ein Zeichen davon wie zielführend die Nutzung von \ac{PAL} oder der Interpretierung
von Python code Ausführungen zur Laufzeit ist.
Es wird jedoch deutlich, dass oft weit über das Prompt-Engineering hinausgegangen wird und aktuelle LLMs auch ohne spezielle Aufforderung interpretierbaren Code generieren.
Es wird jedoch deutlich das aktuell, dass oft weit über das Prompt-Engineering hinausgegangen wird und aktuelle \ac{LLM}s auch ohne spezielle Aufforderung interpretierbaren Code generieren.
Dies macht \ac{PAL} zu einem Zwischenschritt zum aktuellen Stand der Technik und ein hervorragendes Mittel, um sich mit Hilfe von \ac{LLM}s weitere Trainingsdaten, etwa zu Feintunen eines \ac{LLM}, zu generieren.
\end{document}
\printbibliography\footnote{Zum Verbessern von Rechtschreibung, Grammatik und als allgemeine Korrekturinstanz wurde ChatGPT4 verwendet.}
\end{document}