antonio leandro

ia generativa

Language Models are Few-Shot Learners

paper · núcleo · Tom B. Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, et al. ·

a tese

Escalar um modelo autoregressivo até 175 bilhões de parâmetros move a especificação da tarefa do gradiente para o prompt: exemplos no contexto substituem fine-tuning em boa parte dos benchmarks, sem atualizar um peso.

o que fica

  1. Modelos maiores não só sabem mais, eles aproveitam melhor o exemplo dado no contexto: a curva do few-shot sobe mais rápido que a do zero-shot conforme o modelo cresce.
  2. No SuperGLUE, GPT-3 com 32 exemplos no contexto tira 71,8 de média contra 69,0 de um BERT-Large fine-tuned — e bastam menos de oito exemplos por tarefa para passar o BERT-Large.
  3. Onde a tarefa é comparar dois trechos, o few-shot desaba: WiC fica em 49,4%, ou seja, acaso. Os autores atribuem isso à ausência de bidirecionalidade no modelo.
  4. GPT-3 acerta 100% das somas de 2 dígitos e 9,3% das de 5 dígitos; uma busca no corpus achou os problemas de 3 dígitos em só 0,8% dos casos, o que indica cálculo e não tabela memorizada.
  5. Um bug deixou passar parte da contaminação entre treino e teste, e retreinar era caro demais — então os autores mediram o efeito post-hoc e marcaram PIQA e Winograd com asterisco.
  6. Humanos acertam 52% ao julgar se uma notícia de 200 palavras foi gerada pelo modelo; contra um modelo deliberadamente ruim, acertam 86%.

o problema

O paradigma que dominava o nlp em 2020 era pré-treino seguido de fine-tuning. A arquitetura era genérica, mas o uso não: para cada tarefa nova você precisava de um dataset rotulado com milhares a centenas de milhares de exemplos e de uma rodada de treino que produzia um modelo dedicado àquela tarefa. Isso limita o alcance da coisa. Existe um espectro enorme de tarefas úteis — corrigir gramática, criticar um conto, gerar exemplos de um conceito abstrato — para as quais montar esse dataset é caro ou simplesmente inviável.

O segundo problema é mais sutil e os autores insistem nele. Quanto mais expressivo o modelo e mais estreita a distribuição de fine-tuning, maior a chance de ele explorar correlação espúria do dataset em vez de aprender a tarefa. O número do benchmark passa a exagerar a competência real, inclusive quando é nominalmente humano. E há o contraste incômodo: uma pessoa aprende a tarefa com uma instrução em linguagem natural ou dois exemplos, e consegue trocar de tarefa no meio de uma conversa.

a ideia

Se o texto da internet já contém tarefas embutidas — traduções lado a lado, perguntas e respostas, listas de definições —, então o pré-treino não ensina só estatística de palavra: ensina a reconhecer que existe uma tarefa em curso e a continuá-la. Nesse enquadramento há dois loops. O externo é o pré-treino, que atualiza pesos. O interno acontece dentro de um único forward pass, quando o modelo lê os exemplos do prompt e infere o que fazer. É esse loop interno que o paper batiza de in-context learning.

A hipótese que dá o título ao trabalho é que essa habilidade escala com o tamanho do modelo. Não é uma afirmação filosófica, é uma curva a ser medida — e por isso o paper treina oito modelos, de 125 milhões a 175 bilhões de parâmetros, e mede os três regimes em cada um.

como funciona

A arquitetura é a do GPT-2, com uma diferença: camadas de atenção densa alternando com atenção esparsa em banda local, no estilo do Sparse Transformer. O maior modelo tem 96 camadas, d_model de 12.288, 96 attention heads e janela de contexto de 2.048 tokens. Todos os oito modelos veem os mesmos 300 bilhões de tokens.

A mistura de treino não é proporcional ao tamanho das fontes: Common Crawl filtrado entra com 410 bilhões de tokens mas só 60% do peso, enquanto a Wikipédia entra com 3 bilhões e 3% — na prática o Common Crawl é visto 0,44 vez e a Wikipédia 3,4 vezes. Trocaram um pouco de overfitting por qualidade média maior.

A avaliação é a parte que interessa a quem escreve prompt. Para cada exemplo de teste, K demonstrações são sorteadas do conjunto de treino da tarefa e concatenadas no contexto, separadas por uma ou duas quebras de linha. K vai de 0 até o que couber em 2.048 tokens, tipicamente de 10 a 100. Em múltipla escolha o modelo não gera nada: compara-se a likelihood por token de cada opção. Em resposta livre, beam search com largura 4 e penalidade de comprimento 0,6. Nenhuma atualização de gradiente em nenhum momento.

o que isso custou

A lista de fracassos é longa e os autores a apresentam sem maquiagem. Tarefas que exigem comparar dois trechos — WiC, ANLI, RTE — ficam no acaso ou perto dele; a hipótese deles é que a arquitetura autoregressiva, sem bidirecionalidade, paga caro aí. Textos longos perdem coerência, se repetem e se contradizem. “Common sense physics” falha: perguntas do tipo “se eu colocar queijo na geladeira, ele derrete?” dão problema.

Há um custo metodológico que virou lição para a área inteira. O filtro que removeria sobreposição entre treino e teste tinha um bug, e retreinar não era pagável. Os autores então construíram versões limpas de cada benchmark, mediram a diferença, marcaram PIQA e Winograd com asterisco e descartaram de vez os benchmarks de modelagem de linguagem baseados em Wikipédia.

E há o custo que eles nomeiam sem resolver: não dá para saber se o few-shot aprende uma tarefa nova em tempo de inferência ou apenas reconhece uma tarefa já vista no pré-treino. A análise de viés é igualmente direta — 83% das 388 ocupações testadas têm mais chance de ser seguidas por um identificador masculino, e “terrorism” e “violent” aparecem entre as palavras mais associadas ao Islã.

onde isso aparece hoje

O vocabulário zero-shot, one-shot e few-shot saiu daqui e virou a régua padrão para reportar resultado de modelo de linguagem. A checagem de contaminação entre treino e teste deixou de ser opcional em papers de escala. E o prompt como interface — a ideia de que você especifica a tarefa escrevendo, não treinando — é a consequência direta deste trabalho para quem usa esses modelos via API.

O próprio paper aponta para onde ir depois: aprender a função objetivo a partir de humanos, fine-tuning com aprendizado por reforço e adicionar outras modalidades. As três direções foram seguidas.

lido na íntegra por pipeline de llm, revisado por antonio leandro antes de publicar ·