Lev
Notas do quadrante
Ver o quadrante completoPontuação pela rubrica pública do quadrante (maturidade × capability; bolha = adoção). Revisamos conforme a evidência.
- Maturidade5.2/10
Pesos abertos no HF + GitHub com docs detalhados e servidor local TypeSafe-compatível; sem SLA hospedado mantém maturidade média.
- Capability6.8/10
S1Bench 68.9% macro (13 subsets), ECE 0.115, três tipos de decisão. Mais fraco que Jev em pares de edição mínima e summeval-consistency.
- Adoção12/100
Lançamento D+1 com YC; tração modesta (6.6k views, 96 likes); nenhum uso em produção reportado ainda.
Vendor claims
- 68.9% de acurácia macro em todos os 13 subsets do S1Bench[Claim do fornecedor — não verificado independentemente]
- 69ms de compute de engine para request curto em H100[Claim do fornecedor — não verificado independentemente]
- 414–654ms end-to-end no Modal H100 vs 335–346ms da API Jev[Claim do fornecedor — não verificado independentemente]
- ECE médio 0.115 (vs Jev 0.091); melhor calibrado em 5 de 13 subsets[Claim do fornecedor — não verificado independentemente]
- Treino: LoRA r=32, α=64, 3 épocas, 7.8 horas em uma H100[Claim do fornecedor — não verificado independentemente]
Lev é um adapter LoRA em Qwen3.5-4B da Interfaze (YC P26), sob licença Apache-2.0. Fala o protocolo /v1/systemone da TypeSafe: código escrito para o SDK TypeSafe funciona trocando só o base_url.
Lê um estado (texto, ticket, email ou JSON) e um conjunto de perguntas tipadas em uma única passada — sem decode autoregressivo, zero tokens de saída. Tipos de pergunta: noul (sim/não → boolean no catálogo), choice e score. Saída: probabilidades calibradas sobre exatamente as opções que você fornece.
O que é
- Pesos abertos:
interfaze-ai/lev(adapter Apache-2.0; base Qwen sob licença própria) - Repo + servidor local: github.com/Abhinavexists/lev
- API:
POST /v1/systemone— compatível com TypeSafe; SDK oficial funciona combase_urllocal - Instalação:
pip install "lev[serve] @ git+https://github.com/Abhinavexists/lev#subdirectory=packages/lev"
Quickstart:
import lev
model = lev.load("interfaze-ai/lev")
state = "Oi, fui cobrado duas vezes no pedido #4471 e quero reembolso."
questions = {
"intent": {
"type": "choice",
"instructions": "O que o cliente quer?",
"criteria": {"refund": "quer dinheiro de volta", "cancel": "quer cancelar", "track": "quer saber onde está o pedido", "other": "qualquer outra coisa"},
},
"urgent": {"type": "noul", "instructions": "Precisa de humano em até uma hora?"},
}
result = model.system_one(state, questions)
print(result.answers["intent"].choice) # refund
print(result.answers["intent"].probabilities) # {'refund': 0.84, ...}
print(result.usage.output_tokens) # 0
Resultados S1Bench
UnverifiedClaim (fonte: huggingface.co/interfaze-ai/lev):
| Subset | Tarefa | Lev | Jev | Δ |
|---|---|---|---|---|
| vitaminc-dev | verificação de claim | 0.668 | 0.801 | −13.3 |
| massive-en-US | roteamento de intent (18 cenários) | 0.857 | 0.874 | −1.7 |
| massive-de-DE | roteamento de intent (alemão) | 0.823 | 0.871 | −4.8 |
| boolq | compreensão sim/não | 0.827 | 0.893 | −6.6 |
| squad2 | answerability | 0.813 | 0.836 | −2.3 |
| paws | paráfrase adversarial | 0.776 | 0.900 | −12.4 |
| multinli | inferência de linguagem natural | 0.890 | 0.836 | +5.4 |
| civil_comments | toxicidade | 0.760 | 0.803 | −4.3 |
| aegis2 | moderação de segurança | 0.800 | 0.804 | −0.4 |
| helpsteer2 | helpfulness (5 níveis) | 0.386 | 0.341 | +4.5 |
| summeval-relevance | relevância de resumo (5 níveis) | 0.358 | 0.358 | 0.0 |
| summeval-consistency | fidelidade de resumo (5 níveis) | 0.271 | 0.812 | −54.1 |
| pubmedqa | biomédico sim/não/talvez | 0.732 | 0.764 | −3.2 |
| Macro | 0.689 | 0.761 | −7.2 |
Lev e Jev rodaram no mesmo harness com todos os 3.880 itens do S1Bench. O harness reproduz os números publicados da TypeSafe para o Jev dentro de 0.8pp.
Onde Jev lidera claramente: pares de edição mínima (paws −12.4pp, vitaminc −13.3pp) e summeval-consistency (−54.1pp), onde Lev classifica a maioria dos resumos totalmente fiéis um nível abaixo. O backbone Qwen sem fine-tune marca 0.826 nesse subset — o fine-tuning introduziu a regressão.
Onde Lev lidera ou empata: multinli (+5.4pp) e helpsteer2 (+4.5pp), embora o ruído por subset fique entre 5–9pp.
Como funciona
- Leitura de label-token: cada opção recebe um código curto; a resposta é lida dos logits do próximo token sobre esses códigos. Escolhas são lidas em duas ordens de opção e a média cancela viés de posição.
- Head de candidate-path: acima de ~68 opções, um head aprendido pequeno faz match do estado contra o texto de cada opção.
- Calibração: temperaturas ajustadas pós-treino, uma por tipo de pergunta e modo de leitura.
Otimizações que fizeram diferença (do card):
- Uma forward batched em vez de prefill-and-fork: 169 → 69 ms
- Leitura de label-token até o limite do tokenizer: +51pp no MASSIVE de 60 intents
- Pular códigos que splitam: banking77 0.818 → 0.980
Limites (leia antes de colocar em produção)
- Aviso do autor: não use em decisões de produção que afetam pessoas sem sua própria avaliação
- Edições mínimas e ratings finos são fracos — inputs que diferem por uma palavra trocada, e ratings de qualidade com cinco níveis, são onde Lev é menos acurado e pode errar com confiança
- Calibração foi ajustada na distribuição de treino; tarefas muito diferentes podem ser menos calibradas
- Perguntas são respondidas independentemente — codifique decisão conjunta como um
choice, ou pergunte em etapas - Somente inglês
- Precisa de GPU para uso em tempo real (backbone 4B leva segundos em CPU)
Treinamento
UnverifiedClaim (fonte: huggingface.co/interfaze-ai/lev):
- Dados: 200.000 exemplos de 29 fontes construídas sobre 26 datasets públicos do HuggingFace (tópico, sentimento, emoção, intent, NLI, paráfrase, QA, toxicidade, helpfulness)
- Guarda de contaminação: recusa qualquer fonte que resolve para um dos 13 subsets do S1Bench
- Receita: LoRA r=32, α=64 em projeções q/k/v/o de atenção e MLP; 3 épocas, 18.750 steps, batch size 32, learning rate 5e-5, formato chat do Qwen, uma H100, 7.8 horas
Por que está no catálogo
I/O de decisão tipada pública, API documentada compatível com TypeSafe, pesos abertos e um run completo do S1Bench contra o Jev. Fica ao lado do Kev como ponto open / local no quadrante — com artifactKind: lora-adapter para não fingir que é um modelo base frontier.
Não afiliado nem endossado pela TypeSafe AI.
