Files
2026-10-07 20:53:56 -03:00
..

Desenvolvimento — partição completa (1.183 exemplos)

Sumário executivo

A rodada de desenvolvimento executou os quatro candidatos sobre toda a partição de dev, sem calibração. É a primeira medição em escala do benchmark e a referência para comparar com a calibração e com o teste final.

  • Qualidade: SemIf 88,4% e Rizzo Flow 85,5% de acurácia, com macro F1 de 90,1% e 88,3%. GLiNER (55,5%) e Laya (54,0%) ficam cerca de 30 p.p. atrás, e a ordem se mantém em relação ao piloto.
  • Robustez ao número de opções: SemIf fica estável entre 4 e 16 opções (88–89%); Rizzo varia entre 84% e 89%; o Laya cai de 70% para 45% quando as opções passam de 4 para 16.
  • Pedidos sem correspondência: SemIf reconhece 78% deles; GLiNER, 62%, mas à custa de marcar 242 pedidos válidos como sem_correspondencia; Rizzo, 60%; Laya, 28%.
  • Latência: em GPU A10, Laya e GLiNER ficam em cerca de 20 ms de mediana (p95 de 23 a 31 ms); SemIf e Rizzo, em cerca de 115 ms (p95 de 181 a 187 ms, acima do limite de 150 ms). Em CPU, Laya e GLiNER levam de 180 a 250 ms.
  • Execução: 1.183 decisões por candidato e dispositivo, sem erros e sem truncamento.

Resultados gerais

Candidato Acurácia Macro F1 sem_correspondencia reconhecido Acerto dentro do escopo Pedidos válidos marcados como sem_correspondencia p50 GPU p95 GPU
SemIf 88,4% 90,1% 78,2% 91,5% 32 117 ms 187 ms
Rizzo Flow 85,5% 88,3% 59,6% 93,4% 6 112 ms 181 ms
GLiNER 55,5% 55,3% 61,5% 53,6% 242 18 ms 31 ms
Laya 54,0% 56,4% 28,0% 61,9% 37 21 ms 23 ms

Acurácia por candidato

Acurácia por número de opções

Qualidade × latência em GPU

Latência por decisão: GPU × CPU

Acurácia por perfil de escrita (GPU)

Perfil SemIf Rizzo Flow GLiNER Laya
Curto e neutro 88,2% 87,5% 58,3% 66,0%
Informal, com abreviações 92,7% 88,5% 60,4% 55,7%
Erros de digitação 89,0% 82,8% 50,2% 49,8%
Regionalismo 84,9% 87,2% 63,7% 60,9%
Emocional 92,2% 85,5% 47,5% 45,8%
Longo, com contexto 92,5% 85,8% 67,5% 56,7%
Indireto ou com várias intenções 78,2% 81,7% 43,7% 45,8%

Resultados detalhados

Probabilidades brutas. Lote 1. As latências excluem os 5 primeiros exemplos (aquecimento). SemIf e Rizzo Flow rodam só em GPU, porque são inviáveis em CPU pela regra do piloto.

Candidato Disp. Precisão n Acurácia Macro F1 ECE (bruto) p50 ms p95 ms p99 ms Carga s RAM pico MiB GPU pico MiB Erros Truncados
gliner cpu float32 1183 55.5% 55.3% 0.088 252.5 478.6 586.9 20.1 3258 — 0 0
gliner cuda float32 1183 55.5% 55.3% 0.088 18.4 31.4 33.5 21.8 3228 1959 0 0
laya cpu float32 1183 54.4% 56.8% 0.287 182.3 225.6 269.5 9.6 2679 — 0 0
laya cuda float32 1183 54.0% 56.4% 0.290 21.3 22.8 24.0 8.6 2788 1811 0 0
rizzo_flow cuda gguf-q8_0 1183 85.5% 88.3% 0.035 111.8 180.6 184.7 6.2 4529 5115 0 0
semif cuda bfloat16 1183 88.4% 90.1% 0.042 117.1 186.5 190.1 7.8 9028 8513 0 0

Arquivos: summary-<candidato>-<dispositivo>.json (resumo, cenário, precisão e diagnósticos) e predictions-<candidato>-<dispositivo>.jsonl (uma linha por exemplo, com a distribuição completa de probabilidades e os metadados do exemplo).

Metodologia

Dados. A partição de desenvolvimento do conjunto congelado d1-v1 inteira, sem amostragem: 1.183 exemplos de 99 lotes de geração, com os 43 rótulos. São 178 pedidos fora de escopo, 98 exemplos com a intenção correta fora das opções (rótulo sem_correspondencia) e opções por pergunta assim distribuídas: 4 (320), 8 (311), 12 (274) e 16 (278). A partição é disjunta da de calibração e da de teste por lote de geração.

Tarefa e execução. Classificação de intenção (D1) pelo contrato jev-compat-v1, com a mesma entrada para todos. Lote 1, precisão nativa de cada candidato e inferência isolada de fontes externas, com artefatos verificados por SHA-256. Nenhuma calibração nem limiar foi aplicado nesta rodada (tarefa 59).

Cenário. GPU VM.GPU.A10.1 em sa-saopaulo-1 para os quatro candidatos; CPU VM.Standard.E4.Flex com 8 OCPU em us-chicago-1 para Laya e GLiNER. Mais detalhes em docs/05.

Uso desta rodada. O dev serve de referência e de diagnóstico. Os parâmetros que vão para o teste (temperatura e limiar) vêm exclusivamente da partição de calibração; nada aqui foi usado para ajustá-los.

Conclusão

  1. Dois grupos bem separados. Os modelos de 4B (SemIf e Rizzo Flow) ficam entre 85% e 89% de acurácia; os encoders compactos (Laya e GLiNER), entre 54% e 56%. A distância de cerca de 30 p.p. se confirma na escala completa.
  2. O SemIf é o mais robusto. Mantém a acurácia com qualquer número de opções e em quase todos os perfis de escrita; seu ponto fraco são os pedidos indiretos ou com várias intenções (78%).
  3. O Laya depende de poucas opções. Com 4 opções, chega a 70%; com 12 ou mais, cai para 45%. É viável só com uma elegibilidade que restrinja bem as opções.
  4. O GLiNER abstém demais. Reconhece bem os pedidos sem correspondência, mas descarta 242 pedidos válidos (20% do escopo), o que no orquestrador viraria desambiguação desnecessária.
  5. A latência separa os mesmos grupos. Os encoders cabem com folga no limite de p95 em GPU e são viáveis em CPU; os modelos de 4B, não.