Added a barchart plot about the quality of different LLMs
This commit is contained in:
parent
10a1dc9901
commit
7e6b981dc2
@ -17,11 +17,15 @@
|
||||
\usepackage{listings}
|
||||
\lstset{basicstyle=\footnotesize\ttfamily, breaklines=true, keepspaces=true, columns=fixed, numberstyle=\tiny, keywordstyle=\color{blue}}
|
||||
\usepackage{tikz}
|
||||
\usetikzlibrary{positioning,fit,calc,backgrounds}
|
||||
\usepackage{pgfplots}
|
||||
\usetikzlibrary{positioning,fit,calc,backgrounds,patterns}
|
||||
\usepackage{tabularray}
|
||||
\usepackage{stfloats}
|
||||
\usepackage{float}
|
||||
|
||||
% Definiert die Kompatibilität mit der Version von pgfplots
|
||||
\pgfplotsset{compat=1.17}
|
||||
|
||||
\renewcommand{\lstlistingname}{Codebeispiel}
|
||||
|
||||
\lstdefinestyle{mystyle}{
|
||||
@ -46,6 +50,8 @@
|
||||
|
||||
\lstset{style=mystyle}
|
||||
|
||||
\newcommand{\DavinciCode}{code\babelhyphen{nobreak}davinci\babelhyphen{nobreak}002}
|
||||
|
||||
\title{Vorstellung von Program-aided Language Model Prompts
|
||||
\thanks{Dieser Beitrag entstand im Rahmen des \emph{Konferenzseminars Machine Learning}, das im Wintersemester 2023/24 vom Fachbereich Informatik und Naturwissenschaften der Fachhochschule Südwestfalen durchgeführt wurde. --- Als Basis für diese \LaTeX-Vorlage dient das IEEE Conference Template der IEEE Computational Intelligence Society.}}
|
||||
|
||||
@ -239,7 +245,7 @@ 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 code\babelhyphen{nobreak}davinci\babelhyphen{nobreak}002 genutzt.
|
||||
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.
|
||||
|
||||
\section{Ergebnisse}
|
||||
@ -341,8 +347,42 @@ Neben den oben beschriebenen Experimenten wurden weitere Fragestellungen untersu
|
||||
\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 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.
|
||||
\end{itemize}
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
ybar,
|
||||
bar width=20pt,
|
||||
symbolic x coords={text-davinci-001, text-davinci-002, text-davinci-003},
|
||||
xtick=data,
|
||||
nodes near coords,
|
||||
nodes near coords align={vertical},
|
||||
ymin=0,ymax=80,
|
||||
enlarge x limits=0.2,
|
||||
ylabel={Prozentsatz},
|
||||
legend style={at={(0.5,-0.15)},
|
||||
anchor=north,legend columns=-1},
|
||||
width=\columnwidth,
|
||||
height=6cm,
|
||||
]
|
||||
\addplot
|
||||
[fill=red,postaction={pattern=north east lines}]
|
||||
coordinates {(text-davinci-001,26.5) (text-davinci-002,65.8) (text-davinci-003,65.3)};
|
||||
\addplot
|
||||
[fill=blue]
|
||||
coordinates {(text-davinci-001,8.6) (text-davinci-002,46.9) (text-davinci-003,69.8)};
|
||||
\legend{CoT,PAL}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{Vergleich der Ergebnisqualität von PAL und CoT bei verschiedenen LLM modellen.}
|
||||
\label{fig:diff-llm}
|
||||
\end{figure}
|
||||
|
||||
\section{Ähnliche Werke \& Implementierungen}
|
||||
|
||||
Few-shot Prompting~\cite{few-shot2}~\cite{few-shot1} und Chain of Thought (CoT) haben zur Entwicklung des PAL-Papers beigetragen.
|
||||
@ -387,33 +427,40 @@ Das in ChatGPT verwendete Analysemodul ist ein weiteres Beispiel, in dem schnell
|
||||
|
||||
\section{Ausblick}
|
||||
|
||||
Die Vorgestellte Prompt technik PAL zeigt einen ersten schritt welcher während der Antwort von LLMs auf eine Frage / Aufgabe Python code ausführt.
|
||||
Das erschlossene Verbesserungspotential von Mathematisch Logischen operationen in LLMs durch PAL ist beeindruckend.
|
||||
Die Lösung besticht damit für mich im Besonderen durch sine schlichte technische Eleganz.
|
||||
Schon beim lesen des Abstracts hat man das gefühl PAL einsetzen/implementieren zu können.
|
||||
Die vorgestellte Prompt-Technik PAL zeigt einen ersten Schritt,
|
||||
bei dem während der Antwort von Large Language Models (LLMs) auf eine Frage oder Aufgabe Python-Code ausgeführt wird.
|
||||
Das erschlossene Verbesserungspotenzial von mathematisch-logischen Operationen in LLMs durch PAL ist beeindruckend.
|
||||
Die Lösung besticht durch ihre schlichte technische Eleganz.
|
||||
Schon beim Lesen des Abstracts entsteht der Eindruck, PAL einsetzen oder implementieren zu können.
|
||||
|
||||
Die Quantifizierung einzelner Einflussfaktoren wie der Reihenfolge und Art der der Beispiele, in der Bemühung um Quantifizierbarkeit sind Hilfreich.
|
||||
Im Besonderen das PAL Prompts einfache "Übersetzungen" von CoT prompts sind welche gemeinsam eingesetzt werden macht die ergebnisse Vertrauenerweckend.
|
||||
Die Quantifizierung einzelner Einflussfaktoren wie der Reihenfolge und Art der Beispiele ist hilfreich.
|
||||
Insbesondere die Tatsache, dass PAL-Prompts einfache „Übersetzungen“ von CoT-Prompts sind und gemeinsam eingesetzt werden,
|
||||
macht die Ergebnisse vertrauenswürdig.
|
||||
|
||||
Der Technische fortschritt sowohl bei LLMs wie auch der integration von LLMs in Software bzw.
|
||||
andersherum der Software in LLMs über das letzte Jahr war erstaunlich.
|
||||
Lösungen die PAL integrieren oder vergleichbar wie PAL arbeiten gibt es vermehrt was deutlich zeigt wie gut der mit PAL verfolgte Ansatz funktioniert.
|
||||
Der technische Fortschritt sowohl bei LLMs als auch bei der Integration von LLMs in Software
|
||||
bzw. umgekehrt der Software in LLMs über das letzte Jahr war erstaunlich.
|
||||
Lösungen, die PAL integrieren oder vergleichbar wie PAL arbeiten, gibt es vermehrt,
|
||||
was deutlich zeigt, wie gut der mit PAL verfolgte Ansatz funktioniert.
|
||||
|
||||
Auch wenn das PAL paper natürlich versucht hat das 175B Parameter Code Model auf dem es Evaluiert würde in Kontext zu setzen ist natürlich nicht ganz klar wie die Performance bei einem aktuellen LLM aussehen würde.
|
||||
Es ist für mich jedoch gänzlich unvorstellbar das die Ergebnisse schlechter sind als eine Direkte Query oder CoT ergebnisse auf diesen Modellen.
|
||||
Schon allein deshalb weil PAL in der Evaluation auf 175B Parametern größeren Modellen überlegen war.
|
||||
Auch wenn das PAL-Paper versucht hat, das 175-Milliarden-Parameter-Modell, auf dem es evaluiert wurde,
|
||||
in Kontext zu setzen, ist nicht ganz klar, wie die Performance bei einem aktuellen LLM aussehen würde.
|
||||
Es ist jedoch kaum vorstellbar, dass die Ergebnisse schlechter sind als eine direkte Query oder CoT-Ergebnisse auf diesen Modellen,
|
||||
schon allein deshalb, weil PAL in der Evaluation auf größeren Modellen überlegen war.
|
||||
Das vor einem Jahr für die Versuche zu PAL verwendeten LLM-Modelle \DavinciCode ist nun von OpenAI als Legacy-Modelle markiert und wird zum 04.01.2024 auslaufen.
|
||||
Dies zeigt deutlich wie schnell dort der Technische Fortschritt ist.
|
||||
|
||||
Was ich Persönlich am PAL paper vermisse ist die angabe wie oft der Programmcode unausführbar war.
|
||||
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.
|
||||
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.
|
||||
|
||||
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
|
||||
die Qualität senken kann.
|
||||
Alternative könnte z.B. die Deutsche sprache zwischen Programmcode ungewöhnlicher sein als die Englische und dort für eine schlechte Datenlage bei der Codegenerierung sorgen.
|
||||
Was ich persönlich am PAL-Paper vermisse, ist die Angabe, wie oft der Programmcode unausführbar war.
|
||||
Oft kann ein Large Language Model mit dem Traceback eines Fehlers Programmcode reparieren.
|
||||
Dies könnte zu einer weiteren Verbesserung führen, die nicht zwingend mehr CPU verbraucht,
|
||||
wie die Mehrfachausführung einer Aufgabe für einen Mehrheitsentscheid.
|
||||
Das Potenzial ist hier leider nicht quantifizierbar, obwohl 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 oder Verbesserung zurückgegeben.
|
||||
|
||||
Fragwürdig ist natürlich auch, ob die Ergebnisse von PAL in anderen Sprachen genauso gut ausfallen würden,
|
||||
da möglicherweise eine losere Kopplung von beispielsweise deutschsprachigen Benennungen in der Aufgabenstellung und
|
||||
englischsprachigen Variablenbenennungen im Code die Qualität senken könnte.
|
||||
Alternativ könnte die deutsche Sprache zwischen Programmcode ungewöhnlicher sein als die englische und somit für eine
|
||||
schlechte Datenlage bei der Codegenerierung sorgen. Dies zu Quantifizieren ist aber sicherlich schwierig.
|
||||
% https://chat.openai.com/share/3a78d9db-9caa-4745-a417-0ef229bd7728
|
||||
|
||||
\printbibliography
|
||||
|
Loading…
x
Reference in New Issue
Block a user