Google lança FunctionGemma, Gemma 3 para function calling
FunctionGemma chega como uma versão especializada do Gemma 3 de 270M, afinada para function calling. O foco é rodar em edge, viabilizar agentes locais rápidos, privados e confiáveis, com um ecossistema que vai de Hugging Face a LiteRT-LM.
Danilo Gato
Autor
Introdução
FunctionGemma muda a conversa sobre agentes ao colocar function calling nativo em um modelo Gemma 3 de 270M otimizado para rodar em edge. No anúncio de 18 de dezembro de 2025, o Google posiciona o FunctionGemma como a ponte entre linguagem natural e execução de software, com disponibilidade em Hugging Face e Kaggle, além de guias oficiais para fine-tuning e implantação local.
O ponto central é claro, function calling confiável em dispositivos locais, de smartphones a placas como a Jetson Nano, com latência mínima e foco em privacidade total. O Google relata que, em um cenário prático de Mobile Actions, o fine-tuning elevou a acurácia de 58 por cento para 85 por cento em um conjunto de avaliação reservado, o que torna o caminho do laboratório para produção bem mais direto.
Este artigo destrincha o que é o FunctionGemma, por que ele importa para agentes on-device, como começar de forma realista, quais limitações observar e o que muda para equipes que já usam Gemma 3 ou pretendem incorporar function calling em fluxos móveis e embarcados.
O que é o FunctionGemma e o que o torna diferente
O FunctionGemma é uma versão especializada do Gemma 3 270M instruída para traduzir pedidos em linguagem natural em chamadas de função estruturadas. O modelo combina chat e ação, alternando entre gerar chamadas de função em JSON e responder ao usuário em linguagem natural. A proposta é servir como agente autônomo offline ou atuar como roteador inteligente em sistemas compostos, enviando tarefas simples para execução local e despachando solicitações complexas para modelos maiores como o Gemma 3 27B.
Além da especialização, há engenharia para edge. O modelo usa o vocabulário de 256k do Gemma para tokenizar JSON com eficiência, o que ajuda tanto em function calling quanto em entradas multilíngues. O suporte de ecossistema cobre o ciclo completo, desde fine-tuning em Transformers e Unsloth até deployment com LiteRT-LM, vLLM, MLX, Llama.cpp, Ollama e Vertex AI.
![FunctionGemma logo, imagem oficial do anúncio]
Por que isso importa para agentes on-device
Agentes que realmente agem dependem de duas coisas, previsibilidade na tradução de intenções para ações e latência baixa. Em edge, cada milissegundo conta e cada ida ao servidor custa bateria, privacidade e confiabilidade. O FunctionGemma foi desenhado para caber no celular e em placas de computação acessíveis, com um caminho simples para ajustes específicos do seu domínio. No Mobile Actions, o Google demonstrou que fine-tuning direcionado é o que destrava confiabilidade de produção, subindo de 58 por cento para 85 por cento de acurácia no conjunto de avaliação.
Em termos de hardware de borda, o Jetson Nano, frequentemente usado como referência de entrada, oferece até 472 GFLOPS com consumo de 5 a 10 watts, suficiente para pipelines enxutos de LLM em aplicações de visão e controle. É um alvo útil para protótipos de agentes locais que precisam executar funções do sistema e integrações básicas, mantendo dados no dispositivo.
O que muda para desenvolvedores, do dataset ao deploy
A trilha de adoção foi organizada de ponta a ponta. Os guias oficiais explicam como ajustar o FunctionGemma 270M com o dataset Mobile Actions e, na sequência, converter e publicar o modelo em edge usando LiteRT-LM e a AI Edge Gallery. O tutorial de Mobile Actions foi atualizado em 18 de dezembro de 2025, com instruções de fine-tuning via TRL e conversão para o formato .litertlm.
O repositório do LiteRT-LM, por sua vez, detalha a biblioteca C++ para rodar LLMs em múltiplas plataformas com suporte a GPU de desktop, API de conversação, função de tool use e aceleração NPU em preview, além do binário de linha de comando para experimentar rapidamente. Em novembro de 2025, a versão 0.8.0 adicionou suporte a GPU de desktop, multimodalidade e APIs Kotlin.
Para quem quer exemplos práticos, há modelos fine-tunados pela comunidade no Hugging Face a partir do base google/functiongemma-270m-it, incluindo variações LoRA e merges prontos para uso em mobile. Esses cards ajudam a ver hiperparâmetros, tempo de treino e resultados, além de scripts de inferência.
Como o function calling funciona no FunctionGemma
A interface segue o padrão de ferramentas em JSON com esquema de parâmetros. O card oficial do modelo demonstra como definir a função, inserir instruções de desenvolvedor e gerar a saída com a chamada de função adequada. É uma abordagem consistente com o ecossistema de tool use em Transformers, o que reduz fricção para times que já dominam prompt templates e parsing.
Na prática, a confiabilidade vem do alinhamento entre o conjunto de ferramentas do seu app e o conjunto de exemplos vistos no fine-tuning. Em domínios fechados, como ações do sistema móvel, o ganho de acurácia pós-ajuste tende a ser muito mais relevante do que tentar extrair comportamento determinístico apenas com prompt. Isso aparece nos dados de Mobile Actions e reflete um princípio conhecido, especialização estreita reduz variância de saída.
![Gráfico oficial, ganho de acurácia após fine-tuning]
Dataset Mobile Actions, formato e escala
O conjunto google/mobile-actions está publicado no Hugging Face, com cerca de 9.654 amostras em JSONL, separado em treino e avaliação, e estrutura de mensagens e tool calls com id, nome da função e argumentos em JSON stringificado. O dataset dá o mínimo necessário para ajustar o FunctionGemma a comandos como ligar lanterna, criar eventos ou gerenciar contatos. O número de downloads e a atividade recente mostram tração de comunidade.
Esse formato tem implicações diretas no design do seu app. Mantendo a superfície de API bem definida e pequena, o modelo tem menos graus de liberdade e mais chance de acertar. Já domínios com muitas funções, nomes parecidos e parâmetros aninhados pedem curadoria extra de exemplos, validação rigorosa de argumentos e fallback seguro quando o modelo propõe algo inválido.
Pipeline de ponta a ponta, do colab ao dispositivo
O fluxo recomendado, segundo a documentação, inclui, aceitar a licença, obter token do Hugging Face, carregar o base google/functiongemma-270m-it, ajustar com TRL, salvar checkpoints e converter para .litertlm. Depois, a publicação vai para a AI Edge Gallery, de onde é possível testar a execução local em Android. É um caminho direto que prioriza reprodutibilidade e segurança operacional.
No runtime, o LiteRT-LM atua como camada de execução unificada, com backends de CPU e GPU e APIs para conversação e tool use. Para quem precisa de um passo adicional de portabilidade, o projeto oferece CLI e exemplos de benchmarking, úteis para medir latência e throughput em diferentes dispositivos antes de definir parâmetros de geração e quantização.
Casos de uso e arquitetura de sistema
Do ponto de vista arquitetural, o FunctionGemma faz mais sentido em sistemas compostos, com um agente leve na borda e um ou mais modelos maiores na nuvem. O agente local resolve comandos frequentes com latência mínima, enquanto casos que exigem raciocínio extenso ou contexto longo são encaminhados a modelos de 1B ou 27B. Essa estratégia reduz custo, melhora privacidade e mantém a experiência fluida.
Exemplos reais citados pelo Google incluem, um demo totalmente offline de Mobile Actions, um minigame onde o modelo decompõe comandos em chamadas como plantCrop e waterCrop, e um playground de física rodando 100 por cento no navegador com Transformers.js, tudo suportado por FunctionGemma. Esses exemplos são valiosos para times de produto avaliarem os limites e desenharem métricas de sucesso.
Limitações, riscos e governança
Apesar do apelo de um LLM pequeno e rápido, é essencial reconhecer limites. Modelos de 270M têm restrições de raciocínio e contexto e dependem fortemente de ajuste para entregar consistência. Por isso, recomenda-se validação programática de argumentos gerados, limites por função, auditoria de logs de tool use e testes de fuzzing em entradas ambíguas. Os guias oficiais destacam que o fine-tuning é pré-requisito para comportamento determinístico em domínios definidos.
Além disso, a escolha do hardware precisa considerar orçamento térmico e de energia. Em placas como Jetson Nano, atingir estabilidade com tarefas multimodais ou cadeias longas de função pode demandar otimizações, quantização cuidadosa e buffers de segurança para picos de carga. As especificações do Nano ajudam a estabelecer expectativas realistas de throughput e latência.
Guia prático de adoção, do MVP à produção
- Comece pequeno, selecione 10 a 20 funções críticas do seu app, com nomes distintos e descrições claras. Forneça exemplos canônicos no dataset de ajuste e inclua casos de borda que o suporte terá de lidar.
- Invista no parsing seguro. Use esquemas JSON e verificação de tipos e intervalos antes de executar qualquer chamada. Gere mensagens de correção quando o modelo errar argumentos.
- Calibre temperatura, top p e penalidades para priorizar determinismo. Em agentes de ação, previsibilidade supera criatividade.
- Modele fallback explícito. Quando a confiança cair, retorne ao usuário para desambiguação ou redirecione a solicitação a um modelo maior na nuvem.
- Meça com métricas de negócios. Além de acurácia de tool use, monitore taxa de sucesso de tarefa, tempo de execução e satisfação do usuário no fluxo alvo.
- Teste em hardware real. O desempenho no desktop costuma superestimar o que ocorre em celulares de entrada. Use o CLI do LiteRT-LM para benchmarks e o app AI Edge Gallery para validar UX.
Ecossistema, suporte e comunidade
O anúncio lista suporte amplo, de frameworks de fine-tuning como Transformers e Unsloth até runtimes populares como vLLM, MLX, Llama.cpp e Ollama. Na prática, isso reduz lock-in e facilita testes A B com outros LLMs pequenos. Também há disponibilidade do modelo em Hugging Face e Kaggle, o que acelera a integração com pipelines existentes.
A comunidade já publicou variações LoRA e merges prontos focados em Mobile Actions. Esses projetos dão atalhos práticos para validar hipóteses, inspecionar hiperparâmetros e entender como pequenas mudanças no conjunto de ferramentas afetam a confiabilidade. Use essas referências como ponto de partida, mas valide tudo no seu domínio.
Perguntas frequentes de times de produto
- Posso usar FunctionGemma para qualquer domínio de API, sim, desde que o conjunto de ações seja bem definido e você faça fine-tuning com exemplos representativos. Quanto mais fechado o domínio, maior a chance de comportamento determinístico.
- Como fica a privacidade, o modelo foi desenhado para rodar localmente, o que evita tráfego de dados sensíveis. Ainda assim, sanitize entradas, oculte PII no logging e ofereça controles de privacidade no app.
- Onde encontro exemplos prontos, o card do modelo no Hugging Face mostra snippets de tool use e a doc oficial traz cookbooks de fine-tuning, conversão e publicação.
Conclusão
FunctionGemma consolida uma tendência que ficou clara em 2025, agentes precisam agir, não apenas conversar. Ao especializar um Gemma 3 de 270M para function calling e montar um caminho de fine-tuning, conversão e deployment em edge, o Google entrega um kit coerente para times que buscam latência baixa, privacidade e controle do comportamento do agente. Os dados do Mobile Actions e o ecossistema de ferramentas sugerem que o salto de confiabilidade vem do ajuste dirigido ao domínio.
O próximo passo está nas mãos dos desenvolvedores. Começar com poucas funções, métricas mensuráveis e testes no hardware alvo reduz atrito e antecipa riscos. Em um cenário híbrido com um agente local que resolve o comum e sabe encaminhar o complexo, a experiência do usuário melhora sem abrir mão de segurança e custo. O FunctionGemma é, acima de tudo, um convite para fazer agentes úteis, privados e rápidos, no bolso do usuário.
