Few-shot: aprender pelo exemplo
Objetivos deste capítulo
- Compreender o poder dos exemplos
- Escolher o número e o tipo certos de exemplos
- Mostrar um padrão em vez de o descrever
Mostrar em vez de descrever
A Sofia passa vinte minutos a descrever o tom da sua marca: «dinâmico mas não agressivo, acessível mas credível, caloroso mas profissional»... O resultado nunca se parece com o que ela imagina. É normal: estes adjetivos são subjetivos, e o modelo tem deles uma interpretação mediana que não é a dela.
A solução cabe num princípio: mostra, não descrevas. Em vez de explicar um estilo, dá 2-3 pares entrada → saída que o ilustrem. O modelo é uma máquina de identificar e prolongar padrões: exemplos concretos transmitem-lhe o formato, o tom, o nível de detalhe e as escolhas implícitas muito melhor do que qualquer instrução abstrata. É o que se chama few-shot prompting: «few shots» = alguns exemplos.
Transforma funcionalidades em benefícios. Exemplos: Função: «bateria de 5000 mAh» → Benefício: «2 dias sem recarregar» Função: «encriptação de ponta a ponta» → Benefício: «ninguém lê as tuas mensagens, nem mesmo nós» Agora: «processador de 8 núcleos» →
Repara no que os exemplos transmitem sem que esteja escrito em lado nenhum: o comprimento alvo (curto), o registo (falado, concreto), a estrutura (resultado para o utilizador, não proeza técnica), e até o truque do «nem mesmo nós» que dá o tom. Descrever tudo isto teria ocupado um parágrafo — e teria funcionado pior.
Zero-shot, one-shot, few-shot: três regimes
O vocabulário é simples. Zero-shot: pedes sem nenhum exemplo — é o regime por omissão, suficiente para as tarefas correntes que o modelo conhece bem. One-shot: um único exemplo, útil para ancorar um formato simples. Few-shot: 2 a 5 exemplos, o regime de eleição assim que o formato ou o tom é específico ao teu uso.
O few-shot tem um custo: os teus exemplos consomem espaço na janela de contexto e tempo de escrita. A boa prática é, portanto, progressiva: começa em zero-shot; se a saída está correta, não vale a pena fazer mais. Se o formato ou o tom derivam, acrescenta exemplos. É uma escalada, não um reflexo sistemático.
Quantos exemplos? A regra do 2 a 5
2 a 5 exemplos chegam na imensa maioria dos casos. Abaixo de 2, o modelo não consegue distinguir o padrão do acidente (esta saída é curta porque É PRECISO ser curto, ou por acaso?). Acima de 5, os ganhos tornam-se marginais: consomes contexto e tempo sem melhoria mensurável.
Mais importante do que o número: a diversidade. Escolhe exemplos que cubram os casos diferentes que a tarefa encontrará — um caso fácil, um caso retorcido, um caso limite — em vez de cinco variações do mesmo caso confortável. Se a Sofia só mostra funcionalidades técnicas de smartphone, o modelo vai patinar em «garantia de 2 anos». Um exemplo não técnico no lote resolve o problema de antemão.
Pensa também na ordem: o modelo dá um pouco mais de peso aos últimos exemplos. Coloca em último o que mais se parece com as entradas que vais tratar. E mantém um formato estritamente idêntico de um exemplo para outro: mesmo separador, mesma pontuação, mesma capitalização.
A coerência do padrão: o teu contrato implícito
Os teus exemplos formam um contrato implícito: tudo o que é constante nos teus exemplos será interpretado como uma regra; tudo o que varia será interpretado como livre. Se dois dos teus exemplos terminam com um ponto e o terceiro não, envias um sinal contraditório — e a saída será incoerente por sua vez.
É a causa número um dos few-shot que falham: não são exemplos a menos, mas exemplos que se contradizem num detalhe que não reparaste. Antes de acusar o modelo, relê os teus exemplos como um revisor: comprimentos comparáveis? estrutura idêntica? tom homogéneo? mesma pessoa gramatical? O diabo está nestes detalhes.
flowchart LR E1["Exemplo 1: entrada → saída"] --> P["Padrão identificado: formato, tom, comprimento"] E2["Exemplo 2: entrada → saída"] --> P E3["Exemplo 3: caso limite → saída"] --> P P --> N["Nova entrada"] N --> S["Saída que segue o padrão"] E2 -.->|"Exemplo incoerente"| X["Padrão baralhado → saída imprevisível"]
Antes/depois: o tom de marca da Sofia
Versão descritiva (a que falha):
Reescreve esta descrição de produto com um tom dinâmico mas não agressivo, acessível mas credível: «O nosso software otimiza a gestão dos horários das vossas equipas.»
O resultado cai sistematicamente no marketing genérico: «Impulsione as suas equipas com uma solução inovadora...». Versão few-shot (a que funciona):
Reescreve descrições de produto no nosso tom de marca. Exemplos: Antes: «O nosso módulo de RH automatiza o acompanhamento das férias.» Depois: «Pedidos de férias? Validados em 30 segundos, sem folhas de cálculo, sem emails perdidos.» Antes: «O nosso painel de controlo centraliza os vossos indicadores.» Depois: «Todos os teus números no mesmo sítio. Abres, sabes, decides.» Agora: Antes: «O nosso software otimiza a gestão dos horários das vossas equipas.» Depois:
Porque é que funciona: os exemplos mostram as frases curtas, o ritmo ternário, o tratamento direto do leitor, o benefício concreto quantificado — tudo o que «dinâmico mas não agressivo» falhava em transmitir. A Sofia nunca mais descreveu o seu tom: mostra-o.
Quando o few-shot brilha (e quando falha)
O few-shot é excelente nas tarefas com formato preciso e repetitivo: reformular descrições de produto, classificar mensagens em categorias, extrair informações num modelo fixo, gerar variantes homogéneas, imitar um tom de marca. Onde quer que possas dizer «faz assim», ele bate a instrução abstrata.
É, em contrapartida, pouco útil, ou mesmo contraproducente, noutros lados. Nas tarefas de raciocínio complexo, exemplos de respostas finais não ensinam nada sobre o caminho para lá chegar (veremos melhor no capítulo 3). Nas tarefas criativas abertas, demasiados exemplos fecham o modelo nos teus casos e empobrecem a variedade. E nas tarefas que o modelo já domina perfeitamente, é esforço desperdiçado.
Contexto
A Sofia tem de transformar uma lista de 15 funcionalidades de produto em benefícios para clientes, para o novo site. As três primeiras tentativas em zero-shot dão formulações corretas mas heterogéneas: umas longas, outras curtas, tons que variam de linha para linha. Impossível colocá-las lado a lado na mesma página. Ela tem, no entanto, duas fichas de produto antigas cujo estilo adora — exatamente a matéria-prima necessária para um few-shot.
Instruções
- Escolhe uma tarefa repetitiva do teu dia a dia (descrições, títulos, respostas-tipo).
- Seleciona 2-3 saídas existentes com que estejas verdadeiramente satisfeito: serão os teus exemplos.
- Formata-as em pares entrada → saída estritamente idênticos (mesmo separador, mesma pontuação).
- Verifica a sua diversidade: acrescenta um caso limite ou atípico se todos os teus exemplos se parecerem.
- Acrescenta a nova entrada a tratar e lança o prompt.
- Compara com a versão zero-shot: anota o que os exemplos transmitiram sem instrução explícita.
- Se a saída desviar, procura a incoerência entre os teus exemplos antes de reescrever tudo.
Em resumo
- Mostrar 2-3 exemplos vale mais do que descrever um estilo: o modelo prolonga padrões melhor do que interpreta adjetivos.
- Zero-shot para as tarefas genéricas, few-shot assim que o formato ou o tom é específico: escala progressivamente.
- 2 a 5 exemplos chegam; para além disso, consomes contexto sem ganho mensurável.
- A diversidade dos exemplos conta mais do que o seu número: cobre os casos limites.
- Tudo o que é constante nos teus exemplos torna-se uma regra implícita; toda a incoerência baralha o padrão.
- Coloca o exemplo mais representativo em último: pesa um pouco mais.
- O few-shot brilha no repetitivo e no formato; é inútil no trivial e limitante no criativo aberto.
Quiz — verifica a tua compreensão
1. Quantos exemplos visar em few-shot?
2. Porque é que a saída pode não seguir o padrão?
3. O que é o zero-shot?
4. O que transmitem os exemplos que uma instrução abstrata transmite mal?
5. Em que tipo de tarefa é o few-shot menos útil?