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.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video