antonio leandro

ia generativa

Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer

paper · Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, Peter J. Liu ·

a tese

o ganho de um método novo de pré-treino quase nunca vem do método: quando você fixa formato, dados e escala e mexe num botão de cada vez, a maioria das escolhas de objetivo e arquitetura empata

o que fica

  1. Colocar toda tarefa no formato texto-para-texto elimina a cabeça específica por tarefa: classificação vira gerar a palavra "entailment" e a regressão do STS-B vira gerar a string "2,6", ou seja, um problema de 21 classes.
  2. Um encoder-decoder tem o dobro dos parâmetros de um decoder-only equivalente, mas custa os mesmos FLOPs, porque cada pilha só roda sobre metade da sequência — e foi a arquitetura que venceu em todas as tarefas testadas.
  3. Quase todo objetivo de denoising empata entre si; a diferença que sobra é o comprimento do target, então a escolha racional é a que treina mais rápido, não a que "aprende melhor".
  4. O filtro do C4 descarta qualquer página que contenha a chave "{", o que remove código-fonte do corpus inteiro por construção.
  5. Repetir o corpus de pré-treino 64 vezes quase não cobra nada, mas 4.096 vezes derruba o GLUE de 83,28 para 76,34 enquanto a loss de treino cai — o modelo está memorizando, não aprendendo.
  6. Escala não explica tudo: com o mesmo trilhão de tokens do T5, o modelo baseline fica atrás do T5-Base em todas as tarefas, e a diferença é só o conjunto de decisões do estudo.

o problema

Entre 2018 e 2019, transfer learning para nlp virou uma enxurrada. Cada trabalho novo trocava o objetivo de pré-treino, o corpus não rotulado, a arquitetura, o vocabulário e a escala — tudo ao mesmo tempo — e reportava um número melhor no GLUE. Não dava para saber de onde vinha o ganho. Era do objetivo mascarado? Do corpus dez vezes maior? De treinar por mais passos? Todo mundo tinha uma hipótese e ninguém tinha o experimento.

Pior: os corpora quase nunca eram publicados. BERT usava Wikipedia mais Toronto Books Corpus, o WebText do GPT-2 não era público, cada laboratório tinha o seu. E como as tarefas tinham formatos diferentes — classificação com uma cabeça, extração de span com outra, tradução com um decoder —, um mesmo objetivo de pré-treino nem sequer podia ser avaliado sobre o conjunto todo. Comparar era um ato de fé.

a ideia

Para variar um botão de cada vez, é preciso que todo o resto seja o mesmo. Os autores forçam isso pela raiz: toda tarefa entra como texto e sai como texto. A entrada ganha um prefixo que diz o que fazer — translate English to German: That is good. — e o alvo é Das ist gut. Tradução, resumo, inferência, sentimento e até regressão passam pela mesma loss de máxima verossimilhança e pelo mesmo decoder.

O paper diz com todas as letras que não está propondo método novo. O texto-para-texto é o instrumento de medição, não a contribuição. A contribuição é a bancada: um baseline honesto, rodado dez vezes para ter desvio padrão, e depois dezenas de variantes trocando um fator por vez.

como funciona

O baseline é um Transformer encoder-decoder com 12 blocos de cada lado e cerca de 220 milhões de parâmetros — encoder e decoder do tamanho de um BERT-base cada. Duas mudanças em relação ao Transformer original: layer norm sem bias aditivo e fora do caminho residual, e position embedding relativo simplificado — um escalar somado ao logit de atenção, com 32 buckets que crescem logaritmicamente até offset 128, compartilhados entre camadas.

O objetivo de pré-treino corrompe 15% dos tokens. Cada span consecutivo corrompido some e vira um sentinel token único no exemplo; o alvo é só a concatenação dos spans removidos, delimitados pelos mesmos sentinels. Alvo curto, treino rápido. Na versão final, os spans são amostrados de propósito com comprimento médio 3 em vez de i.i.d.

O corpus é o C4: um mês do Common Crawl (abril de 2019) passado por heurísticas — só linhas terminadas em pontuação, fora páginas com menos de três frases, fora “lorem ipsum”, fora “javascript”, fora páginas com chave, fora lista de palavrões, deduplicação de trechos de três frases, detecção de inglês com probabilidade mínima de 0,99. Sobram 745 GB. Sem os filtros seriam 6,1 TB — e o desempenho cai em toda tarefa.

O baseline pré-treina em cerca de 34 bilhões de tokens. Os modelos finais vão de 60 milhões a 11 bilhões de parâmetros, pré-treinam em cerca de 1 trilhão de tokens sobre uma mistura multi-task, e fecham state-of-the-art em 18 das 24 tarefas: GLUE 90,3, SuperGLUE 88,9 contra 89,8 humano, SQuAD 91,26 de exact match.

o que isso custou

O método é subida por coordenada: um fator por vez, a partir de um baseline fixo. Os próprios autores admitem que isso perde efeitos de segunda ordem — um objetivo pode ser ruim no tamanho base e ótimo em 11 bilhões, e o estudo não veria.

Em tradução, não houve state-of-the-art nenhum. O pré-treino é só em inglês, e os melhores resultados de WMT usam backtranslation. O vocabulário SentencePiece de 32.000 wordpieces é treinado numa mistura fixa de inglês, alemão, francês e romeno — o modelo só processa as línguas decididas antes de treinar.

O que não funcionou também é resultado. Adapter layers e gradual unfreezing ficaram atrás de atualizar todos os parâmetros. Multi-task learning puro perdeu para pré-treinar e depois fazer fine-tuning; só a combinação das duas coisas empatou. E como todas as variantes de denoising deram na mesma, os autores concluem que continuar mexendo nessa família provavelmente não rende — o caminho seria usar dados não rotulados de um jeito inteiramente diferente.

Sobra a inconveniência do tamanho. O modelo de 11 bilhões é caro de servir, e o servidor de avaliação do SQuAD nem conseguiu rodar inferência com ele — o número reportado é de validação.

onde isso aparece hoje

O C4 foi publicado no TensorFlow Datasets e virou corpus de pré-treino padrão, com todas as suas heurísticas embutidas — inclusive a que apaga código. Os pesos de T5 em cinco tamanhos foram liberados e viraram base de família inteira de modelos seq2seq. E a ideia de descrever a tarefa ao modelo com um prefixo em linguagem natural, em vez de com uma cabeça treinada, é a semente direta do prompt como interface.

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