Open Alternative to Jev
⚠️ Por que não é um modelo
Lê os logits das letras das opções em LLMs open comuns (Qwen) numa passada empacotada. Sem treino de decisão; calibração é uma temperatura opcional que você mesmo ajusta.
Especificações técnicas
- LLMs base
- Qwen3.6-27B, Qwen3.5-4B, Qwen3.5-2B, Qwen3-1.7B, Qwen3-0.6B, Qwen2.5-0.5B, qualquer LLM open com ChatML
- Tipos de decisão
- choice, boolean, score
- Features
- python-library, hf-transformers, vllm, packed-readout, temperature-scaling, option-permutation, no-server
- Licença
- Apache-2.0
Links
Open Alternative to Jev é uma biblioteca Python, importada como so1, que tira decisões tipadas de um LLM open comum. Ela transforma cada pergunta num turno de chat, empacota todas as perguntas sobre um mesmo state numa única sequência de tokens, roda uma passada e lê a distribuição do próximo token sobre as letras das opções em cada posição de resposta. Mesma família do SemIf e do simple-jev.
Como funciona
- Cada pergunta vira um turno de usuário ChatML normal, com opções em letras (A–Z).
- Os turnos são concatenados com uma resposta fixa de preenchimento entre eles, então o state é escrito uma vez só.
- Uma passada; os logits são lidos só nas posições de leitura (
logits_to_keepno Transformers,prompt_logprobsno vLLM). - Um softmax sobre as letras das opções dá a distribuição. Nada fora das suas opções pode ganhar.
- Opcionalmente, uma temperatura ajustada nos seus rótulos (
TemperatureScaler) calibra o resultado.
mode="separate" roda uma sequência por pergunta, o que evita interferência entre perguntas. permutations=2 faz cada pergunta com as opções nas duas ordens e tira a média, para anular o viés de posição.
A API pública é Choice, mais os helpers yes_no e scale, que montam um Choice com opções sim/não ou inteiras. Até 26 opções por pergunta. Não há servidor HTTP: o README diz que substitui a biblioteca, não o endpoint, então o SDK da TypeSafe não consegue apontar para ela.
Por que não é um modelo
Nenhum peso é treinado ou alterado. A biblioteca funciona com checkpoints que você já tem (testada em Qwen2.5-0.5B, Qwen3.5-4B e Qwen3.6-27B; qualquer template ChatML serve, os outros pedem um ChatFormat). Qualidade e calibração vêm do LLM base, e as probabilidades cruas saem confiantes demais até você ajustar uma temperatura. O README diz sem rodeio: “Not a reproduction of Jev.”
Resultados do autor (UnverifiedClaim)
No LocalLLaMA/typed-decisions (400 casos, 2.000 decisões), um Qwen3.6-27B comum em 8-bit, via biblioteca, marca 73,7% de acurácia, ECE 0,020, Brier 0,113, 582 ms por caso numa fatia MIG de H200. O autor compara com o Jev 1.13.0 em 72,7% / ECE 0,144 / Brier 0,148 / 710 ms, medidos pelos autores do benchmark pela API da TypeSafe em 18/09/2026. Com permutations=2, o 27B chega a 75,5% com ECE 0,0075.
Leia com as ressalvas do próprio autor e mais uma nossa:
- Um ponto de diferença em 2.000 decisões está dentro do ruído, como o autor admite, e o resultado encosta no teto de autoconcordância do professor (73,5%).
- As condições de latência são diferentes: tempo de forward numa GPU local vs ida e volta de uma API.
- Só vale de 4B para cima. O Qwen3.5-4B marca 59,3% no mesmo conjunto, o Qwen3-0.6B 29,1%, e o empacotamento derruba a acurácia abaixo de uns 4B.
- O ECE de 0,144 do Jev é contestado. O DecisionEval, independente, mediu o Jev 1.13.0 no mesmo split em 20/09/2026 com ECE 0,045 (Brier 0,148, acurácia 0,740) e não conseguiu reproduzir o 0,144. Contra essa rodada, a vantagem de calibração praticamente some e a de acurácia se inverte. Detalhes na avaliação independente do Jev.
- As respostas mudam conforme as vizinhas. O empacotamento muda 6–9% das respostas individuais em relação a pontuar uma por vez, e girar a ordem das perguntas muda 8% das respostas no MMLU. A acurácia agregada se mantém; a estabilidade por decisão, não.
Ressalvas
- Ainda não está no PyPI. O README manda
pip install open-alternative-jev, mas o pacote não estava no PyPI na checagem de 26/09/2026; instale a partir do repo. - Viés de posição em modelos menores: inverter as opções mexeu 13,5 pontos na acurácia de sim/não do Qwen3.5-4B.
- Fixe a versão do
transformers. As posições de leitura saem do template de chat; uma mudança no template pode deslocá-las. - Todos os benchmarks foram rodados pelo autor → UnverifiedClaim.
