Bem-Vindo(a)!
😃 Fundamentos
💼 Aplicações Básicas
🧙‍♂️ Intermediário
🤖 Agentes
⚖️ Confiabilidade
🖼️ Prompts para Imagens
🔓 Hackeando Prompts
🔨 Ferramentas
💪 Ajustando prompts
🎲 Aleatórios
📙 Vocabulário
📚 Bibliography
📦 Prompted Products
🛸 Additional Resources
🔥 Hot Topics
✨ Credits
🧙‍♂️ Intermediário🟦 Prompts to Tipo Menor para o Maior

Prompts to Tipo Menor para o Maior

🟦 This article is rated medium
Reading Time: 5 minutes
Last updated on August 7, 2024

Sander Schulhoff

Prompts do tipo "Menor para o Maior" (MpM) (Least to Most prompting ou LtM, em inglês) são uma extensão dos prompts to tipo Cadeia de Pensamento - CdP. Contudo esse tipo de prompt quebra o problema principal em diversos problemas menores. Essa técnica é inspirada em estratégias aplicadas no ensino infantil.

Como na técnica de CdP prompting, o problema a ser resolvido é decomposto em um conjunto de subproblemas que se constroem uns sobre os outros. Em um segundo momento, esses subproblemas são resolvidos um por um. Contrariamente à cadeia de pensamento, a solução dos subproblemas anteriores é inserida na prompt tentando resolver o próximo problema.

Diagrama representando o prompt Menor para o Maior (MpM)

Examplo: Resposta de Solicitação de Cliente

Vamos fazer uma pergunta um pouco complicada:


A resposta está incorreta (o cliente está dentro da janela em que é possível retornar o produto). Sendo assim, vamos dividir o problema em questões menores. Vamos tentar resolver o primeiro subproblema:


Ao resolver apenas o primeiro subproblema, fomos capazes de resolver o problema inteiro. Se o GPT-3 não retornasse uma resposta imediatamente, poderíamos ter resolvido o próximo subproblema e assim por diante até que ele retornasse uma resposta. Observe que usamos Vamos pensar passo a passo. A adição dessa frase nem sempre é necessária, mas ajuda neste exemplo.

Examplo: Concatenação de Letras

O MpM foi originalmente introduzido usando promptings de poucas amostras, em vez de uma instrução explícita para dividir um problema em várias etapas (como visto acima). Além disso, às vezes pode ser implementado com um único prompt em vez de prompts encadeados. Vamos examinar o problema de concatenar a última letra de palavras individuais (por exemplo, dadas as palavras bolo, etimologia como entrada, a saída deve ser oa).

Primeira tentativa: Padrão

O prompt padrão com alguns exemplos few-shot tem uma performance muito ruim, mesmo com um modelo mais avançado como o text-davinci-003.

Segunda tentativa: Cadeia de Pensamento

A técnica da cadeia de pensamento funciona significativamente melhor do que a técnica padrão de prompt. Isso ocorre porque ela permite que o modelo considere extrair a última letra de cada palavra por conta própria, reduzindo a complexidade da operação de agrupar as letras coletadas anteriormente. No entanto, essa técnica começa a se tornar menos eficiente em tamanhos maiores.

Terceira tentativa: Menor para o Maior Third (prompt único)

Com a técnica de "Menor para Maior", aprimoramos o conceito de "Cadeia de Pensamento" alterando cada etapa para reformular o resultado previamente concatenado. Isso simplifica cada etapa, pois a máquina deve pconcatenar apenas uma única letra nova. Isso leva a um bom desempenho, principalmente quando trabalhamos com 12 ou mais palavras.

Essa abordagem pode parecer muito semelhante à Cadeia de Pensamento, mas é conceitualmente muito diferente. Aqui, em cada etapa, introduzimos a concatenação anterior. No caso de "pensar, máquina, aprendendo", em vez de concatenar as letras "r", "a", "o" individualmente, concatenaremos "r" e "a", depois "ra" e "o". Como resultado dessa reintrodução do trabalho anterior, o modelo agora pode generalizar para cadeias muito mais longas, pois carrega o resultado incrementalmente e precisa fazer apenas uma pequena quantidade de trabalho em cada etapa.

Resultados

No último problema de concatenação de letras com 12 palavras, Cadeia de Pensamento tem uma precisão de 34%, enquanto Menor para o Maior tem uma precisão de 74% (o artigo utiliza o modelo text-davinci-002).

Exemplo: Generalização Composicional (SCAN)

O benchmark SCAN exige que o modelo converta linguagem natural em sequências de ações. Por exemplo, a frase "corra para a esquerda e caminhe duas vezes" seria traduzida para "VIRE_ESQUERDA + CORRA + CAMINHE * 2". Modelos de linguagem têm desempenho especialmente ruim quando confrontados com sequências mais longas do que as do conjunto de treinamento.

Primeira tentativa: Padrão

Usando um prompt padrão, o text-davinci-003 tem um desempenho bom, mas ainda falha em resolver a pergunta.

Segunda tentativa: Menor para o Maior, primeiro passo - Redução

Aqui, trabalhamos com dois prompts diferentes. O primeiro prompt é usado para reduzir o problema de entrada em uma sequência de etapas mais simples. O segundo prompt é usado para mapear essa sequência simplificada de etapas em ações reais.

Ambos os prompts são bastante longos e usam notação Python comprimida para a ação a fim de economizar tokens.

O primeiro passo quebra a descrição da linguagem natural em uma linguagem mais explícita, porém ainda humana. Isso ajudará o passo de mapeamento a entender as coisas em sequência. Por exemplo, "pular para a esquerda duas vezes" é reduzido para "pular para a esquerda" -> virar à esquerda + pular e "pular para a esquerda" -> (virar à esquerda + pular) * 4. Da mesma forma, o passo de redução é o que é usado para explicar o conceito de repetição (duas vezes, três vezes, etc.).

Segunda tentativa: Menor para o Maior, segundo passo - Mapeamento

No segundo passo, usamos a saída da redução e novamente usamos um prompt bem longo (14 casos) para traduzir a descrição reduzida em linguagem natural em uma sequência de ações.

Aqui, injetamos a saída do primeiro passo:

"pular em volta à esquerda duas vezes" pode ser resolvido por: "pular à esquerda", "pular em volta à esquerda", "pular em volta à esquerda duas vezes". "andar na direção oposta à esquerda três vezes" pode ser resolvido por: "andar na direção oposta à esquerda", "andar na direção oposta à esquerda três vezes". Então, "pular em volta à esquerda duas vezes depois de andar na direção oposta à esquerda três vezes" pode ser resolvido por: "pular à esquerda", "pular em volta à esquerda", "pular em volta à esquerda duas vezes", "andar na direção oposta à esquerda", "andar na direção oposta à esquerda três vezes".

Resultados

MpM leva a várias melhorias:

  • aumento da precisão em relação à Cadeia de Pensamento
  • aumento da generalização em problemas mais difíceis do que os do prompt
  • melhoria significativa no desempenho na generalização composicional, em particular no benchmark SCAN

A solicitação padrão com text-davinci-002 (o modelo usado no artigo) resulta em 6% de problemas SCAN resolvidos com sucesso, enquanto a solicitação Menor para o Maior resulta em uma impressionante taxa de sucesso de 76%. Os resultados são ainda mais significativos com code-davinci-002, onde a solicitação Menor para o Maior alcança uma taxa de sucesso de 99,7%.

Sander Schulhoff

Sander Schulhoff is the Founder of Learn Prompting and an ML Researcher at the University of Maryland. He created the first open-source Prompt Engineering guide, reaching 3M+ people and teaching them to use tools like ChatGPT. Sander also led a team behind Prompt Report, the most comprehensive study of prompting ever done, co-authored with researchers from the University of Maryland, OpenAI, Microsoft, Google, Princeton, Stanford, and other leading institutions. This 76-page survey analyzed 1,500+ academic papers and covered 200+ prompting techniques.

Footnotes

  1. Zhou, D., Schärli, N., Hou, L., Wei, J., Scales, N., Wang, X., Schuurmans, D., Cui, C., Bousquet, O., Le, Q., & Chi, E. (2022). Least-to-Most Prompting Enables Complex Reasoning in Large Language Models.

  2. Wei, J., Wang, X., Schuurmans, D., Bosma, M., Ichter, B., Xia, F., Chi, E., Le, Q., & Zhou, D. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models.

  3. Lake, B. M., & Baroni, M. (2018). Generalization without Systematicity: On the Compositional Skills of Sequence-to-Sequence Recurrent Networks. https://doi.org/10.48550/arXiv.1711.00350 2