1 pontos por GN⁺ 2024-06-09 | 1 comentários | Compartilhar no WhatsApp
  • 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
  • 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

 
GN⁺ 2024-06-09
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

    • Essa formulação do problema já existe há bastante tempo e era algo como um santo graal da modelagem. A parte que parece nova em comparação com a linha PixelCNN é a ideia de embedding posicional
    • Não estou entendendo bem como essa previsão paralela é possível. Por exemplo, se a entrada for I . . . . . . . . happily., não seria o caso de a segunda palavra prevista depender da primeira?
    • Se isso realmente funcionar, é algo impressionante. Como acontece com muitas descobertas elegantes, depois de ouvir você pensa: “ah, dito assim parece óbvio”
    • Eu achava que o BERT já fazia mascaramento não causal, ou seja, previsão de palavras no meio da sequência
    • Sei que isso é para tokens/texto, mas fico curioso se o mesmo conceito poderia ser aplicado a imagens de um jeito parecido com modelos de difusão. Se desse, talvez fosse possível fazer upscaling de imagens para tamanhos arbitrários por preenchimento
  • 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

    • O processo que você descreveu se chama difusão
  • Há um vídeo no Twitter gerando texto. Parece um pouco com difusão de imagem
    https://x.com/ArnaudPannatier/status/1799055129829839166

    • É estranho terem escolhido um exemplo em que o resultado faz um pouco menos de sentido
  • 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

    • “Fixar o token de chave no início” já é algo possível em uma LLM comum. Basta pré-preencher o começo da resposta do assistente
      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

    • Talvez seja lento demais, mas pode dar para integrar linting ou verificação sintática como parte da amostragem por rejeição. Por exemplo, fazer amostragem massiva em paralelo de N trechos candidatos de código e descartar os sintaticamente incorretos
  • 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

    • Codificação posicional é padrão em todos os tipos de Transformer. O que parece novo aqui é a introdução de um esquema redundante de codificação posicional
      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

    • LeCun pode estar certo ou errado, mas não vejo bem como isso se relaciona com esta discussão
      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
    • Nem tudo precisa caminhar em direção à AGI. Se alguém fez uma LLM mais rápida e barata de executar, isso já tem valor por si só
      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
    • O argumento do LeCun aqui é, resumidamente, incorreto. A prova dele exige a premissa de que todos os tokens decodificados sejam condicionalmente independentes ou, ao menos, que a probabilidade de sair um próximo token errado seja independente. Na prática, não é assim
      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...
    • Esse método talvez realmente não se encaixe bem no argumento da divergência exponencial
      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
    • LeCun é muito inteligente, mas o histórico dele ao prever os limites das LLMs autorregressivas é péssimo