Added lots of text

This commit is contained in:
Philipp Horstenkamp 2023-12-10 04:38:23 +01:00
parent a1ad640793
commit 4f50263a46
Signed by: Philipp
GPG Key ID: DD53EAC36AFB61B4
2 changed files with 45 additions and 14 deletions

View File

@ -116,3 +116,13 @@
archivePrefix={arXiv}, archivePrefix={arXiv},
primaryClass={cs.CL} primaryClass={cs.CL}
} }
@misc{binder,
title={Binding Language Models in Symbolic Languages},
author={Zhoujun Cheng and Tianbao Xie and Peng Shi and Chengzu Li and Rahul Nadkarni and Yushi Hu and Caiming Xiong and Dragomir Radev and Mari Ostendorf and Luke Zettlemoyer and Noah A. Smith and Tao Yu},
year={2023},
eprint={2210.02875},
archivePrefix={arXiv},
primaryClass={cs.CL}
}

View File

@ -117,6 +117,8 @@ Wichtig dabei ist das sich die lösungen auch stilistisch sehr stark an den gege
Dies ist eine Technik um ein LLM zu nutzen und keine modifikation am LLM selber. Dies ist eine Technik um ein LLM zu nutzen und keine modifikation am LLM selber.
Few-shot Prompting gehört daher zum Gebiet des Prompting, nicht der LLM erstellung. Few-shot Prompting gehört daher zum Gebiet des Prompting, nicht der LLM erstellung.
Gegenüber von Few-Shot Prompts stehen Zero Shots. Bei diesen wird einfach nur 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.
@ -352,29 +354,48 @@ Damit lies sich die Qualität von ergebnissen von GSM8K auf $96.5\%$ steigern um
Die beliebte Python/JavaScript library LangChain hat PAL Prompts als Teil ihres Funktionsumfanges ~\cite{langchain}. Die beliebte Python/JavaScript library LangChain hat PAL Prompts als Teil ihres Funktionsumfanges ~\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 sagen deutlich aus das auch für neuere LLMs die Qualität von PAL besser ist als CoT ~\cite{kabra2023programaided}.
Es erweitert PAL zudem um einen Reliablitlty value.
Zeitgenössische Python LBRs wie zum Beispiel PandasAI verwenden ähnliche ansätze in den Code in der Laufzeit generiert wird und dann von einem Python Interpreter analysiert wird.
Dies ist die Logische fortführung von den Tabuarisieren Pinguin Daten in einer als LBR zur Verfügung stehenden Implementierung~\cite{Venturi}.
Dieser arbeitet aber nicht über Few-shot prompts sondern über zero shots.
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.
Zeitgenössische Python LBRs wie zum Beispiel PandasAI~\cite{Venturi} verwenden diesen Ansätz um Fragen über, und Aufgaben an Daten zu erldigen.
Dies ist die Logische fortführung von den Tabuarisieren Pinguin Daten in einer als LBR zur Verfügung stehenden Implementierung.
Pandas AI zumindest arbeitet aber 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 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.
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 Analyze modul ist ein anderes beispiel wo schnell code generiert wird anstelle davon das Berechnungen gleich im code durchgeführt werden.
\section{Darauf aufbauende Werke}
%PandasAI
\section{Ausblick} \section{Ausblick}
Prompts im Deutschen? Qualität? 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 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.
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.
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.
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.
Nicht ausführbarer Code bitte um verbesserung
Nicht quantifiziert wie oft der code nicht ausführbar war
% https://chat.openai.com/share/3a78d9db-9caa-4745-a417-0ef229bd7728 % https://chat.openai.com/share/3a78d9db-9caa-4745-a417-0ef229bd7728
\printbibliography \printbibliography