Lots of text added.

This commit is contained in:
Philipp Horstenkamp 2023-12-09 18:30:30 +01:00
parent 40ac0eb6e9
commit 72b301a2bd
Signed by: Philipp
GPG Key ID: DD53EAC36AFB61B4

View File

@ -1,3 +1,5 @@
%! suppress = EscapeAmpersand
%! suppress = DocumentclassNotInRoot
\documentclass[a4paper, twoside]{IEEEtran} \documentclass[a4paper, twoside]{IEEEtran}
\usepackage{array} \usepackage{array}
@ -17,6 +19,8 @@
\usepackage{tikz} \usepackage{tikz}
\usetikzlibrary{positioning,fit,calc,backgrounds} \usetikzlibrary{positioning,fit,calc,backgrounds}
\usepackage{tabularray} \usepackage{tabularray}
\usepackage{stfloats}
\usepackage{float}
\renewcommand{\lstlistingname}{Codebeispiel} \renewcommand{\lstlistingname}{Codebeispiel}
@ -157,6 +161,13 @@ In Codebeispiel \ref{list:math-prompt-example} ist ein Beispiel aus dem PAL repo
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 in wie weit eine Übersetzung die Qualität von generiertem code Schwächt.
Gerade da Code im wesentlichen in Englisch geschrieben wird. Gerade 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
und die Zahlen durch große Zahlen zu ersetzt 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.
Es schließt natürlich auch annähernd aus das die Korrekten ergebnisse einfach geraten werden.
Dieser so editierte Datensatz nennt sich GSM-HARD.
\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?}@*)
@ -176,9 +187,13 @@ ddef solution():
\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. Hier wurden verschiedene Probleme gelöst. Dies ging es um Attribute von Objekten welche Relative zu einander Position sind.
Also um Probleme wie ein Grauer Esel, ein Brauner hund, eine Graue katze und eine Roter Hahn stehen aufeinander. Welche farbe hat das Tier unter dem Hund? Also um Probleme wie ein Grauer Esel, ein Brauner hund, eine Graue katze und eine Roter Hahn stehen aufeinander.
Dann geht es um aussagen wie Verschobene und gefilterte Daten. Im Beispiel gibt es Tabellarische Daten zu Pinguinen welche nach Attributen gefiltered und danach Gezählt werden müssen. Welche farbe hat das Tier unter dem Hund?
Zuletzt geht es noch um das Verständnisse von Datum und Zeitabstände. Probleme wie Peters Reise sollte 5 Stunden dauern. Er hat aber doppel so lange gebraucht wie geplant. Dann geht es um aussagen wie Verschobene und gefilterte Daten.
Im Beispiel gibt es Tabellarische Daten zu Pinguinen welche nach Attributen gefiltert und danach Gezählt werden müssen.
Dies wird hier an einem Beispieldatensatz über Pinguine gemacht.
Zuletzt geht es noch um das Verständnisse von Datum und Zeitabstände. Probleme wie Peters Reise sollte 5 Stunden dauern.
Er hat aber doppel so lange gebraucht wie geplant.
Wenn er um 23 Uhr angekommen ist. Wann ist er losgefahren? 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}. Zu allen drei Problemstellungen gibt es jeweils separate Prompts im stile von Codebeispiel \ref{list:math-prompt-example}.
@ -211,34 +226,65 @@ def soloution()
return sum(vegetables_to_count.values()) return sum(vegetables_to_count.values())
\end{lstlisting} \end{lstlisting}
Als Standard-LLM für die Experimente welche PAL quantifizieren wurde das CODEX LLM model code\babelhyphen{nobreak}davinci\babelhyphen{nobreak}002 genutzt.
Experimente mit andern modellen wurden der einfachheit halber aus dieser Vorstellung herausgenommen.
\section{Ergebnisse} \section{Ergebnisse}
\begin{table*} 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.
\centering
\resizebox{\linewidth}{!}{%
\begin{tabular}{ll|cccccccc}
\hline
Algorithm & LLM & GSM8K & GSM-HARD & SVAMP & ASDIV & SINGLEEQ & SINGLEOP & ADDSUB & MULTIARITH \\
\hline
DIRECT & Codex & 19.7 & 5.0 & 69.9 & 74.0 & 86.8 & 93.1 & 90.9 & 44.0 \\
CoT & UL2-20B & 4.1 & - & 12.6 & 16.9 & - & - & 18.2 & 10.7 \\
CoT & LAMBDA-137B & 17.1 & - & 39.9 & 49.0 & - & - & 52.9 & 51.8 \\
CoT & Codex & 65.6 & 23.1 & 74.8 & 76.9 & 89.1 & 91.9 & 86.0 & 95.9 \\
CoT & PaLM-540B & 56.9 & - & 79.0 & 73.9 & 92.3 & 94.1 & 91.9 & 94.7 \\
CoT & Minerva 540B & 58.8 & - & - & - & - & - & - & - \\
PAL & & 72.0 & 61.2 & 79.4 & 79.6 & 96.1 & 94.6 & 92.5 & 99.2 \\
\hline
\end{tabular}
}
\caption{Model performance on various tasks}
\label{tab:model_performance}
\end{table*}
\subsection{Ergebnisse der mathematischen Aufgaben} \subsection{Ergebnisse der mathematischen Aufgaben}
\begin{table*}[t]
\centering
\resizebox{\linewidth}{!}{%
\begin{tabular}{l|cccccccc}
\hline
Algorithm & GSM8K & GSM-HARD & SVAMP & ASDIV & SINGLEEQ & SINGLEOP & ADDSUB & MULTIARITH \\
\hline
DIRECT & 19,7 & 5,0 & 69,9 & 74,0 & 86,8 & 93,1 & 90,9 & 44,0 \\
CoT & 65,6 & 23,1 & 74,8 & 76,9 & 89,1 & 91,9 & 86,0 & 95,9 \\
PAL & 72,0 & 61,2 & 79,4 & 79,6 & 96,1 & 94,6 & 92,5 & 99,2 \\
\hline
\end{tabular}
}
\caption[Mathematik prompt ergebnisse]{
Ergebnisqualität von verschiedenen Prompt techniken gegenüber verschiedenen Datensätzen.\\
Ausgelassen wurden dabei Ergebnisse von abweichenden LLMs.
}
\label{tab:math-performance}
\end{table*}
In Tabelle \ref{tab:math-performance} zeigt sich im Besonderen durch dem Unterschied von GSM-8 und GSM-HARD
wie groß die Schwierigkeiten von CoT und der und der Direkten berechnung in den Mathematischen operation 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\%$).
Ähnlich sieht es für die Berechnung mit CoT Prompts aus. Diese fallen von $65,6\%$ auf $23,1\%$ ($\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\%$).
Das sehr viel 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 $264\%$ zu PAL unter GSM-HARD.
\subsection{Ergebnisse der Aufgaben zum Abstrakten Denken} \subsection{Ergebnisse der Aufgaben zum Abstrakten Denken}
\begin{table}[H]
\centering
\resizebox{\linewidth}{!}{%
\begin{tabular}{l|ccccc}
\hline
Algorithm & COLORED OBJECT & PENGUINS & DATE & REPEAT COPY & OBJECT COUNTING \\
\hline
DIRECT & 75,7 & 71,1 & 49,9 & 81,3 & 37,6 \\
COT & 86,3 & 79,2 & 64,8 & 68,8 & 73,0 \\
PAL & 95,1 & 93,3 & 76,2 & 90,6 & 96,7 \\
\hline
\end{tabular}
}
\caption{
Ergebnisqualität von verschiedenen Prompt Techniken gegenüber logischen und algorithmischen Aufgaben.\\
Ausgelassen wurden dabei Ergebnisse von abweichenden LLMs.
}
\label{tab:algo-performance}
\end{table}
\subsection{Ergebnisse zu Algorithmischen Aufgaben} \subsection{Ergebnisse zu Algorithmischen Aufgaben}