Voltar para o blog
Machine Learning

Como rodar a demo Gemma 4 VLA no NVIDIA Jetson Orin Nano Super: guia completo

22 de abril de 2026
13:27
Hugging Facereconhecimento de vozsíntese de vozvisão computacionalllama.cppmodelos multimodaisNVIDIA JetsonGemma 4Inteligência Artificial EmbarcadaTutorial IA
Como rodar a demo Gemma 4 VLA no NVIDIA Jetson Orin Nano Super: guia completo

Apresentação da Gemma 4 VLA no Jetson Orin Nano Super

A NVIDIA, em parceria com a Hugging Face, disponibilizou uma demonstração da Gemma 4, um modelo multimodal com capacidade Visual Language Agent (VLA), rodando localmente no Jetson Orin Nano Super, uma placa compacta com GPU NVIDIA e 8 GB de RAM. Essa demo mostra a integração de reconhecimento de voz, processamento do modelo de linguagem, visão computacional via webcam e síntese de voz, tudo em um dispositivo embarcado.

A inovação está no fato de que a Gemma 4 decide autonomamente quando precisa usar a visão para responder a uma pergunta, capturando imagens da webcam, interpretando-as e incorporando essa informação na resposta, sem depender de gatilhos fixos ou palavras-chave.

Requisitos e equipamentos necessários

  • Hardware: NVIDIA Jetson Orin Nano Super (8 GB RAM), webcam USB (exemplo: Logitech C920), microfone USB integrado à webcam, alto-falante USB e teclado USB para controle (ex: pressionar tecla SPACE).
  • Sistema operacional: Linux (distribuição compatível com Jetson).
  • Softwares e bibliotecas: Python 3, pacotes básicos de sistema (git, cmake, build-essential, alsa-utils, pulseaudio-utils, v4l-utils, entre outros).

Passo a passo para instalação e execução da demo Gemma 4 VLA

1. Instalar pacotes básicos do sistema

sudo apt update
sudo apt install -y git build-essential cmake curl wget pkg-config \
python3-pip python3-venv python3-dev \
alsa-utils pulseaudio-utils v4l-utils psmisc 
ffmpeg libsndfile1

Esses pacotes cobrem ferramentas de compilação, áudio, webcam e ambiente Python.

2. Configurar ambiente Python

python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install opencv-python-headless onnx_asr kokoro-onnx soundfile huggingface-hub numpy

3. Otimizar uso de memória RAM (opcional, mas recomendado)

Como o Jetson Orin Nano tem 8 GB, liberar RAM e adicionar swap ajuda a evitar erros de falta de memória durante a execução:

sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
 echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

sudo systemctl stop docker 2>/dev/null || true
sudo systemctl stop containerd 2>/dev/null || true
pkill -f tracker-miner-fs-3 || true
pkill -f gnome-software || true
free -h

Feche também navegadores, IDEs e outros programas que consumam muita memória.

4. Baixar e servir o modelo Gemma 4 com llama.cpp

Clone e compile o repositório llama.cpp com suporte CUDA para melhor desempenho:

cd ~
git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
cmake -B build \
  -DGGML_CUDA=ON \
  -DCMAKE_CUDA_ARCHITECTURES="87" \
  -DGGML_NATIVE=ON \
  -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release -j4

Depois, baixe o modelo e o arquivo de "vision projector", imprescindível para a funcionalidade visual:

mkdir -p ~/models && cd ~/models
wget -O gemma-4-E2B-it-Q4_K_M.gguf https://huggingface.co/unsloth/gemma-4-E2B-it-GGUF/resolve/main/gemma-4-E2B-it-Q4_K_M.gguf
wget -O mmproj-gemma4-e2b-f16.gguf https://huggingface.co/ggml-org/gemma-4-E2B-it-GGUF/resolve/main/mmproj-gemma4-e2b-f16.gguf

Inicie o servidor llama:

~/llama.cpp/build/bin/llama-server \
  -m ~/models/gemma-4-E2B-it-Q4_K_M.gguf \
  --mmproj ~/models/mmproj-gemma4-e2b-f16.gguf \
  -c 2048 \
  --image-min-tokens 70 --image-max-tokens 70 \
  --ubatch-size 512 --batch-size 512 \
  --host 0.0.0.0 --port 8080 \
  -ngl 99 --flash-attn on \
  --no-mmproj-offload --jinja -np 1

O parâmetro -ngl 99 carrega todas as camadas do modelo na GPU para máxima performance.

5. Identificar dispositivos de áudio e webcam

Liste microfones disponíveis:

arecord -l

Liste os alto-falantes PulseAudio:

pactl list short sinks

Liste webcams:

v4l2-ctl --list-devices

Teste rápido para gravação e reprodução:

export MIC_DEVICE="plughw:3,0"
export SPK_DEVICE="alsa_output.usb-Generic_USB2.0_Device_20130100ph0-00.analog-stereo"
arecord -D "$MIC_DEVICE" -f S16_LE -r 16000 -c 1 -d 3 /tmp/test.wav
paplay --device="$SPK_DEVICE" /tmp/test.wav

Ouça para confirmar que o áudio está funcionando.

6. Executar a demo Gemma 4 VLA

Com o servidor ativo, ative o ambiente Python e defina variáveis:

source .venv/bin/activate
export MIC_DEVICE="plughw:3,0"
export SPK_DEVICE="alsa_output.usb-Generic_USB2.0_Device_20130100ph0-00.analog-stereo"
export WEBCAM=0
export VOICE="af_jessica"
python3 Gemma4_vla.py

Pressione SPACE para iniciar a gravação, fale sua pergunta e pressione SPACE novamente para parar. A Gemma 4 decide se precisa usar a webcam para responder, interpretando a imagem capturada e respondendo com contexto visual.

Como a Gemma 4 funciona na demo

O pipeline é o seguinte:

  • Você fala → Parakeet STT faz a transcrição localmente → Gemma 4 recebe o texto e a definição da ferramenta "look_and_answer"
  • Se a pergunta requer visão, Gemma 4 aciona a captura da webcam para análise
  • Gemma 4 responde usando o contexto visual e Kokoro TTS sintetiza a fala para o alto-falante

Não há palavras-chave ou lógica fixa; o modelo decide autonomamente quando usar a visão, graças ao suporte nativo a chamadas de ferramentas ativado pelo parâmetro --jinja no servidor llama.

Alternativa para testar Gemma 4 em modo texto

Se quiser experimentar a Gemma 4 sem configurar áudio e webcam, existe uma imagem Docker pronta com llama.cpp compilado para Jetson Orin. Ela roda apenas em modo texto (sem visão):

sudo docker run -it --rm --pull always \
  --runtime=nvidia --network host \
  -v $HOME/.cache/huggingface:/root/.cache/huggingface \
  ghcr.io/nvidia-ai-iot/llama_cpp:latest-jetson-orin \
  llama-server -hf unsloth/gemma-4-E2B-it-GGUF:Q4_K_S

Depois, basta usar qualquer cliente compatível com OpenAI para se conectar em http://localhost:8080 e conversar com o modelo.

Dicas para solução de problemas comuns

  • Falta de memória: repita os passos de limpeza de RAM e swap, feche programas desnecessários.
  • Sem som: confira se a variável SPK_DEVICE está correta e corresponde a um sink do PulseAudio real.
  • Microfone grava silêncio: verifique se MIC_DEVICE aponta para o dispositivo correto e teste gravação manual.
  • Primeira execução lenta: normal, pois baixa modelos e gera arquivos de voz; execuções subsequentes são mais rápidas.

Links úteis