o problema
Em 2022 a receita de instruction tuning já era conhecida: pegue um modelo pré-treinado, ajuste em pares de instrução e resposta, e ele passa a generalizar zero-shot para tarefas que nunca viu. O contraste é brutal nos números do próprio paper: GPT-3 puro tira 6,8 de ROUGE-L no SuperNI. Não é que ele responda mal — na análise manual dos autores, ele gera texto irrelevante e repetitivo e não sabe quando parar. O mesmo modelo, ajustado, tira 39,9.
O insumo dessa receita era humano. PromptSource, SuperNI: pessoas escrevendo instruções à mão. Isso é caro e, pior, é enviesado. Quem escreve instrução em escala escreve as tarefas que conhece, e as tarefas que a área conhece são classificação, extração de entidade, inferência textual. Falta a variedade real do que alguém pede a um modelo. E a alternativa que funcionava — InstructGPT — foi construída com dados privados de usuário e anotação paga. Ninguém de fora conseguia replicar nem auditar.
a ideia
Tirar o dado do próprio modelo. Não é destilação no sentido usual: aqui a origem e o destino são o mesmo davinci de 175B, e o que se transfere não é uma distribuição de saída, é uma definição de tarefa.
O truque explora uma assimetria. O modelo cru não sabe seguir instrução, mas sabe continuar padrão. Mostre a ele oito instruções numa lista numerada e ele completa a nona, a décima, a décima primeira. Escreva “Task 1… Task 8… Task 9:” e sai um catálogo de tarefas que ninguém redigiu. Depois é só pedir, com o mesmo mecanismo de few-shot, que ele instancie cada tarefa com input e output. O loop se realimenta: o que passa no filtro volta para o pool e serve de exemplo na rodada seguinte.
como funciona
O pipeline tem quatro passos.
Geração de instrução. O pool começa com 175 tarefas escritas pelos autores e colegas (25 de classificação, 150 fora dela). A cada passo, oito instruções são amostradas como exemplos in-context — seis humanas e duas geradas em rodadas anteriores, proporção fixa para empurrar diversidade sem deixar o loop degenerar.
Identificação de classificação. Um prompt few-shot com 12 instruções de classificação e 19 de não-classificação decide o tipo da tarefa nova. A definição operacional é simples: espaço de rótulos pequeno e finito.
Geração de instância. Aqui está a decisão mais interessante. Para tarefas comuns vale a abordagem input-first: o modelo inventa o input a partir da instrução e depois resolve. Para classificação isso quebra — pedindo exemplos de detecção de erro gramatical, o modelo gera frases gramaticais. A solução é output-first: gera primeiro o rótulo, depois condiciona a criação do input naquele rótulo.
Filtro. Instrução nova entra só se o ROUGE-L máximo contra o pool for menor que 0,7. Fora disso, heurísticas: descarta instrução com palavras que o modelo não processa (image, picture, graph), instância duplicada, mesmo input com output diferente, instrução longa ou curta demais, output que é repetição do input.
O resultado são 52.445 instruções e 82.439 instâncias, 35.878 delas sem input. Instrução com 15,9 palavras em média, output com 18,9. O finetuning concatena instrução e input como prompt e treina o output de forma supervisionada, variando os templates de propósito (“Task:” ou não, quebras de linha diferentes) para o modelo não decorar um formato. Duas épocas, prompt loss weight zero.
o que isso custou
A revisão manual é honesta e desconfortável: 92% das instruções descrevem tarefa válida, 79% dos inputs são apropriados, mas só 58% dos outputs estão corretos — e só 54% dos exemplos têm tudo válido ao mesmo tempo. O argumento dos autores é que erro em formato correto ainda supervisiona. Funciona, mas define o teto: regenerar os outputs com um modelo instruído melhor deu mais 10%.
Dado humano específico do domínio continua ganhando no domínio dele: o Tk-Instruct de 11B tira 46,0 no SuperNI, acima dos 39,9 do modelo de 175B com dados sintéticos. Self-Instruct aparece como complemento — somado ao treino do SuperNI, sobe para 51,6.
Os autores listam três limitações. Ganhos de LM se concentram na cabeça da distribuição de uso da língua, então o método deve ser frágil justamente nas instruções incomuns e criativas. Ele depende de vieses indutivos que só modelos grandes têm, o que exclui quem não tem computação. E o loop pode amplificar estereótipos — na prática, o algoritmo teve dificuldade em produzir rótulos balanceados, refletindo o viés prévio do modelo. Vale notar também que a avaliação humana das 252 instruções novas foi feita por autores do trabalho, com concordância moderada entre os dois (κ de 0,58 nas quatro notas, 0,75 quando reduzidas a aceitável ou não).
O custo em dinheiro é a parte que envelheceu melhor como argumento: 600 dólares para gerar o dataset inteiro e 338 para o finetuning. Um projeto de anotação virou linha de orçamento.
onde isso aparece hoje
O paper cita como adoção da ideia o Stanford Alpaca, o Baize e o self-align de Sun et al. Alpaca é o caso que popularizou o método: aplicar essa geração sobre o LLaMA mostrou que qualquer laboratório com um modelo aberto podia produzir um assistente utilizável em dias, e não em trimestres de anotação.
A consequência mais duradoura é normativa. Dado de treino sintético deixou de ser gambiarra e virou instrumento padrão — a linha que leva a trabalhos como Textbooks Are All You Need parte do mesmo pressuposto de que a curadoria do dado vale mais que o tamanho do corpus. E o próprio Self-Instruct existe como resposta pública ao que InstructGPT fez a portas fechadas sobre o GPT-3, na mesma safra em que FLAN defendia a via da anotação humana em escala.