Os termos "zero-shot" e "few-shot" vêm da tradição de pesquisa em machine learning, onde "shot" refere-se a um exemplo de treinamento. Em ML clássico, você precisava de milhares ou milhões de exemplos rotulados para ensinar um modelo uma nova tarefa. A revelação com large language models foi que podiam realizar tarefas com zero exemplos de treinamento (zero-shot) ou apenas um punhado de demonstrações no prompt (few-shot). Isso é chamado "in-context learning", e permanece uma das capacidades mais notáveis dos LLMs modernos — o modelo não está sendo retreinado ou fazendo fine-tuning quando você dá exemplos no prompt. Está reconhecendo padrões em seu contexto e aplicando-os instantaneamente.
Zero-shot funciona melhor quando a tarefa mapeia claramente para algo que o modelo viu extensivamente no treinamento. Análise de sentimento, tradução, sumarização, classificação simples — essas são tarefas que o modelo encontrou em milhões de variações durante o pré-treinamento, então uma instrução clara é frequentemente suficiente. "Classifique esta avaliação de cliente como positiva, negativa ou neutra" funcionará zero-shot em qualquer modelo de fronteira moderno. Onde zero-shot falha é em tarefas com formatos incomuns, convenções específicas de domínio ou requisitos ambíguos.
Prompting few-shot preenche essa lacuna. Ao fornecer 2 a 5 exemplos de entrada-saída antes da requisição real, você mostra ao modelo exatamente o que espera. O modelo capta o padrão — o formato, o nível de detalhe, o estilo, o tratamento de casos extremos — e aplica à nova entrada. Isso é notavelmente poderoso para tarefas estruturadas. Precisa extrair entidades de texto confuso para um formato JSON específico? Mostre três exemplos de texto confuso mapeados para JSON limpo, depois dê o novo texto. O modelo está essencialmente aprendendo uma função dos seus exemplos, e está fazendo isso em tempo de inferência sem nenhuma atualização de gradiente.
A qualidade dos seus exemplos few-shot importa mais que a quantidade. Três exemplos cuidadosamente escolhidos que cobrem diferentes casos extremos superarão dez repetitivos. Se sua tarefa envolve categorias, inclua pelo menos um exemplo por categoria. Se há casos de fronteira complicados, inclua um. E a ordem dos exemplos pode importar — pesquisa mostrou que modelos podem ser enviesados em direção ao rótulo do último exemplo que veem, então embaralhar ou equilibrar seus exemplos vale a pena. Uma dica prática: inclua um exemplo do que o modelo deveria fazer quando a entrada é ambígua ou não se encaixa em nenhuma categoria, porque esse caso extremo aparece constantemente em produção.
Há um trade-off custo-qualidade a considerar. Cada exemplo few-shot consome tokens da sua janela de contexto e adiciona aos seus custos de API. Cinco exemplos de 200 tokens cada são 1.000 tokens por requisição, que se acumulam em escala. Algumas equipes começam com prompting few-shot durante o desenvolvimento, medem quais exemplos estão realmente melhorando resultados, e então tentam destilar o padrão em uma instrução zero-shot mais clara. Outros usam seleção dinâmica de few-shot — armazenando uma biblioteca de exemplos em um banco de dados e recuperando os mais relevantes para cada entrada específica, que é essencialmente uma forma leve de RAG aplicada a prompt engineering. O ponto ideal depende da complexidade da sua tarefa, seu volume e se consistência ou custo importa mais para seu caso de uso.