Menu

Prompt zero-shot: exemplos e quando funciona

Zero-shot prompting é pedir a um modelo que faça uma tarefa só com instruções, sem exemplos da resposta. É assim que a maioria das pessoas usa o ChatGPT, o Claude e o Gemini, e funciona bem quando a tarefa é comum e a instrução é precisa.

Você pode editar cada prompt desta página e depois abri-lo no ChatGPT, no Claude ou em outro app de IA.

Zero-shot prompting é pedir a um modelo que faça uma tarefa só a partir de uma instrução, sem mostrar a ele nenhum exemplo da resposta que você quer. "Traduza este parágrafo para o espanhol" e "Resuma este e-mail em duas frases" são prompts zero-shot. É o jeito padrão de usar modelos de chat e, para tarefas comuns, costuma ser tudo de que você precisa.

O que zero-shot significa

Em aprendizado de máquina, um "shot" é um exemplo resolvido. Os termos são mais antigos que os modelos de chat, mas o sentido que eles têm no mundo dos prompts foi popularizado por Brown et al. 2020, "Language Models are Few-Shot Learners", que testou o GPT-3 em três situações: uma descrição da tarefa com zero, uma ou algumas demonstrações no prompt, e nenhum retreinamento em nenhuma delas. Para aquele modelo, alguns exemplos geralmente eram melhores do que nenhum.

Desde então, os modelos de chat foram muito treinados para seguir instruções, e é por isso que um pedido simples funciona tão bem hoje. Um prompt zero-shot é exatamente a situação para a qual eles foram treinados: alguém descreve um trabalho em palavras e espera que ele seja feito.

Zero-shot não significa zero contexto. Um bom prompt zero-shot ainda diz o público, cola a entrada e descreve o formato e os limites. A única coisa que ele deixa de fora é um exemplo pronto da saída.

Um prompt zero-shot bem feito

O prompt abaixo extrai tarefas de anotações de reunião sem nenhum exemplo da saída, só com uma descrição precisa dela. Desligue partes para ver quais linhas fazem o trabalho.

Tarefas a partir de anotações de reunião
Parts
Extraia as tarefas destas anotações de reunião.
A lista vai para o gerenciador de tarefas da nossa equipe, então cada item precisa de exatamente um responsável.
Uma linha por item: o responsável, dois-pontos, a tarefa começando com um verbo e depois o prazo entre parênteses, se as anotações informarem.
Inclua só trabalhos que alguém se comprometeu a fazer. Pule discussões e ideias que ninguém assumiu. Se uma tarefa não tiver responsável, escreva "Sem responsável" no lugar do nome.
Sync da sprint, terça A Priya vai corrigir o timeout do login antes de sexta. Conversamos sobre trocar de provedor de CI, nada decidido. Tom fica com as notas de versão da 2.4. Alguém precisa atualizar o documento de onboarding. Lena: eu reviso as notas do Tom até quinta.
Try it
Example replyReplies vary between models and runs.

Priya: Corrigir o timeout do login (antes de sexta) Tom: Escrever as notas de versão da 2.4 Sem responsável: Atualizar o documento de onboarding Lena: Revisar as notas de versão do Tom (até quinta)

A linha de formato faz o papel que um exemplo faria: ela detalha a forma exata de cada linha, então não há nada para copiar. Desligue-a e a resposta escolhe uma forma própria, muitas vezes uma lista com marcadores e nomes em negrito, que é fácil de ler, mas não cola direito em um gerenciador de tarefas. Desligue as restrições e a discussão sobre CI pode aparecer como tarefa, porque nada disse ao modelo que assuntos sem decisão não contam.

Quando o zero-shot basta

O zero-shot funciona quando o modelo consegue deduzir tudo a partir das suas palavras:

  • A tarefa é comum. Resumir, traduzir, explicar, corrigir a gramática e escrever uma função a partir de uma especificação clara são tarefas que o modelo viu inúmeras vezes no treinamento.
  • Você consegue descrever a saída com exatidão. "Uma linha por item, responsável primeiro" é tão claro quanto um exemplo. Veja saída estruturada para descrever formatos que um programa vai ler.
  • As categorias significam o que dizem. Separar avaliações em positivas e negativas normalmente dispensa exemplos, porque esses rótulos significam a mesma coisa para quase todo mundo.

Quando acrescentar exemplos

Algumas coisas são difíceis de colocar em palavras, e é aí que os prompts zero-shot começam a errar:

  • As suas próprias fronteiras. Se a sua equipe de suporte classifica "não consigo entrar" como problema de conta e não como bug, o modelo não tem como saber. Ele vai escolher a leitura que a maioria das pessoas faria.
  • Um estilo da casa. As mensagens de commit da sua equipe ou o tom da sua newsletter são mais fáceis de mostrar do que de descrever.
  • Erros repetidos por pouco. Se você já reescreveu a instrução duas vezes e a saída continua um pouco errada do mesmo jeito, pare de reescrever e mostre duas ou três respostas certas.

Isso é prompt few-shot. Um bom hábito é começar com zero-shot, olhar o que volta e acrescentar exemplos só para a coisa específica que sai errada.

Chain of thought zero-shot

Kojima et al. 2022, "Large Language Models are Zero-Shot Reasoners", descobriram que acrescentar uma frase, "Let's think step by step" ("Vamos pensar passo a passo"), deixava os modelos grandes visivelmente melhores em problemas de aritmética, simbólicos e de lógica, sem nenhum exemplo. A frase faz o modelo escrever os passos intermediários antes da resposta, e cada passo escrito vira contexto para o seguinte. O método deles usava duas chamadas: a primeira produzia o raciocínio e a segunda pedia a resposta final.

No bloco abaixo, a primeira aba força uma resposta imediata e a segunda dá espaço para o modelo trabalhar.

Um trem está programado para sair às 9h40. Ele sai com 25 minutos de atraso. A viagem normalmente leva 2 horas e 35 minutos, mas o trem recupera 10 minutos no caminho. A que horas ele chega? Responda só com o horário.
Try it
Example replyReplies vary between models and runs.

12h40

A primeira resposta esqueceu os 10 minutos recuperados pelo trem: o tipo de deslize que acontece quando o modelo precisa se comprometer com a resposta nos primeiros tokens. Um modelo atual pode muito bem acertar esta de qualquer jeito; a diferença cresce com o número de passos do problema. A segunda versão tem mais uma vantagem: cada passo fica visível, então você consegue ver onde a resposta errou.

Modelos que raciocinam internamente antes de responder já fazem esse trabalho sem que ninguém peça, então "Vamos pensar passo a passo" acrescenta pouco para eles, além de uma resposta mais longa. Chain of thought aprofunda a técnica, incluindo a versão few-shot.

Zero-shot e few-shot lado a lado

Zero-shotFew-shot
O que o prompt contémInstruções, contexto e entradaO mesmo, mais alguns pares de entrada e resposta
Melhor paraTarefas comuns com uma saída fácil de descreverRótulos próprios, formatos incomuns, estilo da casa
CustoPrompt curtoPrompt mais longo, mais tokens por chamada
Falha típicaEscolhe a interpretação mais comum, não a suaCopia padrões acidentais dos exemplos

Perguntas frequentes

O que é zero-shot prompting?

Zero-shot prompting é dar uma tarefa a um modelo de linguagem só com instruções, sem nenhum exemplo resolvido da saída. "Resuma este e-mail em duas frases" é um prompt zero-shot. Os modelos de chat atuais são treinados para seguir instruções, então prompts zero-shot dão conta bem da maioria das tarefas do dia a dia.

Qual é a diferença entre prompt zero-shot e few-shot?

Um prompt zero-shot descreve a tarefa em palavras. Um prompt few-shot acrescenta alguns exemplos, cada um com uma entrada e a resposta que você quer, para que o modelo possa copiar o padrão. Comece com zero-shot; passe para few-shot quando a saída continuar errando um formato ou uma distinção que é mais fácil de mostrar do que de descrever.

Por que se chama zero-shot?

Em aprendizado de máquina, um "shot" é um exemplo resolvido. O artigo do GPT-3 de Brown et al., de 2020, "Language Models are Few-Shot Learners", testou o modelo com zero, uma ou algumas demonstrações da tarefa no prompt, e isso tornou os nomes padrão no mundo dos prompts: zero-shot, one-shot e few-shot.

Quando o prompt zero-shot não funciona?

Ele tem dificuldade quando a tarefa depende de regras que só você conhece, como as categorias da sua equipe ou o estilo da casa, quando o formato da saída é incomum e em raciocínios de várias etapas em que o modelo responde rápido demais. Exemplos resolvem os dois primeiros casos; pedir que o modelo trabalhe passo a passo ajuda no terceiro.

O que é chain of thought zero-shot?

É um prompt zero-shot que pede ao modelo que raciocine antes de responder, na forma mais famosa acrescentando "Vamos pensar passo a passo" (no original, "Let's think step by step"). Kojima et al. mostraram em 2022 que essa única frase, sem exemplos, melhorou os resultados de modelos grandes em problemas de aritmética e lógica.

Coddy programming languages illustration

Aprenda a programar com o Coddy

COMEÇAR