⚖️ Confiabilidade🟦 Matemática

🟦 Matemática

Última atualização em August 7, 2024 por Sander Schulhoff

Durante este curso, vimos muitos métodos de prompt diferentes que podem ser usados ​​para melhorar a habilidade matemática de um LLM. Uma abordagem recente, MathPrompter, une alguns desses métodos: (Cadeia de Pensamento, PAL, etc.) em uma única técnica. A ideia principal é dividir uma questão matemática em termos algébricos e, em seguida, usar código Python para resolvê-la de maneiras diferentes.

O MathPrompter possui quatro etapas. Explicaremos as etapas usando o seguinte exemplo. O exemplo é retirado diretamente do artigo.

P: Em um restaurante, cada refeição para adultos custa R$5 e as crianças comem de graça. Se um grupo de 15
pessoas entrasse e 8 fossem crianças, quanto isso custaria para o grupo comer?

Passo 1: Gerar o modelo algébrico

A primeira etapa é atribuir uma variável a cada número na pergunta. Isso ajuda porque permite uma tradução mais fácil da pergunta para uma questão matemática abstrata, bem como para o código de programação.

Isso pode ser feito por meio de poucos prompts com exemplo:

Passo 2: Prompts Matemáticos

O objetivo deste passo é formular o problema como uma declaração algébrica e como código Python. Este passo tem dois prompts simultâneos, que ajudam a dar representações diversas do problema.

2a: Declaração Algébrica

Podemos fazer o prompt de poucas amostras (few-shot) para que o LLM represente o problema matemático como uma declaração algébrica. Isso é feito pedindo ao LLM para gerar o formato da resposta, começando com "Resposta =".

2b: Código em Python

Também podemos pedir ao LLM que gere código Python que resolva o problema. Isso é feito pedindo ao LLM para gerar uma função Python.

Geração de Respostas

Agora, podemos usar o Mapeamento que geramos anteriormente para preencher automaticamente as variáveis.

Mapeamento: {A: 5, B: 15, C: 8}

Algébrico:

Answer = 5 * 15 - 5 * 8

Código em Python:

def custo_restaurante(A=5, B=15, C=8):
  return A * (B - C)

Podemos avaliar ambos usando Python.

Algébrico:

>
> eval("5 * 15 - 5 * 8")
35

Código em Python:

>
> custo_restaurante()
35

Passo 4: Auto-Consistência

Finalmente, vamos aproveitar a Auto-Consistência para executar o processo acima várias vezes (~5), e então tomar a resposta da maioria.

Conclusão

O MathPrompter relata 92,5% de precisão no conjunto de dados MultiArith. O sucesso dessa técnica é um ótimo exemplo de como você, como um engenheiro de prompts, pode combinar métodos que aprendeu ao longo deste curso e combiná-los para lidar com problemas maiores.

Footnotes

  1. Imani, S., Du, L., & Shrivastava, H. (2023). MathPrompter: Mathematical Reasoning using Large Language Models.

  2. Roy, S., & Roth, D. (2015). Solving General Arithmetic Word Problems. Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing, 1743–1752. https://doi.org/10.18653/v1/D15-1202

Edit this page
Word count: 0

Get AI Certified by Learn Prompting


Copyright © 2024 Learn Prompting.