Decisum

Syvorai's ticket classifier: a 2 × 322M encoder ensemble, fully fine-tuned, that reads a PT-BR ticket and answers category, decision and urgency in ~100 ms, inside your infrastructure.

full fine-tune ensemble
2 × 322M
per case, on your GPU
~100 ms
champion v10+swa · overall score
0.6339
gold ruler, n=753

What Decisum does

For every ticket, Decisum answers three typed questions — no free text: only values from a closed vocabulary.

What is it about?

17categories

What should happen?

5possible decisions

  • aprovar
  • rejeitar
  • escalar
  • executar_acao
  • pedir_mais_info

How urgent?

0–3urgency scale

Real example (anonymized)

A fictional case generated for the demo, with the model's real answer. Decisum reads PT-BR tickets — the example is shown in the original language.

Boleto suspeito recebido por e-mail

Cliente: oi, me ajuda pfv? chegou um boleto em meu email que parece da plataforma e vence hj, mas eu nao fiz nenhum pedido pra isso

Atendente: Oi! Tudo bem? Sinto muito pelo susto. Antes de qualquer coisa: não pague esse boleto. Conseguem me contar onde ele apareceu: no app, no painel ou só por email?

Cliente: foi no email mesmo, com assunto urgente. Eu fiquei com medo pq o valor é [DADO_REMOVIDO] e nao reconheço essa compra

Atendente: Entendi. Você abriu o boleto ou clicou em algum link? Se abrir, não digite login, senha ou código, tá?

Cliente: eu abri o pdf por engano mas nao digitei nada. O beneficiario parece errado, não é o nome da plataforma

Atendente: Ok, isso aumenta a suspeita de golpe. Não precisa mandar o documento por aqui. Me diz só se chegou algo parecido no app/painel ou se pediram dados de acesso.

Cliente: no app não vi nada, mas a loja ainda tá aprendendo e fiquei com medo de ter alguma compra falsa acontecendo

Atendente: Você fez certo em não pagar. Vou escalar pra equipe antifraude pra checagem do e-mail/boleto e monitorar sua conta. Enquanto isso, ignore e-mail, não clique em links e troque a senha no painel se suspeitar.

Categoryfraude_suspeita44% confidence
Decisionescalar62% confidence
Urgency176% confidence

Architecture

Pure System 1: a small encoder, three typed questions and a conservative confidence ruler.

  1. 1

    PT-BR ticket

    The full ticket conversation goes in as text.

  2. 2

    System 1: 2 × 322M ensemble

    Two mmBERT-base encoders, fully fine-tuned, each answer the 3 typed questions; the answers are combined.

  3. 3

    Routing confidence

    The case confidence is the minimum of the 3 answers — the weakest link decides.

  4. 4

    0.8 threshold

    Routing confidence of 0.8 or more: the case is automatic. Below that, no action without review.

≥ 0.8

Automatic

The model's decision becomes action with no intervention — only when all 3 answers are confident.

< 0.8

Escalated

Below the threshold, the case goes to a larger model or to human review.

Measured latency

Production ensemble (2 × 322M, 3 questions per case), measured case by case.

HardwareLatency per case
RTX PRO 600056 ms
RX 7900 XTX~100 ms
RX 7900 XT~110 ms
Intel Arc B60131 ms
M4 Pro (GPU)277 ms
M4 Pro (CPU)273 ms

A single ensemble member runs in about half the time. Values marked with ~ are approximate.

The lineage up to the champion

Twelve versions measured on the same honest ruler. The current champion — and the version in production — is the v10+swa ensemble.

  1. v1bug

    First encoder full fine-tune — template bug: the <mask> token was never filled in and the model always answered option 0.

  2. v2rejected

    0.760 on the wrong ruler — scored against LLM-generated silver labels, not human gold.

    overall: 0.76

  3. v3rejected

    Honest ruler (ouro_gold.jsonl: 999 adversarial core + 500 random): 0.4011 — the real baseline.

    overall: 0.4011

  4. v5production

    LLM judge generating training labels: 0.5835 — first version promoted to production.

    overall: 0.5835

  5. v6rejected

    Hybrid judges (LLM + rules), with a labeling cost of US$0.49: 0.5882.

    overall: 0.5882

  6. v7-KLrejected

    KL-divergence distillation from judge to encoder: 0.5969.

    overall: 0.5969

  7. v10production

    Refined checkpoint: 0.5989 on the core / 0.6233 overall — promoted to production.

    core: 0.5989overall: 0.6233

  8. v11_consrejected

    Consistency-focused training across the 3 questions: macro-F1(17) of 0.5037.

    macro-F1(17): 0.5037

  9. v11echampion

    Ensemble of v11 checkpoints: 0.6110 — champion for 24 hours.

    overall: 0.611

  10. v12 stackrejected

    Stacking of v12 challengers: 9 candidates, 8 rejected — none beat the champion.

  11. swaproduction

    Stochastic Weight Averaging over v10: best single model, 0.6170 on the core — ships as a member of the production ensemble.

    core: 0.617

  12. v10+swachampion

    v10 + SWA ensemble: 0.6170 on the core / 0.6339 overall — current champion, in production.

    core: 0.617overall: 0.6339

v11e (0.6110) was champion for 24 hours, until v10+swa (0.6339) took the crown. v11_cons's 0.5037 is macro-F1(17), not overall accuracy.

See Decisum at work

Real pre-recorded outputs in the demo, the model on HuggingFace, or join the waitlist to run it on your infrastructure.