Olha só o que mudou no mundo da IA de borda
Até pouco tempo atrás, "IA de borda" era sinônimo de rodar um MobileNet espremido num microcontrolador e chamar de inovação. Isso acabou. Com o Raspberry Pi 5 — quatro núcleos ARM Cortex-A76 — e um runtime de inferência maduro, dá pra rodar um LLM completo direto no dispositivo, sem API, sem latência de rede, sem mandar seus dados pra ninguém.
Neste tutorial a gente vai colocar o Gemma 4 E2B pra rodar no Raspberry Pi 5 usando LiteRT (runtime de produção do Google AI Edge) e o LiteRT-LM. É a mesma stack que faz o robô Reachy Mini funcionar em tempo real. Vamos lá! 🚀
Se você vem do mundo cloud-first, o choque de realidade é esse: seu gargalo não é mais rede, é memória e temperatura. Todo o resto do artigo parte desse princípio.

CPU vs GPU no Raspberry Pi 5: entenda antes de codar
Antes de sair instalando coisa, saca só o que você tem em mãos:
| Componente | FP32 GFLOPS | INT8 TOPS | Observação |
|---|---|---|---|
| CPU Cortex-A76 (4 núcleos) | ~153.6 | ~2.0 | Potência bruta de cálculo |
| GPU VideoCore VII | ~76.8 | ~0.24 | 800 MHz, paralelismo heterogêneo |
A CPU ganha em throughput puro, mas a GPU te dá execução paralela heterogênea — rodar visão/áudio em paralelo com inferência de LLM, em vez de torrar um cluster de núcleos só. Essa é a sacada por trás do pipeline do Reachy: joga visão contínua pra GPU, guarda ciclos de CPU pro decode do LLM e orquestração.
O LiteRT expõe inferência na GPU via backend WebGPU (Vulkan) com ML Drift, então você roda MediaPipe, YOLO da Ultralytics, Moonshine e modelos de embedding lado a lado com o Gemma.
Instalando o LiteRT CLI
# Recomendado: usa um virtualenv
python -m venv litert-env
source litert-env/bin/activate
# Instala o CLI unificado do LiteRT
pip install litert-cli
Rodando o Gemma 4 E2B direto do Hugging Face
A comunidade LiteRT no Hugging Face tem modelos prontos. Exporta o token e manda ver:
# Autentica com o Hugging Face
export HUGGING_FACE_HUB_TOKEN=hf_xxxxxxxxxxxxxxxxxxxx
# Roda o Gemma 4 E2B com uma imagem anexada e prompt estilo Reachy
litert lm run \
--from-huggingface-repo=litert-community/gemma-4-E2B-it-litert-lm \
gemma-4-E2B-it.litertlm \
--attachment=image.jpg \
--prompt="Você é o Reachy Mini. Identifique o objeto principal à sua frente, \
informe a localização (Esquerda/Direita/Centro) e sugira uma ação de cabeça \nem 10 palavras ou menos."
Pronto. Sem tokenizer separado, sem quantização manual. O LiteRT-LM cuida da orquestração em cima do runtime.
Números reais de performance
No Raspberry Pi 5 com Gemma 4 E2B via LiteRT-LM:
- Prefill: ~99 tokens/seg
- Decode: ~9 tokens/seg
- Memória de pico: ~1432 MB
- Geração ponta a ponta: ~27,3 caracteres/seg (~300 ppm) — cerca de 2x a velocidade da fala humana
O decode é o número que importa. A ~300 palavras por minuto você fica confortavelmente acima do tempo real de fala — é por isso que tradução de voz e agentes conversacionais funcionam nesse hardware.

Pegadinhas, limites e o que ninguém te conta
1. O teto de 1432 MB é real. Um Pi 5 com 4 GB de RAM te deixa quase sem folga depois do SO, Python e runtime. Se for rodar visão em paralelo, vai de 8 GB. Isso não é sugestão, é requisito.
2. Velocidade de decode ≠ responsividade. 9 tokens/seg parece ok no papel, mas workflows agênticos que encadeiam vários passos de raciocínio multiplicam essa latência. Projete prompts pra minimizar round-trips — agrupe instruções, evite chamadas de ferramenta desnecessárias.
3. Offload pra GPU não é de graça. Mover modelo pra VideoCore VII economiza ciclos de CPU mas adiciona overhead de transferência de memória entre os dois processadores. Faça profiling antes de assumir que offload é mais rápido — pra modelos pequenos, muitas vezes não é.
4. Throttling térmico vai te pegar. Inferência de LLM sustentada no Pi 5 sem refrigeração ativa vai throttlar em minutos. Coloque dissipador e ventoinha se for além de cargas em rajada.
5. Trade-offs de quantização. As distribuições padrão do LiteRT já vêm otimizadas, mas se você trouxer seu próprio modelo, quantização INT8 pode degradar a qualidade de raciocínio de forma perceptível nas variantes menores do Gemma. Valide na sua tarefa real, não em benchmarks de perplexity.
Próximos passos
- Pipelines multimodais: Combina YOLO na GPU com Gemma na CPU pra ter um loop completo de perceber-raciocinar-agir.
- Orquestração agêntica: Plugue o LiteRT CLI no seu agente de código (tipo o Google Antigravity) pra ele rodar conversão → quantização → benchmark → inferência de forma autônoma.
- Aceleração Hailo: A integração do LiteRT com aceleradores Hailo (AI HAT+ / AI HAT+ 2) tá chegando — mesmos workflows, offload dedicado pra NPU. Vale esperar se você tá construindo robótica de produção.
- Tradutores de voz: O repo Gemma Translator é uma boa referência de implementação totalmente offline de fala-pra-fala.
Se você quer entender como modelos de raciocínio agêntico estão redefinindo custos em produção, dá uma olhada na nossa análise do NVIDIA Nemotron 3 Ultra e a redução de 30% no custo de agentes. E se você tá pensando na camada de UX dos sistemas que constrói, vale ler o deep dive do redesign do Turnstile da Cloudflare.

Resumindo
Dá pra rodar um LLM de verdade num computador de placa única hoje. LiteRT + Gemma 4 E2B no Raspberry Pi 5 entrega ~99 tok/s de prefill, ~9 tok/s de decode e ~300 ppm de geração com menos de 1,5 GB de pico de memória — tudo offline.
A instalação são três comandos. A parte difícil é arquitetural: saber quando dividir trabalho entre CPU e GPU, como orçar memória e como manter folga térmica. Acertando isso, você tem um sistema de borda genuinamente autônomo.
Começa pelo LiteRT CLI, pega um modelo na comunidade do Hugging Face e constrói algo que nunca liga pra casa.
Fonte: Mastering Edge AI on Raspberry Pi with LiteRT and Gemma