Os modelos de linguagem de difusão produzem texto refinando progressivamente uma sequência mascarada, enquanto os modelos GPT geram um token de cada vez. Esta técnica, já conhecida dos geradores de imagem, chamou a atenção da comunidade em 2025 com LLaDA, Mercury e Gemini Diffusion, e depois em 2026 com DiffusionGemma da Google, nomeadamente pela sua rapidez de inferência.
Duas formas de gerar texto
Os modelos GPT são autorregressivos: estimam o token seguinte a partir dos tokens já produzidos. Durante o treino, várias posições podem ser processadas em paralelo, mas na inferência, cada token tem de esperar pelo anterior, o que cria um problema de dependência serial. Um token designa aqui uma unidade de texto, muitas vezes um fragmento de palavra, que o modelo manipula.
Um modelo de difusão mascarada parte, pelo contrário, de uma sequência totalmente preenchida com , ou seja, com posições desconhecidas, e revela progressivamente as palavras. Pode escolher várias em cada etapa, sem seguir necessariamente a ordem da esquerda para a direita. Para a frase « The cat sat down », um modelo autorregressivo adiciona uma palavra de cada vez, enquanto o modelo de difusão preenche várias posições de uma só vez e refina a sequência até obter a frase completa. As duas abordagens usam arquiteturas transformer, mas os seus objetivos e procedimentos de inferência diferem: os primeiros prolongam uma sequência, os segundos refinam-na.
Como funcionam os modelos de difusão
Para as imagens, a difusão assenta em dois processos. O processo direto degrada os dados limpos adicionando progressivamente ruído, enquanto o processo inverso treina uma rede neuronal para desfazer essa degradação, geralmente com uma função de erro quadrático médio. Durante a amostragem, esta correção opera em muitas etapas.
O texto coloca uma dificuldade, pois os tokens são identificadores discretos e não valores contínuos como os píxeis. A degradação faz-se, portanto, substituindo tokens por , sendo cada token mascarado com uma probabilidade igual a um nível de corrupção entre 0 e 1. Na inferência, um amostrador inicializa as posições mascaradas, prevê uma distribuição sobre o vocabulário para cada posição não resolvida e depois decide quais as previsões a manter. Esta escolha baseia-se geralmente numa medida de confiança. O processo repete-se até preencher toda a sequência. Alguns amostradores podem também remascarar tokens já validados, uma operação chamada revisão, que não é uma propriedade comum a todos.
Estes modelos usam ainda uma atenção bidirecional dentro da sequência em processo de desruído, enquanto o GPT só vê as posições anteriores. Uma palavra mascarada pode assim apoiar-se no contexto que a precede e no que a segue, o que serve para a edição e para a geração estruturada. Segundo o autor, a difusão também pode vencer em latência real quando as GPU processam eficientemente posições em paralelo, mas a qualidade continua a ser determinante: os modelos autorregressivos mantêm-se mais performantes em alguns benchmarks de raciocínio e de código. Os resultados do DiffusionGemma 26B comparados com o Gemma 26B figuram na ficha do modelo, cujo artigo de referência sobre modelos de difusão probabilística desruidora é a origem desta abordagem.
Os desafios que permanecem em aberto
As dependências entre tokens constituem o primeiro obstáculo. Se duas posições são amostradas em paralelo, cada uma pode parecer plausível isoladamente mas incoerente com a outra, o que pode exigir mais etapas de desruído ou uma amostragem acoplada. O orçamento de amostragem coloca outra questão: reduzir o número de etapas melhora a latência mas pode degradar a qualidade, enquanto multiplicar as passagens pode apagar a vantagem em velocidade.
A longitude variável das respostas também não é natural para uma grelha mascarada de tamanho fixo, mesmo que abordagens por blocos ou mais flexíveis procurem responder a isso. Por fim, a cache chave-valor (KV), que acelera a geração memorizando cálculos já feitos, torna-se mais difícil de explorar, porque o refinamento bidirecional pode modificar as representações de um bloco inteiro. A descodificação por blocos, que congela os blocos terminados, ajuda a contornar este problema.
