Репо для бумажного приятеля: программные языковые модели.
В PAL модель большой языка решает проблемы рассуждений, которые включают сложные арифметические и процедурные задачи путем создания цепочек рассуждений текста и кода . Это разгружает выполнение кода в среду выполнения программы, в нашем случае, интерпретатора Python. В нашей статье мы реализуем PAL, используя несколько выстрелов.

Это репо предоставляет интерактивную реализацию PAL.
[Mar 2023] Мы добавили поддержки для API CATGPT (например, GPT-3,5-Turbo). Мы ожидаем плавного перехода для PAL над отключением API Codex. Оформить бета -скрипт scripts/gsm_chatgpt.py для математической рассуждения.
[Январь 2023 г.] Мы выпускаем GSM-Hard, более сложную версию GSM8K, которую мы создали. Также доступен в Huggingface?
import datasets
gsm_hard = datasets . load_dataset ( "reasoning-machines/gsm-hard" ) Клонировать это репо и установить с помощью pip .
git clone https://github.com/luyug/pal
pip install -e ./pal
Прежде чем запустить сценарии, установите ключ Openai, export OPENAI_API_KEY='sk-...'
Основными компонентами пакета pal являются классы интерфейса. В частности, ProgramInterface подключает бэкэнд LLM, бэтэнд Python и пользовательские подсказки.
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)
Здесь метод run interface будет выполнять генерацию с помощью API OpenAI, запустить сгенерированный фрагмент, а затем оценивать get_answer_expr (здесь solution() ), чтобы получить окончательный ответ.
Пользователь должен установить get_answer_expr на основе приглашения.
Мы предоставляем простые петли вывода в scripts/ папке.
mkdir eval_results
python scripts/{colored_objects|gsm|date_understanding|penguin}_eval.py
У нас есть бета -версия из специального сценария Catgpt для математических рассуждений.
python scripts/gsm_chatgpt.py
Для выполнения объемного вывода мы использовали общий подсказка библиотеки Library Lib-Lib и рекомендуем его для выполнения выдержанности кровь по всем задачам, используемым в нашей работе.



Полную информацию о результатах см. В статье.
@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}
}