1 pontos por GN⁺ 2024-07-06 | 1 comentários | Compartilhar no WhatsApp
  • Diffusion Forcing é um método de geração de sequências que aprende níveis diferentes de ruído de difusão para cada token, permitindo que na amostragem ele seja usado tanto como um modelo de próximo token quanto como um modelo de difusão de sequência completa
  • O ruído da difusão é interpretado como mascaramento, de modo que os tokens passados podem ser mantidos limpos enquanto apenas os tokens futuros permanecem ruidosos, ou então diferentes níveis de ruído podem ser distribuídos por toda a sequência
  • Em predição de vídeo no DMLab e no Minecraft, o teacher forcing divergiu com facilidade e a difusão causal de sequência completa teve sua consistência abalada, enquanto o Diffusion Forcing gerou previsões mais estáveis
  • Em tomada de decisão e planejamento, os tokens são definidos como [a_t, o_{t+1}], modelando conjuntamente a ação e a observação seguinte, e permitindo aplicar níveis de ruído diferentes ao futuro próximo e ao futuro distante
  • Também são possíveis rollouts longos além do comprimento de treino: no DMLab, após treinar com 36 frames, ele gera mais de 2000 frames; no Minecraft, após treinar com 72 frames, também gera mais de 2000 frames, tudo isso sem sliding window

Estrutura central do Diffusion Forcing

  • O nome Diffusion Forcing vem de teacher forcing e diffusion models
  • O objetivo é combinar, em um único paradigma de treino, as vantagens dos modelos autorregressivos de próximo token e dos modelos de difusão de sequência completa
    • Vantagem dos modelos de próximo token: geração de comprimento variável
    • Vantagem dos modelos de difusão de sequência completa: guidance em nível de sequência para conduzir a amostragem para a trajetória desejada
  • Um modelo treinado uma única vez pode ser operado de formas diferentes no momento da amostragem
    • Geração flexível e combinatória como em modelos de próximo token
    • Aplicação de guidance sobre a sequência inteira como em modelos de difusão de sequência completa

Ruído por token e “ruído como mascaramento”

  • O Diffusion Forcing treina difusão de sequência, mas faz com que cada token tenha um nível de ruído diferente
  • O ruído da difusão pode ser visto como mascaramento em várias intensidades
    • Difusão de sequência completa: todos os frames são denoised de uma vez a partir do mesmo nível de ruído
    • Previsão de próximo token: os tokens passados ficam com ruído 0 e o próximo frame é denoised um a um
  • Ao mudar a distribuição de ruído dentro da sequência no momento da amostragem, é possível obter vários comportamentos
    • Estabilização de rollout autorregressivo
    • Guidance para horizontes longos
    • Planning com incerteza causal

Propriedades teóricas

  • Foi demonstrado que o Diffusion Forcing otimiza um limite inferior variacional sobre a likelihood de subsequências de todos os tokens amostrados da distribuição conjunta real
  • Essa propriedade mostra que o objetivo de treino se conecta não apenas ao desempenho empírico, mas também à likelihood ao longo das subsequências em geral

Resultados de predição de vídeo

  • Os resultados usam vídeos sintetizados diretamente pelo modelo, sem VAE nem superresolution
  • Está explicitado que os resultados foram amostrados sem cherry-picking
  • Na comparação no dataset DMLab, a diferença entre os três métodos é clara
    • teacher forcing diverge com facilidade
    • o modelo causal de difusão de sequência completa apresenta sérios problemas de consistência
    • o Diffusion Forcing alcança predição de vídeo estável e consistente
  • O mesmo padrão aparece no dataset Minecraft
    • teacher forcing diverge com facilidade
    • o modelo causal de difusão de sequência completa apresenta sérios problemas de consistência
    • o Diffusion Forcing gera previsões estáveis e consistentes

Rollouts longos de vídeo além do comprimento de treino

  • O Diffusion Forcing consegue fazer rollout de vídeos muito mais longos do que o comprimento máximo de sequência visto no treino
  • Esse rollout é feito sem sliding window
    • No rollout de RNN, o latent z não é redefinido para o latent inicial z0
    • O efeito de estabilização aparece no Diffusion Forcing
  • Resultados no DMLab:
    • Treinado com 36 frames
    • Capaz de fazer rollout por mais de 2000 frames
    • Executado sem sliding window
    • A resolução original do dataset é 64x64
    • A qualidade do vídeo caiu por causa da compressão mp4 em vídeos longos, e visualizações em PNG também foram fornecidas para refletir a qualidade original da geração
  • Resultados no Minecraft:
    • Treinado com 72 frames
    • Capaz de fazer rollout por mais de 2000 frames sem divergir
    • Executado sem sliding window
    • A resolução original do dataset é 128x128
    • Em alguns cenários, o agente para até mudar de direção diante de um bloco de terra ou pedra com dois blocos de altura, o que é tratado como um problema intrínseco da coleta do dataset

Diffusion Planning

  • Assim como em trabalhos anteriores, como o Diffuser, é possível usar guidance no momento de teste para empregar a sequência de difusão como um planner
  • O Diffusion Forcing define cada token como [a_t, o_{t+1}], modelando explicitamente a causalidade
    • Mantém uma belief sobre qual ação executar
    • Também mantém uma belief sobre a observação que essa ação produzirá
    • Quando uma nova observação entra após a ação, é possível atualizar a belief por meio de estimação posterior
  • O vídeo do processo de diffusion planning visualiza o processo de planejamento do Diffusion Forcing como framework de tomada de decisão
  • Para modelar a incerteza causal do futuro, o futuro próximo pode receber nível de ruído baixo e o futuro distante pode receber nível de ruído alto

Imitation learning de horizonte longo

  • Muitas tarefas do mundo real não são Markovianas e exigem memória de horizonte longo para serem executadas
  • Em uma tarefa real de robótica, o braço robótico deve usar o terceiro slot para trocar entre si os slots de duas frutas
    • As frutas são colocadas em slots aleatórios no início
    • Apenas uma única observação não basta para saber a disposição inicial das frutas, então não é possível decidir o próximo passo só com ela
  • Nos experimentos de planning, o guidance é removido e a sequência ação-observação é diffused em conjunto para realizar feedback control
  • O vídeo apresentado mostra vários sucessos consecutivos antes de ocorrer uma falha
    • Mesmo que a posição das frutas seja aleatorizada por execuções anteriores, o robô consegue realizar a tarefa
  • Para torná-lo robusto a distrações não vistas no momento de teste, é possível fazer prompting para tratar as observações recebidas como noisy observation
    • Como exemplo, foi usado um método de distração em que uma sacola de compras é jogada aleatoriamente no campo de visão

Atualização de 2025: Scaling Up Diffusion Forcing

  • Na atualização de 2025, o estado da arte Wan2.1-T2V-1.3B foi finetuned por apenas 20k steps e 49 frames
  • Depois disso, ele gerou de forma estável até 217 frames com rollout de 5x
  • O trabalho subsequente pode ser visto em History-Guided Video Diffusion
  • Os vídeos de exemplo incluem ondas ao pôr do sol, um macaco sobre uma rocha, um cachorro se preparando para dormir, uma vista aérea de praia tropical, cenas de surfe e uma cena de bicicleta subindo uma ladeira

Direções futuras de pesquisa

  • Conditioning

    • Ao escalar para sequências longas, conditioning baseado em substituição é frequentemente usado
    • “Video Diffusion Models”, de Johnathan Ho, discute por que essa abordagem está errada
    • O Diffusion Forcing oferece uma forma mais natural de conditioning, tratando os context tokens como limpos e os future tokens como ruidosos, mas isso não foi explorado em detalhe
  • Noise as masking

    • Esse método alcança mascaramento fracionário dos tokens, e não mascaramento binário
    • É geral o bastante para também poder ser inserido em métodos de aprendizado autossupervisionado como MAE
    • A adição de ruído tem uma interpretação interessante no domínio da frequência
  • Compositionality

    • O artigo mostra que é possível alcançar compositionality controlando o comprimento do histórico
    • Com noise as masking, o modelo pode passar a decidir por conta própria quando ignorar um histórico desnecessário e condicionar apenas em um horizonte mais curto
  • Non-causal version

    • Neste artigo, a causalidade é importante para a tomada de decisão, então foi usado Diffusion Forcing causal
    • A ideia de noise as masking também pode ser aplicada a modelos não causais
    • Se as entradas que a predição não deve ver forem mascaradas com ruído gaussiano puro, é possível treinar uma versão não causal e torná-la causal no momento da amostragem
  • Alternative Guidance

    • No framework de tomada de decisão proposto, o guidance é aplicado à observação para manter uma configuração mais próxima do Diffuser
    • Também foi proposta uma versão que aplica guidance a uma learned reward, mas isso não foi explorado no artigo
  • Noise scheme

    • Os níveis de ruído independentes por token foram projetados visando generalidade, mas não são ideais para todas as tarefas
    • Se os dados tiverem correlação muito local ao longo do eixo temporal, isso pode preservar redundância demais
    • Isso pode afetar a relação sinal-ruído total
  • Next few token prediction

    • Apenas os experimentos de planning usaram next few token prediction; os experimentos de vídeo ainda seguem a abordagem de next-token
    • Na versão com RNN, isso não funcionou muito bem, mas no código da versão transformer funciona muito bem
    • Em modelos causais, se o “few” for muito grande, next few token prediction pode criar inconsistência
    • Em modelos não causais, esse fenômeno ocorre com menos frequência
  • Latent & DiT version

    • Após o lançamento, foi publicada uma versão 3D U-Net do Diffusion Forcing
    • O Diffusion Forcing também pode ser aplicado a DiT causal ou não causal
    • O esquema de estabilização se encaixa de forma mais natural em latent spaces com VAE
    • A corrupção de pixel não é necessariamente gaussiana, mas a corrupção nos latents de um VAE pode ser mais próxima de gaussiana

Informações de citação

@article{chen2025diffusion,
  title={Diffusion forcing: Next-token prediction meets full-sequence diffusion},
  author={Chen, Boyuan and Mart{\'\i} Mons{\'o}, Diego and Du, Yilun and Simchowitz, Max and Tedrake, Russ and Sitzmann, Vincent},
  journal={Advances in Neural Information Processing Systems},
  volume={37},
  pages={24081--24125},
  year={2025}
}

1 comentários

 
GN⁺ 2024-07-06
Opiniões no Hacker News
  • Algumas ideias aqui chamam a atenção. Primeiro, combina mascaramento de sequência, a ideia central de treinamento dos LLMs, com modelos de difusão, acompanhando o nível de “incerteza” de cada pixel
    Esse nível de “incerteza” é tratado como o nível de “ruído” de um modelo de difusão, e o modelo é controlado por algum embedding para remover o ruído
    Com isso, é possível fixar algumas partes da imagem antes de outras, o que pode ser usado, por exemplo, para resolver labirintos. No artigo, eles chegam a mostrar o controle de um braço robótico movendo frutas, o que é bem impressionante
    O título, na verdade, parece subestimar a ideia. Como o nível de mascaramento é um valor real, é uma forma de fazer mascaramento parcial, e me parece uma ideia bem profunda e interessante
    Dito isso, há muita coisa que o artigo não aborda, então fiquei muito curioso sobre a base de código. Não está claro exatamente como eles estruturam a tarefa de rastrear o labirinto e a tarefa de extensão de vídeo, como conectam o braço robótico a esse modelo e como instruem a tarefa desejada. A própria arquitetura também parece precisar de vários artigos ou de uma explicação detalhada
    • Isso parece uma forma muito elegante de lidar com modelagem de incerteza em planejamento e exploração
      É poderoso transformar as tarefas em comprimento variável e, ao mesmo tempo, forçar o agente a refletir sem tomar a situação atual como garantida. Assim, mesmo diante de dificuldades inesperadas, ele consegue reagir melhor ao longo do caminho e generalizar
      Imagino que a configuração trate todas as tarefas como de horizonte variável e coloque o estado atual como resultado das ações anteriores. Seria bom ver o código também
    • A base de código vinculada não é suficiente? Gostaria de entender o que está faltando aqui
      https://github.com/buoyancy99/diffusion-forcing
  • Fico curioso se existe alguma pesquisa ou ferramenta que aplique técnicas semelhantes à difusão aos LLMs tradicionais de geração de texto, mas que funcione em modelos como pequenos GPT / Phi 3 / Gwen sem novo pré-treinamento, ou apenas com um pouco de fine-tuning
    Conheço coisas como Tree of Thoughts com busca em árvore de Monte Carlo, e é algo parecido até certo ponto, mas normalmente o objetivo aprendido por recompensa também é diferente, então tenho interesse em algo mais próximo da geração em nível de token
    Isso é possível?
  • Trabalho nessa área, e este trabalho foi apresentado de um jeito excessivamente obscuro
    Qual é o problema que estão tentando resolver? Estão propondo um novo modelo generativo?
    • Não tenho base teórica, mas nem o vídeo é fácil de entender. “Teacher Forcing” parece ser ruim, mas não sei se o resto é bom ou ruim. Para começo de conversa, qual é o baseline?
  • O Russ agora está trabalhando com difusão? Parece que deve ser bastante aplicável à robótica
  • Estou deixando passar algo sobre o tempo de treinamento? Adicionar ruído por token torna a velocidade de treinamento muito mais lenta? Ainda assim, é um artigo legal
  • Trabalho bacana. Fico curioso se isso poderia ser reaplicado a LLMs como um modelo de difusão discreta usando mascaramento parcial
  • Muito legal, mas por que o nome é diffusion forcing?
    • Está no segundo parágrafo:
      Dizem que o nome “Diffusion Forcing” vem de “teacher forcing” e “diffusion models”