From e239e158879dd7dd9d7476b57911068f0b2f4ef6 Mon Sep 17 00:00:00 2001 From: Philipp Horstenkamp Date: Sun, 10 Dec 2023 18:39:37 +0100 Subject: [PATCH] Refactored the rest --- pal-vorstellung.tex | 109 +++++++++++++++++++------------------------- 1 file changed, 47 insertions(+), 62 deletions(-) diff --git a/pal-vorstellung.tex b/pal-vorstellung.tex index f346b49..d28e2ac 100644 --- a/pal-vorstellung.tex +++ b/pal-vorstellung.tex @@ -399,83 +399,68 @@ coordinates {(text-davinci-001,8.6) (text-davinci-002,46.9) (text-davinci-003,69 \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. -Allerdings wurden die Qualitätsergebnisse, die durch PAL erreicht wurden, dort nicht erreicht. +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. +Weitere Ansätze, die zusätzliche Tokens für Daten und mathematische Operationen einsetzen~\cite{Demeter_Downey_2020}, + sind zwar vorhanden, erweisen sich jedoch als komplexer, weniger zuverlässig und weniger universell einsetzbar. -Es 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 jedoch komplexer, weniger zuverlässig und weniger allgemeingültig. +Es existieren Large Language Models (LLMs), die speziell auf mathematische Probleme und Codeausgabe ausgerichtet sind + und eine höhere Ergebnisqualität als Standardmodelle aufweisen, allerdings nur marginal~\cite{pi2022reasoning}. +Diese Modelle sind ebenfalls fähig, Code zu generieren und auszuführen. -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 Standardmodell, aber nur geringfügig~\cite{pi2022reasoning}. -Diese können auch genutzt werden, um Code zu generieren und in Echtzeit auszuführen. +Ein zeitgleich mit PAL veröffentlichter Ansatz, das Program of Thought (PoT)~\cite{chen2023program}, + konzentriert sich stärker auf mathematische Probleme und wird in PAL zitiert. +Es scheint, dass dort weniger Wert auf die Gestaltung von Prompts gelegt wird und auch keine Vergleiche mit dem + aussagekräftigen Datensatz GSM-HARD gezogen werden, stattdessen werden andere Datensätze verwendet. +Dies macht die Vergleichbarkeit schwierig. -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 liegt mehr auf mathematischen Problemen. -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. +Neue Techniken wie die "Automatic Model Selection with Large Language Models for Reasoning" kombinieren CoT und PAL und + überlassen die Entscheidung über die Korrektheit beider Ergebnisse einem LLM, + wodurch die Qualität der Ergebnisse für GSM8K auf $96,5\%$ gesteigert werden konnte, eine Verbesserung um $34\%$~\cite{zhao2023automatic}. -Darauf aufbauend gibt es Prompt-Techniken wie die "Automatic Model Selection with Large Language Models for Reasoning", - 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 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}, + wobei dort noch andere Experimente gemacht werden und weitere Verbesserungen vorgenommen wurden. -Die beliebte Python/JavaScript-Bibliothek LangChain hat PAL-Prompts als Teil ihres Funktionsumfangs~\cite{langchain}. +Eine vergleichbare Integration von Programmiersprachen findet in Tools wie Binder~\cite{binder} statt, + die sich hauptsächlich auf die Datenanalyse mit Python's Pandas und SQL konzentrieren. +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. -Auch aktuellere Veröffentlichungen stellen deutlich fest, - 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. +Alternative Ansätze wie "Automatic Multi-Step Reasoning and Tool-Use for Large Language Models"~\cite{paranjape2023art} + frieren das LLM während der Codeausführung ein und fügen die Ergebnisse direkt in den Text ein, + bevor die Ausführung des LLMs basierend auf diesen Ergebnissen fortgesetzt wird. -Eine ähnliche Integration von Programmiersprachen findet in Binder~\cite{binder} statt, - wobei es primär um die Analyse von Daten via Pythons Pandas und SQL geht. -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 der tabellierten Pinguin-Daten in einer als Library zur Verfügung stehenden Implementierung. -PandasAI arbeitet allerdings nicht mit Few-shot-Prompts, sondern über Zero-shot-Prompts. - -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 Analysemodul ist ein weiteres Beispiel, in dem schnell Code generiert wird, - anstatt dass Berechnungen direkt im Code durchgeführt werden. +Das in ChatGPT verwendete Analysemodul erzeugt schnell Code, ohne die Berechnungen direkt im Code durchzuführen, + was einen weiteren interessanten Anwendungsfall darstellt. \section{Ausblick} -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 vorgestellte PAL-Technik illustriert einen innovativen Schritt, + indem sie Python-Code während der Beantwortung von Fragen oder Aufgaben durch LLMs ausführt. +Das aufgedeckte Verbesserungspotenzial für mathematisch-logische Operationen innerhalb von LLMs ist beeindruckend und zeugt von schlichter technischer Eleganz. -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. +Die Quantifizierung von Einflussfaktoren, wie die Reihenfolge und Art der Beispiele, trägt zur Verlässlichkeit der Methode bei. +Die Tatsache, dass PAL-Prompts als erweiterte CoT-Prompts fungieren, stärkt das Vertrauen in die Ergebnisse. -Der 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. +Der rasante technische Fortschritt im Bereich der LLMs und deren Integration in Software zeigt, + wie effektiv der von PAL verfolgte Ansatz ist. +Trotz der Versuche des PAL-Papers, die Ergebnisse des 175-Milliarden-Parameter-Modells zu kontextualisieren, + bleibt unklar, wie aktuelle LLMs abschneiden würden. +Dennoch ist es unwahrscheinlich, dass die Ergebnisse schlechter ausfallen als direkte Anfragen oder CoT-Resultate auf denselben Modellen. -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. +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, + ohne den CPU-Aufwand einer mehrfachen Ausführung für einen Mehrheitsentscheid zu erhöhen. -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. +Es bleibt zu untersuchen, ob PAL in anderen Sprachen ähnlich effektiv ist, + da eine weniger enge Verknüpfung zwischen Aufgabenstellungen und Codevariablen in verschiedenen Sprachen + die Qualität potenziell beeinträchtigen könnte. Eine Quantifizierung dieser Effekte stellt sicherlich eine Herausforderung dar. -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 +Neben den Wirklich beeindruckenden ergebnissen die PAL vorweisen kann ist aber besonders die Technische Implementierung + welche unabhängig voneinander in Verschiedenen Tools vorgenomen wurde ein Zeichen davon wie Zielführen die Nutzung von PAL oder der Interpretierung + von Python code Ausführungen zur Laufzeit ist. +Dabei ist aber klar zu sehen das oft weit über das Prompt-Engineering hinausgegangen wurde sondern aktuelle LLMs ohne spezielle Aufforderung interpretierbaren code generieren. \printbibliography \end{document}