Spellchecking and grammar checking using ChatGPT
Some checks failed
Latex Build / LatexBuild (push) Failing after 11m50s
Some checks failed
Latex Build / LatexBuild (push) Failing after 11m50s
This commit is contained in:
@ -71,9 +71,11 @@ Dieser Ansatz nutzt die Rechenkapazität analog zu einem Taschenrechner, um arit
|
|||||||
statt auf die Generierung des nächsten wahrscheinlichen Tokens durch das Sprachmodell zu vertrauen.
|
statt auf die Generierung des nächsten wahrscheinlichen Tokens durch das Sprachmodell zu vertrauen.
|
||||||
Durch diese Methode lassen sich die Stärken des Aufgabenmodells mit denen der direkten Ausführung mathematischer Operationen verbinden,
|
Durch diese Methode lassen sich die Stärken des Aufgabenmodells mit denen der direkten Ausführung mathematischer Operationen verbinden,
|
||||||
um mathematisch präzisere Ergebnisse zu erzielen.
|
um mathematisch präzisere Ergebnisse zu erzielen.
|
||||||
Dieses Prinzip wird im Paper „PAL: Programming Aided Language Model“ ~\cite{gao2023pal} vorgestellt und auf aktuelle Implementierung eingegangen.
|
Dieses Prinzip wird im Paper „PAL: Programming Aided Language Model“~\cite{gao2023pal} vorgestellt und auf aktuelle Implementierung eingegangen.
|
||||||
\end{abstract}
|
\end{abstract}
|
||||||
|
|
||||||
|
%„PAL: Programming Aided Language Model“
|
||||||
|
|
||||||
\begin{IEEEkeywords}
|
\begin{IEEEkeywords}
|
||||||
LLM, Prompt-Engineering, Mathematical, Informatik, NL
|
LLM, Prompt-Engineering, Mathematical, Informatik, NL
|
||||||
\end{IEEEkeywords}
|
\end{IEEEkeywords}
|
||||||
@ -97,7 +99,7 @@ Dabei ist es wichtig, dass die gegebenen Beispiele maßgeblich die zu lösenden
|
|||||||
Das im Januar 2023 vorgestellte PAL-Verfahren ist nun ein integrierter Teil von beispielsweise ChatGPT.
|
Das im Januar 2023 vorgestellte PAL-Verfahren ist nun ein integrierter Teil von beispielsweise ChatGPT.
|
||||||
Ob sich dies direkt aus dem hier vorgestellten PAL-Paper entwickelt hat, lässt sich nicht eindeutig feststellen.
|
Ob sich dies direkt aus dem hier vorgestellten PAL-Paper entwickelt hat, lässt sich nicht eindeutig feststellen.
|
||||||
|
|
||||||
Nachfolgend ein Vergleich, wie dies in Chain-of-Thought, PAL und dem aktuellen ChatGPT4 aussehen kann ~\cite{CoT}~\cite{gao2023pal}~\cite{ChatGPTexample}.
|
Nachfolgend ein Vergleich, wie dies in Chain-of-Thought, PAL und dem aktuellen ChatGPT4 aussehen kann~\cite{CoT}~\cite{gao2023pal}~\cite{ChatGPTexample}.
|
||||||
|
|
||||||
\begin{figure*}[htbp]
|
\begin{figure*}[htbp]
|
||||||
\centering
|
\centering
|
||||||
@ -106,72 +108,80 @@ Nachfolgend ein Vergleich, wie dies in Chain-of-Thought, PAL und dem aktuellen C
|
|||||||
\label{fig:cot-pal-chatgpg}
|
\label{fig:cot-pal-chatgpg}
|
||||||
\end{figure*}
|
\end{figure*}
|
||||||
|
|
||||||
\section{Hintergrund}\label{sec:Few-shot-prompting}
|
\section{Hintergrund}\label{sec:hintergrund}
|
||||||
|
|
||||||
\subsection{Few-shot Prompting}
|
\subsection{Few-shot Prompting}
|
||||||
Eine der erstaunlichen fähigkeiten von LLMs ist das sie mit wenigen beispielen welche zeigen wie man ein Problem
|
Eine der erstaunlichen Fähigkeiten von Large Language Models (LLMs) besteht darin,
|
||||||
einer bestimmten art lösen könnte diese Lösungen oft auf andere probleme übertragen können ~\cite{few-shot2}~\cite{few-shot1}.
|
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}.
|
||||||
|
|
||||||
Beide können wie in der den ersten beiden Eingabe / Ausgabe combination in \ref{fig:cot-pal-chatgpg} aus nur wenigen beispielen bestehen.
|
Beide Ansätze können, wie in den ersten beiden Eingabe-/Ausgabe-Kombinationen in \ref{fig:cot-pal-chatgpg} gezeigt,
|
||||||
Wichtig dabei ist das sich die lösungen auch stilistisch sehr stark an den gegebenen beispielen Orientieren.
|
aus nur wenigen Beispielen bestehen.
|
||||||
Dies ist eine Technik um ein LLM zu nutzen und keine modifikation am LLM selber.
|
Wichtig dabei ist, dass sich die Lösungen auch stilistisch sehr stark an den gegebenen Beispielen orientieren.
|
||||||
Few-shot Prompting gehört daher zum Gebiet des Prompting, nicht der LLM erstellung.
|
Dies ist eine Technik zur Nutzung eines LLMs und keine Modifikation am LLM selbst.
|
||||||
|
Few-shot Prompting gehört daher zum Gebiet des Promptings und nicht der Erstellung von LLMs.
|
||||||
Gegenüber von Few-Shot Prompts stehen Zero Shots. Bei diesen wird einfach nur eine Beschreibung des Lösungsansatzes oder eine Formatierungsanweisung gegeben.
|
Im Gegensatz zu Few-Shot Prompts stehen 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.
|
Eine der weit verbreiteten Techniken, um mehr aus LLMs herauszuholen, ist, diese anzuregen, ihre Antwort schrittweise aufzubauen.
|
||||||
Die Few-shot Variante dazu ist das die Beispiele, die Zwischenschritte sowohl inhaltlich ausformulieren als auch die nötigen mathematische Operationen gliedert.
|
Die Few-shot-Variante dazu besteht darin,
|
||||||
So wird das LLM angeregt sowohl den Gedankengang welcher zum ergebnis fürt durchzuführen und nicht einfach zu einem Ergebnis wie z. B. 42 zu kommen, weil 42 oft als Beispiel genutzt wird.
|
dass die Beispiele die Zwischenschritte sowohl inhaltlich ausformulieren als auch die notwendigen mathematischen Operationen strukturieren.
|
||||||
Diese Technik wird im Allgemeinen Chain of Thought genannt ~\cite{CoT} paper dargelegt.
|
Dadurch wird das 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.
|
||||||
|
Diese Technik wird allgemein als „Chain of Thought“ bezeichnet und im entsprechenden Paper~\cite{CoT} dargelegt.
|
||||||
|
|
||||||
\section{Program-aided Language Models}
|
\section{Program-aided Language Models}
|
||||||
|
|
||||||
Die natürliche Fortsetzung von CoT~\cite{CoT} ist das Model anzuregen Mathematische und
|
Die natürliche Fortsetzung von Chain of Thought (CoT)~\cite{CoT} besteht darin, das Modell anzuregen,
|
||||||
logische probleme als programmcode zu formatieren welcher die eigentliche Mathematische operation ausführt.
|
mathematische und logische Probleme in Form von Programmcode zu formatieren,
|
||||||
Dies entfernt die Stärkste schwachstelle welche Zeitgenössische LLMs gegenüber Mathematisch/Lögischen operationen haben.
|
welcher die eigentlichen mathematischen Operationen ausführt.
|
||||||
Solange der Programmcode so aufgebaut ist das er den Gedankengang der Problemlösung aufbaut werden so die
|
Dieser Ansatz beseitigt die größte Schwachstelle, die zeitgenössische Large Language Models (LLMs) bei mathematischen und logischen Operationen aufweisen.
|
||||||
stärken von Chain of Thought Prompts genutzt und die Schwächen für mathematische Operation von LLMs vollständig zu umgehen.
|
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.
|
||||||
|
|
||||||
Beim Aufbau von PAL prompt beispielen ist zu beachten,
|
Beim Aufbau von Program-Aided Language (PAL) Prompt-Beispielen ist zu beachten,
|
||||||
das die Variablen sich an den grundsatz der Verbalisierung halten und aussagekräfte Namen haben sollten, die möglichst gut im Fließtext der
|
dass die Variablen sich an den Grundsatz der Verbalisierung halten und aussagekräftige Namen haben sollten,
|
||||||
Aufgabenstellung wiederzufinden sind, damit die Verbindung zu diesen Besonders deutlich wird.
|
die möglichst gut im Fließtext der Aufgabenstellung wiederzufinden sind,
|
||||||
|
um die Verbindung zu diesen besonders deutlich zu machen.
|
||||||
Auch wenn es möglich ist die Schritte einzeln auszuführen und dann mit den ergebnissen weiterzuarbeiten wurde der einfachere anstatt der einmaligen Ausführung.
|
|
||||||
|
|
||||||
|
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.
|
||||||
\section{Experimente}
|
\section{Experimente}
|
||||||
|
|
||||||
Die Experimente zur Quantifizierung der Effizienz von PAL wurden auf den Datensätzen welche schon für CoT~\cite{CoT} verwendet wurden ausgeführt.
|
Die Experimente zur Quantifizierung der Effizienz von Program-Aided Language (PAL) wurden auf Datensätzen durchgeführt,
|
||||||
Dabei wird sowohl die fähigkeit zum Lösen mathematischer Probleme,
|
die bereits für Chain of Thought (CoT) verwendet wurden~\cite{CoT}.
|
||||||
abstrakten Problemen und algorithmische Probleme quantifiziert.
|
Hierbei wurde sowohl die Fähigkeit zum Lösen mathematischer, abstrakter als auch algorithmischer Probleme quantifiziert.
|
||||||
Die CoT Beispiele, welche den Lösungsstiele zeigen werden,
|
Die CoT-Beispiele, welche die Lösungsstile aufzeigen, wurden direkt übernommen und in den PAL-Stil einer Antwort übertragen.
|
||||||
dabei einfach von CoT übernommen und in den PAL style einer Antwort übertragen.
|
Um eine gute Vergleichbarkeit zu gewährleisten, wurden äquivalente Beispiele in beiden Stilen verwendet,
|
||||||
Um eine gute vergleichbarkeit zu gewährleisten,
|
um die Qualität der Ergebnisse beider Algorithmen unter gleichen Bedingungen zu testen.
|
||||||
werden dabei die equivalent beispiele in beiden Stilen verwendet, um die Qualität der ergebnisse beider algorithmen unter gleichen Bedingungen zu testen.
|
|
||||||
|
|
||||||
So wurden zum Beispiel zufällig Beispiele 3, 6 und 8 aus der Mänge ger beispiele ausgewählt und Probleme wurden sowohl über CoT als auch über PAL mit dieser Kombination ein Problem gelöst.
|
Beispielsweise wurden zufällig die Beispiele 3, 6 und 8 aus der Menge der Beispiele ausgewählt.
|
||||||
So kann der Zufallsfaktor wie gut Beispiele zum Problem passen herausgerechnet werden und die Ergebnisse werden vergleichbarer.
|
Probleme wurden sowohl mit CoT als auch mit PAL unter Verwendung dieser Kombination gelöst.
|
||||||
Auf die Beispiele und die Fragestellung folgt immer die Forderung das Antworten in Python ausfallen sollen und zwar in dem dargelegten Format.
|
Auf diese Weise kann der Zufallsfaktor, der die Passgenauigkeit der Beispiele zum Problem beeinflusst, minimiert werden,
|
||||||
|
was die Ergebnisse vergleichbarer macht.
|
||||||
|
Auf die Beispiele und die Fragestellung folgt stets die Aufforderung, Antworten in Python zu formulieren, und zwar in dem vorgegebenen Format.
|
||||||
|
|
||||||
Neben CoT und PAL wurde auch noch die Direkte frage nach einem Ergebnis probiert um die Qualitativen unterschiede sauber anzeigen zu können.
|
Neben CoT und PAL wurde auch die direkte Frage nach einem Ergebnis getestet, um die qualitativen Unterschiede deutlich aufzeigen zu können.
|
||||||
|
|
||||||
\subsection{Mathematische Berechnungen}
|
\subsection{Mathematische Berechnungen}
|
||||||
|
|
||||||
Zur evaluation des KI models wurden mathematische Aufgaben aus 8 Datensetzen auf Grundschulniveau verwendet.
|
Zur Evaluation des KI-Modells wurden mathematische Aufgaben aus acht Datensätzen auf Grundschulniveau verwendet.
|
||||||
Experimente konnte gezeigt werden, dass Kommentare und lange beschreibungen zwischen den Codezeilen die ergebnisse nicht verbessern.
|
Die Experimente zeigten, dass Kommentare und lange Beschreibungen zwischen den Codezeilen die Ergebnisse nicht verbessern.
|
||||||
Daher sind die Beispiele recht schier.
|
Daher sind die Beispiele recht schlicht gehalten.
|
||||||
|
|
||||||
In Codebeispiel \ref{list:math-prompt-example} ist ein Beispiel aus dem PAL repository, welches zeigt wie ein solcher Mathematischer Prompt aussehen kann.
|
In Codebeispiel \ref{list:math-prompt-example} ist ein Beispiel aus dem PAL-Repository, welches zeigt, wie ein solcher mathematischer Prompt aussehen kann.
|
||||||
Das Beispiel wurde dabei nicht übersetzt da unklar ist in wie weit eine Übersetzung die Qualität von generiertem code Schwächt.
|
Das Beispiel wurde dabei nicht übersetzt, da unklar ist,
|
||||||
Gerade da Code im wesentlichen in Englisch geschrieben wird.
|
inwiefern eine Übersetzung die Qualität von generiertem Code schwächt,
|
||||||
|
besonders da Code im Wesentlichen in Englisch geschrieben wird.
|
||||||
|
|
||||||
Um die Mathematischen anteile von den Lösungsansetzen zu machen wurde einer der Datensätze (GSM8K) editiert
|
Um die mathematischen Anteile von den Lösungsansätzen zu unterscheiden,
|
||||||
und die Zahlen durch große Zahlen zu ersetzt bei denen die Ergebnisse von Mathematischen operationen nicht aus
|
wurde einer der Datensätze (GSM8K) editiert und die Zahlen durch große Zahlen ersetzt,
|
||||||
dem "Gedächtnis" kommen sondern gerechnet werden müssen.
|
bei denen die Ergebnisse von mathematischen Operationen nicht aus dem Gedächtnis kommen, sondern gerechnet werden müssen.
|
||||||
Damit lässt sich auch besonders gut vergleichen wie gut oder schlecht die Lösungansatze sind im gegensatz zur direkten Mathematik.
|
Dies ermöglicht einen guten Vergleich, wie gut oder schlecht die Lösungsansätze im Gegensatz zur direkten Mathematik sind.
|
||||||
Es schließt natürlich auch annähernd aus das die Korrekten ergebnisse einfach geraten werden.
|
Es schließt nahezu aus, dass die korrekten Ergebnisse einfach geraten werden.
|
||||||
Dieser so editierte Datensatz nennt sich GSM-HARD.
|
Dieser so editierte Datensatz wird als GSM-HARD bezeichnet.
|
||||||
|
|
||||||
\begin{lstlisting}[language=Python, caption=Prompt Beispiel für mathematische Probleme, label=list:math-prompt-example]
|
\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?}@*)
|
(*@\textbf{Q: Olivia has \$23. She bought five bagels for \$3 each. How much money does she have left?}@*)
|
||||||
@ -189,26 +199,24 @@ ddef solution():
|
|||||||
return result
|
return result
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
\subsection{Abstraktes denken}
|
\subsection{Abstraktes Denken}
|
||||||
|
|
||||||
Hier wurden verschiedene Probleme gelöst. Dies ging es um Attribute von Objekten welche Relative zu einander Position sind.
|
In diesem Abschnitt wurden verschiedene Probleme gelöst, die sich auf die räumliche Beziehung und Attribute von Objekten beziehen.
|
||||||
Also um Probleme wie ein Grauer Esel, ein Brauner hund, eine Graue katze und eine Roter Hahn stehen aufeinander.
|
Ein Beispiel dafür sind Probleme wie: "Ein grauer Esel, ein brauner Hund, eine graue Katze und ein roter Hahn stehen aufeinander.
|
||||||
Welche farbe hat das Tier unter dem Hund?
|
Welche Farbe hat das Tier unter dem Hund?" Des Weiteren wurden Aufgaben zu verschobenen und gefilterten Daten bearbeitet.
|
||||||
Dann geht es um aussagen wie Verschobene und gefilterte Daten.
|
Im Beispiel gibt es tabellarische Daten über Pinguine, die nach Attributen gefiltert und anschließend gezählt werden müssen.
|
||||||
Im Beispiel gibt es Tabellarische Daten zu Pinguinen welche nach Attributen gefiltert und danach Gezählt werden müssen.
|
Dies wird anhand eines Beispieldatensatzes über Pinguine demonstriert.
|
||||||
Dies wird hier an einem Beispieldatensatz über Pinguine gemacht.
|
Zuletzt wurden Probleme bezüglich des Verständnisses von Datum und Zeitabständen behandelt, wie zum Beispiel: "Peters Reise sollte 5 Stunden dauern.
|
||||||
Zuletzt geht es noch um das Verständnisse von Datum und Zeitabstände. Probleme wie Peters Reise sollte 5 Stunden dauern.
|
Er hat aber doppelt so lange gebraucht wie geplant. Wenn er um 23 Uhr angekommen ist, wann ist er losgefahren?"
|
||||||
Er hat aber doppel so lange gebraucht wie geplant.
|
|
||||||
Wenn er um 23 Uhr angekommen ist. Wann ist er losgefahren?
|
|
||||||
|
|
||||||
Zu allen drei Problemstellungen gibt es jeweils separate Prompts im stile von Codebeispiel \ref{list:math-prompt-example}.
|
Für alle drei Problemstellungen gibt es jeweils separate Prompts im Stil von Codebeispiel \ref{list:math-prompt-example}.
|
||||||
|
|
||||||
\subsection{Algorithmische Aufgaben}
|
\subsection{Algorithmische Aufgaben}
|
||||||
|
|
||||||
Hier wird sich mit dem Lösen von Deterministische aufgabenstellungen auseinandergesetzt.
|
Hier wird sich mit dem Lösen von deterministischen Aufgabenstellungen auseinandergesetzt, nicht mit allgemeinen,
|
||||||
Nicht mit allgemeinen sondern spezifischen fragestellungen wie dem Kategorischen zählen von Objekten, oder dem erstellen von Sequenzen nach Anweisungen.
|
sondern mit spezifischen Fragestellungen wie dem kategorischen Zählen von Objekten oder dem Erstellen von Sequenzen nach Anweisungen.
|
||||||
|
|
||||||
Codebeispiel \ref{list:obj-count} zeigt einen mögliches Beispiel für einen Zählerprompt aussehen kann.
|
Codebeispiel \ref{list:obj-count} zeigt, wie ein mögliches Beispiel für einen Zählerprompt aussehen kann.
|
||||||
|
|
||||||
\begin{lstlisting}[language=Python, caption=Prompt Beispiel zum Zählen von Objekten, label=list:obj-count]
|
\begin{lstlisting}[language=Python, caption=Prompt Beispiel zum Zählen von Objekten, label=list:obj-count]
|
||||||
(*@\textbf{Q: I have a chair, two potatoes, a cauliflower, a lettuce head, two tables, a
|
(*@\textbf{Q: I have a chair, two potatoes, a cauliflower, a lettuce head, two tables, a
|
||||||
@ -236,7 +244,8 @@ Experimente mit andern modellen wurden der einfachheit halber aus dieser Vorstel
|
|||||||
|
|
||||||
\section{Ergebnisse}
|
\section{Ergebnisse}
|
||||||
|
|
||||||
Die Ergebnisse in Tabellen \ref{tab:math-performance} und \ref{tab:algo-performance} zeigen das PAL wesentlich besser arbeitet als CoT und die Direkte anfrage.
|
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.
|
||||||
|
|
||||||
\subsection{Ergebnisse der mathematischen Aufgaben}
|
\subsection{Ergebnisse der mathematischen Aufgaben}
|
||||||
|
|
||||||
@ -260,41 +269,44 @@ PAL & 72,0 & 61,2 & 79,4 & 79,6 & 96,1 & 94,6 & 92,5 &
|
|||||||
\label{tab:math-performance}
|
\label{tab:math-performance}
|
||||||
\end{table*}
|
\end{table*}
|
||||||
|
|
||||||
In Tabelle \ref{tab:math-performance} zeigt sich im Besonderen durch dem Unterschied von GSM8K und GSM-HARD
|
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 und der Direkten berechnung in den Mathematischen operation ist.
|
wie groß die Schwierigkeiten von CoT und der direkten Berechnung bei mathematischen Operationen sind,
|
||||||
Gerade weil der einzige Unterschied die Größe der Zahlen ist.
|
gerade weil der einzige Unterschied die Größe der Zahlen ist.
|
||||||
Die direkte Berechnung fällt von sowieso schon schlechten $19,7\%$ auf $5,0\%$ ($\Delta_{Direkt}=-74\%$).
|
Die direkte Berechnung fällt von ohnehin schon schlechten $19,7\%$ auf $5,0\%$ ($\Delta_{Direkt}=-74\%$).
|
||||||
Ähnlich sieht es für die Berechnung mit CoT Prompts aus. Diese fallen von $65,6\%$ auf $23,1\%$ ($\Delta_{CoT}=-70\%$).
|
Ä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, tut sie es nur von $72,0\%$ auf $61,2\%$ ($\Delta_{PAL}=-14,3\%$).
|
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 sehr viel Robustere verhalten gegenüber Komplexen Rechenoperationen macht sich mit einem Qualitätsunterschied von
|
Das deutlich robustere Verhalten gegenüber komplexen Rechenoperationen macht sich mit einem Qualitätsunterschied von $1224\%$
|
||||||
$1224\%$ zwischen der Direktberechnung und PAL bemerkbar.
|
zwischen der Direktberechnung und PAL bemerkbar.
|
||||||
Auch das wesentlich bessere CoT hat immer noch einen Qualitätsunterschied $264\%$ zu PAL unter GSM-HARD.
|
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.
|
Aber auch mit allen anderen Datensätzen sind PAL-Prompts CoT-Prompts und direkten Anfragen überlegen.
|
||||||
|
|
||||||
Eine manuelle Analyze der Prompts zeigt das das Vorgehen bei CoT und PAL Prompts in 16 aus 25 Fällen die Antworten annähernd gleich aufbaut.
|
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,
|
||||||
Welches wieder die "einfache" Mathematische Operation mit komplexeren Zahlen als Fehlerquelle aufzeigt.
|
was wiederum die „einfache“ mathematische Operation mit komplexeren Zahlen als Fehlerquelle aufzeigt.
|
||||||
|
|
||||||
Die Ergebnisqualität kann weiter gesteigert werden wenn man über die Majority geht und eine Aufgabe mit unterschiedlichen
|
Die Ergebnisqualität kann weiter gesteigert werden,
|
||||||
Beispielen im Prompt löst und dann die Mehrheitlich erhaltenen ergebnisse nutzt.
|
wenn man über die Mehrheitsentscheidung geht und eine Aufgabe mit unterschiedlichen Beispielen im Prompt löst und dann die mehrheitlich erhaltenen Ergebnisse nutzt.
|
||||||
Die Ergebnisse von PAL steigen von $72,0$ auf $80,4\%$ ($\Delta_{PAL-M}=11\%$) $65,6$ auf $78,4\%$ ($\Delta_{CoT-M}=19\%$).
|
Die Ergebnisse von PAL steigen von $72,0\%$ auf $80,4\%$ ($\Delta_{PAL-M}=11\%$),
|
||||||
Die Qualitätsverbesserung durch Mehrheitsentscheide ist zwar für PAL nicht so stark wie für CoT.
|
die von CoT von $65,6\%$ auf $78,4\%$ ($\Delta_{CoT-M}=19\%$).
|
||||||
Dies ist allein schon durch das schon geringe Verbesserungspotenzial und den geringeren Zufallsanteil bei berechnungen via PAL zu erklären.
|
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.
|
||||||
Die Experimente zum Mehrheitsentscheid wurden nur auf GSM8K durchgeführt.
|
Die Experimente zum Mehrheitsentscheid wurden nur auf GSM8K durchgeführt.
|
||||||
|
|
||||||
\subsection{Ergebnisse der Aufgaben zum Abstrakten Denken \& Algorithmen}
|
\subsection{Ergebnisse der Aufgaben zum Abstrakten Denken \& Algorithmen}
|
||||||
|
|
||||||
Die ergebnisse zum Abstrakten Denken und Algorithmen können in \ref{tab:algo-performance} gefunden werden.
|
Die Ergebnisse zum abstrakten Denken und zu Algorithmen können in Tabelle \ref{tab:algo-performance} gefunden werden.
|
||||||
Auch hier wurden wie der ergebnisse welche nicht mit dem codex model code\babelhyphen{nobreak}davinci\babelhyphen{nobreak}002 berechnet worden sind weggelassen.
|
Auch hier wurden die Ergebnisse, die nicht mit dem Codex-Modell „code-davinci-002“ berechnet wurden, ausgelassen.
|
||||||
|
|
||||||
So steigt das lösen von Positionen in Objektfolgen um $8,8\%$ (COLORED OBJECT).
|
So steigt das Lösen von Positionsaufgaben in Objektfolgen um $8,8\%$ (COLORED OBJECT).
|
||||||
Aussagen über Tabulierte Daten steigen in Ihrer Qualität um $14\%$ am Beispiel der Pinguin-Daten.
|
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 so besonders schwer ist erreich mit PAL $96,7\%$. CoT erreicht dort Immerhin $73\%$.
|
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\%$.
|
||||||
|
|
||||||
Auch hier sind wieder deutliche Qualitätssteigerungen zu finden. Dabei ist wichtig zu sagend das die Ergebnisqualität
|
Auch hier sind wieder deutliche Qualitätssteigerungen zu erkennen.
|
||||||
bei bis zu 26 Ergebnissen bei PLA Prompts stabil ist und bei CoT Prompts annähernd stetig abnimmt.
|
Dabei ist wichtig zu erwähnen, dass die Ergebnisqualität bei bis zu 26 Ergebnissen bei PAL-Prompts stabil ist und bei CoT-Prompts annähernd stetig abnimmt.
|
||||||
Auch hier wird wie bei den Mathematischen aufgaben gezeigt das der Umgang mit mehr Datenpunkte wesentlich einfacher ist als für CoT.
|
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.
|
||||||
Dieses verhalten findet sich wohl in allen ergebnissen wieder das die Stabilität von PAL gegenüber einer gesteigerten Komplexität wesentlich höher ist.
|
Dieses Verhalten findet sich in allen Ergebnissen wieder.
|
||||||
|
Die Stabilität von PAL gegenüber einer gesteigerten Komplexität ist wesentlich höher.
|
||||||
|
|
||||||
\begin{table}[H]
|
\begin{table}[H]
|
||||||
\centering
|
\centering
|
||||||
@ -318,54 +330,60 @@ PAL & 95,1 & 93,3 & 76,2 & 90,6 & 96,7 \\
|
|||||||
|
|
||||||
\subsection{Analyseergebnisse}
|
\subsection{Analyseergebnisse}
|
||||||
|
|
||||||
Neben den oben beschriebenen Experimenten wurden noch einigen anderen Fragestellungen nachgegangen.
|
Neben den oben beschriebenen Experimenten wurden weitere Fragestellungen untersucht. Hier sind die Ergebnisse:
|
||||||
Hier die Ergebnisse.
|
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item PAL funktioniert auch auf schwächeren LLMs. Die Benefits skalieren etwa mit der Qualität des Models.
|
\item PAL funktioniert auch auf schwächeren Large Language Models (LLMs). Die Vorteile skalieren etwa mit der Qualität des Modells.
|
||||||
\item Experimente die Code wie auch Text generierende Modelle vergleichen das diese nur eine Mindestqualität erfüllen müssen.
|
\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.
|
||||||
Funktionieren tut es mit beiden.
|
\item Experimente, bei denen Python-Syntax als Strukturierungshilfe für Chain of Thought (CoT) genutzt wurde, zeigten nur eine geringe Verbesserung gegenüber der direkten Berechnung.
|
||||||
\item Experimente bei denen der Python syntax als Strukturierungshilfe für 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:
|
||||||
\item Experimente zur Quantifizierung ob und in wie weit Kommentare und gute Variablennamen eine Rolle spielen zeigen das:
|
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item Kommentare die Qualität von PAL leicht verbessern.
|
\item Kommentare die Qualität von PAL leicht verbessern.
|
||||||
\item werden Variablennamen und Kommentare weggelassen erhält man Ergebnisse welche die Qualität von CoT Prompts of nicht erreichen.
|
\item Werden Variablennamen und Kommentare weggelassen, erhält man Ergebnisse, welche die Qualität von CoT-Prompts oft nicht erreichen.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\section{Ähnliche Werke}
|
\section{Ähnliche Werke \& Implementierungen}
|
||||||
|
|
||||||
Few-shot prompting ~\cite{few-shot2}~\cite{few-shot1} und CoT haben zu dem PAL-Paper geführt.
|
Few-shot Prompting~\cite{few-shot2}~\cite{few-shot1} und Chain of Thought (CoT) haben zur Entwicklung des PAL-Papers beigetragen.
|
||||||
Die Qualität der durch PAL erreichten ergebnisse wurden dort wohl aber nicht erreicht.
|
Allerdings wurden die Qualitätsergebnisse, die durch PAL erreicht wurden, dort nicht erreicht.
|
||||||
|
|
||||||
Es gibt weitere Lösungsansätze welche über extra Tokens für daten und mathematische operationen arbeiten ~\cite{Demeter_Downey_2020}.
|
Es gibt weitere Lösungsansätze, die über zusätzliche Tokens für Daten und mathematische Operationen arbeiten~\cite{Demeter_Downey_2020}.
|
||||||
Diese ansätze sind aber Komplexer, weniger zuverlässig und weniger Allgemeingültig.
|
Diese Ansätze sind jedoch komplexer, weniger zuverlässig und weniger allgemeingültig.
|
||||||
|
|
||||||
Es gibt auch LLM welche mit einem Fokus auf Mathematische Probleme und den Output von Code haben.
|
Es gibt auch Large Language Models (LLMs), die einen Fokus auf mathematische Probleme und den Output von Code haben.
|
||||||
Dabei ist die Qualität der Ergebnisse natürlich besser als bei einem Standartmodel aber nur geringfügig ~\cite{pi2022reasoning}.
|
Dabei ist die Qualität der Ergebnisse natürlich besser als bei einem Standardmodell, aber nur geringfügig~\cite{pi2022reasoning}.
|
||||||
Diese können natürlich auch genutzt werden um Code zu generieren und in der Laufzeit durchzuführen.
|
Diese können auch genutzt werden, um Code zu generieren und in Echtzeit auszuführen.
|
||||||
|
|
||||||
Der dem PAL sehr ähnliche ansatz vom Program of Though (PoT) ~\cite{chen2023program} ist etwa zeitgleich erschienen und wird auch in PAL referenziert.
|
Der dem PAL sehr ähnliche Ansatz von Program of Thought (PoT)~\cite{chen2023program} erschien etwa zeitgleich und wird auch in PAL referenziert.
|
||||||
Der Fokus von PoT ist mehr auf Mathematischen problemen. Meiner meinung nach wird dort auch weniger die Promptgestaltung untersucht als hier.
|
Der Fokus von PoT liegt mehr auf mathematischen Problemen.
|
||||||
Auch die vergleiche mit GSM-HARD die ich persönlich sehr Aussagekräftig finden nicht statt. Dafür sind andere datensätze verwendet worden.
|
Meiner Meinung nach wird dort auch weniger die Promptgestaltung untersucht als hier.
|
||||||
|
Auch die Vergleiche mit GSM-HARD, die ich persönlich sehr aussagekräftig finde, finden nicht statt.
|
||||||
|
Stattdessen wurden andere Datensätze verwendet.
|
||||||
|
|
||||||
Darauf aufbauend gibt es Prompt Techniken wie die "Automatic Model Selection with large Language Models for Reasoning" welche CoT und PAL parallel durchführen lässt und dann ein LLM entscheiden lässt welches der ergebnisse korrekt ist.
|
Darauf aufbauend gibt es Prompt-Techniken wie die "Automatic Model Selection with Large Language Models for Reasoning",
|
||||||
Damit lies sich die Qualität von ergebnissen von GSM8K auf $96.5\%$ steigern um $\Delta34\%$ ~\cite{zhao2023automatic}.
|
die CoT und PAL parallel durchführen lässt und dann einem LLM die Entscheidung überlässt, welches der Ergebnisse korrekt ist.
|
||||||
|
Damit ließ sich die Qualität der Ergebnisse von GSM8K auf $96,5\%$ steigern, um $34\%$~\cite{zhao2023automatic}.
|
||||||
|
|
||||||
Die beliebte Python/JavaScript library LangChain hat PAL Prompts als Teil ihres Funktionsumfanges ~\cite{langchain}.
|
Die beliebte Python/JavaScript-Bibliothek LangChain hat PAL-Prompts als Teil ihres Funktionsumfangs~\cite{langchain}.
|
||||||
|
|
||||||
Auch aktuellere veröffentlichungen sagen deutlich aus das auch für neuere LLMs die Qualität von PAL besser ist als CoT ~\cite{kabra2023programaided}.
|
Auch aktuellere Veröffentlichungen stellen deutlich fest,
|
||||||
Es erweitert PAL zudem um einen Reliablitlty value.
|
dass auch für neuere LLMs die Qualität von PAL besser ist als die von CoT~\cite{kabra2023programaided}.
|
||||||
|
Es erweitert PAL zudem um einen Reliability-Wert.
|
||||||
|
|
||||||
Eine ähnliche integration von programmiersprachen findet in Binder ~\cite{binder} statt.
|
Eine ähnliche Integration von Programmiersprachen findet in Binder~\cite{binder} statt,
|
||||||
Dabei geht es aber primär um das Analysieren von Daten via pythons pandas und SQL.
|
wobei es primär um die Analyse von Daten via Pythons Pandas und SQL geht.
|
||||||
Zeitgenössische Python LBRs wie zum Beispiel PandasAI~\cite{Venturi} verwenden diesen Ansätz um Fragen über, und Aufgaben an Daten zu erldigen.
|
Zeitgenössische Python-Libraries wie zum Beispiel PandasAI~\cite{Venturi} verwenden diesen Ansatz, um Fragen über und Aufgaben an Daten zu erledigen.
|
||||||
Dies ist die Logische fortführung von den Tabuarisieren Pinguin Daten in einer als LBR zur Verfügung stehenden Implementierung.
|
Dies ist die logische Fortführung der tabellierten Pinguin-Daten in einer als Library zur Verfügung stehenden Implementierung.
|
||||||
Pandas AI zumindest arbeitet aber nicht mit Few-shot Prompts sondern über Zero shot prompts.
|
PandasAI arbeitet allerdings nicht mit Few-shot-Prompts, sondern über Zero-shot-Prompts.
|
||||||
|
|
||||||
Daneben gibt es andere ansätze die Automatic multi-step reasoning and tool-use for large language models ~\cite{paranjape2023art} welches anders als PAL nicht mit Few-shot Prompts arbeitet dafür aber das LLM einfriert wenn der Code ausgeführt wird und die ergebnisse direkt in den Fliestext einbetted und danach die ausführung des LLMs auf grundlage der ergebnisse fortführt.
|
Daneben gibt es Ansätze wie "Automatic Multi-Step Reasoning and Tool-Use for Large Language Models"~\cite{paranjape2023art},
|
||||||
|
die anders als PAL nicht mit Few-shot-Prompts arbeiten.
|
||||||
|
Stattdessen wird das LLM eingefroren, wenn der Code ausgeführt wird, und die Ergebnisse werden direkt in den Fließtext eingebettet,
|
||||||
|
bevor die Ausführung des LLMs auf Grundlage der Ergebnisse fortgesetzt wird.
|
||||||
|
|
||||||
Das in ChatGPT verwendete Analyze modul ist ein anderes beispiel wo schnell code generiert wird anstelle davon das Berechnungen gleich im code durchgeführt werden.
|
Das in ChatGPT verwendete Analysemodul ist ein weiteres Beispiel, in dem schnell Code generiert wird,
|
||||||
|
anstatt dass Berechnungen direkt im Code durchgeführt werden.
|
||||||
|
|
||||||
\section{Ausblick}
|
\section{Ausblick}
|
||||||
|
|
||||||
@ -389,7 +407,7 @@ Was ich Persönlich am PAL paper vermisse ist die angabe wie oft der Programmcod
|
|||||||
Oft can ein Large Language Model mit dem Traceback eines Fehlers programmcode Reparieren.
|
Oft can ein Large Language Model mit dem Traceback eines Fehlers programmcode Reparieren.
|
||||||
Dies könnte zu einer weiteren verbesserung führen die nicht so zwingend mehr CPU verbraucht wie die Mehrfachausführung einer Aufgabe für einen Mehrheitsentscheid.
|
Dies könnte zu einer weiteren verbesserung führen die nicht so zwingend mehr CPU verbraucht wie die Mehrfachausführung einer Aufgabe für einen Mehrheitsentscheid.
|
||||||
Das potential ist hier aber leider nicht quantifizierbar auch wenn sich dies hätte leicht feststellen lassen müssen.
|
Das potential ist hier aber leider nicht quantifizierbar auch wenn sich dies hätte leicht feststellen lassen müssen.
|
||||||
Dies ist zum Beispiel in PandasAI geschehen ~\cite{Venturi}. Dort wird nicht ausführbarer Code dem LLM zur korrektur / verbesserung zurückgegeben.
|
Dies ist zum Beispiel in PandasAI geschehen~\cite{Venturi}. Dort wird nicht ausführbarer Code dem LLM zur korrektur / verbesserung zurückgegeben.
|
||||||
|
|
||||||
Fragwürdig ist natürlich auch ob die ergebnisse von PAL in anderen sprachen genauso gut ausfallen würden,
|
Fragwürdig ist natürlich auch ob die ergebnisse von PAL in anderen sprachen genauso gut ausfallen würden,
|
||||||
weil dabei evtl. eine Losere kopplung von z.B. deutschsprachigen Benennungen in der Aufgabenstellung und englischsprachigen Variablenbenennungen im code
|
weil dabei evtl. eine Losere kopplung von z.B. deutschsprachigen Benennungen in der Aufgabenstellung und englischsprachigen Variablenbenennungen im code
|
||||||
|
Reference in New Issue
Block a user