Hopper

Última atualização:

Aberto130–570ms$0/M input

Notas do quadrante

Ver o quadrante completo

Pontuação pela rubrica pública do quadrante (maturidade × capability; bolha = adoção). Revisamos conforme a evidência.

  • Maturidade4.8/10

    Pesos abertos (licença de pesquisa/demo por causa dos dados do RACE), código de serving Apache-2.0, mapa de calibração publicado; transparência ampla sobre o processo de desenvolvimento e as limitações.

  • Capability7.2/10

    #5 geral no JevBench (score 59,43), calibração forte (79,1), suporta choice/score/boolean via softmax de uma passada com calibração de temperatura por tipo.

  • Adoção20/100

    A posição no top 5 do JevBench gera interesse da comunidade; discussão ativa no HF sobre menus longos; ser só self-host limita uma adoção mais ampla.

Vendor claims

O Hopper é um LoRA adapter aberto (rank 16) sobre o Qwen3.5-4B, feito para o cenário do JevBench: documento + política + pergunta → distribuição de probabilidade sobre as opções. Um forward pass, sem geração de texto. Só para pesquisa e demo, por causa dos termos de licença dos dados de treino do RACE.

O autor faz uma divulgação incomumente transparente do desenvolvimento orientado ao benchmark: foram testadas 26 configurações distintas de modelo/prompt, mais de vinte variantes de mapa de calibração. Metade dos itens públicos do JevBench (115) serviu de portão de desenvolvimento; a outra metade (116) ficou reservada. Essa transparência é valiosa — não é sinal de alerta —, mas espere desempenho held-out mais perto do modelo base congelado em distribuições novas.

Resultados no JevBench v1.4.2

Métrica Score
Geral 59,43 (posição #5)
Intelligence 48,0
Calibration 79,1
Speed 86,8
Cost 58,7 (~US$ 0,024 / mil decisões)

Rodada oficial do mantenedor do JevBench. Números locais do autor nos 231 itens públicos: easy 100%, standard 94,4%, hard 68,5%.

Decision Index 0.2.1 (placar oficial)

No placar oficial do Decision Index 0.2.1 (snapshot de 28/09/2026), o Hopper (G) 1.2 marca 40,77, 18º de 70 entradas abertas. O Hopper (G) é um adapter irmão de uso geral (HopitAI/hopper-g) treinado a partir do Hopper 1.0, com a mesma licença só para pesquisa e demo. Não é o checkpoint exato do número do JevBench acima. A linha vem da rodada completa dos autores com o scorer oficial. Os mantenedores mediram mediana de 23,3 ms numa RTX PRO 6000 e ECE de 0,093. Para comparar no mesmo placar: Jev 57,91, Kev 9B 38,48, Decider 4B 40,70. O post do Fabio Akita (3/10/2026) destaca o Hopper como a opção de 4B que entrega “41 pontos a 23 milissegundos”. A capability (7,2) ainda se apoia no resultado do Hopper 1.0 no JevBench e não foi recalculada com o índice. O Hopper (G) 1.3 ainda não está no placar.

Arquitetura

O Hopper usa um readout por softmax de uma passada sobre as letras das opções (A, B, C, …) com o thinking desligado. Nenhum token é gerado — a resposta é o softmax sobre os logits do próximo token restritos às letras das opções.

Um mapa de calibração (hopper.json) reescala a distribuição com uma temperatura por tipo de resposta:

  • Choice: 0,790
  • Noul (boolean): 0,753
  • Score: 0,900

O mapa de calibração foi ajustado só nos itens held-out da própria HopitAI no estilo JevBench — nunca em itens reais do JevBench. Ele não muda a resposta principal (dividir log-probabilidades por um número positivo preserva a ordem); só ajusta as confianças.

Especificações

Atributo Valor
Autor HopitAI
Modelo base Qwen/Qwen3.5-4B (revisão 851bf6e)
Adapter LoRA rank 16
Licença Só pesquisa/demo (adapter); Apache-2.0 (código de serving)
Lançamento
Status Pesos abertos (Hugging Face)
Latência ~130 ms (GPU da RunPod)
Preço Só self-host (pesos grátis)
Tipos de decisão Choice, Score, Boolean (noul)
Contexto 32K (herdado do Qwen3.5)
Código de serving github.com/hopit-ai/hopper
Formato de wire Compatível com o /v1/systemone do JevBench

Dados de treino

Treino misto a partir de três fontes:

  1. Famílias sintéticas de decisão — geradas por LLM, rótulos calculados em código
  2. Conjunto sintético no estilo JevBench — itens mantidos só quando solvers LLM independentes concordavam; comparados com todas as perguntas/estados públicos do JevBench (identidade normalizada, casamento de sequências de 8 palavras), com os casamentos descartados
  3. Datasets públicos rotulados por humanos — ARC, CommonsenseQA, MMLU aux (inclui o RACE → restrição de licença), SNLI, MultiNLI, VitaminC, BoolQ, SQuAD v2, CLINC OOS, DBpedia-14, HelpSteer2

⚠️ Nota de licença: o conjunto auxiliar do MMLU embute o RACE, que seus autores liberam só para pesquisa não comercial, com termos que se estendem a dados derivados. É por isso que o Hopper é só pesquisa/demo. Uma versão treinada sem o RACE está em desenvolvimento.

Desenvolvimento orientado ao benchmark (declarado)

O autor é transparente sobre o desenvolvimento extenso contra os itens públicos do JevBench:

  • 26 configurações de modelo/prompt testadas
  • Mais de 20 variantes de mapa de calibração exploradas
  • Metade de desenvolvimento (115 itens): usada como portão muitas vezes; tier hard com 0,709
  • Metade reservada (116 itens): pontuada só no agregado; tier hard com 0,661 (no nível do base congelado, 0,643)

O guia de estilo do conjunto de treino no estilo JevBench foi escrito lendo a metade de desenvolvimento, e alguns itens de treino miram comportamentos que falhavam nos itens difíceis.

“Expect the held-out hard items to score below the public ones, and expect the judge tier, which we have never seen, to be the least predictable part.” — Model card

Isso não é contaminação — nenhum item do JevBench nem paráfrase foi usado no treino, verificado por checagem baseada em hash. É desenvolvimento orientado ao benchmark, honesto e com divulgação completa. Os 0 casamentos de estado/instrução na varredura do JevBench sobre 17 arquivos publicados vs 231 tarefas públicas reforçam isso.

Como o adapter usa logits de letras (A–Z), menus com mais de 26 opções exigem uma abordagem em dois estágios (desde a v1.1.1):

  1. Primeiro estágio: um torneio divide o menu em ceil(n/26) blocos, lê cada um numa única passada e mantém os 10 melhores por bloco
  2. Passada final: uma passada única comum decide entre os sobreviventes

Toda opção recebe uma probabilidade: a distribuição final é misturada com 5% de uniforme sobre o menu inteiro (opções eliminadas recebem 0,05/n, nunca zero).

Benchmark Opções Acurácia top-1 Recall@10 do primeiro estágio Latência p50
BANKING77 77 0,673 0,887 321 ms
CLINC150 (in-scope) 150 0,863 0,977 569 ms

Medido numa A10G, 300 itens cada. Nesses menus longos, o Hopper fica no nível do base congelado, dentro do erro amostral.

Limitações conhecidas

  • Uma passada de um modelo de 4B — sem raciocínio passo a passo; qualquer problema que precise de resultados intermediários é decidido num único forward pass
  • Datas e aritmética de vários passos são fracas — diferenças de datas, prazos e cálculos encadeados falham com frequência
  • Documentos longos que exigem vários saltos são fracos — a acurácia cai quando a resposta precisa de fatos de partes distantes
  • Calibração ajustada nos dados do autor — as confianças podem errar em outras distribuições; a v1.1.0 simplificou para três temperaturas porque mapas mais ricos não transferiam
  • A metade de desenvolvimento o favorece — na metade reservada, fica no nível do base congelado em acurácia hard
  • Só inglês — nenhum outro idioma testado
  • Confiante demais em menus longos — probabilidade média do topo de 0,78 contra acurácia de 0,67 no BANKING77

Como usar

Com o pacote de serving:

from hopper_decisions import Decider
decider = Decider(adapter="HopitAI/hopper")
decider.decide({
    "state": "The customer wants a refund for order 12.",
    "questions": {
        "decision": {
            "type": "choice",
            "instructions": "Route the ticket.",
            "criteria": {"refund": "money back", "track": "where is it"}
        }
    }
})

Ou direto com transformers + peft (ver o model card para o exemplo completo).

Dependências: flash-linear-attention==0.5.2, causal-conv1d 1.7.0, torch==2.8.0, transformers==5.17.0, peft==0.21.0, accelerate==1.15.0. Sem os kernels de atenção linear, a inferência fica mais de 10× mais lenta.

Quando usar / quando evitar

Usar quando você precisa de: decisões tipadas self-hosted, divulgação transparente do desenvolvimento, calibração forte, casos de pesquisa/demo, formato de wire compatível com o JevBench.

Evitar quando você precisa de: deploy comercial (restrição de licença do RACE), SLA de produção, inferência hospedada, tarefas que exigem raciocínio com vários saltos ou aritmética de datas, idiomas além do inglês.

JevBench v1.5.7 (Benchmark Heaven, conferido em 5/10/2026)

O Hopper (o checkpoint do JevBench, não o Hopper G) está em #17 com score oficial 67,5 (capability 68,9) no v1.5.7. Ver news. Sem mudança de nota do catálogo ainda.