HMDeveloper
Todos os artigos
benchmark
benchmarkmodelosia-local

Laya, JEV e Clef contra as minhas regras: um benchmark de decisão

Três modelos que escolhem um label e devolvem probabilidades, testados em dois trabalhos reais meus. O fine-tune pequeno ganhou onde foi treinado, o de 27B ganhou onde ninguém treinou nada, e no esforço de PR as regras venceram todos.

Um modelo de decisão (programa que escolhe entre opções) recebe um contexto (as informações necessárias) e uma lista de opções. Ele escolhe uma e devolve probabilidades (chances em números). Tenho dois trabalhos assim: descobrir a intenção de uma frase falada para o Home Assistant e estimar o esforço de um PR (pedido para revisar mudanças no código). Em 26 e 27 de outubro, medi três candidatos e uma referência pequena, comparando com o que eu já tinha rodando.

Os candidatos:

Esforço de PR: as regras ganham

Usei 67 casos reais do log de shadow (registro de testes em que o modelo não muda a decisão). Cada caso gerou duas decisões, num total de 134. As regras sem modelo acertaram 99,3%.

Acurácia na decisão de esforço (134 decisões)

Mesmos 67 casos reais, duas cabeças cada. Pisos determinísticos são regras sem modelo.

Ver dados
Pisos determinísticos99,3%
Clef (27B, nuvem)96,3%
Laya (decisões tipadas)92,5%
Classe majoritária66,4%
Laya base, sem fine-tune15,7%

O Clef em nuvem acertou 96,3%. Seu p50 (tempo mediano) foi 557 ms. Brier de 0,095 e ECE de 0,12 são duas medidas para avaliar as probabilidades. O Laya acertou 92,5% em 26 ms, mas teve Brier de 0,34 e ECE de 0,35. Ele acerta, mas suas probabilidades não refletem bem essa certeza. A probabilidade máxima média foi 0,58. O Laya base, sem o fine-tune, acertou 15,7%, abaixo até de escolher a classe mais comum (66,4%).

Latência p50 na decisão de esforço

Laya local (Ollama, bf16) contra Clef em nuvem.

Ver dados
Laya26 ms
Clef (nuvem)557 ms

O Laya deu os mesmos números no Ollama (bf16, formato de números de 16 bits, 26 ms) e no Python com MPS (30 ms, 2,8 GB de RSS, memória usada pelo processo, e 21 s para carregar).

Para decidir onde colocar cada modelo no roteador, comparei 36 tarefas sintéticas (criadas para o teste). Clef em nuvem e Clef local acertaram 83% das estimativas de esforço. Levaram 580 ms e 3,3 s. JEV acertou 69% em 1,5 s. tev1:4b acertou 47% em 350 ms. Minha conclusão: JEV não ajuda no roteamento. Clef local também não compensa. Teve a mesma acurácia, levou cerca de 6 vezes mais tempo e ocupa 18 GB numa máquina que já sofre com falta de memória.

Acurácia de esforço na colocação do roteador (36 tarefas sintéticas)

Clef em nuvem e local empatam em 83%; a diferença está na latência e na memória.

Ver dados
Clef (nuvem)83%
Clef (local)83%
JEV69%
tev1:4b47%

Intenção da casa: o fine-tune ganha onde foi treinado

Aqui o teste usou dois conjuntos: 44 linhas de probe (perguntas escritas à mão) mais 258 linhas de held-out (dados separados para teste). Medi o percentual de acerto, as ações erradas entre as executadas com p >= 0,70 (probabilidade de pelo menos 0,70) e o p50.

Acurácia na intenção da casa (probe de 44 linhas + 258 held-out)

O held-out é a distribuição do próprio Laya, então favorece o Laya.

Ver dados
Laya98,0%
JEV81,5%
tev1:4b66,9%

No probe de 44 linhas, Laya acertou 41, JEV acertou 34 e tev1 acertou 28. Os dados de held-out vêm da distribuição do próprio Laya, então favorecem Laya. Mesmo assim, a diferença aparece no probe escrito à mão.

O endpoint /v1/systemone do Ollama limita cada escolha a 26 candidatos. A casa tem 77 labels (nomes das opções). Por isso, tev1, que usa o mesmo endpoint, precisou de cinco chamadas para comparar as opções. JEV avaliou as 77 em uma chamada. Clef ficou fora desse teste. Em 21 de outubro, eu já tinha decidido mantê-lo fora da casa.

O que ficou decidido

Laya continua como único modelo de decisão no assistente da casa. Clef roda em shadow (registra sugestões sem mudar o resultado) nas estimativas de esforço de PR. As regras continuam no controle porque já decidem 99,3% desses casos corretamente.

O registro desse shadow precisa guardar qual modelo pedi. O campo model da resposta remove o sufixo -cloud. Sem guardar o pedido, não dá para distinguir a versão de nuvem da local.

Ajudo equipes a usar agentes de IA no trabalho de engenharia. Se sua equipe está começando, vamos conversar.

Ver consultoria