Experimentei o novo DiffusionGemma do Google e observá-lo gerar texto como imagem é diferente de qualquer LLM nativo.

A maioria dos LLMs domésticos agora parecem previsíveis. Você baixa um modelo, aponta o tempo de execução para ele, faz uma pergunta e observa o texto se mover pela tela, um marcador por vez. O modelo pode ser melhor ou pior do que aquele que você usou ontem, mas a experiência básica costuma ser a mesma.

DiffusionGemma é diferente, pelo menos se você executá-lo no modo visual. O novo modelo experimental Gemma do Google não registra apenas a resposta da esquerda para a direita. Em vez disso, ele funciona imediatamente com um bloco de texto, substituindo e melhorando gradualmente os marcadores até que a resposta se encaixe. O efeito é semelhante a observar um gerador de imagem produzindo ruído na imagem, a que se refere o processo de “difusão”. É uma experiência muito diferente da típica geração LLM token por token.

Eu tentei em um MacBook Pro M4 Pro usando GGUF de 4 bits usando o fork personalizado de llama.cpp detalhado por Unsloth. Não me pareceu mais rápido do que dirigir o modelo Gemma 4 26B-A4B normal do Google, e martelado meu Mac de uma forma que o LLM normalmente não faz, causando uma lentidão completa em todo o sistema. Ainda assim, é uma experiência estranha, mas também excepcionalmente fascinante, dada a forma como vários ele se compara ao seu modelo de linguagem autorregressivo típico.

DiffusionGemma muda a aparência da geração de texto

O modo visual mostra exatamente o que está acontecendo

DiffusionGemma parece estranho porque a saída não vem como texto simples. Com o modo visual ativado, você pode observar a tela de 256 tokens sendo reescrita à medida que o modelo é executado, com texto com aparência de espaço reservado aparecendo primeiro, antes que partes dele mudem e a resposta gradualmente se torne mais coerente. Não é apenas um fluxo de palavras que aparece no final da palavra anterior, e isso por si só faz com que pareça uma categoria diferente de padrão nativo.

Parece complicado e, de certa forma, é. Você não precisa ver a geração acontecendo para que um modelo seja útil, e muitas interfaces LLM nativas são melhores precisamente porque ocultam as partes sujas. Mas, neste caso, a visualização explica bem como o DiffusionGemma é diferente. Você pode ler sobre como espalhar o texto o quanto quiser, mas ver o texto mudar de lugar repetidamente torna o conceito muito mais fácil de entender.

Um modelo autorregressivo normal requer a participação do próximo marcador, depois do próximo e do próximo. Ele pode planejar de maneira geral, e bons modelos certamente o fazem, mas o token que ele escreve agora não pode determinar diretamente o token exato que escreverá 50 tokens depois, porque esse token ainda não existe. Em vez disso, o DiffusionGemma é executado na parte superior do bloco, com foco bidirecional nesta tela. Ele pode usar partes posteriores de um bloco para aprimorar partes anteriores, de modo que a saída pareça estar entrando em foco em vez de ser impressa.

Este é o benefício conceitual dos modelos de linguagem baseados em difusão, mesmo antes dos ganhos de velocidade. Uma tela de 256 marcadores fornece ao modelo um espaço de rascunho temporário onde o início e o fim de um bloco podem afetar um ao outro antes que o bloco seja executado. É por esse conceito que a difusão é tão interessante para coisas como edição inline, conclusão de código, texto estruturado e outros casos em que a melhor resposta nem sempre é a mais fácil de construir da esquerda para a direita.

É também por isso que o DiffusionGemma parece tão diferente em comparação aos modelos nativos que as pessoas costumam usar. Estamos todos acostumados a ver Qwen, Gemma, Llama ou qualquer outro fluxo de texto de uma forma que faz o modelo parecer escrita. No modo visual, DiffusionGemma parece mais como se estivesse editando um rascunho na sua frente, exceto que você pode ver todos os estados intermediários estranhos no caminho até lá.

As reivindicações de velocidade do Google precisam de contexto

Especialmente se você estiver usando em um Mac

Crédito: Google

DiffusionGemma do Google é velocidade. Nele mensagem de lançamentoO Google afirma que o modelo pode fornecer geração de texto até 4x mais rápida em GPUs dedicadas, com mais de 1.000 marcadores por segundo em uma única Nvidia H100 e mais de 700 marcadores por segundo em um RTX 5090. Ele também afirma que o modelo quantizado pode acomodar 18 GB de VRAM em GPUs de consumo de última geração.

Minha execução do M4 Pro não parecia. Não obtive uma leitura normal de marcadores por segundo, mas o rodapé que capturei relatou 137,9 segundos, 123 passos de ruído e 9 blocos, o que equivale a 1,121 segundos por passo. Como cada bloco é uma tela de 256 marcadores, isso também fornece 2.304 posições de tela em 123 etapas, ou cerca de 18,7 posições de marcadores por etapa de remoção de ruído.

Tenho certeza que esse número desapareceu. O Google falou sobre eliminação de ruído paralela e geração de 15 a 20 marcadores por passagem, portanto, um número de título como 700 marcadores por segundo não precisa ser lido como 700 marcadores autorregressivos exibidos de forma limpa na tela. Não acho que o Google apenas conte as suposições descartadas como saída final, mas o DiffusionGemma alcança a saída de uma maneira diferente: ele refina muitas posições de marcadores na tela antes de fazer um bloco. A velocidade pode ser realmas a experiência não é a mesma que assistir a um modelo normal transmitindo 700 tokens finais a cada segundo.

O hardware também é importante. Meu Mac ficou lento em todo o sistema enquanto estava em execução e não parecia mais rápido do que executar o Gemma 4 26B-A4B habitual do Google localmente. O Google alerta que os Silicon Macs da Apple podem não ter a mesma aceleração, já que os sistemas de memória única são frequentemente limitados pela largura de banda da memória durante a inferência, enquanto a aceleração do DiffusionGemma depende do fornecimento de um acelerador dedicado com uma carga computacional maior.

Isso não torna a afirmação de velocidade errada, apenas significa que a parte interessante da minha corrida nunca foi crua. A parte interessante foi ver como o modelo utilizou um processo de geração obviamente diferente e ver o quanto isso mudou a sensação de interação com o LLM nativo.

Ainda é cedo e um pouco estranho lançá-lo localmente

Este ainda não é o suporte normal do llama.cpp

A rota que usei para colocá-lo em funcionamento foi Estrada GGUF liberadaque depende da ramificação DiffusionGemma de uma solicitação pull llama.cpp aberta. As instruções de Unsloth criam um corredor lama-diffusion-cli especial porque o caminho padrão lama-cli ou lama-server ainda não pode ser gerado a partir do modelo. Você pode ver como é a geração no vídeo acima.

Essa diferença é importante se você estiver acostumado com Ollama ou llama.cpp sendo os padrões LLM locais leves. Este não é o tipo de modelo que você simplesmente coloca em uma configuração existente e considera outro GGUF. Ele precisa do branch certo, do corredor certo e do sinalizador –diffusion-visual se você quiser a parte que o torna visualmente interessante. O comando para executá-lo com saída visual quando compilado é:​​​​​​​

./llama-diffusion-cli -m ./diffusiongemma-26B-A4B-it-Q4_K_M.gguf -ngl 99 -cnv -n 4096 --diffusion-visual

Arquivos quantizados são pelo menos realistas para hardware de consumo. Unsloth lista 16 GB no quarto trimestreKArquivo M como a menor opção com variantes maiores de 18 GB, 21 GB, 25 GB e 47 GB acima dele. Portanto, o modelo está no mesmo mundo geral de outros grandes modelos nativos que você poderia executar em uma GPU com uma quantidade razoável de VRAM.

No entanto, esta ainda é uma configuração experimental. O suporte do modelo, o corredor e a produção visual agora fazem parte da essência, e não das arestas em torno de um modelo de driver diário entediante. Se você já ouve falar de modelos de difusão há algum tempo e quer verificá-los por si mesmo, esta é a atração.

DiffusionGemma não é uma simples atualização para Gemma 4

Google diz que qualidade é uma compensação

O nome faz DiffusionGemma soar como mais um membro da família Gemma, o que é, mas o modelo tem um propósito completamente diferente. O Google descreve isso como um modelo experimental aberto baseado na arquitetura Gemma 4 26B A4B Mixture of Expertscom cerca de 26 B de parâmetros totais e cerca de 4 B de parâmetros ativos. A parte incomum é a cabeça de difusão e a geração de blocos, não a ideia básica do modelo EM local.

O Google deixa bem claro que seus modelos Gemma 4 autorregressivos padrão ainda são a recomendação para qualidade de saída máxima. DiffusionGemma prioriza velocidade e geração de layout paralelo, e tabela de benchmark publicada geralmente mostra que fica aquém do modelo padrão Gemma 4 26B A4B em testes de raciocínio, codificação e contexto visual e mental.

O teste concreto que fiz foi pelo menos funcional. Pedi para ele criar um jogo estilo Flappy Bird em Python, renderizar no navegador e servir com Flask, e o projeto gerado funcionou quando o testei. A gravidade era muito forte, então não era muito divertido de jogar, mas produzia o aplicativo Flask, HTML, CSS e JavaScript necessários para trazer um jogo de navegador funcional para a tela. Você pode ver isso no vídeo acima quando copio e colo o código da saída nos arquivos especificados. Você também pode leia o resultado completo neste link Gist.

Não importava o que eu pedi ao modelo para gerar, e Flappy Bird era apenas um entre um número infinito de prompts que eu poderia usar, porque o resultado permanece o mesmo: o modelo fez algo normal enquanto o processo de geração parecia outra coisa. DiffusionGemma não é interessante porque melhora repentinamente a codificação nativa; é interessante porque revela uma forma diferente de produzir texto, onde a saída é desenvolvida, refinada e feita em blocos, em vez de transmitir um marcador de cada vez. A experiência aqui é consistente com os exemplos do Google de edição inline, estruturas de texto não lineares, preenchimento de código e outros fluxos de trabalho onde a geração da esquerda para a direita nem sempre é a forma mais natural. Eu não diria que a DiffusionGemma está pronta para transformar esses fluxos de trabalho no curto prazo, mas o conceito faz sentido quando você vê isso acontecer.

DiffusionGemma é experimental, está em estágio inicial e não pode ser comparado ao LLM nativo convencional. Ver o ruído de resposta no local é estranho, um pouco perturbador e realmente útil para entender o que o Google está tentando fazer e torna mais fácil do que nunca para qualquer pessoa entender como o modelo de difusão realmente se parece na prática.

Link da fonte