Repo para o Paper Pal: modelos de idiomas auxiliados pelo programa.
No PAL, o modelo de linguagem grande resolve problemas de raciocínio que envolvem tarefas aritméticas e processuais complexas, gerando cadeias de texto e código . Isso descarrega a execução do código em um tempo de execução do programa, no nosso caso, um intérprete Python. Em nosso artigo, implementamos o PAL usando uma abordagem de poucos anos.

Este repo fornece uma implementação interativa do PAL.
[Março de 2023] Adicionamos suportes para APIs de chatgpt (por exemplo, GPT-3.5-turbo). Esperamos uma transição suave para o PAL sobre o desligamento da API do Codex. Confira um script beta scripts/gsm_chatgpt.py para raciocínio matemático.
[Jan 2023] Lançamos o GSM-Hard, uma versão mais difícil do GSM8K que criamos. Também disponível no Huggingface?
import datasets
gsm_hard = datasets . load_dataset ( "reasoning-machines/gsm-hard" ) Clone este repositório e instale com pip .
git clone https://github.com/luyug/pal
pip install -e ./pal
Antes de executar os scripts, defina a tecla OpenAI, export OPENAI_API_KEY='sk-...'
Os componentes principais do pacote pal são as classes de interface. Especificamente, ProgramInterface conecta o back -end do LLM, um back -end Python e prompts do usuário.
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)
Aqui, o método run da interface será executado geração com a API OpenAI, executará o trecho gerado e avaliará get_answer_expr (aqui solution() ) para obter a resposta final.
O usuário deve definir get_answer_expr com base no prompt.
Fornecemos loops de inferência simples nas scripts/ pasta.
mkdir eval_results
python scripts/{colored_objects|gsm|date_understanding|penguin}_eval.py
Temos uma versão beta de um script dedicado ChatGPT para o raciocínio matemático.
python scripts/gsm_chatgpt.py
Para executar a inferência em massa, usamos o prompt Lib da biblioteca genérico e o recomendamos para executar infernências do COT em todas as tarefas usadas em nosso trabalho.



Para obter os detalhes completos dos resultados, consulte o artigo.
@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}
}