← Aceite MVP V1 — evidências em vídeo

Dossiê — E10 (pacote de validação e baseline)

Fonte: auditoria "Manus AI" (2026-09-01), seção 3, entregável E10. Veredito da auditoria: Parcial — correções prontas, mas o baseline de desempenho (concorrência, latência, throughput) não foi medido.

Este dossiê separa o que já existe (tooling de benchmark + dashboard que consome o catálogo) do que falta executar (a medição real contra o ambiente, que exige acesso ao cluster Enverge).


1. O que a auditoria exige (E10)

Correções, reexecução limpa, concorrência, latência, throughput, relatório assinado.


2. O que já existe (tooling pronto, sem medição)

2.1 Ferramenta de benchmark

scripts/operator/enverge-model-bench.sh (dev-machine) mede throughput e concorrência de um modelo que o router já sabe servir, e grava num catálogo TSV append-only que o dashboard do small-pine renderiza.

AspectoDetalhe
Concorrênciavarre BENCH_STREAMS (default 1 4 8 16 32)
TokensBENCH_TOKENS (default 128), temperature 0, ignore_eos
Métricas por linhastreams, ok/n, tokens, wall_s, agg_tok_s, per_stream_tok_s, ttft_s
Prefill--prefill mede prompt_tokens × total_s (slope cancela o token constante)
Gravação--record anexa ao catálogo (/var/db/small-infer/throughput.tsv)
Comparabilidadeignore_eos + temperature 0 = mesmo shape dos números históricos em small-infer/docs/vllm-dgx-spark-mxfp4.md

Fonte: ~/dev-machine/scripts/operator/enverge-model-bench.sh.

2.2 Consumo do catálogo (dashboard)

O small-pine já renderiza o catálogo de throughput/prefill no dashboard de matriz, sem 500 quando o arquivo está ausente (estado normal de um deploy nunca benchmarkado).

LocalO que faz
src/small_pine/service/dashboard.cljparse-throughput (colunas BENCH), parse-prefill (colunas PREFILL), throughput-row/prefill-row
src/small_pine/service/matrix_dashboard.cljcatalogue-text::config/throughput-path; dashboard-state expõe ::dashboard/throughput e ::dashboard/prefill (mais recente primeiro)
src/small_pine/config.clj:247::throughput-path "/var/db/small-pine/throughput.tsv"

Fonte: apps/small-pine/src/small_pine/service/{dashboard,matrix_dashboard}.clj, config.clj.

2.3 Correções dos bloqueadores (E8/E9)

Já implementadas e verificadas nesta sessão (ver REPORT-MVP-V1.md §3):


3. O que falta executar (medição real)

O baseline de desempenho não foi medido — é a única parte de E10 que exige execução real contra o cluster Enverge, não código. O comando exato:

# No host NeoTek (o /prewarm e /backends são loopback-only, ADR-0005):
scp scripts/operator/enverge-model-bench.sh neotek.wg:/tmp/
ssh -t neotek.wg "doas sh /tmp/enverge-model-bench.sh --record gpt-oss-20b"
# varredura de concorrência customizada:
ssh neotek.wg "BENCH_STREAMS='1 8 32' sh -s" < scripts/operator/enverge-model-bench.sh gpt-oss-120b qwen3-8b-fp4

Template de medição a preencher

#Métrica exigida (E10)Como obterValor a registrar
1ConcorrênciaBENCH_STREAMS (1/4/8/16/32)
2Latência (TTFT)coluna ttft_s do BENCH
3Throughput agregadocoluna agg_tok_s
4Throughput por streamcoluna per_stream_tok_s
5Prefill (slope)--prefill (120/600/2400 tokens)
6Taxa de errocoluna ok/n (deve ser n/n)
7p50/p95/p99não coberto pelo bench atual (só wall/ttft) — requer instrumentação adicional
8Relatório assinadoconsolidar os números acima em REPORT-MVP-V1.md §E10

Nota sobre p50/p95/p99: o enverge-model-bench.sh mede wall-time e TTFT por varredura, mas não produz percentis. Se a auditoria exigir p50/p95/p99 explícitos, é preciso estender o script (ou usar enverge-hang-soak.sh para estabilidade) — um gap de *tooling*, não de *execução*.


4. Conclusão

O tooling de baseline (benchmark + dashboard que consome o catálogo) já existe e está pronto. O que falta para fechar E10 é executar a medição real contra o cluster Enverge e registrar os números na tabela da seção 3 — uma ação de operador com acesso ao host NeoTek, não uma mudança de código.

Próximo passo: rodar enverge-model-bench.sh --record para os modelos do catálogo prod, preencher a tabela da seção 3, e (se exigido) estender o script para percentis p50/p95/p99.