# PRISMA com o modelo rodando na GPU do notebook do David — 19/09/2026

Continuação de `../evidencias/RELATORIO.md` (mesmo dia, mesmas perguntas, mesmo
corretor). Aqui o modelo **não** está num datacenter: está na placa de vídeo do
computador do David. Horas do servidor em UTC; as do PC em hora local (UTC+2).

## 1. O que rodou, e onde

| peça | onde | prova |
|---|---|---|
| Modelo **Qwen3.5-4B** (4,7B parâmetros, Q4_K_M, 3,39 GB, Apache 2.0, visão + ferramentas) | **NVIDIA GeForce RTX 4050 Laptop, 6 GB**, no PC do David | `nvidia-smi-antes.txt`, `nvidia-smi-durante.csv` (98 amostras, uso até 100%, até 5.837 MiB), `ollama-ps.json` (3,6 GB de 3,6 GB **na GPU**, contexto 24.576), `ollama-servidor.log` (`offloaded 34/34 layers to GPU`, `flash_attn = enabled`) |
| Servidor do modelo: **Ollama 0.32.1**, escutando só em `127.0.0.1:11434` | PC do David | `ollama-servidor.log`, `ollama-modelos.json` (digest `2a654d98e6fb…` do `qwen3.5:4b`), `ollama-modelfile.txt`, `ollama-pull.log` |
| PRISMA (backend, MCP do acervo, login, cota) | AWS, Estocolmo, instância de teste na 8788 | `aws/resultados/local4b-unidade.txt` |
| Ligação | **túnel SSH reverso aberto pelo PC**: a porta `127.0.0.1:8001` da AWS é o `sshd`, que entrega no Ollama do PC. Nada do PC fica exposto à internet | `local4b-bloqueio.txt` (`LISTEN 127.0.0.1:8001 … sshd`), `tunel-reverso.log` |

Por que 4B e não 8B: a placa tem 6 GB e o PRISMA manda de 4 a 16 mil tokens por
pedido (só o prompt de sistema com as 14 ferramentas são 4,3 mil). Um 8B/9B
quantizado ocupa 5 a 6,6 GB e não deixa espaço para esse contexto; derramaria
para a CPU. O 4B com contexto de 24.576, atenção flash e cache em 8 bits ficou
**100% na GPU**. (Na primeira tentativa, sem esses dois ajustes, ficou 18% na CPU.)
O Qwen3.8 não tem tamanho pequeno; o Qwen3.5 é a geração anterior da mesma família.

## 2. Prova de que nenhuma API de terceiros foi usada

Igual aos outros braços: a unidade `prisma-qwen` roda sob `IPAddressDeny=any` +
`IPAddressAllow=localhost`. De dentro do cgroup dela, `api.deepseek.com` e
`api.openai.com` não conectam; `127.0.0.1:8001` responde 200. O ambiente do
processo não tem variável `DEEPSEEK*` nem `OPENAI*`. As 53 idas ao modelo foram
todas para `http://127.0.0.1:8001/v1/`.
→ `local4b-bloqueio.txt`, `local4b-ambiente-nomes.txt`, `local4b-traco.jsonl`.

Conta cruzada: o log do Ollama **no PC** registra 56 pedidos de
`/v1/chat/completions`; são as 53 idas do traço do PRISMA, 1 do teste de imagem
e 2 de aquecimento que eu fiz localmente antes de abrir o túnel.

## 3. Resultado

| | DeepSeek (API) | Qwen3.8-27B (RunPod, 1 GPU 96 GB) | **Qwen3.5-4B (GPU do notebook)** |
|---|---|---|---|
| Fumaça (CNPJ do Cloudwalk Bela) | certo | certo | **errou**: chamou a ferramenta certa e desistiu ("não foi possível identificar") |
| Gabarito de 17 casos | 17/17 | 16/17 | **13/17** |
| — numéricos | 10/10 | 10/10 | 7/10 |
| — extremos | 4/4 | 4/4 | 4/4 |
| — armadilhas | 2/2 | 2/2 | 1/2 |
| — atribuição | 1/1 | 0/1 (notação) | 1/1 |
| Tempo mediano por caso | 4,3 s | 8,6 s | 10,5 s |
| Bateria de 5 turnos | 17,8 s | 87,7 s | 52,1 s |
| 1º token (mediana por ida) | 0,80 s | 0,49 s | 2,35 s |
| Geração | ~217 tok/s | ~45 tok/s | ~43 tok/s |
| Chamadas de ferramenta malformadas | 0 | 0 | 0 |
| Leitura de imagem (página de regulamento) | — | certo, 1,9 s | **certo, 15,7 s** |

**O que os erros são.** Não é encanamento, é o modelo:

- `num-pl-4`: a ficha traz o PL total e o PL por subclasse. O 4B **somou a sênior
  e a subordinada por cima do total** e afirmou R$ 13,27 bi onde o certo é
  R$ 8,46 bi, com linha de fonte e tudo. `num-pl-20`: o mesmo erro (R$ 6,15 bi
  onde é R$ 3,47 bi).
- `num-pl-0` e a fumaça: a ferramenta devolveu "termo ambíguo" com candidatos, e
  ele ficou tentando variações do nome até desistir, em vez de escolher o candidato.
- `arm-inad-zero`: a conclusão está certa ("não é risco zero"), mas ele
  inventou números de apoio.

Número errado dito com confiança é o pior erro possível neste domínio. **O 4B
não serve para o PRISMA como está.** O que ele prova é outra coisa: a
arquitetura aceita um modelo em qualquer lugar, inclusive na mesa de quem usa,
e até um 4B quantizado chama as 14 ferramentas sem errar o formato e lê imagem.
A qualidade da resposta é função do tamanho do modelo, e o 27B é onde ela chega
perto da DeepSeek.

## 4. O que mexi no PC

- Parei o `deskapp serve` (porta 8765, `trading_agents/desk`), a pedido.
- Baixei `qwen3.5:4b` (3,4 GB) e criei `prisma-local-4b` (o mesmo modelo com
  `num_ctx 24576`). Ficam em `~/.ollama`; `ollama rm` apaga.
- Reiniciei o Ollama com `OLLAMA_FLASH_ATTENTION=1`, `OLLAMA_KV_CACHE_TYPE=q8_0`,
  preso a `127.0.0.1`; no fim devolvi o Ollama normal.
