O Gemma 4 traz uma IA multimodal eficiente diretamente para dispositivos Android. Nesta sessão, vamos mostrar como o Gemma evoluiu para uma família de modelos criada para ser eficiente e analisar o que os modelos E2B e E4B otimizados para borda podem fazer no dispositivo, desde a compreensão de visão e áudio até a chamada de função de agente. Vamos falar sobre a arquitetura por trás dessa eficiência, incluindo embeddings por camada (PLE, na sigla em inglês), e mostrar como o Gemma e o Gemini Nano trabalham juntos usando o AICore. Você vai aprender como o treinamento com reconhecimento de quantização (QAT) preserva a capacidade do modelo em pegadas de RAM de 1,1 a 3,5 GB, enquanto a previsão multitoken (MTP) acelera as velocidades de decodificação em 1,5 a 3 vezes para experiências responsivas em tempo real.
Transcrição
Sara Smoot
Olá, sejam bem-vindos à palestra.
Meu nome é Sara e sou líder de engenharia do Gemma na parte de modelagem.
Hoje, vou falar sobre nossos modelos.
Vou falar sobre os recursos e como pensamos no design para dispositivos móveis.
Vou falar sobre as técnicas que incorporamos ao modelo para que ele seja executado de forma eficiente em dispositivos móveis.
Vou explicar como você pode acessá-lo e como fazemos a integração com o AICore.
Por fim, vou encerrar com algumas demonstrações para mostrar o modelo e dar uma ideia do que ele é capaz de fazer.
Para entender para onde estamos indo, é importante entender de onde viemos.
Lançamos o Gemma 1 em 2024.
Lançamos um modelo de 2 bilhões e 7 bilhões de parâmetros, somente texto, tamanhos muito pequenos em comparação com o que estava acontecendo na época.
Depois do Gemma 1, lançamos o Gemma 2, que introduziu alguns recursos adicionais.
Apresentamos a programação.
Também lançamos um modelo de grande porte, o 27B, que expandiu bastante os recursos da série Gemma.
O Gemma 3 foi lançado pouco tempo depois.
Mais uma vez, adicionamos mais recursos, multimodalidade e um modelo menor, com 270 milhões de parâmetros, porque percebemos que os modelos menores tinham muitos casos de uso e estamos tentando ajudar a viabilizar o maior número possível de casos de uso de dispositivos móveis on-line.
Portanto, a cada lançamento, nossos recursos estão aumentando, e isso é intencional.
O que estamos fazendo é projetar para hardware de dispositivo único, e estamos tentando, quero dizer, isso inclui smartphones, laptops, GPUs, e nossa meta não é criar um modelo maior, embora tenhamos chegado a 12 a 27 bilhões, nossa meta é encaixar mais recursos com cada iteração na mesma pegada, porque queremos permanecer no dispositivo, queremos permanecer locais.
Para isso, aumentamos a eficiência.
Vou falar sobre o que fizemos especificamente para o Gemma 4 e como fizemos isso.
Lançamos o E2B, vou explicar o que é esse "E" em um minuto, lançamos o E4B, lançamos um modelo unificado de 12B, vou explicar por que fizemos isso, e também lançamos um modelo MoE.
Tudo para ajudar a comprovar a eficiência e dar aos desenvolvedores mais flexibilidade para os apps e as coisas que eles querem criar.
Analisando os recursos com mais detalhes, aqui você pode ver os recursos que adicionamos ao longo do tempo.
Quero destacar algumas coisas, como o tamanho do contexto.
Adicionamos um tamanho de contexto muito maior do que nas versões anteriores do Gemma.
O Gemma 4 tem até 128 mil tokens de contexto.
Os modelos maiores vão até 256.
Vale lembrar que o Kit de ML limita o tamanho do contexto. Por isso, verifique seu orçamento antes de esperar que seja possível lançar com 128.
Mas isso deve ser suficiente para ler documentos longos, fazer raciocínios expandidos, chamadas de função e também dar orçamento suficiente para fazer multimodalidade, usar visão e áudio.
O vídeo é um novo recurso que adicionamos, começando com o Gemma 3n, e que foi aprimorado no Gemma 4.
Agora temos suporte multilíngue.
Ainda estamos treinando em vários idiomas, então você tem suporte integrado e pré-treinado.
E tudo isso agora vem com uma nova licença Apache 2, o que nos deixa muito animados, porque isso vai dar muito mais flexibilidade ao que você pode criar com ela e também vai reduzir muito o atrito.
É muito mais fácil criar e baixar o modelo.
Sara Smoot
Certo, e o que fazemos com a visão?
A visão para o Gemma 4, especificamente, tem proporção variável.
Isso significa que, em vez de comprimir a imagem em um quadrado estranho, preservamos a proporção real do modelo.
Isso significa que o texto e os objetos não ficam distorcidos.
Na verdade, isso melhora drasticamente a capacidade do modelo.
As formas permanecem fiéis, e o OCR é muito melhorado com essa proporção variável.
A visão também pode ler gráficos, planilhas e diagramas.
Ele também pode traduzir com base em dicas visuais. Assim, você pode tirar fotos de palavras e ele vai traduzi-las para você.
Ele também raciocina sobre o mundo físico.
Ele pode analisar uma imagem, entender onde as coisas estão e o que está nela.
Ele pode fazer muita coisa.
Outro recurso pouco conhecido dos nossos modelos Gemma é que você pode definir o orçamento de tokens visuais.
Então, agora, quero dizer, verifique o que é no ML Toolkit, mas você tem uma grande variedade.
Se você quiser gastar mais energia e capacidade na compreensão de imagens de alta resolução, é possível definir isso.
Se esse não for um caso de uso que você queira aproveitar, é possível reduzir bastante o orçamento de tokens de imagem e recuperar muito desse poder e dos ciclos de computação do modelo para seus aplicativos de texto.
O áudio é um modo relativamente novo para nós.
Ele foi lançado no Gemma 3n.
Agora, estamos aproveitando ao máximo essa abordagem no Gemma 4.
O áudio está disponível apenas nos nossos menores modelos: E2B, E4B e 12B.
A transcrição será feita com base no arquivo de áudio.
Ele traduz falas.
Ele é compatível com mais de 35 idiomas.
Também fizemos o pré-treinamento em mais de 140 idiomas. Assim, se você quiser usar um idioma que não está entre os 35, poderá fazer um ajuste e receber um suporte muito bom para um idioma que não é compatível de forma nativa.
Adicionamos o raciocínio agêntico.
Isso também é uma novidade no Gemma 4.
Ela planeja.
Ele faz várias etapas.
Ele usa ferramentas.
Ele segue as instruções com precisão.
Ele retorna um JSON estruturado.
Ele pode fazer tudo o que você espera de um modelo de agente.
Se você não estiver usando o ML Toolkit, mas sim fazendo as coisas por conta própria, preste atenção aos modelos de chat.
Os modelos de chat são complicados.
Eles precisam ser manuseados com cuidado.
Se você estiver usando o ML Toolkit, tudo isso será feito para você.
Por fim, o Gemma continua oferecendo uma excelente compreensão de texto.
E com o contexto mais longo, agora podemos analisar códigos, documentos longos e traduzir.
Na verdade, com a funcionalidade de programação, o Android Studio agora é compatível com o Gemma 4 no modo off-line.
Portanto, se você quiser usar o Android Studio off-line, ele vai usar o Gemma 4 para realizar suas tarefas de programação.
E um ponto importante: o E2B e o E4B são pequenos o suficiente para caber e funcionar bem no seu smartphone.
Ou seja, é muita capacidade em um espaço bem pequeno.
Esse é um desafio de engenharia muito difícil, então a equipe do Gemma está muito orgulhosa disso.
Confira alguns exemplos que demonstram os recursos.
À esquerda, mostramos que o modelo é capaz de encontrar o laptop e retornar as coordenadas de onde ele está.
Assim, o app pode desenhar um ponteiro e mostrar onde o laptop está.
No centro, o modelo consegue identificar objetos e desenhar caixas delimitadoras ao redor deles.
Há algumas aplicações interessantes para isso: detecção de objeto e desvio de objetos.
Esse é um recurso muito bom.
À direita, é mostrado como o modelo pode ler texto.
Então, isso significa "Cuidado, tem um gato".
Ele também entende o que está acontecendo na imagem, vê o gato nessa posição engraçada e traduz, apontando que é uma piada, já que o texto abaixo diz: "Algo pode acontecer".
O que eu acho fofo.
Então, apontar, detecção de objeto, fazer OCR e traduzir, tudo sem um pipeline de visão especial.
Vamos aos números da avaliação.
Sabe, demonstrar capacidade é sempre importante, mas muitas pessoas olham para isso e acho que aqui é possível ver a força dos modelos.
Se você olhar para as duas últimas colunas, o E2B supera o Gemma 3 27B, que é um modelo muito maior, em raciocínio, programação e tarefas de agente.
Então, confira o LiveCodeBench.
Temos 44 para o Gemma 4 contra 29 para o Gemma 3 27B.
O AIME também é muito maior.
O Tau2, que é uma avaliação agêntica, também é muito maior, mostrando muita força.
Se aumentarmos um pouco mais os parâmetros, nosso modelo E4B supera o modelo 27B em todos os comparativos de mercado.
Portanto, ao passar do Gemma 3 para o Gemma 4, incluímos muito mais recursos no mesmo número de parâmetros.
Sara Smoot
Como fazemos isso?
Tornar o modelo mais capaz sem aumentar o tamanho dele é um problema desafiador.
Se você olhar apenas para o hardware, os smartphones têm muito menos memória.
Estamos falando de 12 a 16 GB em comparação com os cerca de 80 GB que você pode ter em um servidor.
A largura de banda também é muito menor: 50 a 80 GB em comparação com os terabytes que você teria em um servidor.
Além disso, há restrições severas de energia.
Precisamos ter tudo isso em mente ao executar o modelo.
Cada técnica que vou mostrar a seguir visa uma dessas restrições e ajuda a otimizar o modelo para o hardware móvel.
Certo, a primeira coisa que fazemos é não ter uma arquitetura para cada tamanho.
Cada tamanho de modelo tem uma arquitetura separada.
Então, nossos modelos E2B e E4B têm alguns elementos especiais, que serão o foco principal do restante da minha apresentação, mas acho útil saber que nosso modelo 12B não tem um codificador de visão.
Por isso, com esse modelo, removemos o codificador de visão para simplificar a implantação e minimizar o número de parâmetros necessários.
Esse geralmente é voltado para o hardware do laptop.
Nossos modelos grandes servem para demonstrar o máximo de capacidade.
Eles estão disponíveis em modelos totalmente densos e de mix de especialistas.
O modelo de mix de especialistas também pode ser executado em laptops, e nós o criamos devido à menor latência que você obtém da arquitetura de especialistas.
No restante da palestra, vou me concentrar nos modelos para dispositivos móveis, que são o E2B e o E4B, e falar sobre o que fizemos para que eles funcionem muito bem nos smartphones.
Certo, é daí que vem o "E", de embeddings por camada.
Essa é uma técnica interessante e inovadora que adicionamos aos modelos.
E se você pensar em como os modelos funcionam, eles precisam de mais parâmetros para serem mais inteligentes.
Estamos melhorando a eficiência dos parâmetros, mas, de modo geral, para que o modelo seja melhor, você precisa de mais parâmetros.
O PLE diz: "Ok, precisamos de mais parâmetros".
Mas, em vez de adicionar mais parâmetros diretamente ao modelo, temos uma tabela de embeddings extra.
Essa tabela de embeddings é lida para cada camada.
Depois de ter os tokens que o modelo vai precisar, você pode extrair os embeddings por camada necessários para uma determinada sequência de entrada e carregar apenas esses embeddings no modelo.
O que ele faz é oferecer modelos eficazes de 2 bilhões de parâmetros, embora o número de parâmetros em si seja um pouco maior.
Por isso, dizemos que ele tem 2 bilhões de parâmetros, porque apenas esses 2 bilhões são carregados na memória.
A tabela de embeddings geralmente é salva em flash, não na RAM.
Assim, você limita a largura de banda, porque não precisa transferir tantos parâmetros, mas ainda tem a capacidade total de um modelo muito maior.
Ele também ocupa menos RAM no dispositivo.
A próxima coisa que adicionamos é um modelo de rascunho.
O modelo de rascunho que usamos para o Gemma é um modelo preditivo de vários tokens.
E é uma forma de decodificação especulativa.
Isso permite prever mais tokens por passagem do que um modelo autorregressivo geral.
Em vez de fornecer modelos autorregressivos típicos que fazem um token por vez, é preciso passar por todo o modelo a cada token.
O que esse rascunho faz é prever três ou quatro tokens por vez, e então usamos o modelo principal para validar esses tokens.
Se esses tokens forem aceitos, eles serão usados, e normalmente podemos receber dois, três ou quatro tokens por passagem, em vez de apenas um por vez.
Essa é uma técnica comum.
Os modelos de rascunho estão disponíveis.
O que fizemos de diferente e especial para o Gemma é compartilhar o cache de KV do modelo de base.
Portanto, para o E2B, fazemos o preenchimento completo, criamos o cache e, em seguida, nosso modelo de rascunho usa esse cache de KV.
Assim, você economiza cerca de 130 milissegundos em um comando de 100 ou 1.000 tokens, porque não precisa gerar novamente um preenchimento prévio para o modelo de rascunho.
Por isso, nosso modelo de rascunho é cerca de 30 a 40 vezes mais rápido do que outros modelos de rascunho disponíveis.
Se você analisar os números, vai notar as acelerações ao usar o modelo de rascunho.
Temos uma taxa de aceitação de 40% a 60% maior do que a maioria dos modelos de rascunho.
Temos uma latência de decodificação 40% menor ao usar o modelo de rascunho, e também usamos de 30% a 40% menos energia ao usar esse modelo.
Assim, você tem respostas mais rápidas, maior duração da bateria e nenhuma mudança no código.
É uma ferramenta simples e bem aceita.
Sara Smoot
Nossa próxima inovação é a quantização.
A quantização também não é uma técnica nova, mas tomamos um cuidado especial com nossos modelos para dispositivos móveis para garantir que a quantização funcione muito bem com o hardware desses dispositivos.
E há algumas coisas que consideramos com nossos modelos de QAT.
A primeira é o QAT, que, para quem não sabe, é o treinamento com reconhecimento de quantização.
Isso significa que, ao fazer o treinamento, consideramos e reconhecemos que vamos quantizar.
Isso ajuda o modelo a entender que os parâmetros serão agrupados e ajuda a preservar a qualidade.
Isso também ajuda a preservar a qualidade e, geralmente, podemos reduzir o modelo para uma fração do tamanho.
Portanto, se você passar de um modelo de 16 bits para um de 4 bits e preservar toda a qualidade, economizará muita memória.
O E2B vem em duas quantizações diferentes.
Temos um formato Q4_0.
Essa é uma quantização de uso geral.
Isso é personalizável.
Isso funciona muito bem com outras bibliotecas de quantização.
Ele permite que você brinque e tenha uma quantização que pode funcionar bem para seu caso de uso.
Também temos uma quantização muito especial, que chamamos de quantização para dispositivos móveis, que é muito agressiva, e fizemos muitas pesquisas para otimizá-la.
Ele não é tão compatível na maioria dos ambientes de execução, mas é com o Kit de ML e no Android Studio, então você pode usá-lo.
Você pode usá-lo lá.
Algumas das inovações que criamos: usamos quantizações de ativação estáticas.
Portanto, ao fazer a quantização, se você estiver fazendo a ativação de intervalo dinâmico, o modelo normalmente precisa calcular os intervalos em tempo real e usá-los para fazer a quantização.
A quantização de intervalo estático já foi feita para você, então não é preciso pré-computar os intervalos.
A outra coisa que fizemos é a quantização por canal.
Estruturamos e compactamos o modelo de uma forma que funciona muito bem com a maioria dos hardwares de dispositivos móveis.
Usamos a quantização de 2 bits.
Portanto, a quantização de dois bits geralmente tem muita perda.
É muito difícil fazer PTQ.
Fizemos pesquisas e entendemos nossos modelos o suficiente para saber onde os parâmetros podem ser compactados para 2 bits e fizemos isso com o treinamento com reconhecimento de quantização.
Isso economiza muito armazenamento e preserva quase toda a qualidade.
Então, nosso modelo quantizado especial tem menos de um gigabyte, o que é bem menor do que os modelos quantizados de 4 bits que temos por aí.
Outra coisa que incorporamos à nossa quantização personalizada é a quantização de embedding e de cache de chave-valor.
Há muitas técnicas para fazer as duas coisas.
Fizemos uma pesquisa e descobrimos que isso funciona muito bem com nosso modelo.
E agrupamos isso nesses checkpoints.
Tudo isso reduz drasticamente a memória ativa.
Isso economiza muita largura de banda ao mover parâmetros de um lado para o outro.
E também permite que você gerencie e mantenha, sabe, suas conversas longas e outras coisas sem ficar sem espaço.
Sara Smoot
Certo, então fazemos a integração pelo AICore.
Então, o que você recebe com o AICore é o modelo Gemini Nano 4.
O Gemini Nano 4 é o Gemma criado e executado pelo AICore.
O AICore faz algumas coisas legais para você.
É o caminho mais automatizado. Vou falar sobre o outro caminho rapidamente.
O outro caminho é usar o LiteRT, que é mais personalizado e prático.
Se você escolher essa opção, o modelo será empacotado com o app.
Ele não vai usar o modelo compartilhado hospedado no dispositivo.
Portanto, você precisa estar ciente da sua memória.
Você vai precisar ficar de olho no seu consumo de energia.
Você vai precisar se envolver muito mais com os recursos do smartphone e como gerenciá-los.
Mas você tem controle total.
Você pode usar ajustes com o LiteRT, que oferece mais opções de personalização.
Se você usar o AICore, poderá usar as APIs do kit de ferramentas de ML, que é o caminho mais simples.
E, ao usar isso, você tem acesso a todas as funcionalidades que mencionei. Os embeddings por camada são processados adequadamente, e o ambiente de execução permite que os parâmetros não estejam na RAM, incluindo os parâmetros de embedding.
Ele já tem o MTP integrado, então isso vai funcionar automaticamente.
Ele também usa nossa quantificação para dispositivos móveis.
E ele está sendo executado em um ambiente de execução projetado para hospedar e funcionar bem com essa quantização.
Então, ele pode ser executado e fazer coisas com precisão de 2 bits, onde precisamos, o que o torna muito eficiente.
Se quiser se aprofundar, há duas outras palestras que já aconteceram ou vão acontecer.
A sessão do David sobre o Kit de ML aborda o caminho do Gemini Nano 4, como usar o modelo pelo Kit de ML, e a sessão do Chintan e do Fergus sobre o LiteRT aborda como usar e desenvolver com o LiteRT.
Este é o fluxo de solicitação do Gemma.
Há uma superfície de API que passa por algum processamento de entrada, e tudo isso é integrado para você.
Parte do processamento de entrada são os indicadores de segurança.
O AICore oferece segurança integrada.
Ele verifica se há muitos recursos de segurança no modelo.
Essa é uma camada extra de segurança para apps para dispositivos móveis.
Ele vai passar pela configuração do recurso e, em seguida, pelo ambiente de execução no dispositivo.
Na saída, ele também verifica a segurança novamente.
Ele verifica os indicadores de saída para garantir que ela seja segura.
Essa é mais uma camada de segurança além da que já criamos no modelo.
Ele também faz atualizações e é compartilhado entre apps.
Portanto, se você estiver criando vários apps em particular ou não quiser gerenciar um modelo empacotado, essa é a melhor opção, e você terá muitas funcionalidades integradas prontas para uso.
Sara Smoot
Agora, vamos para a demonstração.
Este é um assistente por voz.
Vou mostrar em um laptop.
Alguns detalhes que quero que você observe: ele é totalmente local e está sendo executado no dispositivo.
Ele é cascateado usando VAD.
Ele passa pela STT, depois pelo Gemma e, em seguida, pela TTS, que é o modelo de conversão de texto em voz.
Ele está sendo transmitido e também está sendo executado no modelo E2B.
Este é o modelo exato que está sendo executado em um laptop, mas é o mesmo modelo que está sendo executado em um smartphone.
Tudo isso pode ser feito no smartphone.
Esta demonstração específica foi criada com o LiteRT.
Também deve ser possível criar com o Kit de ML.
Observe a latência, não há ida e volta do servidor, e veja como ele lida com interrupções.
Oi, Gemma, fale um pouco sobre você.
Sou o Gemma 4, um modelo de linguagem grande desenvolvido pelo Google DeepMind.
Eu processo textos e imagens para fornecer informações e concluir tarefas.
Legal.
Você pode me falar um pouco sobre Shakespeare?
William Shakespeare foi um dramaturgo e poeta inglês, considerado o maior escritor da língua inglesa.
Espera aí.
Sabe de uma coisa?
Quero muito saber sobre o sistema solar.
Pode me contar mais sobre isso?
O sistema solar consiste no Sol e em tudo que está gravitacionalmente ligado a ele, incluindo oito planetas, planetas anões, luas, asteroides e cometas.
Legal.
Você pode explicar como funciona um buraco negro?
Um buraco negro se forma quando uma estrela enorme entra em colapso sob a própria gravidade, criando uma região do espaço-tempo com uma gravidade tão forte que nada, nem mesmo a luz, consegue escapar.
Isso é muito legal.
Nossa equipe agradece.
De nada.
Você tem mais alguma dúvida?
Certo.
Há o assistente de áudio.
Certo, vamos para o próximo.
Este será um assistente local que usa os recursos de vídeo.
Ele é totalmente off-line e, para deixar isso bem claro, a demonstração é feita durante um acampamento, supostamente no meio da natureza.
É importante observar que isso é baseado no modelo E4B.
Ele fala naturalmente.
Vamos mostrar como fazer as coisas.
Ele usa chamadas de ferramenta em segundo plano e pode acessar diferentes recursos no smartphone.
E é bem divertido.
Ei, Gemma, temos internet agora?
Não, não temos uma conexão de Internet no momento.
O que é esse aviso?
Isso é em espanhol.
Essa placa é um aviso sobre o habitat do puma.
Ele informa que os pumas fazem parte do ambiente local e que você deve ter cuidado se encontrar um.
Qual é a derivada dessa função?
A derivada de x ao quadrado mais 7x mais 10 é 2x mais 7.
É engraçado.
Olá!
Olá, Cindy.
Gemma, que horas é nossa caminhada em grupo hoje à noite?
Sua caminhada em grupo está programada para as 18h.
Hoje.
Isso é um puma?
Não, é um cachorro.
Bom garoto!
Sara Smoot
Tudo pronto para começar a criar.
Estes são os links aqui em cima, que na verdade são links para os checkpoints.
Se você quiser conferir diretamente os checkpoints e o código do modelo, tudo está disponível.
Você pode usar o ML: há o Gemma, o Gemini Nano 4 e o link do Kit de ML.
Os checkpoints estão no Hugging Face, e nosso código está na base de código do Transformers.
Você pode conferir o que fizemos.
Também é possível acessar os checkpoints no Kaggle.
Mais uma vez, quero lembrar que você pode conferir a apresentação do David sobre o Kit de ML se quiser saber mais sobre ele.
E depois, teremos a apresentação do Chintan e do Fergus sobre o LiteRT.
Se você quiser saber como acessar e usar o modelo nos seus apps com o LiteRT.
Nossa equipe agradece.
Estou muito animado para ver o que vocês vão criar.