Intermediário 11 minGemma

Migrar de Gemma 2 para Gemma 3: armadilhas e verificações

Resposta direta

Migrar de Gemma 2 para Gemma 3 raramente impede a inicialização do modelo, mas frequentemente compromete seu comportamento: o contexto passa de 8.192 tokens para 32.768 (1B) ou 131.072 tokens (4B/12B/27B), o template de chat muda e os modelos 4B/12B/27B tornam-se multimodais, enquanto Gemma 2 era apenas texto. Verifique novamente o template aplicado pelo seu ambiente de execução, o contexto realmente configurado e repita seus prompts de teste antes de qualquer mudança para produção.

Gemma 2 (9B, 27B) e Gemma 3 (1B, 4B, 12B, 27B) não são simplesmente a mesma família com um número de versão a mais: a arquitetura, o contexto e o formato de entrada mudam. Este guia lista os pontos que realmente fazem uma aplicação já construída com Gemma 2 deixar de funcionar corretamente, as verificações a fazer antes de substituir o modelo em produção e o que você precisa saber para voltar à versão anterior, se necessário.

Por Mohamed Meguedmi·Atualização 2026-09-28·Testado no Windows, macOS e Linux

#O que muda realmente entre Gemma 2 e Gemma 3

Três mudanças estruturais afetam uma aplicação existente: o contexto máximo, a estrutura das mensagens enviadas ao modelo e a presença de uma entrada de imagem. Uma simples troca de nome de modelo no seu código (gemma2 por gemma3) não basta para garantir um comportamento idêntico, mesmo que o formato de saída continue sendo texto.

Gemma 2 existia apenas com 9 e 27 bilhões de parâmetros. Gemma 3 adiciona um 1B e um 4B, e redefine o contexto de cada tamanho: não é apenas 'maior', é uma arquitetura diferente internamente. Se sua escolha de tamanho do modelo estava baseada nas restrições de Gemma 2, merece ser reconsiderada em vez de repetida idêntica.

#Tamanhos e contexto: o verdadeiro salto

O kit IA Local

Seu ChatGPT privado e gratuito na sua máquina em 1 hora — LM Studio, Ollama, Open WebUI, seus documentos, sem nuvem.

  • Espaço online vitalício
  • PDF + arquivos
  • Atualizações vitalícias

Gemma 2 tem um contexto fixo de 8.192 tokens, independentemente do tamanho do modelo. Gemma 3 expande esse contexto para 32.768 tokens para o modelo de 1B e para 131.072 tokens para os modelos de 4B, 12B e 27B: um fator de 16 para modelos médios e grandes. Essa é a informação mais útil para dimensionar um uso RAG ou um histórico de conversa longo, mas esse contexto anunciado é um limite do modelo, não a memória realmente alocada pelo seu runtime: Ollama e os servidores de inferência limitam frequentemente o contexto por padrão a um valor muito mais baixo (geralmente 4.096 ou 8.192 tokens) até que você o aumente explicitamente.

Gemma 2 vs Gemma 3 : o que mudou por tamanho
TamanhoContexto do Gemma 2Contexto do Gemma 3Imagem de entrada
1B—32 768 tokensNão (texto apenas)
4B—131 072 tokensSim
9B / 12B8 192 tokens (9B)131 072 tokens (12B)9B: não · 12B: sim
27B8 192 tokens131 072 tokensSim
i
Gradiente de surpresa
Aumentar o contexto declarado na sua configuração não é suficiente: o cache KV cresce com o contexto realmente usado, não com o máximo teórico. Um contexto de 131.072 tokens aberto por padrão pode saturar a memória GPU antes mesmo da primeira geração, se o runtime pré-alocar esse cache.

#Template de chat: a armadilha mais frequente

A causa mais comum de respostas de qualidade inferior após uma migração não é a qualidade do modelo, mas um template de chat mal aplicado. Cada família de modelos espera uma formatação precisa dos turnos de conversa (marcadores de início/fim de turno, posição do prompt de sistema). Se seu aplicativo constrói o prompt final por conta própria, em vez de deixar o runtime aplicar o template do modelo, um template que continua configurado para o Gemma 2 produz respostas truncadas, fora do assunto ou cuja geração continua após o ponto de término esperado.

  1. 01
    Identificar quem constrói o prompt
    Verificar se o próprio código monta o texto enviado ao modelo ou se passa pela API de chat do runtime (Ollama /api/chat, servidor llama.cpp), que aplica automaticamente o template correto.
  2. 02
    Comparar os templates
    Recuperar o arquivo de template embutido no modelo Gemma 3 usado (GGUF ou Hugging Face) e compará-lo ao do Gemma 2 usado até agora, em vez de supor que são idênticos.
  3. 03
    Executar novamente um conjunto de prompts de referência
    Executar os mesmos 10 a 20 prompts de teste no Gemma 2 e depois no Gemma 3 com o novo template, e comparar o comprimento, a relevância e se a geração termina corretamente.

O papel de sistema ilustra bem esse engano. O Google indica, ao apresentar Gemma 4, que esta nova família "usa papéis padrão system, assistant e user, diferentemente de Gemma 3": uma confirmação oficial de que Gemma 3 (como Gemma 2) não trata exatamente o prompt de sistema como os runtimes que expõem um papel system nativo. Concretamente, um código que envia uma mensagem de papel system separada, baseando-se nas convenções de outras famílias de modelos, deve verificar, em Gemma 3 especificamente, como seu runtime trata essa mensagem, em vez de assumir que ela está isolada.

#Multimodalidade: 4B, 12B e 27B aceitam imagens

Ao contrário do Gemma 2, que trabalha exclusivamente com texto, os modelos Gemma 3 4B, 12B e 27B incorporam um codificador de imagens SigLIP que processa imagens redimensionadas para 896×896 pixels; apenas o 1B continua restrito a texto. Na prática, se seu aplicativo migrar para um 12B ou um 27B, ele herdará a capacidade de receber imagens, mesmo que não a utilize: isso altera o formato de API esperado por alguns runtimes (campo de imagem além do texto) e pode aumentar levemente a memória necessária para o carregamento, mesmo sem nenhuma imagem enviada.

Essa mudança para o multimodal tem uma consequência prática frequentemente esquecida na migração: um pipeline que validava rigorosamente o formato das mensagens de entrada (esquema JSON, tipagem estrita) pode rejeitar ou interpretar incorretamente um campo de imagem ausente ou vazio se o cliente da API do novo modelo o adicionar por padrão. Por outro lado, um pipeline que já filtrava entradas não textuais antes da chamada ao modelo não precisa mudar nada: a capacidade de imagem do Gemma 3 permanece inativa enquanto nenhuma imagem for transmitida; ela nunca é imposta.

#Quantização QAT: uso de memória dividido por um fator de 3 a 4

O Google publica checkpoints do Gemma 3 treinados levando em conta a quantização (QAT), além das versões Q4_0 clássicas para Ollama, llama.cpp e MLX. A vantagem: uma perda de qualidade bem menor do que a causada por uma quantização aplicada posteriormente a um modelo não preparado para isso.

Memória anunciada pelo Google, BF16 vs QAT int4
TamanhoBF16QAT int4
27B54 GB14,1 GB
12B24 GB6,6 GB
4B8 GB2,6 GB
1B2 GB0,5 GB
→
O que muda para o hardware
Um modelo 27B QAT em int4 cabe em uma placa com 24 GB de VRAM de acordo com os dados do fabricante, o que não era o caso de um Gemma 2 27B em precisão nativa. Se a sua migração envolver uma mudança de tamanho do modelo, verifique a memória realmente disponível no seu computador antes de escolher o tamanho alvo, não apenas o valor BF16 anunciado.

Esses números são os divulgados pelo Google no lançamento dos checkpoints QAT; eles descrevem a memória necessária para carregar os pesos, não a memória total utilizada na geração (o contexto e o cache KV são adicionados). Uma medição feita em sua própria máquina continua o único meio de confirmar um valor para seu uso específico.

O método adotado pelo Google aplica aproximadamente 5.000 passos de treinamento consciente de quantização, usando as probabilidades do modelo não quantizado como alvo, o que reduz a queda de perplexidade em 54% em comparação com uma quantização aplicada após o treinamento em um modelo que não foi preparado para isso. Para aplicações migradas do Gemma 2, isso significa que um mesmo nível de quantização (por exemplo, Q4) em Gemma 3 gera, geralmente, um resultado mais próximo do modelo em precisão total do que o produzido por Gemma 2 quantizado de forma tradicional — um ganho que vem da preparação do modelo, e não de ajustes feitos pelo usuário.

#Migrar para Gemma 3 ou esperar Gemma 4?

O Gemma 4 já está disponível no Ollama no momento em que este guia é escrito, o que levanta uma questão importante para quem ainda está migrando do Gemma 2: vale a pena parar no Gemma 3 ou partir diretamente para a geração seguinte? A página do Gemma 4 no Ollama anuncia tamanhos diferentes dos do Gemma 3 (variantes E2B e E4B com um número reduzido de parâmetros efetivos, um modelo de 12B, uma variante MoE de 26B com 3,8 bilhões de parâmetros ativos e um modelo denso de 31B), com variantes voltadas para raciocínio, fluxos de trabalho com agentes e código — um escopo mais amplo do que a mera substituição do Gemma 2.

Para uma aplicação já em produção usando Gemma 2, este guia continua focado na migração para Gemma 3: as verificações de contexto, de template e de regressão descritas aqui se aplicam exatamente da mesma forma se o destino final for Gemma 4, mas a migração direta altera mais coisas (papéis de chat padrão, novos tamanhos, arquitetura MoE na variante 26B) do que uma migração Gemma 2 → Gemma 3. Um guia dedicado detalha a instalação e o desempenho do Gemma 4 em execução local.

i
O que o Gemma 4 muda concretamente
O papel system passa a ser nativo (system/assistant/user), em vez de ser tratado como no Gemma 2/3, o que simplifica a integração no código da aplicação, mas exige revalidar o formato das mensagens uma segunda vez se você passar diretamente para o Gemma 4 em vez de parar no Gemma 3.

#Checklist antes de migrar para produção

Versão do runtime
Verificar se Ollama, llama.cpp ou MLX suportam a versão desejada do Gemma 3 (suporte adicionado após o lançamento do modelo, nem sempre imediato em uma versão antiga do runtime).
Contexto realmente configurado
Não deixar ao acaso o valor de contexto do servidor: defini-lo explicitamente de acordo com suas necessidades reais, e não com o limite do modelo.
Formato de entrada de imagem
Se você migrar para 4B, 12B ou 27B, verificar se seu cliente de API não envia um formato de imagem incompatível com o novo endpoint.
Escolha da quantização
Comparar um GGUF Q4_K_M clássico e um checkpoint QAT oficial usando seus próprios prompts antes de definir uma escolha; ambos existem para Gemma 3.
Janela de rollback
Manter o modelo Gemma 2 e sua configuração disponíveis durante a fase de troca, até confirmar a ausência de regressão.

#Detectar uma regressão em seus prompts

Uma migração de modelo não se valida com base em uma impressão após duas ou três perguntas. Um conjunto de prompts de referência, representativo do uso real da aplicação, reproduzido exatamente no modelo antigo e no novo, é o único meio de detectar uma regressão silenciosa: resposta mais longa, mas menos precisa, perda de um formato de saída esperado (JSON, lista) ou desvio de tom. Manter essas saídas de referência também permite documentar a decisão de migração, em vez de se basear em uma impressão.

!
Objeção comum: «a documentação diz que é compatível»
Uma compatibilidade anunciada no nível da API (mesmo endpoint, mesmo formato de requisição) não é compatibilidade de comportamento. O contexto, o template e a entrada de imagem realmente mudam entre as duas famílias; apenas um teste com seus próprios prompts confirma que não houve regressão.

#Prever um rollback

O cenário mais seguro para uma aplicação em produção consiste em implantar o Gemma 3 em paralelo com o Gemma 2 (com um nome de modelo distinto no ambiente de execução), encaminhar parte do tráfego para a nova versão e desativar a antiga somente quando as métricas de qualidade nos seus prompts de referência forem pelo menos equivalentes. Isso consome um pouco de espaço em disco e de RAM durante a transição, mas evita uma interrupção do serviço se o novo template de chat ou o novo contexto produzir um comportamento inesperado em condições reais.

Perguntas frequentes
É possível substituir Gemma 2 por Gemma 3 sem alterar o código?+
O nome do modelo muda sem quebrar a chamada da API na maioria dos runtimes, mas o comportamento pode mudar: contexto multiplicado em até 16 vezes, template de chat diferente e entrada de imagem possível em 4B/12B/27B. Um teste com seus próprios prompts, com os resultados comparados à saída do Gemma 2, continua necessário antes de qualquer substituição em produção.
Gemma 3 é mais pesado para rodar do que Gemma 2?+
Para modelos de tamanho comparável, na versão 27B, não, graças aos checkpoints QAT: o Google anuncia 14,1 GB de VRAM em int4 contra 54 GB em BF16, o suficiente para caber em uma única RTX 3090 de 24 GB, segundo o fabricante. Mas um contexto maior efetivamente utilizado aumenta o KV cache, portanto o total de memória consumida durante a geração também aumenta.
Devo usar a versão QAT ou um GGUF Q4_K_M clássico?+
Os dois existem para Gemma 3. A versão QAT é treinada com aproximadamente 5.000 passos de quantization aware training para limitar a perda de qualidade, o que reduz a queda de perplexidade em 54% em comparação com uma quantificação aplicada após o treinamento. Um Q4_K_M clássico continua uma opção se o seu runtime ainda não suportar checkpoints QAT oficiais.
O contexto de 131.072 tokens do Gemma 3 está ativo por padrão?+
Não. É o limite do modelo, e a página do Gemma 3 no Ollama anuncia um contexto padrão de 128K, em vez de uma ativação automática do máximo teórico. A maioria dos runtimes limita o contexto realmente alocado a um valor muito mais baixo até que ele seja aumentado explicitamente na configuração do servidor.
Devo migrar diretamente para Gemma 4 em vez de Gemma 3?+
Isso depende da necessidade: Gemma 4 adiciona papéis de chat padrão (system/assistant/user) e tamanhos diferentes (E2B, E4B, 12B, uma variante MoE 26B, um 31B denso), voltados para raciocínio e código. Uma migração direta muda mais pontos de referência do que uma passagem por Gemma 3, por isso merece seu próprio teste de regressão em vez de uma mudança às cegas.
Um modelo Gemma 3 27B cabe em uma placa de vídeo voltada ao consumidor?+
Sim para a versão QAT em int4: o Google indica que ela cabe em uma RTX 3090 de 24 GB de VRAM, contra 54 GB necessários em BF16 nativo. Esse número cobre o carregamento dos pesos, não o contexto nem o KV cache usados na geração, que se somam conforme o tamanho real das conversas.
Este guia ajudou você?

Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.