Repo für den Papierkumpel: programmgestützte Sprachmodelle.
In PAL löst großes Sprachmodell Argumentationsprobleme, die komplexe arithmetische und prozedurale Aufgaben beinhalten, indem Argumentationsketten von Text und Code generiert werden. Dies lädt die Ausführung des Code in eine Programmlaufzeit aus, in unserem Fall ein Python -Dolmetscher. In unserem Artikel implementieren wir PAL mit einem wenigen Schussansatz.

Dieses Repo bietet eine interaktive Implementierung von PAL.
[März 2023] Wir haben Unterstützung für Chatgpt-APIs (z. B. GPT-3,5-Turbo) hinzugefügt. Wir erwarten einen reibungslosen Übergang für PAL über das CODEX -API -Abschalt. Checkout a Beta scripts/gsm_chatgpt.py für mathematische Argumentation.
[Jan 2023] Wir veröffentlichen GSM-Hard, eine härtere Version von GSM8K, die wir erstellt haben. Auch durch das Umarmungsgesicht?
import datasets
gsm_hard = datasets . load_dataset ( "reasoning-machines/gsm-hard" ) Klonen Sie dieses Repo und installieren Sie mit pip .
git clone https://github.com/luyug/pal
pip install -e ./pal
Setzen Sie vor dem Ausführen der Skripte den OpenAI-Schlüssel, export OPENAI_API_KEY='sk-...'
Die Kernkomponenten des pal -Pakets sind die Schnittstellenklassen. Insbesondere verbindet ProgramInterface das LLM -Backend, ein Python -Backend- und Benutzeraufforderungen.
import pal
from pal.prompt import math_prompts
interface = pal.interface.ProgramInterface(
model='code-davinci-002',
stop='nnn', # stop generation str for Codex API
get_answer_expr='solution()' # python expression evaluated after generated code to obtain answer
)
question = 'xxxxx'
prompt = math_prompts.MATH_PROMPT.format(question=question)
answer = interface.run(prompt)
Hier wird die run -Methode der interface mit der OpenAI -API erzeugt, das generierte Snippet ausgeführt und dann get_answer_expr (hier solution() ) ausgewertet, um die endgültige Antwort zu erhalten.
Der Benutzer sollte basierend auf der Eingabeaufforderung get_answer_expr einstellen.
Wir bieten einfache Inferenzschleifen in den scripts/ in den Ordner.
mkdir eval_results
python scripts/{colored_objects|gsm|date_understanding|penguin}_eval.py
Wir haben eine Beta -Veröffentlichung eines ChatGPT -Skripts für mathematische Argumentation.
python scripts/gsm_chatgpt.py
Zum Ausführen von Masseninferenz haben wir die generische Aufforderung zur Eingabeaufforderung für Bibliothek verwendet und es empfohlen, COT-Inferenz für alle in unserer Arbeit verwendeten Aufgaben auszuführen.



Die vollständigen Details der Ergebnisse finden Sie im Papier.
@article{gao2022pal,
title={PAL: Program-aided Language Models},
author={Gao, Luyu and Madaan, Aman and Zhou, Shuyan and Alon, Uri and Liu, Pengfei and Yang, Yiming and Callan, Jamie and Neubig, Graham},
journal={arXiv preprint arXiv:2211.10435},
year={2022}
}