- O σ-GPT separa a ordem de entrada dos dados da ordem de geração autorregressiva, permitindo que o Transformer aprenda e gere sequências mesmo em ordem arbitrariamente embaralhada
- Modelos autorregressivos tradicionais costumam seguir arranjos naturais, como a ordem da esquerda para a direita em texto ou a ordem de raster scan em imagens, mas essas duas ordens não precisam necessariamente ser iguais
- Para cada amostra, uma ordem de embaralhamento aleatória σ é escolhida dinamicamente, e duas codificações posicionais correspondentes às ordens de entrada e saída são anexadas para manter o processo autorregressivo consistente
- Em qualquer momento durante a geração, é possível estimar a distribuição condicional dos tokens restantes, o que permite expandir para amostragem em posições arbitrárias, geração condicional arbitrária, infilling e burst sampling
- Quando combinado com aprendizado por currículo, o método pode alcançar desempenho semelhante ao de modelos autorregressivos da esquerda para a direita, e com rejection sampling baseado em tokens é possível gerar vários tokens em unidades de burst
Separação entre ordem de entrada e ordem de geração
- Transformers vêm demonstrando forte desempenho autorregressivo em várias modalidades
- A abordagem autorregressiva tradicional segue a ordem natural dos dados
- Em texto, o processamento normalmente é feito da esquerda para a direita
- Em visão, a sequência obtida ao desenrolar a imagem em ordem de raster scan é modelada com Transformer
- O σ-GPT distingue a ordem de entrada dos dados da ordem autorregressiva
- Na maioria das aplicações, essas duas ordens estão alinhadas, mas não precisam ser necessariamente iguais
- O trabalho explora aprender e gerar sequências em uma ordem arbitrariamente embaralhada
- Alterar a ordem da sequência torna o treinamento mais difícil, mas dá ao modelo novas propriedades, como geração condicional em posições arbitrárias
Arquitetura e funcionamento do σ-GPT
- O σ-GPT pode escolher dinamicamente uma ordem de embaralhamento aleatória σ para cada amostra
- A σ escolhida cria a ordem de entrada
0, σ(1), σ(2), ...e a ordem de saídaσ(1), σ(2), σ(3), ...- Na entrada, um padding
0é adicionado primeiro para manter consistente o número de tokens - Os tokens são embaralhados de acordo com essa ordem
- Na entrada, um padding
- Duas codificações posicionais são concatenadas à entrada do modelo
- Uma corresponde à ordem de entrada
- A outra corresponde à ordem de saída
- No fim, a saída é restaurada para a ordem real
- Código aberto: https://github.com/idiap/sigma-gpt
Comparação com GPT padrão e modelos de difusão
- O σ-GPT é comparado com o GPT, um causal transformer encoder padrão, e com modelos de difusão
- Os recursos suportados são os seguintes
- Amostragem de tokens em posições arbitrárias da sequência
- Modelagem da densidade restante condicionada a uma sequência parcialmente amostrada
- Geração condicional arbitrária
- Infilling
- Burst sampling, em que vários tokens são gerados de uma vez
- Treinamento de log-verossimilhança baseado em entropia cruzada
- Em comparação, o GPT padrão consegue geração condicional arbitrária e treinamento por log-verossimilhança, mas não oferece suporte a amostragem em posições arbitrárias, estimativa de densidade condicional, infilling nem burst sampling
- Em comparação, modelos de difusão suportam burst sampling, mas não treinamento por log-verossimilhança
Distribuição condicional durante a geração e rejection sampling
- Ao sair da ordem autorregressiva padrão, o modelo pode prever tokens de acordo com uma ordem específica
- Nessa abordagem, é possível prever a distribuição condicional dos tokens restantes em qualquer momento da geração
- A estimativa da distribuição condicional é usada para quantificar os possíveis resultados de geração em um determinado momento
- Aplicando isso a rejection sampling, é possível gerar a sequência em bursts com um número dinâmico de etapas
Tarefas de avaliação e contribuições
- O σ-GPT introduz a autorregressão com embaralhamento e avalia se, em combinação com um método de currículo, é possível melhorar o desempenho do modelo base
- A avaliação cobre três tarefas principais
- Geração de texto aberto
- Resolução de caminhos
- Previsão da velocidade vertical de aeronaves
- As contribuições são resumidas em quatro pontos
- Introdução da arquitetura σ-GPT, com duas codificações posicionais correspondentes, respectivamente, às ordens de entrada e saída
- Demonstração de que, com aprendizado por currículo, é possível alcançar desempenho semelhante ao de modelos autorregressivos da esquerda para a direita
- Demonstração de que a geração de amostras em ordem arbitrária permite geração condicional sobre qualquer parte da sequência
- Introdução de um método de rejection sampling baseado em tokens para geração de amostras em bursts
1 comentários
Comentários do Hacker News
Parece muito promissor. Durante o treinamento, os tokens de entrada são embaralhados aleatoriamente, e dois tipos de codificação posicional são anexados a cada token: um para a posição daquele token e outro para a posição do token a ser previsto
Fora isso, é um GPT autorregressivo padrão, mas o resultado dessa mudança aparentemente simples é grande. Se você der parte da sequência como prompt ao modelo treinado, ele pode decodificar em paralelo, de uma só vez, os tokens ausentes sem depender da ordem, e também calcular em paralelo a densidade de probabilidade condicional de todos os tokens faltantes
Além disso, os autores propõem um método de geração por preenchimento paralelo baseado em amostragem por rejeição, e aparentemente funciona bem na prática
I . . . . . . . . happily., não seria o caso de a segunda palavra prevista depender da primeira?Algo antigo[1] virou novo de novo, mas sem citar o trabalho anterior. Não era uma pesquisa obscura: saiu na ICML e tem cerca de 250 citações
[1]: https://arxiv.org/abs/1902.03249
É um conceito realmente muito legal. Fico curioso se isso começa a se parecer com a dinâmica vista em modelos de geração de imagens. Estrutura e detalhes surgem em uma região da imagem, e as áreas ao redor vão gradualmente se ajustando e se resolvendo
Esse comportamento parece especialmente útil para raciocínio/lógica/planejamento longos. A grande ideia pode aparecer primeiro, e depois os detalhes intermediários e o texto podem ser preenchidos naturalmente
Há um vídeo no Twitter gerando texto. Parece um pouco com difusão de imagem
https://x.com/ArnaudPannatier/status/1799055129829839166
Fiquei pensando neste artigo o dia todo, e gostei muito das capacidades. Coisas relativamente difíceis em LLMs sequenciais aqui ficam fáceis
Se você quiser JSON, basta fixar o token de chave no início e no fim. Se quiser uma explicação de resposta com um comprimento específico em tokens, dá para colocar uma resposta curta no final e preencher o meio
Se quiser respostas com maior densidade de informação, dá para adicionar ao texto gerado uma seção de avaliação de densidade e um espaço para a LLM pontuar essa densidade, e então gerar buscando pontuações altas. Parece haver muito para experimentar, e embora o artigo use cerca de 3x mais tokens, eu adoraria ver isso em um modelo de 8B parâmetros com uma quantidade de tokens razoável
Mas existe um jeito melhor. Se você restringir a saída da LLM a uma gramática específica, como JSON, ela pode ser forçada a responder apenas com JSON sintaticamente válido
Fico me perguntando se isso ajudaria especialmente na geração de código. O que deve ser emitido em uma etapa pode depender de forma substancial do que será escrito em etapas posteriores
Pesquisa interessante. Uma abordagem de permutação parecida já aparece no artigo do Taylorformer (https://arxiv.org/pdf/2305.19141v1)
Os autores usam um decoder Transformer para processos contínuos como séries temporais e embaralham aleatoriamente cada sequência durante o treinamento. Cada elemento da sequência tem codificação posicional, e a log-verossimilhança é usada sobre a sequência embaralhada
Lá, a permutação ajuda na previsão de interpolação, extrapolação e dados amostrados irregularmente. Também parece ajudar na “consistência”, em que o erro quadrático médio tende a ser o mesmo independentemente da ordem de geração
Fico curioso sobre o que este artigo acrescenta ao entendimento ou à aplicação dessas ideias. A ideia de embaralhar a ordem da sequência também aparece no artigo Transformer Neural Process: https://arxiv.org/pdf/2207.04179
Isso seria aplicar à linguagem Transformer o que foi aprendido com vision Transformers?
Pelo que entendi, modelos de visão dividem a imagem em tiles e anexam codificação posicional a cada tile para que o modelo entenda a posição relativa entre eles
Sinceramente, só li o resumo e muita coisa é difícil, mas este artigo parece propor uma ideia parecida em 1D em vez de 2D
O treinamento é mais difícil, mas isso aparentemente permite gerar vários tokens de uma vez. Ou seja, uma resposta de N tokens pode ser obtida em N/x etapas em vez de N etapas
Fico curioso se há código disponível. Não acho que entendi completamente essa questão de posição dupla e embaralhamento. Também é interessante que tenham concatenado os valores posicionais em vez de somá-los
Yann LeCun diria que a própria autorregressão é o problema e que, com esse tipo de aprendizado de máquina, não se chega nem perto de AGI[0]
Pelo menos enquanto se permanecer dentro do paradigma autorregressivo, o problema das alucinações não pode ser resolvido
[0] https://twitter.com/ylecun/status/1640122342570336267
Os autores do artigo original não afirmam que este trabalho ajuda a chegar mais perto de AGI. Eles apenas fizeram LLMs autorregressivas conseguirem fazer algo novo que antes não conseguiam
Também não acho que a maioria das tarefas precise de AGI. Ainda mais se a intenção não for criar sofrimento em um ser consciente
Intuitivamente, alguns tokens são mais difíceis que outros. Pode haver tokens-chave na saída e, depois deles, os tokens restantes podem ficar muito mais fáceis. Além disso, mesmo em um esquema autorregressivo, dá para se recuperar de um token errado emitindo algo como
actually no...Dependendo da forma de amostragem dos tokens, pode ser possível tratar a geração proposta como um todo e corrigi-la. Não sei se o método de amostragem proposto neste artigo faz isso neste momento, mas parece possível com base nas informações probabilísticas obtidas