1 pontos por GN⁺ 4 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • Os checkpoints de treinamento com reconhecimento de quantização (QAT) do Gemma 4 otimizam os requisitos de memória e o desempenho no dispositivo para ajudar na execução local em dispositivos de borda comuns e GPUs de consumo
  • O QAT simula a quantização durante o treinamento para reduzir a perda de qualidade na compactação, entregando qualidade geral superior à linha de base padrão de PTQ
  • Os checkpoints publicados visam o formato Q4_0 e formatos especializados para mobile, e o formato mobile reduz a pegada de memória do Gemma 4 E2B para 1 GB
  • O esquema mobile reduz a carga de trabalho e o uso de memória ativa em chips móveis com ativações estáticas, quantização por canal, quantização seletiva de 2 bits e otimizações de embeddings e cache KV
  • Com suporte a pesos no Hugging Face, llama.cpp·Ollama·LM Studio, LiteRT-LM·Transformers.js, SGLang·vLLM·MLX·Unsloth, é possível fazer execução local, implantação on-device e fine-tuning

Contexto e escopo do lançamento

  • Dois meses após o lançamento do Gemma 4, o Google publicou checkpoints QAT após o Multi-Token Prediction (MTP) para aceleração de inferência e o modelo 12B que preenche o espaço entre os modelos MOE E4B e 26B
  • Os novos checkpoints fazem parte de um trabalho de eficiência para permitir a execução local do Gemma 4 em dispositivos de borda comuns e GPUs de consumo
  • QAT é uma abordagem que simula a quantização durante o treinamento para minimizar a perda de qualidade na compactação do modelo
  • Este lançamento oferece checkpoints QAT para o popular formato de quantização Q4_0 e um novo formato de quantização especializado para casos de uso mobile

Compromisso entre compactação e qualidade

  • A quantização é uma tecnologia central para executar modelos em hardware de consumo, reduzindo a pegada de memória e aumentando a velocidade de decodificação
  • A quantização pós-treinamento padrão (PTQ) frequentemente causa queda de desempenho, mas o QAT integra diretamente o processo de quantização ao treinamento
  • Embora o PTQ também seja eficaz na preservação de qualidade, os resultados de QAT entregam qualidade geral superior à linha de base padrão de PTQ
  • O Google aplicou uma receita de QAT ao formato Q4_0 para maximizar o desempenho de todos os modelos e projetou separadamente um esquema de quantização especializado para mobile para os modelos de borda E2B e E4B

Estrutura de otimização para mobile

  • Como formatos de compactação padrão muitas vezes são difíceis de executar com eficiência em processadores móveis, o Gemma 4 usa um esquema de quantização mobile personalizado para hardware de borda
  • Ativações estáticas pré-calculam as configurações de escala dos dados durante o treinamento para reduzir a carga de trabalho dos chips móveis e melhorar a velocidade de resposta
  • A quantização por canal organiza os dados compactados de acordo com a arquitetura dos aceleradores móveis, permitindo computação nativa sem soluções alternativas lentas
  • A quantização seletiva de 2 bits compacta agressivamente a parte de geração de tokens em 2 bits e mantém as camadas centrais de inferência em precisão mais alta para economizar armazenamento
  • As otimizações de embeddings e cache KV concentram a compactação no vocabulário do modelo e na memória de curto prazo para reduzir bastante a pegada de memória ativa e permitir conversas longas
  • Em casos de uso que não exigem codificadores de áudio e visão, é possível implantar apenas as modalidades necessárias para reduzir ainda mais a pegada de memória, e o modelo Gemma 4 E2B somente texto sem Per-Layer Embeddings requer menos de 1 GB de memória

Como usar e suporte de ferramentas

  • O Google fornece pesos dos modelos Q4_0 e mobile no Hugging Face
  • O formato GGUF pode ser usado diretamente no llama.cpp, tensores compactados são fornecidos para vLLM, e para outros fluxos de trabalho o Google compartilha checkpoints não quantizados que podem ser convertidos e quantizados para formatos com suporte a Q4_0
  • Os métodos de implantação podem ser consultados na documentação
  • No desktop, é possível baixar, gerenciar e executar localmente modelos Gemma 4 QAT com llama.cpp, Ollama e LM Studio
  • Para implantação on-device, é possível usar o runtime leve LiteRT-LM do Google, e na web é possível executar diretamente com Transformers.js
  • Para serving de modelos grandes, é possível usar SGLang e vLLM, e para otimização em Apple Silicon é possível usar MLX
  • Checkpoints MTP QAT preservam o ganho de velocidade do MTP enquanto quantizam o modelo, e é possível fazer fine-tuning direto dos pesos com Hugging Face Transformers e Unsloth

1 comentários

 
GN⁺ 4 시간 전
Comentários do Hacker News
  • Testei rodar o Gemma 4 E2B localmente no Mac com uvx litert-lm run, e na primeira execução ele baixou 3,2 GB em ~/.cache/huggingface/hub/models--litert-community--gemma-4-E2B-it-litert-lm
    É bem impressionante que um modelo desse tamanho também processe entrada de áudio e imagem; para imagem dá para usar --attachment image.jpg --prompt describe e para áudio --attachment audio.wav --prompt transcribe
    O resultado do SVG do pelicano em si não foi grande coisa, mas foi surpreendente que um arquivo de 3,2 GB tenha produzido um SVG válido: https://gist.github.com/simonw/94b318afde4b1ce5ff67d4b5d0362...

    • Não sei ao certo se isso é mesmo treinamento com reconhecimento de quantização (QAT)
      Os modelos da MLX Community têm isso no nome, mas esses aqui não, e a data de upload também não parece bater exatamente
    • É surpreendente que também exista uma versão de 0,8 GB só para texto
      Agora já dá para ter conversas básicas em tempo real no dispositivo reconhecendo vídeo e áudio
    • À parte disso, o uvx é realmente muito prático de usar
      Queria que a Nvidia também desse suporte de primeira classe, em vez de fazer as pessoas passarem por procedimentos para contornar com Docker
  • Também existe a coleção da Unsloth [0], e os resultados também estão publicados [1]
    Em comparação com o modelo BF16 sem quantização, parece ficar muito perto de quase 100% de precisão, e a quantização da Unsloth parece melhor do que o QAT original do Google citado no post
    Pessoalmente, mesmo com o modelo embarcado no celular, estou usando o modelo 2B via Unsloth Studio e API para busca na web e saída estruturada em JSON, e para esse uso ele se encaixa muito bem
    [0] https://huggingface.co/collections/unsloth/gemma-4-qat
    [1] https://unsloth.ai/docs/models/gemma-4/qat#qat-analysis

    • Acho que você interpretou esse gráfico errado
      O que aparece ali não é BF16 comum, e sim BF16 QAT Q4_0
      É mais no sentido de que o Google quantizou o modelo para 4 bits e depois salvou o resultado em formato BF16 por compatibilidade e conveniência com empacotadores posteriores
      É parecido com guardar pequenos números de 8 bits dentro de inteiros de 32 bits, então isso não quer dizer que esteja perto de 100% do BF16 sem quantização
      Ainda assim, eu queria entender por que o QAT Q4_0 de 4 bits divulgado pelo Google não é exatamente 100% do BF16 QAT Q4_0. A conversão entre os dois empacotamentos parece que deveria ser só manipulação de bits, sem quantização extra, mas a Unsloth diz que existe um problema de alinhamento de grade
      Separadamente, também não gosto quando fabricantes de modelos pequenos, como Google e Qwen, lançam modelos novos mostrando apenas benchmarks em BF16. Na prática, as pessoas rodam quantização de 4 a 8 bits, e é difícil demais saber quanto se perde em 4 bits e em 6 bits
    • Fiquei confuso: o modelo da Unsloth tem cerca de 600 MB, e o do Google tem 7 GB?
  • Só nesta semana já foi impressionante ver como o ecossistema Gemma está evoluindo rápido
    Saíram o Gemma 12B, previsão de múltiplos tokens e modelos quantizados oficiais, e parece que o Google está realmente investindo pesado nesse ritmo de lançamentos, o que anima

  • É sexta-feira antes da WWDC, e chama atenção o fato de a Apple estar prestes a anunciar uma Siri “melhorada” baseada em modelos do Google
    Pode ser uma parceria ainda sob sigilo, mas também pode ser que o Google esteja divulgando com antecedência os modelos que a Apple vai demonstrar na próxima semana
    Não há informação concreta, é só especulação

  • Rodei hf.co/google/gemma-4-12B-it-qat-q4_0-gguf:Q4_0 com ollama em um notebook com AMD Ryzen 9 8940HX, NVIDIA GeForce RTX 5060 8GB e 14 GB de RAM, e foi mais rápido do que eu esperava

  • Lançar o Gemma 4 12B(https://news.ycombinator.com/item?id=48385906) e, alguns dias depois, lançar o Q4_0 Gemma 4 12B oficial parece um pouco estranho
    Ainda assim, é bom que este post registre o uso previsto de VRAM do Q4_0 Gemma 4 12B como 6,7 GB, e isso confirma que cabe com folga dentro dos 16 GB mencionados pelo Google, embora no fim isso só valha para a versão quantizada
    Relacionado a isso, a nova Edge Gallery para macOS lançada pelo Google afirma explicitamente que o Gemma 4 12B não é suportado em máquinas com 16 GB por falta de RAM, mas olhando o uso previsto de VRAM aqui, a variante Q4_0 claramente deveria caber, então o Google precisa corrigir isso

    • Não entendo muito bem por que ter vários lançamentos seria estranho
      Acho melhor publicar o modelo e as variantes à medida que forem ficando prontos, em vez de segurar tudo até que esteja tudo pronto de uma vez
      O Q4_0 não é apenas o Gemma 4 12B quantizado de forma simples; ele é um checkpoint de treinamento com reconhecimento de quantização
    • Posso estar entendendo errado, mas 4Q e QAT 4Q são coisas diferentes
  • O Google Pixel Intelligence pode acabar vencendo o Apple Intelligence

  • Conseguir rodar um modelo 12B com 8 GB de VRAM é uma grande mudança
    É impressionante o quão rápido os pequenos modelos locais estão evoluindo

  • Tive resultados bem bons com o Gemma 4 E2B Unsloth 4Q: https://youtube.com/shorts/XLsAnz5aAAI
    O modelo E4B não cabe no TPU do meu celular e acaba indo para swap na RAM, então fico feliz que a versão QAT melhore a precisão

    • Fiquei curioso sobre como você conseguiu obter resultados úteis com isso
      Para nós, até o modelo E2B sem quantização foi completamente inútil até nas tarefas reais de classificação mais simples
    • Queria saber como você descobriu se ele roda no TPU ou se vai para swap na RAM
      Quero testar isso no meu Pixel também