A nova IA do Google gera mais de 1.000 tokens por segundo (DiffusionGemma)

BBetter Stack
Computing/SoftwareVideo & Computer Games

Transcript

00:00:00O Google tem estado a todo vapor ultimamente. Na semana passada, fiz um vídeo sobre o revolucionário
00:00:05modelo Gemma 4 sem encoder, e esta semana lançaram outro modelo surpreendentemente inovador. Chama-se Diffusion
00:00:11Gemma, e este modelo é incrivelmente rápido. É capaz de gerar mais de mil tokens
00:00:18por segundo, e a razão pela qual consegue fazer isso é porque gera texto de uma forma
00:00:23completamente diferente de qualquer outro modelo que você já usou. Então, neste vídeo, vamos dar uma olhada
00:00:29no Diffusion Gemma, ver como funciona e vou mostrar como você pode testá-lo também.
00:00:35Vai ser muito divertido, então vamos lá.
00:00:41Todos os modelos de linguagem com os quais você já conversou funcionam da mesma forma fundamental. Eles são autorregressivos,
00:00:48e essa é uma palavra chique para dizer que eles geram um token de cada vez, da esquerda para a direita. Eles escrevem uma palavra,
00:00:54depois olham para tudo o que foi escrito até agora e preveem a próxima palavra, e o ciclo simplesmente
00:00:59se repete. E a forma como funciona para grandes modelos comerciais como o Claude ou o GPT é que, quando um servidor
00:01:06gera um token, a maior parte do tempo não é gasta no processamento, mas sim no carregamento dos pesos do modelo
00:01:12da memória. E isso é meio desperdiçador se você estiver atendendo apenas um usuário. Então os servidores agrupam centenas
00:01:19de usuários, carregam os pesos uma vez e os executam para todos ao mesmo tempo. E dessa forma,
00:01:25você pode atender 256 usuários com um carregamento na memória. Mas quando você executa um modelo localmente, você é apenas um usuário,
00:01:33então não há ninguém com quem agrupá-lo. A GPU carrega a enorme parte dos pesos, faz um pequeno
00:01:39cálculo para produzir um token e, em seguida, fica ociosa antes de fazer tudo de novo. Em termos técnicos,
00:01:46isso é chamado de ser limitado pela memória. Sua GPU cara passa a maior parte da vida esperando pelo próximo
00:01:52token em vez de processar de fato. Então o Google DeepMind analisou esse problema e fez uma pergunta inteligente:
00:01:58Se a nuvem preenche o tempo ocioso atendendo 256 usuários de uma vez, e se preenchêssemos esse tempo ocioso
00:02:07para um único usuário em vez disso? Então, em vez de um token para 256 pessoas, e se gerássemos 256 tokens para uma
00:02:16pessoa de uma só vez? E essa é a ideia por trás do Diffusion Gemma. Em vez de escrever palavra por palavra,
00:02:23o modelo começa com uma tela, que é uma linha de 256 tokens de espaço reservado completamente aleatórios. Portanto, é apenas
00:02:31ruído. E seu trabalho é consertar essa tela em todas as posições de uma vez e transformá-la em texto real. Então, ao prever todos
00:02:38os 256 tokens de uma só vez, você está dando à sua GPU um grande volume de trabalho real em vez de deixá-la ociosa. Dessa forma,
00:02:46você faz o modelo passar de limitado pela memória para limitado pelo processamento, e toda aquela potência desperdiçada finalmente é usada.
00:02:53Mas isso não é tão simples quanto parece. Prever 256 tokens de uma vez é realmente difícil.
00:03:01Porque como o modelo adivinha o token número 254 se não tem ideia de como os tokens 1 a 253 ficaram?
00:03:09E é exatamente isso que acontece. Os primeiros tokens saem bons, mas quanto mais ele avança,
00:03:15mais ele se transforma em um absurdo. Mas e se, em vez de fazer apenas uma passagem, o modelo fizesse
00:03:21múltiplas passagens? E este é o truque principal. O modelo passa pela tela repetidamente, mas agora ele
00:03:28pode ver seus palpites anteriores. Os tokens que ele previu com confiança tornam-se pistas de contexto que
00:03:35ajudam a consertar os mais bagunçados. E o mais legal é que ele só precisa de algumas passagens. Muito menos passagens do que
00:03:42a contagem total de 256 tokens. E é exatamente daí que vem a velocidade do modelo. E você provavelmente já viu
00:03:49esse truque antes. Chama-se difusão. Você começa com ruído e depois o refina passo a passo. E
00:03:55essa é a mesma ideia que alimenta os geradores de imagem de IA. E a maneira como o modelo aprende isso é
00:04:01adicionando deliberadamente ruído a imagens reais durante o treinamento e, em seguida, aprendendo a prever e subtrair esse ruído.
00:04:07Mas como você aplica esse mesmo conceito ao texto? Essa é a parte difícil. Porque com uma imagem,
00:04:14o ruído é fácil. Deixe um pixel um pouco mais vermelho ou azul. Mas com o texto, como você faz a palavra
00:04:19o ser um pouco menos o? O que esse ruído significa para uma palavra? Bem, o DeepMind inventou
00:04:27algo chamado difusão de estado uniforme. Então, em vez de mexer com letras, você trata a palavra
00:04:32substituída aleatoriamente como o ruído. E para corromper seu texto de treinamento, você substitui algumas palavras reais por palavras aleatórias.
00:04:38E o trabalho do modelo é descobrir quais palavras são lixo e, eventualmente, consertá-las com múltiplas passagens.
00:04:45Na verdade, existe uma versão mais simples para fazer isso chamada difusão de máscara, que apenas apaga os tokens.
00:04:51Mas essa tem uma grande falha. Uma vez que o modelo se compromete com uma palavra, ela fica travada para sempre. Ele tem o mesmo
00:04:57problema que os modelos autorregressivos têm. Mas a difusão de estado uniforme corrige isso mantendo sempre algum tipo de token em
00:05:04cada posição. Então, um modelo pode olhar para uma palavra que aceitou três passos atrás, decidir se ela não se encaixa
00:05:10mais e substituí-la. Então, podemos basicamente autocorrigir tudo até o fim. Mas essa solução
00:05:15também tem uma pegadinha. A difusão precisa de um encoder para entender seu prompt e um denoiser para limpar a
00:05:23tela. Então o DeepMind desenvolveu um patch de encoder-denoiser. Ele é construído sobre o seu modelo de 26 bilhões
00:05:30GEMMA 4 existente e alterna entre os dois modos quando está gerando sua resposta. No modo de encoder,
00:05:36o modelo lê seu prompt, tenta extrair algum contexto e orientação dele. Ele coleta tudo isso
00:05:42no cache KV e passa diretamente para o denoiser. E o trabalho do denoiser é essencialmente
00:05:49limpar a tela. E ele faz isso fazendo duas coisas. Primeiro, lembra como um LLM normal produz um
00:05:56score de confiança ou um logit para cada posição, mas descarta todos, exceto o último? A propósito,
00:06:02se você estiver confuso aqui, também fiz um vídeo um tempo atrás explicando como os LLMs funcionam com mais
00:06:07detalhes. Então dê uma olhada nesse vídeo se estiver interessado. Essencialmente, o Diffusion GEMMA não descarta
00:06:13os scores. Ele mantém todos esses scores de confiança porque cada posição da tela precisa de sua própria previsão.
00:06:19E segundo, este denoiser não usa atenção causal, que é a regra de que uma palavra só pode
00:06:25olhar para trás, que é como os modelos autorregressivos funcionam. Então, em vez disso, ele a substitui por uma
00:06:31atenção bidirecional. Então, agora, cada token pode ver todos os outros tokens em todas as direções. Para cada posição,
00:06:38você aplica esses scores de confiança, olha para outros tokens e limpa a tela lentamente, passo a passo.
00:06:44E é assim que o Diffusion GEMMA consegue atingir sua incrível velocidade de mais de 1000 tokens por segundo
00:06:51em uma GPU H100. Agora, preciso ser honesto com você. Isso não é uma bala de prata. Com essas novas táticas,
00:06:58o Diffusion GEMMA está basicamente trocando qualidade por velocidade. Para um trabalho de máxima qualidade, o GEMMA 4 padrão
00:07:05ainda é uma escolha melhor. Este modelo foi criado especificamente para tarefas locais críticas, como edição inline, preenchimento de código
00:07:13ou iteração rápida. E ele é especialmente forte em tarefas não lineares, como preencher o meio
00:07:19de um bloco de código ou até mesmo resolver um Sudoku, nos quais os modelos normais da esquerda para a direita são genuinamente bastante ruins.
00:07:26Então, tudo isso parece fascinante, mas vamos testar por nós mesmos e ver como funciona na prática.
00:07:33O Google disponibilizou os pesos sob a licença Apache 2.0 no Hugging Face.
00:07:38Então, se você tiver uma GPU potente como uma RTX 5090, pode tentar executá-lo localmente. E também há uma
00:07:44receita especial para VLLM que você pode executar no Docker para agilizar esse processo. Mas estou muito curioso para
00:07:51ver se este modelo realmente pode atingir mais de 1000 tokens por segundo. Então, para este teste, tentarei
00:07:58executá-lo em uma GPU H100 usando um contêiner RunPod e ver como vai. E, a propósito, também
00:08:04publiquei um modelo do Diffusion GEMMA para execução no RunPod. Então, se você quiser replicar este teste,
00:08:10tudo o que precisa fazer é executar esse template ao criar um novo pod. Então, para fazer este teste no RunPod,
00:08:15vou escolher o contêiner H100. E, como mencionei antes, criei um template do Diffusion GEMMA
00:08:22que você pode reutilizar. Então, você pode simplesmente clicar no volume de disco e, em seguida, clicar em implantar
00:08:28sob demanda. E levará alguns minutos até que ele baixe o contêiner e inicie tudo.
00:08:34E se formos aos logs, se você vir que a inicialização do aplicativo foi concluída, isso significa que o VLLM está pronto
00:08:40e agora está acessível através da porta 8000. Se abrirmos isso, verá que os detalhes não foram encontrados,
00:08:46mas não se preocupe com isso. Isso significa que está funcionando. Só precisamos copiar este URL. Então, para
00:08:52configurar o Diffusion GEMMA para rodar em um terminal de agente de IA, algo como o OpenCode, você precisa
00:08:58configurar suas configurações do OpenCode para acessar o servidor remoto. Então você pode fazer isso com este simples
00:09:04comando, e isso abrirá o arquivo de configuração. E aqui, estou apenas especificando nosso servidor RunPod e
00:09:11ele tem o modelo Diffusion GEMMA selecionado. E você pode apenas salvar este arquivo e iniciar o OpenCode.
00:09:17Então, neste teste, vou pedir para ele gerar um painel de rastreamento de finanças pessoais chamado Ledger.
00:09:24E vamos ver com que rapidez ele consegue gerar isso. Olha só. Instantaneamente, ele começa a transmitir agora mesmo.
00:09:34Olha como é incrivelmente rápido. Meu Deus. Uau. Isso é insano. E aqui nos logs,
00:09:43podemos ver que está com uma média de 700 tokens por segundo. Então, para a fase de saída, caiu um pouco,
00:09:50mas durante a fase de raciocínio, chegou a 700 tokens por segundo. Isso é insano. Então vamos
00:09:58abrir. Ok. Então parece um painel. Isso é legal. Ok. Nós realmente temos algumas categorias
00:10:06e coisas acontecendo aqui. Se adicionarmos algo aqui. Oh, ele realmente adiciona como uma despesa. Então as
00:10:13despesas não estão sendo atualizadas. Então não está totalmente funcional, mas pelo menos algumas partes são interativas.
00:10:20Para a próxima tarefa, vamos ver se ele consegue criar um jogo estilo arcade.
00:10:26Então, vamos iniciar. Mais uma vez, a velocidade é simplesmente insana. Ok. Este está demorando um pouco mais.
00:10:36Na verdade, temos dois arquivos aqui. Interessante, interessante. Ok. Então ele notou um erro de digitação e depois
00:10:44processou o arquivo HTML novamente, o que é muito bom. Ok. Tudo bem. Vamos abrir este. Reiniciar.
00:10:52Oh, uau. Este está... está funcionando. Oh, uau. Isso é legal. Uau. Muito bom. Isso é impressionante. Então o jogo está
00:11:03totalmente funcional e levou 14 segundos para gerar este jogo. 14 segundos para gerar um jogo como este.
00:11:11Então, embora a página de marketing deles dissesse que poderíamos esperar velocidades de 1000 tokens por segundo na H
00:11:18100. Essa não foi minha observação. Hum, não sei. Talvez haja algo que eu devesse ajustar no
00:11:26template ou nos meus prompts, mas, no entanto, estou verdadeiramente impressionado. É uma fera. Então é isso,
00:11:33pessoal. Esse é o Diffusion Gemma em poucas palavras. Acho que este é um dos lançamentos mais interessantes
00:11:38do ano porque prova que você pode pegar um paradigma de geração totalmente diferente do mundo da imagem,
00:11:44colocá-lo em um modelo existente que você já treinou e desbloquear ganhos reais de velocidade para configurações de
00:11:51usuário local único. E acho que isso também abre as portas para uma nova família de modelos locais interativos e rápidos
00:11:58que utilizam todo o potencial do seu hardware em vez de deixá-lo ocioso. Então, o que você acha
00:12:04do Diffusion Gemma? Você já experimentou? Vai usá-lo? Deixe-nos saber na seção de comentários abaixo.
00:12:09E pessoal, se vocês gostam desses tipos de detalhamentos técnicos, por favor, me avisem esmagando aquele
00:12:14botão de curtir abaixo do vídeo. E também não se esqueçam de se inscrever no nosso canal. Este foi
00:12:19Andrus do Betterstack e vejo vocês nos próximos vídeos.

Key Takeaway

O Diffusion Gemma altera o paradigma de geração de texto de autorregressivo para difusão, permitindo a geração simultânea de blocos de tokens e atingindo altas velocidades ao eliminar o tempo ocioso da GPU.

Highlights

  • O modelo Diffusion Gemma alcança velocidades de geração de até 700 tokens por segundo em testes reais com GPU H100.

  • Modelos tradicionais autorregressivos desperdiçam ciclos de GPU ao gerar um token de cada vez e aguardar a memória.

  • O Diffusion Gemma utiliza uma abordagem de difusão que gera 256 tokens simultaneamente, maximizando o uso do processamento da GPU.

  • A técnica de difusão de estado uniforme permite ao modelo autocorrigir e substituir palavras geradas incorretamente em múltiplas passagens.

  • O modelo emprega um mecanismo de atenção bidirecional, permitindo que cada token considere todos os outros tokens em qualquer direção durante a geração.

  • A arquitetura combina um encoder e um denoiser sobre o modelo Gemma de 26 bilhões de parâmetros, alternando entre modos conforme a necessidade.

  • O Diffusion Gemma é otimizado para tarefas locais, como preenchimento de código e edição inline, superando modelos autorregressivos em tarefas não lineares.

Timeline

Limitações dos modelos autorregressivos

  • Modelos de linguagem convencionais geram tokens sequencialmente, da esquerda para a direita.
  • O carregamento dos pesos do modelo na memória consome a maior parte do tempo de processamento.
  • A execução local de modelos causa desperdício de potência, pois a GPU aguarda o próximo token após cálculos rápidos.

Servidores comerciais contornam o tempo ocioso agrupando centenas de usuários simultâneos para um único carregamento de pesos. Em cenários locais de usuário único, essa otimização é inviável. A GPU permanece ociosa durante a maior parte do ciclo operacional enquanto aguarda a previsão do token seguinte, caracterizando uma limitação pela memória.

Arquitetura e funcionamento do Diffusion Gemma

  • O modelo gera 256 tokens simultaneamente, tratando a saída inicial como uma sequência de ruído aleatório.
  • A técnica de difusão refina iterativamente os tokens, permitindo o uso de palpites anteriores como contexto para correções.
  • A difusão de estado uniforme substitui tokens incorretos sem bloquear a saída permanentemente, diferentemente da difusão de máscara.
  • O denoiser substitui a atenção causal por atenção bidirecional para permitir que todos os tokens se comuniquem.

O modelo preenche uma tela de 256 posições de uma só vez, transformando ruído em texto real através de múltiplas passagens. Esse método utiliza a potência total da GPU, transformando o gargalo de memória em um limite de processamento. O sistema alterna entre modos de encoder e denoiser, mantendo scores de confiança para cada posição para facilitar a refinagem contínua.

Testes práticos e casos de uso

  • O Diffusion Gemma é otimizado para tarefas de edição inline, preenchimento de código e problemas não lineares como Sudoku.
  • Testes em uma GPU H100 demonstraram uma média de 700 tokens por segundo durante a fase de raciocínio.
  • O modelo executou com sucesso a criação de uma interface de rastreamento financeiro e um jogo estilo arcade funcional.
  • A qualidade de saída do Gemma 4 padrão supera a do Diffusion Gemma em tarefas que exigem máxima precisão.

A implementação no RunPod com o VLLM demonstrou a capacidade do modelo em gerar aplicações funcionais em poucos segundos. Embora a velocidade observada tenha sido de 700 tokens por segundo, abaixo dos 1000 previstos, a performance permanece significativamente superior aos métodos tradicionais. O modelo posiciona-se como uma ferramenta especializada para desenvolvimento local rápido em vez de substituto para tarefas de alta qualidade textual.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video