Pular para o conteúdo principal

Gemma 3n: Um guia com projeto de demonstração (aplicativo VLM para Android)

Saiba como criar um aplicativo para Android que usa o Gemma 3n do Google para responder a perguntas sobre imagens diretamente no seu telefone, sem precisar de uma conexão com a nuvem.
Atualizado 26 de mai. de 2025  · 12 min lido

O Google acaba de lançar o Gemma 3n, um modelo multimodal para dispositivos de ponta, compatível com tarefas de visão, linguagem e áudio com execução modular. Neste tutorial, explicarei passo a passo como você pode baixar e executar o Gemma 3n localmente, diretamente no seu dispositivo Android, sem necessidade de computação em nuvem. Usaremos um aplicativo de demonstração que permite que você:

  • Faça perguntas em linguagem natural sobre imagens
  • Execute o modelo totalmente off-line usando o tempo de execução do Google ai-edge-litert
  • Teste a experiência em uma interface de aplicativo Android personalizada

Você aprenderá como o formato de arquivo .task permite uma implantação leve e como o aplicativo faz o download e inicializa automaticamente o Gemma 3n para uso local, tudo isso mantendo o desempenho suave e o baixo uso de memória.

Desenvolver aplicativos de IA

Aprenda a criar aplicativos de IA usando a API OpenAI.
Comece a treinar gratuitamente

O que é Gemma 3n?

A Gemma 3n é a mais recente família de modelos multimodais e de peso aberto do Google AI, projetada para ser executada com eficiência em dispositivos de uso diário, como telefones, tablets e laptops. Criado com base em um romance MatFormer com suporte para cache de parâmetros Per-Layer Embedding (PLE), o Gemma 3n oferece desempenho no dispositivo e minimiza os custos de memória e computação.

Embora semelhantes aos modelos tradicionais de modelos de visão-linguagem (VLMs)o Gemma 3n é compatível com as modalidades de texto, imagem e áudio. Sua variante "3n" é especificamente otimizada para implantação de borda, com execução leve em CPUs, NPUs ou GPUs móveis por meio do AI Edge SDK do Google.

Esses são os principais recursos do Gemma 3n:

  • Entrada multimodal: Ele aceita entrada de texto e imagem para raciocínio visual fundamentado
  • Inferência no dispositivo: Você não precisa de internet depois de fazer o download do modelo
  • Eficiência dos parâmetros: Ele usa ativação seletiva, cache de PLE e aninhamento de MatFormer para reduzir a sobrecarga de memória
  • Otimizado para celular: O Gemma 3n suporta inferência INT4 e FP16 no Android por meio das ferramentas MediaPipe e Google AI Edge
  • Pesos abertos: Ele está licenciado para uso comercial responsável e ajuste fino

Observação importante: embora o Gemma 3n seja compatível com entradas de áudio em sua arquitetura completa, os recursos de áudio ainda não estão disponíveis na visualização pública.

Como acessar o Gemma 3n?

Você pode experimentar o Gemma 3n usando um destes três métodos:

  1. Google AI Studio: A maneira mais fácil de começar a usar o navegador. Ir para Google AI Studio e selecione Gemma 3n na lista de modelos. Atualmente, somente a variante "gemma-3n-e4b-it" está disponível para uso. 
  2. Visualização do Hugging Face: O arquivo .task de Gemma 3n é publicado no formato ai-edge-litert do Google. Você pode solicitar acesso à página de modelos do Hugging Face e fazer o download do modelo localmente para inferência. Um arquivo .task é um pacote compacto e de fácil execução que contém uma versão pré-compilada do modelo, seus metadados e todas as configurações necessárias, projetado especificamente para execução rápida e segura no dispositivo usando o AI Edge SDK do Google.
  3. Executar no dispositivo (recomendado): Use o aplicativo oficial da Gemma Gallery do Google para executar o Gemma 3n diretamente no seu telefone Android. Esse método oferece suporte à imagem completa e à interação imediata por meio de um modelo local.

Em seguida, mostrarei a você como criar um aplicativo Android funcional que usa o modelo Gemma 3n para processar prompts de imagem e texto. Usaremos o repositório oficial da Galeria do Google como base e o personalizaremos para abrir diretamente na tela Pergunte à imagem, sem distrações.

Etapa 1: Clonar e configurar o aplicativo

Vamos começar configurando um novo projeto e clonando o repositório original do Google.

Etapa 1.1: Crie um novo projeto no Android Studio

Em seu laptop, comece abrindo o projeto como um novo projeto no Android Studio e selecione uma Empty Activity.

Janela Novo projeto do Android Studio para executar o gemma 3n

Etapa 1.2: Configurar uma nova atividade vazia

Em seguida, preencha o nome da sua atividade (por exemplo, "Ask_Image_Demo") e mantenha o restante como está. Em seguida, clique em Finish (Concluir).

Atividade vazia do Android Studio para a gemma 3n

Etapa 1.3: Clonar o repositório principal

Agora, abra o terminal no Android Studio (canto inferior esquerdo) e execute os seguintes comandos bash:

git clone https://github.com/google-ai-edge/gallery
cd gallery/android

Terminal do Android Studio para executar o gemma 3n

Isso abrirá seu projeto. Você pode visualizar todos os arquivos de projeto no lado esquerdo da guia.

Android Studio Files

Etapa 2: Eliminar todas as tarefas, exceto a de pedir imagens

Em seguida, editamos alguns arquivos para que a abertura do nosso aplicativo leve diretamente à página Ask Image. Em seguida, navegamos até o arquivo Tasks.kt no seguinte local: app/src/main/java/com/google/ai/edge/gallery/data/Tasks.kt. Para limitar a funcionalidade do aplicativo apenas ao recurso "Ask Image", faremos as seguintes edições:

Antes:

/** All tasks. */
val TASKS: List<Task> = listOf(
  TASK_LLM_ASK_IMAGE,
  TASK_LLM_PROMPT_LAB,
  TASK_LLM_CHAT,
)

Depois:

/** All tasks. */
val TASKS: List<Task> = listOf(
  TASK_LLM_ASK_IMAGE
)

Isso desativa as outras demonstrações, como Prompt Lab e Chat, garantindo que apenas o Ask Image seja exibido.

Etapa 3: Navegação automática para a tela Pergunte à imagem

Em GalleryApp.kt (localizado em // app/src/main/java/com/google/ai/edge/gallery/GalleryApp.kt), atualize o LaunchedEffect para navegar automaticamente até a página da imagem.  Essa alteração garante que o aplicativo abra a interface do Ask Image diretamente, ignorando a tela de seleção de tarefas padrão.

Antes:

@Composable
fun GalleryApp(navController: NavHostController = rememberNavController()) {
  GalleryNavHost(navController = navController)
}

Depois:

package com.google.ai.edge.gallery
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.navigation.NavHostController
import androidx.navigation.compose.rememberNavController
import com.google.ai.edge.gallery.data.TASK_LLM_ASK_IMAGE
import com.google.ai.edge.gallery.ui.llmchat.LlmAskImageDestination
import com.google.ai.edge.gallery.ui.navigation.GalleryNavHost
@Composable
fun GalleryApp(
  navController: NavHostController = rememberNavController()
) {
  // as soon as GalleryApp comes up, navigate to Ask-Image 
  // and drop “home” off the back-stack:
  LaunchedEffect(Unit) {
    TASK_LLM_ASK_IMAGE.models
      .firstOrNull()    // safety: don’t crash if the models list is empty
      ?.name
      ?.let { modelName ->
        navController.navigate("${LlmAskImageDestination.route}/$modelName") {
          popUpTo("home") { inclusive = true }
        }
      }
  }
  GalleryNavHost(navController = navController)
}

Aqui está um detalhamento do que a função GalleryApp atualizada faz no novo código:

  • LaunchedEffect: Um efeito colateral do Jetpack Compose que é acionado uma vez na composição. Aqui, ele é usado para executar imediatamente a lógica de navegação assim que o site GalleryApp é renderizado.
  • Buscar o primeiro modelo disponível: TASK_LLM_ASK_IMAGE.models.firstOrNull() busca com segurança o nome do primeiro modelo de imagem-texto disponível (por exemplo, Gemma 3n) a ser usado na navegação. Isso evita que o aplicativo trave se a lista de modelos estiver vazia.
  • navController.navigate(): Ele direciona dinamicamente o aplicativo para a tela Ask-Image usando o nome do modelo selecionado. Isso substitui a tela inicial usual como ponto de entrada.
  • Remover a tela inicial da navegação posterior: O método popUpTo("home") limpa a pilha de navegação, removendo a tela inicial do histórico. Isso garante que o usuário não possa navegar de volta para ele usando o botão Voltar do sistema.

Mantenha o restante do código como está. Juntas, essas alterações fazem com que o aplicativo seja iniciado diretamente na interface do Ask-Image com um modelo válido carregado, melhorando o fluxo do usuário para sua demonstração.

Etapa 4: Instale e execute o aplicativo em seu dispositivo

Depois que você tiver feito todas as alterações necessárias, executaremos o aplicativo. Para executar o aplicativo em seu dispositivo Android local, emparelhe seu dispositivo Android com o Android Studio usando a depuração sem fio com as seguintes etapas.

Etapa 4.1: Configure o dispositivo Android

Acesse o aplicativo Configurações em seu dispositivo Android e ative as Opções do desenvolvedor. Em seguida, ative Depuração sem fio. Você deverá ver uma tela com duas opções de emparelhamento.

Configurações de depuração sem fio no dispositivo Android para executar o gemma 3n

Etapa 4.2: Gerenciar dispositivos no Android Studio

No Android Studio, abra o Gerenciador de dispositivos (o ícone se assemelha a um telefone com um logotipo do Android) e clique em Emparelhar usando o código QR.

Emparelhar o novo dispositivo com o WiFi

Digitalize o código QR usando seu dispositivo e conclua a configuração do emparelhamento. Quando o dispositivo estiver conectado, você verá o nome do dispositivo em Device Manager. Verifique se o sistema e o dispositivo Android estão conectados à mesma rede WiFi.

Gerenciador de dispositivos

Etapa 4.3: Execute o aplicativo

Comece a espelhar seu dispositivo Android clicando no íconeDevice Mirroring (que mostra uma tela de desktop e uma tela de telefone). Quando você vir a tela do seu dispositivo espelhada, clique no ícone verde Run para implantar o aplicativo no seu dispositivo.

Etapa 4.4: Faça o download dos modelos no dispositivo

O aplicativo será iniciado e uma janela do navegador será aberta, solicitando que você faça login no Hugging Face para baixar com segurança o arquivo do modelo.

Janela do Chrome Janela do HuggingFace

Depois que você fizer login no HuggingFace, clique em iniciar o download no modelo escolhido, e o download do modelo começará. Para este exemplo, estou usando o modelo Gemma-3n-E2B-it-int4 por padrão.

Baixando o gemma 3n localmente

Etapa 4.5: Comece a fazer experimentos

Quando o download for concluído, você será levado diretamente para a página "Ask Image". Em seguida, escolha uma imagem existente na sua galeria ou tire uma nova foto com a câmera do dispositivo. Em seguida, passe um prompt junto com a imagem e envie-a para o modelo.

Página inicial do Ask Image

Aqui está um exemplo que testei.

Solicite uma demonstração de imagem da CPU com gemma 3n

  Solicite uma demonstração de imagem com o gemma 3n

O modelo é executado inicialmente na CPU. Você pode alternar para GPU para obter um desempenho potencialmente melhor usando o ícone "Tune" (representado por três controles deslizantes horizontais).

Pergunte à demonstração de imagens: Configs

   Solicitar demonstração de imagem na GPU

A mudança para uma GPU pode reduzir significativamente a latência geral, especialmente no processamento de imagens maiores e consultas mais complexas. Embora o processamento da GPU geralmente ofereça velocidades de decodificação mais rápidas, resultando em respostas mais rápidas, vale a pena observar que a velocidade de pré-preenchimento pode, às vezes, ser ligeiramente maior na CPU.

Isso ocorre porque o carregamento inicial e a preparação dos dados (pré-preenchimento) podem ser limitados pela CPU. No entanto, o benefício da decodificação mais rápida e da latência geral reduzida na GPU geralmente supera isso, proporcionando uma experiência mais suave e ágil.

Eu configurei este repositório do GitHub se você quiser explorar o código completo do projeto.

Conclusão

Exploramos como o Gemma 3n pode permitir a resposta a perguntas sobre imagens em dispositivos de bordasem a necessidade de inferência na nuvem. Você aprendeu a integrar um arquivo .task em um aplicativo leve para Android, a solicitar o modelo com linguagem natural e a obter respostas precisas sobre qualquer imagem, diretamente do seu telefone.

Este passo a passo prático mostra como o Gemma 3n democratiza a IA multimodal, facilitando aos desenvolvedores e pesquisadores a implantação de modelos robustos no dispositivo. Não importa se você está criando assistentes off-line, ferramentas educacionais, aplicativos de saúde ou outros, o Gemma 3n pode suportar muitos casos de uso.

À medida que o Google continua refinando a arquitetura do Matformer, espero ver modelos multimodais ainda mais compactos, com maior precisão e menor latência. Para saber mais sobre o Gemma 3n, confira a lançamento oficial do AI Edge ou mergulhe no repositório de código aberto no GitHub.

Se você quiser explorar mais ferramentas novas de IA, recomendo estes blogs:


Aashi Dutt's photo
Author
Aashi Dutt
LinkedIn
Twitter

Sou Google Developers Expert em ML (Gen AI), Kaggle 3x Expert e Women Techmakers Ambassador com mais de 3 anos de experiência em tecnologia. Fui cofundador de uma startup de tecnologia de saúde em 2020 e estou fazendo mestrado em ciência da computação na Georgia Tech, com especialização em machine learning.

Tópicos

Aprenda IA com estes cursos!

Programa

Developing AI Applications

0 min
Learn to create AI-powered applications with the latest AI developer tools, including the OpenAI API, Hugging Face, and LangChain.
Ver detalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

Explicação dos modelos de visão de linguagem (VLMs)

Os modelos de linguagem visual (VLMs) são modelos de IA que podem compreender e processar dados visuais e textuais, permitindo tarefas como legendas de imagens, respostas a perguntas visuais e geração de texto para imagem.
Bhavishya Pandit's photo

Bhavishya Pandit

8 min

Tutorial

Como criar aplicativos LLM com o tutorial LangChain

Explore o potencial inexplorado dos modelos de linguagem grandes com o LangChain, uma estrutura Python de código aberto para criar aplicativos avançados de IA.
Moez Ali's photo

Moez Ali

12 min

Tutorial

RAG With Llama 3.1 8B, Ollama e Langchain: Tutorial

Aprenda a criar um aplicativo RAG com o Llama 3.1 8B usando Ollama e Langchain, configurando o ambiente, processando documentos, criando embeddings e integrando um retriever.
Ryan Ong's photo

Ryan Ong

12 min

Tutorial

Uma introdução ao uso do DALL-E 3: Dicas, exemplos e recursos

Descubra como usar o DALL-E 3 para criar imagens. Descubra o que é o DALL-E 3, seus principais recursos e como usar os prompts para obter os melhores resultados.
Kurtis Pykes 's photo

Kurtis Pykes

13 min

Tutorial

Guia para iniciantes no uso da API do ChatGPT

Este guia o orienta sobre os conceitos básicos da API ChatGPT, demonstrando seu potencial no processamento de linguagem natural e na comunicação orientada por IA.
Moez Ali's photo

Moez Ali

11 min

Tutorial

Um guia para iniciantes na engenharia de prompts do ChatGPT

Descubra como fazer com que o ChatGPT forneça os resultados que você deseja, fornecendo a ele as entradas necessárias.
Matt Crabtree's photo

Matt Crabtree

6 min

Ver maisVer mais