Reworked the paper and integrated the change requests. #9
@ -22,6 +22,8 @@
|
|||||||
\usepackage{tabularray}
|
\usepackage{tabularray}
|
||||||
\usepackage{stfloats}
|
\usepackage{stfloats}
|
||||||
\usepackage{float}
|
\usepackage{float}
|
||||||
|
\usepackage{verbatim}
|
||||||
|
\usepackage{acronym}
|
||||||
|
|
||||||
% Definiert die Kompatibilität mit der Version von pgfplots
|
% Definiert die Kompatibilität mit der Version von pgfplots
|
||||||
\pgfplotsset{compat=1.17}
|
\pgfplotsset{compat=1.17}
|
||||||
@ -64,20 +66,24 @@
|
|||||||
Wintersemester 2023/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}
|
\begin{document}
|
||||||
|
|
||||||
\maketitle
|
\maketitle
|
||||||
|
|
||||||
\begin{abstract}
|
\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.
|
mathematische Operationen präzise auszuführen.
|
||||||
Ähnlich wie der menschliche Verstand neigen sie dazu, mathematische Ergebnisse fehlerhaft zu berechnen.
|
Ä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.
|
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)
|
Der hier vorgestellte Ansatz von \ac{PAL} verwendet Python ähnlich einem Taschenrechner, um arithmetisch-logische Berechnungen durchzuführen und den Lösungsaufbau zu strukturieren.
|
||||||
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
|
Dabei wird nicht auf die Generierung des nächsten wahrscheinlichen Tokens durch das Sprachmodell als Lösungsansatz
|
||||||
für mathematisch-logische Operationen vertraut.
|
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.
|
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.
|
Dieses Prinzip wird im Paper „PAL: Programming Aided Language Model“~\cite{gao2023pal} eingehend vorgestellt und die aktuelle Implementierung werden aufgezeigt.
|
||||||
\end{abstract}
|
\end{abstract}
|
||||||
@ -85,102 +91,102 @@ Dieses Prinzip wird im Paper „PAL: Programming Aided Language Model“~\cite{g
|
|||||||
%„PAL: Programming Aided Language Model“
|
%„PAL: Programming Aided Language Model“
|
||||||
|
|
||||||
\begin{IEEEkeywords}
|
\begin{IEEEkeywords}
|
||||||
LLM, Prompt-Engineering, Mathematical, Informatik, NL
|
LLM, Prompt-Engineering, Mathematisch, Informatik, NL
|
||||||
\end{IEEEkeywords}
|
\end{IEEEkeywords}
|
||||||
|
|
||||||
\section{Einleitung}\label{sec:einleitung}
|
\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.
|
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,
|
um Rechenwege auszuformulieren und so zu symbolischen Lösungen zu gelangen,
|
||||||
die anschließend konkret berechnet werden konnten.
|
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,
|
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.
|
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.
|
konkret formulierte Probleme präzise zu lösen.
|
||||||
Gerade dann wenn sich eine Mathematische Operation sich nicht genau so im Textkorpus wiederfindet
|
Gerade dann, wenn sich eine mathematische Operation nicht genau so im Textkorpus wiederfindet,
|
||||||
da Mathematische Operationen aus Text zu Interpolieren einen sehr hohen grad an abstraktion erfordern.
|
da mathematische Operationen durch Zeichenketten zu interpolieren einen sehr hohen Grad an Abstraktion erfordern.
|
||||||
Verlagert man jedoch die Berechnung in eine Software, die vom LLM generiert wird,
|
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.
|
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.
|
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.
|
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.
|
||||||
CoT ist ein Promptpattern welches das LLM dazu anhält die eine Antwort schrittweise und Systematisch aufzubauen und nicht das Ergebnis zu raten.
|
\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 LLM dazu zu bringen, eine Python-Funktion als Antwort zurückzugeben.
|
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.
|
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}.
|
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]
|
\begin{figure*}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=\textwidth]{PAL Example Expanded.drawio.pdf}
|
\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}
|
\label{fig:cot-pal-chatgpg}
|
||||||
\end{figure*}
|
\end{figure*}
|
||||||
|
|
||||||
\section{Hintergrund}\label{sec:hintergrund}
|
\section{Hintergrund}\label{sec:hintergrund}
|
||||||
|
|
||||||
\subsection{Few-shot Prompting}
|
\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,
|
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}.
|
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.
|
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.
|
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.
|
Alternative zu Few-Shot Prompts gibt es Zero-Shot Prompts.
|
||||||
Bei diesen wird lediglich eine Beschreibung des Lösungsansatzes oder eine Formatierungsanweisung gegeben.
|
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 \ac{LLM}s 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
|
Dies geschieht oft über eine Few-shot-Variante namens \ac{CoT}~\cite{CoT} welche \ac{LLM} durch beispielhafte Lösungswege
|
||||||
mit zwischenschritten dazu anregt,
|
mit Zwischenschritten dazu anregt,
|
||||||
das Lösungswege mit sauber ausgeführten Zwischenschritten inhaltlich ausformuliert werden und die notwendigen mathematischen Operationen strukturieren niedergeschrieben werden.
|
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 mthematischen Operationen sauber nieder.
|
Dies verbessert sowohl den Lösungsansatz und schreibt die mathematischen Operationen sauber nieder.
|
||||||
Was deren lösung dann weniger Abstrakt werden lässt.
|
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,
|
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.
|
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}
|
\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,
|
mathematische und logische Probleme in Form von Programmcode zu formatieren,
|
||||||
welcher dann ausgeführt wird um die eigentlichen mathematischen Operationen auszuführen.
|
welcher dann ausgeführt wird um die eigentlichen mathematischen Operationen auszuführen.
|
||||||
Dieser Ansatz umgeht die Schwachstelle der mathematischen Operation vollständig.
|
Dieser Ansatz umgeht die Schwachstelle der mathematischen Operation vollständig.
|
||||||
Indem der Programmcode so gestaltet wird, dass er den Gedankengang der Problemlösung nachzeichnet,
|
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,
|
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
|
die möglichst gut den einzelnen Werten aus dem Fließtext der Aufgabenstellung zuzuordnen sind
|
||||||
und das Beispiel dadurch besondere Klarheit bekommt.
|
und das Beispiel dadurch besondere Klarheit bekommt.
|
||||||
|
|
||||||
Obwohl es möglich ist, die Schritte einzeln auszuführen und dann mit den Ergebnissen weiterzuarbeiten,
|
Obwohl es möglich wäre, die Berechnung in einzelnen Schritte auszuführen und dann mit den Zwischenergebnissen weiterzuarbeiten,
|
||||||
wurde der Ansatz der einfachen, statt der einmaligen Ausführung gewählt.
|
wurde \ac{PAL} so konzipiert, das der Rechenweg im ganzen definiert und danach einmalig ausgeführt wird.
|
||||||
|
|
||||||
\section{Experimente}
|
\section{Experimente}
|
||||||
|
|
||||||
Die Experimente zur Quantifizierung der Effizienz von Program-Aided Language (PAL) wurden auf Datensätzen durchgeführt,
|
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}.
|
die bereits für \ac{CoT} Experimente verwendet wurden~\cite{CoT}.
|
||||||
Für PAL wurde sowohl die Fähigkeit zum Lösen mathematischer, abstrakter als auch algorithmischer Probleme quantifiziert.
|
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.
|
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 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.
|
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.
|
Beispielsweise wurden zufällig die \ac{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.
|
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,
|
Auf diese Weise kann der Zufallsfaktor, der die Passgenauigkeit der Beispiele zum Problem beeinflusst,
|
||||||
ausgeschlossen werden, was die Ergebnisse vergleichbarer macht.
|
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.
|
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.
|
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.
|
Die direkt Frage nach einem Ergebnis ist genau wie es klingt eine einfache Bitte um Antwort nach Schilderung des Sachverhalts.
|
||||||
|
|
||||||
\subsection{Mathematische Berechnungen}
|
\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.
|
Die Experimente zeigten, dass Kommentare und lange Beschreibungen zwischen den Codezeilen die Ergebnisse nicht verbessern.
|
||||||
Daher sind die Beispiele recht schlicht gehalten.
|
Daher sind die Beispiele recht schlicht gehalten.
|
||||||
|
|
||||||
Codebeispiel \ref{list:math-prompt-example} ist ein Beispiel aus dem PAL-Repository, welches zeigt,
|
Codebeispiel \ref{list:math-prompt-example} ist ein Beispiel aus dem \ac{PAL}-Repository, welches zeigt,
|
||||||
wie ein solches Lösungsbeispiel für einen mathematischen Prompt aussehen kann.
|
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,
|
Das Beispiel wurde dabei nicht übersetzt, da unklar ist,
|
||||||
inwiefern eine Übersetzung die Qualität von generiertem Code schwächt,
|
inwiefern eine Übersetzung die Qualität von generiertem Code schwächt,
|
||||||
besonders da Code im Wesentlichen in Englisch geschrieben wird.
|
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.
|
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.
|
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.
|
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]
|
\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?}@*)
|
||||||
|
|
||||||
# solution in Python:
|
# solution in Python:
|
||||||
|
|
||||||
ddef solution():
|
def solution():
|
||||||
"""Olivia has $23. She bought five bagels for $3 each. How much money does she have left?"""
|
"""Olivia has $23. She bought five bagels for $3 each. How much money does she have left?"""
|
||||||
money_initial = 23
|
money_initial = 23
|
||||||
bagels = 5
|
bagels = 5
|
||||||
@ -242,10 +248,10 @@ cabbage, two onions, and three fridges. How many vegetables do I have?}@*)
|
|||||||
|
|
||||||
# solution in Python:
|
# solution in Python:
|
||||||
|
|
||||||
def solution():
|
"""I have a chair, two potatoes, a cauliflower, a lettuce head, two tables, a cabbage, two onions, and
|
||||||
"""Olivia has $23. She bought five bagels for $3 each. How much money does she have left?"""
|
three fridges. How many vegetables do I have?"""
|
||||||
|
|
||||||
def soloution()
|
def solution()
|
||||||
"""Counting all vagetables. Chair, table and friges arn't counted."""
|
"""Counting all vagetables. Chair, table and friges arn't counted."""
|
||||||
vegetables_to_count = {
|
vegetables_to_count = {
|
||||||
'potato': 2,
|
'potato': 2,
|
||||||
@ -257,13 +263,13 @@ 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 \DavinciCode genutzt.
|
Als Standard-\ac{LLM} für die Experimente welche \ac{PAL} quantifizieren wurde das CODEX \ac{LLM} model \DavinciCode{} genutzt.
|
||||||
Experimente mit andern Modellen wurden der einfachheit halber aus dieser Vorstellung herausgenommen.
|
Experimente mit anderen Modellen wurden der Einfachheit halber aus dieser Vorstellung herausgenommen.
|
||||||
|
|
||||||
\section{Ergebnisse}
|
\section{Ergebnisse}
|
||||||
|
|
||||||
Die Ergebnisse in den Tabellen \ref{tab:math-performance} und \ref{tab:algo-performance} zeigen,
|
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}
|
\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]{
|
\caption[Mathematik prompt ergebnisse]{
|
||||||
Ergebnisqualität von verschiedenen Prompttechniken gegenüber verschiedenen Datensätzen.\\
|
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}
|
\label{tab:math-performance}
|
||||||
\end{table*}
|
\end{table*}
|
||||||
|
|
||||||
In Tabelle \ref{tab:math-performance} zeigt sich, besonders durch den Unterschied zwischen 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 direkten Berechnung bei mathematischen Operationen sind.
|
wie groß die Schwierigkeiten von \ac{CoT} und der direkten Berechnung bei mathematischen Operationen sind.
|
||||||
Die wird dadurch unterstrichen das der einzige Unterschied die Größe der Zahlen ist.
|
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\%$).
|
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$).
|
Ä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\%$).
|
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\%$
|
Das deutlich robustere Verhalten gegenüber komplexen Rechenoperationen macht sich mit einem Qualitätsunterschied von $1224 \%$
|
||||||
zwischen der Direktberechnung und PAL bemerkbar.
|
zwischen der Direktberechnung und \ac{PAL} bemerkbar.
|
||||||
Auch das wesentlich bessere CoT hat immer noch einen Qualitätsunterschied von $264\%$ zu PAL unter GSM-HARD.
|
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 PAL-Prompts CoT-Prompts und direkten Anfragen überlegen.
|
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,
|
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 die „einfache“ mathematische Operation mit komplexeren Zahlen als Fehlerquelle hinweist.
|
was wiederum auf die „einfache“ mathematische Operation mit komplexeren Zahlen als Fehlerquelle hinweist.
|
||||||
|
|
||||||
Die Ergebnisqualität kann weiter gesteigert werden,
|
Die Ergebnisqualität kann weiter gesteigert werden,
|
||||||
wenn man die Qualität des Ergebnisses über einen Mehrheitsentscheidung gegenüber Fehlern stabilisiert.
|
wenn man die Qualität des Ergebnisses über eine Mehrheitsentscheidung gegenüber Fehlern stabilisiert.
|
||||||
Die Ergebnisse von PAL steigen von $72,0\%$ auf $80,4\%$ ($\Delta_{PAL-M}=11\%$),
|
Der Mehrheitsentscheid führt \ac{PAL} mehrfach aus und nimmt das Ergebnis, welches am öftesten ermittelt wurde.
|
||||||
die von CoT von $65,6\%$ auf $78,4\%$ ($\Delta_{CoT-M}=19\%$).
|
Die Ergebnisse von \ac{PAL} steigen von $72,0 \%$ auf $80,4 \%$ ($\Delta_{PAL-M}=11 \%$),
|
||||||
Die Qualitätsverbesserung durch Mehrheitsentscheidungen ist zwar für PAL nicht so stark wie für CoT,
|
die von \ac{CoT} von $65,6 \%$ auf $78,4 \%$ ($\Delta_{CoT-M}=19 \%$).
|
||||||
was allein schon durch das geringere Verbesserungspotenzial und den geringeren Zufallsanteil bei Berechnungen via PAL zu erklären ist.
|
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.
|
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 zu Algorithmen können in Tabelle \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 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).
|
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.
|
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,
|
Das Zählen von Objekten, welches bei der direkten Verwendung von \ac{LLM}s besonders schwierig ist,
|
||||||
erreicht mit PAL eine Erfolgsrate von $96,7\%$. CoT erreicht hier immerhin $73\%$.
|
erreicht mit \ac{PAL} eine Erfolgsrate von $96,7 \%$. \ac{CoT} erreicht hier immerhin $73 \%$.
|
||||||
|
|
||||||
Auch hier sind wieder deutliche Qualitätssteigerungen zu erkennen.
|
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.
|
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 PAL wesentlich einfacher ist als für CoT.
|
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.
|
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]
|
\begin{table}[H]
|
||||||
\centering
|
\centering
|
||||||
@ -341,7 +349,7 @@ PAL & 95,1 & 93,3 & 76,2 & 90,6 & 96,7 \\
|
|||||||
}
|
}
|
||||||
\caption{
|
\caption{
|
||||||
Ergebnisqualität von verschiedenen Prompt Techniken gegenüber logischen und algorithmischen Aufgaben.\\
|
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}
|
\label{tab:algo-performance}
|
||||||
\end{table}
|
\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:
|
Neben den oben beschriebenen Experimenten wurden weitere Fragestellungen untersucht. Hier sind die Ergebnisse:
|
||||||
|
|
||||||
\begin{itemize}
|
\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,
|
\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.
|
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.
|
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 inwieweit Kommentare und gute Variablennamen eine Rolle spielen, zeigen, dass:
|
||||||
\begin{enumerate}
|
\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.
|
\item Werden Variablennamen und Kommentare weggelassen, erhält man Ergebnisse, welche die Qualität von CoT-Prompts oft nicht erreichen.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
\item Steigende LLM Qualität verringert das durch PAL erschließbare Verbesserungspotential (Abbildung\ref{fig:diff-llm}).
|
\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 LLMs weniger stark sichtbar.
|
Daher sind qualitative verbesserungen bei besseren \ac{LLM}s weniger stark sichtbar.
|
||||||
Auch bei geringerer Prozentualer verbesserung ist PAL für die Nachvollziehbarkeit durch den Nutzer aber sehr dankbar.
|
Auch bei geringerer prozentualer Verbesserung ist \ac{PAL} für die Nachvollziehbarkeit durch den Nutzer aber sehr dankbar.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\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}
|
\legend{CoT,PAL}
|
||||||
\end{axis}
|
\end{axis}
|
||||||
\end{tikzpicture}
|
\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}
|
\label{fig:diff-llm}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\section{Ähnliche Werke \& Implementierungen}
|
\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
|
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},
|
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.
|
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}.
|
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.
|
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},
|
Ein zeitgleich mit \ac{PAL} veröffentlichter Ansatz, das \ac{PoT}~\cite{chen2023program},
|
||||||
konzentriert sich stärker auf mathematische Probleme und wird in PAL zitiert.
|
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
|
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.
|
aussagekräftigen Datensatz GSM-HARD gezogen werden, stattdessen werden andere Datensätze verwendet.
|
||||||
Dies macht die Vergleichbarkeit schwierig.
|
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,
|
ü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}.
|
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.
|
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,
|
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,
|
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.
|
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}
|
Alternative Ansätze wie „Automatic Multi-Step Reasoning and Tool-Use for \ac{LLM}s“~\cite{paranjape2023art}
|
||||||
frieren das LLM während der Codeausführung ein und fügen die Ergebnisse direkt in den Text ein,
|
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 LLMs basierend auf diesen Ergebnissen fortgesetzt wird.
|
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,
|
Das in ChatGPT verwendete Analysemodul erzeugt schnell Code, ohne die Berechnungen direkt im Code durchzuführen,
|
||||||
was einen weiteren interessanten Anwendungsfall darstellt.
|
was einen weiteren interessanten Anwendungsfall darstellt.
|
||||||
@ -437,31 +445,34 @@ Das in ChatGPT verwendete Analysemodul erzeugt schnell Code, ohne die Berechnung
|
|||||||
\section{Ausblick}
|
\section{Ausblick}
|
||||||
|
|
||||||
Die vorgestellte PAL-Technik illustriert einen innovativen Schritt,
|
Die vorgestellte PAL-Technik illustriert einen innovativen Schritt,
|
||||||
indem sie Python-Code während der Beantwortung von Fragen oder Aufgaben durch LLMs ausführt.
|
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 LLMs ist beeindruckend und zeugt von schlichter technischer Eleganz.
|
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 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.
|
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,
|
Der rasante technische Fortschritt im Bereich der \ac{LLM}s und deren Integration in Software zeigt,
|
||||||
wie effektiv der von PAL verfolgte Ansatz ist.
|
wie effektiv der von \ac{PAL} verfolgte Ansatz ist.
|
||||||
Trotz der Versuche des PAL-Papers, die Ergebnisse des 175-Milliarden-Parameter-Modells zu kontextualisieren,
|
Trotz der Versuche des \ac{PAL}-Papers, die Ergebnisse des 175-Milliarden-Parameter-Modells zu kontextualisieren,
|
||||||
bleibt unklar, wie aktuelle LLMs abschneiden würden.
|
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.
|
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.
|
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.
|
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
|
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.
|
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
|
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ühren die Nutzung von PAL oder der Interpretierung
|
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.
|
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.}
|
\printbibliography\footnote{Zum Verbessern von Rechtschreibung, Grammatik und als allgemeine Korrekturinstanz wurde ChatGPT4 verwendet.}
|
||||||
\end{document}
|
\end{document}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user