bestmodel.run / blog
Gemma 4 12B em produção na RTX 3090: 66,5 tok/s medidos no bestmodel.run
O guia Como achar em 5 minutos o melhor LLM local para a sua GPU no bestmodel.run já citou um número deste rig: Gemma 4 12B W4A16, com vLLM, teve 66,5 tok/s com 1 pedido. Este post publica o resto da medição de produção — throughput com 8 requisições simultâneas, TTFT, VRAM, temperatura, KV cache, multimodal e o que não foi validado.
A data da implantação é 2026-09-28, no rig rtx-3090-24gb. Diferente de uma célula de benchmark isolada, o número existe porque o serviço estava em produção em https://gemma.bestmodel.run/v1. O checkpoint é o QAT W4A16 oficial google/gemma-4-12B-it-qat-w4a16-ct, rodando em vLLM 0.30, contexto 32k, streaming, max_tokens 200 e prompt PT-BR de ~25 tokens. O harness é o report/perf_test.py do repo da missão.
O que foi medido
Throughput de decode e TTFT no serviço real:
| Cenário | Decode | TTFT |
|---|---|---|
| 1 requisição | 66,5 tok/s | 253 ms |
| 8 simultâneas | 485,7 tok/s total (≈61 tok/s cada) | 126 / 224 / 225 ms (min/med/max) |
VRAM 22 842/24 576 MiB · 45 °C em carga · KV cache 167 544 tokens (5,1× a 32k).
Com uma requisição, o decode fica em 66,5 tok/s e o TTFT em 253 ms. Com oito simultâneas, o total sobe para 485,7 tok/s (≈61 tok/s cada) e o TTFT fica em 126 / 224 / 225 ms (min/med/max). A placa usa 22 842 de 24 576 MiB, fica a 45 °C em carga e o KV cache cabe 167 544 tokens, 5,1× o contexto de 32k.
Esses números não são uma média nova nem uma extrapolação: são os dois cenários medidos, batch 1 e batch 8.
Por que W4A16 e não FP8 na 3090
FP8 online (--quantization fp8) crasha. O vLLM 0.30 despacha o GEMM para cutlass_scaled_mm_sm80_epilogue (w8a8 SM80), que não suporta as formas do Gemma 4 — head_dim 256/512 híbrido. Ampere não tem tensor core FP8. O caminho "FP8 pesos via Marlin" não existe para este modelo nesta versão.
O QAT W4A16 oficial do Google cabe: 8,28 GiB de pesos, kernels Marlin maduros em Ampere e qualidade de treino quantização-consciente, superior a PTQ/AWQ. Por isso a produção nesta 3090 usa W4A16, não FP8.
Multimodal verificado (não assumido)
A medição também passou por imagem e áudio no mesmo serviço. O que foi verificado:
- Imagem (
image_urlem base64): o modelo leu OCR exato de 3 linhas num PNG gerado localmente. - Áudio via chat (
input_audio): um clipe humano FLEURSpt_brde 17,8 s saiu com transcrição quase idêntica à referência do TSV. As diffs foram "Bieber"→"Biber" e "20"→"vinte". POST /v1/audio/transcriptionsnão existe no vLLM 0.30 (404).- Voz robótica (espeak-ng) é rejeitada pelo modelo — qualidade de áudio importa.
Isso é verificação pontual, não um benchmark multimodal completo. A próxima seção diz o que ficou de fora.
O que não foi validado
bestmodel.run publica o que foi medido e o que não foi. Desta corrida:
- Os números de decode são só com batch 1 e 8. Não houve varredura de batch maior. A 3090 satura em ~485 tok/s com 8 — não extrapolar linearmente.
- Áudio de reunião ou telefonia não foi validado. Só houve read speech do FLEURS.
- WER formal do Gemma 4 ASR não foi medido aqui. A passagem do FLEURS foi 1 clipe, qualitativa. Não cite isso como número de WER.
Se alguém afirmar "Gemma 4 12B faz X tok/s na 3090" sem dizer batch, engine e quantização, o número não é este. Se alguém citar WER ou áudio de reunião a partir desta medição, está inventando.
Como ver no bestmodel.run
O caminho é o mesmo do guia de 5 minutos. Em /hardware, o slug deste rig é rtx-3090-24gb. Em /wall?rig=rtx-3090-24gb você vê o ranking medido naquela GPU. A página do modelo costuma viver em /m/google-gemma-4-12b-it; se você tentar /m/gemma-4-12b-it, o site pode sugerir o slug com o prefixo do dono.
Qualquer página aceita ?as=agent para uma versão em texto voltada a agentes. Se você rodou a mesma combinação — ou outra — em hardware parecido, envie a medição em /submit. Onde não há medição, o site só estima por fórmula.
CTA: leia o número, não a extrapolação
Se você quer saber o que o Gemma 4 12B W4A16 entrega nesta RTX 3090 em produção, estes são os fatos medidos:
- 1 requisição: 66,5 tok/s e TTFT 253 ms.
- 8 simultâneas: 485,7 tok/s no total (≈61 tok/s cada) e TTFT 126 / 224 / 225 ms.
- VRAM 22 842/24 576 MiB, 45 °C em carga, KV cache 167 544 tokens (5,1× a 32k).
- W4A16, não FP8: o caminho FP8 crasha neste modelo nesta versão do vLLM nesta Ampere.
- Imagem e um clipe FLEURS
pt_brforam verificados; reunião, telefonia e WER formal não.
O bestmodel.run não promete o modelo perfeito para todo mundo. Ele publica medições com o cenário à vista. Se a sua GPU não tem medições suficientes, envie a sua em /submit. Assim, a próxima pessoa lê um número medido, não uma média inventada.