o problema
Em 2020 o GPT-3 mostrou que um modelo grande o bastante aprende tarefa nova com alguns exemplos no prompt. O que ele não fazia bem era zero-shot: sem exemplos, o desempenho despencava em compreensão de texto, question answering e inferência textual. A explicação que os autores do FLAN adotam é de formato. O modelo foi treinado para continuar texto da web; um prompt que não se parece com texto da web — “esta hipótese decorre desta premissa?” — não se parece com nada que ele viu. Os exemplos few-shot serviam menos para ensinar a tarefa e mais para mostrar ao modelo em que formato ele estava.
Isso é ruim na prática. Few-shot exige que alguém monte exemplos rotulados para cada tarefa e caiba tudo na janela de contexto. E o paradigma alternativo — pré-treinar e finetunar por tarefa — produz um checkpoint por tarefa, o que a esta escala é inviável. Faltava um jeito de o modelo simplesmente entender o que se pede dele, em português corrente, sem exemplo e sem checkpoint dedicado.
a ideia
Se o problema é que o modelo nunca viu instruções, mostre instruções a ele. Os autores pegam 62 datasets de NLP já existentes, agrupam em doze clusters por tipo de tarefa e reescrevem cada um como instrução em linguagem natural. Depois finetunam o modelo nessa mistura. O nome do procedimento é instruction tuning; o modelo resultante é o FLAN.
A parte interessante é a avaliação. Para medir generalização de verdade, eles removem do treino o cluster inteiro que vão avaliar — não só o dataset. Para testar inferência textual, nenhum dataset de inferência textual entra no finetuning. São, portanto, tantos modelos treinados quantos clusters avaliados. O que se mede é se aprender a seguir instruções em traduzir, resumir e classificar sentimento transfere para um tipo de tarefa que o modelo nunca viu descrita.
como funciona
O modelo base é o LaMDA-PT, decoder-only denso de 137 bilhões de parâmetros, pré-treinado em 2,49 trilhões de tokens BPE, cerca de 10% não-inglês. Para cada dataset os autores escrevem à mão dez templates de instrução, sendo até três deles com a tarefa invertida — em classificação de sentimento, por exemplo, um template pede para gerar a resenha em vez de classificá-la. Cada exemplo é formatado por um template sorteado.
Para tarefas de classificação eles anexam um sufixo OPTIONS com a lista de classes. Sem isso, a massa de probabilidade de “sim” se espalha entre as várias formas de dizer sim, e o ranking entre as respostas fica enviesado por superfície.
O treino em si é modesto: no máximo 30.000 exemplos por dataset, mistura proporcional com teto de 3.000, 30.000 passos de gradiente, batch de 8.192 tokens, Adafactor com learning rate 3e-5, entrada de 1.024 tokens e alvo de 256, packing de exemplos separados por EOS. Cerca de 60 horas em uma TPUv3 de 128 cores.
o que isso custou
O achado desconfortável está na ablação de escala. Em 422M, 2B e 8B, instruction tuning piora o desempenho nas tarefas retidas. A hipótese dos autores é que nesses tamanhos a capacidade toda é consumida em aprender as ~40 tarefas do finetuning, e não sobra nada para generalizar. O método não é uma receita geral: é uma receita para modelos grandes.
O ganho também não é universal entre tarefas. Onde a instrução é redundante — commonsense e coreferência formuladas como completar uma frase, que já é o objetivo de pré-treino — o FLAN supera o modelo base em apenas 3 de 7 datasets. Tradução para fora do inglês fica fraca, o que era esperado dado o tokenizer e os dados. A janela de 1.024 tokens exclui a maior parte das tarefas de sumarização, que ficaram de fora da avaliação apesar de estarem no treino. Os autores admitem ainda subjetividade na hora de atribuir dataset a cluster, instruções curtas de uma frase só, e o custo de servir um modelo de 137B. A análise de contaminação encontrou sobreposição alta com o pré-treino em vários datasets, sem correlação com desempenho — mas ReCoRD e PIQA ficam marcados com asterisco.
onde isso aparece hoje
A comparação do paper é direta com o GPT-3, que estabeleceu o few-shot como a forma de usar um modelo grande, e com o T5, cujo esquema de mistura proporcional é reaproveitado aqui. A diferença entre o prompt do T5, que é só uma tag de dataset, e o do FLAN, que é uma pergunta feita como se fosse a uma pessoa, é o núcleo do argumento.
Instruction tuning virou etapa padrão entre o pré-treino e o produto. O próprio paper cita o InstructGPT como trabalho concorrente que ataca o mesmo alvo acrescentando preferência humana por reinforcement learning — o supervised finetuning que abre aquele pipeline é este procedimento aqui. Entre os trabalhos futuros listados está usar o FLAN para gerar dados de treino, ideia que virou linha própria em Self-Instruct.