1 pontos por GN⁺ 2025-06-27 | 1 comentários | Compartilhar no WhatsApp
  • Gemma 3n é o mais novo modelo de IA multimodal on-device para ambientes mobile e edge, capaz de processar imagem, áudio, vídeo e texto
  • Com uma arquitetura focada em eficiência e inovações arquiteturais (MatFormer, Per-Layer Embeddings, MobileNet-V5 etc.), entrega desempenho no nível de grandes modelos em nuvem usando 2~3 GB de memória
  • Disponível em dois tamanhos de modelo, E2B e E4B, com suporte a tamanhos personalizados detalhados para o hardware por meio da abordagem Mix-n-Match
  • Pode ser aplicado imediatamente a vários casos de uso de IA on-device, como reconhecimento e tradução de voz, análise visual em tempo real e processamento multilíngue em 140 idiomas
  • Integra-se amplamente ao principal ecossistema open source de IA, como Hugging Face, Ollama e llama.cpp, e pode ser usado imediatamente com várias ferramentas, APIs e SDKs

Visão geral e contexto

  • O primeiro modelo Gemma, lançado no início do ano passado, ultrapassou 160 milhões de downloads e cresceu como um ecossistema chamado Gemmaverse
  • Esse ecossistema inclui vários modelos especializados, como em segurança e saúde, além de muitos casos de uso inovadores criados com contribuições da comunidade
  • Impulsionado por esse sucesso, o Google anunciou o lançamento oficial do Gemma 3n, projetado com foco em mobile
  • Oferece ampla integração com ecossistemas e ferramentas amigáveis para desenvolvedores, como Hugging Face Transformers, llama.cpp, Google AI Edge e Ollama
  • Apresenta em profundidade, sob a perspectiva do desenvolvedor, as principais inovações, benchmarks e formas de desenvolver com o Gemma 3n

O que há de novo no Gemma 3n?

  • O Gemma 3n representa um novo salto para a IA on-device
  • Oferece suporte multimodal nativo para entradas de texto, imagem, áudio e vídeo, com saída em texto
  • Maximiza a eficiência e é disponibilizado em dois tamanhos de modelo, E2B (5B parâmetros) e E4B (8B parâmetros), podendo rodar mesmo com pouca memória (2 GB, 3 GB)
  • Aplica arquiteturas inovadoras como MatFormer, Per Layer Embeddings, LAuReL e AltUp, além de incorporar novos encoders de áudio e visão
  • Suporta 140 idiomas, compreensão multimodal em 35 idiomas, melhorias em matemática, código e raciocínio, e supera 1300 pontos no LMArena no caso do E4B

MatFormer: um modelo, vários tamanhos

  • A arquitetura MatFormer (🪆Matryoshka Transformer) é uma nova estrutura de transformer projetada para escalabilidade e flexibilidade
  • Ela aproveita o princípio da matriôshka russa, em que modelos menores ficam contidos de forma independente dentro de um modelo maior
  • Durante o treinamento do E4B, o submodelo E2B é otimizado ao mesmo tempo, permitindo inferência até 2x mais rápida e dispensando o download separado de modelos pré-extraídos
  • Com a abordagem Mix-n-Match, é possível criar modelos intermediários personalizados para restrições de hardware, usando feedforward networks ou layer skip
  • No MatFormer Lab, é possível verificar a configuração ideal com base em benchmarks e gerar modelos
  • No futuro, também há planos de oferecer suporte a elastic execution (troca dinâmica do tamanho do modelo em tempo real)

Per-Layer Embeddings (PLE): máxima eficiência de memória on-device

  • Com Per-Layer Embeddings (embeddings por camada), o modelo melhora a qualidade e minimiza o uso de memória em implantações on-device
  • Entre todos os parâmetros (5B/8B), apenas os embeddings são carregados e processados com eficiência na CPU, enquanto só o núcleo transformer (2B/4B) permanece na VRAM
  • Graças a isso, ele pode operar sem perda de qualidade usando muito menos memória do que antes (cerca de 2B parâmetros no acelerador)

KV Cache Sharing: otimização para entradas de contexto longo

  • O Gemma 3n adiciona o recurso KV Cache Sharing para processar rapidamente entradas sequenciais longas, como áudio e vídeo extensos
  • Na etapa de prefill (processamento inicial da entrada), o cache KV de camadas intermediárias é compartilhado diretamente com camadas superiores, melhorando o desempenho em mais de 2x
  • Isso permite reconhecer prompts de sequência longa mais rapidamente do que antes, aumentando a capacidade de resposta em aplicações multimodais em tempo real

Reconhecimento de áudio: suporte a STT e tradução

  • Ele incorpora um encoder de áudio baseado no Universal Speech Model (USM), usando tokens de áudio em unidades de 160 ms como entrada para o modelo de linguagem
  • Permite implementar reconhecimento de fala (ASR) e tradução de fala (AST) de alta qualidade on-device
  • Alto desempenho foi confirmado em pares de idiomas importantes, como inglês↔espanhol, francês, italiano e português
  • O uso de prompting com Chain-of-Thought pode melhorar a qualidade da tradução
  • O encoder de áudio inicial (no lançamento) suporta clipes de até 30 segundos, com expansão planejada para streaming mais longo no futuro

MobileNet-V5: o mais novo encoder de visão

  • O MobileNet-V5-300M integrado ao Gemma 3n é um encoder de visão de alta eficiência que oferece forte desempenho mesmo em dispositivos edge
  • Suporta várias resoluções de entrada, como 256x256, 512x512 e 768x768 pixels, permitindo ajustar desempenho e nível de detalhe conforme a necessidade
  • Com treinamento conjunto baseado em grandes datasets multimodais, alcança ampla compreensão de imagens e vídeos e é capaz de lidar bem com tarefas visuais específicas
  • Pode realizar análise em tempo real a 60 quadros por segundo em um Google Pixel
  • Em termos de arquitetura, aplica diversas inovações, como blocos baseados no MobileNet-V4 (universal inverted bottleneck, Mobile MQA), estrutura híbrida em pirâmide e adaptador Multi-Scale Fusion VLM
  • Em comparação com o SoViT (baseline do Gemma 3), é superior com 13x mais velocidade, 46% menos parâmetros, memória 4x menor e maior precisão
  • Informações adicionais sobre arquitetura, estratégia de expansão de dados e técnicas de destilação em deep learning serão divulgadas posteriormente no relatório técnico

Aplicação prática e uso

  • Teste direto no AI Studio: https://aistudio.google.com/prompts/new_chat?model=gemma-3n-e4b-it
  • Download/implantação do modelo: disponível imediatamente em Hugging Face, Kaggle, Ollama, llama.cpp e outros
  • Integração com ferramentas e frameworks: suporte à maioria, incluindo Hugging Face Transformers/TRL, MLX, Docker, LMStudio, NVIDIA NeMo e Unsloth
  • API e implantação em nuvem: implantação em vários ambientes, como Google GenAI API, Vertex AI e NVIDIA API

Principais cenários de uso on-device

  • Assistente de IA em tempo real em smartphones/dispositivos edge, tradutor de voz, chatbot multimodal, análise visual em tempo real e IoT
  • Internalização de serviços de IA em ambientes com recursos limitados
  • Inovação em IA em ambientes offline ou com restrições de rede

Recursos para desenvolvedores

Gemma 3n Impact Challenge

1 comentários

 
GN⁺ 2025-06-27
Comentários no Hacker News
  • Este modelo mostra compatibilidade perfeita com tudo o que eu fazia antes com o gemma3; conectei direto ao meu script de fine-tuning de VLM e funcionou sem problemas (com base no código do hf transformer). Rodando o modelo E4B com LoRA em uma única GPU, foram necessários 18 GB de VRAM com batch size 1, enquanto o gemma-4B precisava de 21 GB. A DeepMind realmente fez um ótimo trabalho; a série gemma3 é a melhor entre os VLLMs com pesos abertos
    • Correção: o modelo mencionado aqui é o E2B
  • Testei o prompt "gerar um SVG de um pelicano andando de bicicleta" no Gemma 3n 7.5GB (Ollama) e na versão de 15GB do mlx-vlm, e foi interessante ver que os resultados mudaram conforme os dois tamanhos de quantização. Coloquei os resultados aqui: https://simonwillison.net/2025/Jun/26/gemma-3n/
    • Será que isso pode mesmo ser chamado de benchmark significativo, ou é só por diversão? Sinceramente, não entendo muito bem
  • Ainda não entendo muito bem como Gemma e Gemini diferem em ambientes on-device; em ambos os casos dá para usar sem conexão de rede. Exemplo de texto oficial: "Gemini Nano oferece experiências ricas de IA generativa mesmo sem conexão de rede" — se trocar Gemini por Gemma nessa frase, ela continua totalmente correta
    • A diferença está na licença. Os pesos do Gemini Nano não podem ser usados diretamente (especialmente para uso comercial) e só podem ser acessados via Android MLKit ou runtimes aprovados pelo Google. Já o Gemma pode ser usado comercialmente em qualquer runtime ou framework que você quiser
    • Pelo post de preview do Gemma 3n, o Gemma 3n e a nova versão do Gemini Nano compartilham a mesma arquitetura. Acho que o n significa Nano. Nano é um modelo proprietário embutido no Android, enquanto Gemma é um modelo aberto, então pode ser aplicado livremente em qualquer lugar. As fontes relacionadas estão em blogs e vídeos oficiais do Google
    • Gemma é open source e usa licença Apache 2.0. Para incluí-lo em um app, você precisa empacotá-lo por conta própria. Já o Gemini Nano é uma API Android fora do seu controle
    • Suponho que a diferença entre os dois modelos esteja nos dados de treinamento. O lado Gemini parece ser gerenciado com muito mais rigor, e pode ocorrer um 'recitation error' se ele tentar repetir algo que estava nos dados de treinamento
  • Pessoalmente, não gosto do fato de que a OpenAI aparentemente tornou esse tipo de nomenclatura caótica um padrão na indústria
    • Então fico curioso para saber que nome você daria
  • Eu mesmo criei uma versão GGUF, então qualquer um pode testar se quiser! Eu a executo assim: ./llama.cpp/llama-cli -hf unsloth/gemma-3n-E4B-it-GGUF:UD-Q4_K_XL -ngl 99 --jinja --temp 0.0. Também estou montando uma demo no Colab para inference + finetuning. O Gemma 3N suporta áudio, texto e visão, o que é realmente impressionante. Mais detalhes em https://docs.unsloth.ai/basics/gemma-3n-how-to-run-and-fine-tune
    • Testei o modelo E4B no Ollama, mas a interpretação de imagem está completamente errada. A saída depende só do texto e sempre erra de forma consistente; como o Gemma 3 4B oficial funciona bem, concluí que o problema é do Ollama. Investigando, vi que no momento ele suporta apenas texto[1], e gostaria que isso estivesse mais claramente indicado. Tenho preguiça de compilar o llama.cpp manualmente, então provavelmente vou esperar até que o GGUF seja suportado. [1]: https://github.com/ollama/ollama/issues/10792#issuecomment-3009619264
    • Eu estava justamente começando a digitar que queria usar a versão do Unsloth, aí vi que você já tinha feito e publicado. Impressionante!
    • Obrigado! Fiquei curioso para saber que especificações de PC são necessárias para rodar esses modelos
    • Fiquei curioso sobre o que jinja significa aqui
  • Sinceramente, tenho dúvidas sobre como esses modelos pequenos ajudam no uso real. Já tentei várias vezes, mas qualquer coisa menor que 27B parece difícil de usar para algo além de brinquedo, e no máximo dá respostas boas de vez em quando. Resolvi um problema de filtro de spam com o gemma3:27b-it-qat, e meus benchmarks também mostraram que esse é o ponto em que ele começa a ser útil
    • Há usos reais mesmo com baixa precisão. Não sei que produtos surgirão no futuro, mas já hoje existem casos como: um modelo de linguagem pequeno no teclado do iPhone sugerindo a próxima palavra (basta o usuário escolher a sugestão). E também há usos como speculative decoding, em que um modelo pequeno acelera a inferência de um modelo grande. Devem surgir aplicações ainda mais inteligentes no futuro
    • Esses modelos pequenos já têm bastante utilidade se você os enxergar como infraestrutura básica. Seria ótimo se um dia a maioria dos celulares tivesse um LLM embutido, como parte da infraestrutura padrão
    • O melhor uso que encontrei para modelos pequenos (<5bn params) é como ferramenta de referência offline. Quando estou programando no avião, em vez de Google uso o qwen instalado no MacBook Air para perguntar coisas básicas sobre sintaxe, documentação etc.
    • Modelos pequenos de 4b ou menos são ideais para fine-tuning em tarefas específicas, podendo até superar modelos comerciais por um custo bem baixo. Também funcionam bem em autocompletar código. Modelos de 7b~8b são bons para tarefas rápidas e simples de programação, como refatoração de código (por exemplo: "adicionar o prefixo ST_ ao nome de todas as funções com argumento de tipo SomeType"). A partir de 12b, modelos como Mistral Nemo ou Gemma 3 12b já conseguem gerar frases consistentes
  • Kevin Kwok fez um ótimo resumo de engenharia reversa da estrutura do modelo, vale a pena ver: https://github.com/antimatter15/reverse-engineering-gemma-3n
  • Em algum lugar do site do Google deveria haver uma tabela com cada nome de produto, descrição e recurso
  • O eixo Y do gráfico está realmente muito engraçado
  • Alguém sabe quanto custa de fato usar a versão implantada do gemma 3n? A documentação diz que dá para usar o gemma 3n pela gemini api, mas o preço aparece apenas como "unavailable"