Pular para o conteúdo principal

7 melhores alternativas open-source ao TypeSafe Jev

Explore uma nova geração de projetos open-source que oferecem alternativas práticas ao Jev para decisões de IA rápidas, locais e com ótimo custo-benefício.
Abid Ali Awan
Abid Ali Awan

Crie sua conta gratuita

Pratique e programa seu progresso.

Continuar com o GoogleAo continuar, você aceita nossa Termos de Uso, nossos Política de Privacidade e que seus dados são armazenados nos EUA.

Muitas aplicações de IA usam modelos de linguagem grandes para tarefas que, na prática, não exigem geração de texto. 

Um agente pode só precisar decidir qual ferramenta acionar, se um documento é relevante, qual a urgência de uma solicitação ou se uma ação deve ser escalonada.

Jev, da TypeSafe AI, encara essas tarefas de outro jeito. Em vez de gerar uma resposta token a token, ele recebe o estado da aplicação e perguntas estruturadas e devolve decisões tipadas como escolhas, pontuações, julgamentos de sim/não e probabilidades. Veja na prática no nosso tutorial da Jev API

A TypeSafe AI descreve isso como uma abordagem de System One Model: usar IA como uma camada rápida de decisão, e não como um gerador de texto genérico.

O desafio é que ainda sabemos relativamente pouco sobre como o Jev funciona internamente. 

A TypeSafe AI compartilhou alguns detalhes sobre sua abordagem de decisão em paralelo e método de treinamento, mas a arquitetura completa, os pesos do modelo, os dados e a receita integral de treino não são públicos.

Isso dificulta inspecionar, reproduzir ou adaptar o próprio Jev.

Projetos open-source estão explorando a mesma ideia com arquiteturas que podemos, de fato, examinar e rodar localmente. 

Alguns usam modelos bidirecionais pequenos, outros adaptam Qwen com heads de decisão especializadas, enquanto outros extraem probabilidades diretamente de modelos de linguagem existentes. 

Como você controla toda a stack, também pode otimizar tamanho do modelo, quantização, batching, cache, hardware e serving para construir uma camada de decisão mais rápida e barata para a sua carga de trabalho.

Diagrama do uso conjunto de modelo de decisão e LLMs.

Neste blog, vou comparar sete alternativas open-source ao Jev, incluindo Laya, Nimble, Kev, SemIf, Rizzo Flow, Von e NanoJev, analisando como cada uma funciona, o quão de perto seguem a abordagem do Jev, onde se destacam e como rodá-las localmente. 

Aviso: os projetos deste guia são muito novos e evoluem rapidamente. Os exemplos de código se baseiam na documentação e nos repositórios oficiais, mas nem todos foram testados de ponta a ponta de forma independente.

1. Laya: uma alternativa ao Jev, feita sob medida e multilíngue

Laya é um modelo de decisão não autoregressivo, feito para esse fim, baseado em ModernBERT-large, com um checkpoint separado mmBERT para cargas multilíngues.

 Em vez de gerar texto, ele processa o estado, a pergunta e as opções disponíveis em conjunto e pontua diretamente as respostas possíveis em um único forward pass. Suporta decisões no estilo Jev de choice, score e noul, com checkpoints dedicados para workloads em inglês, multilíngues e de decisões tipadas.

Isso torna o Laya uma das alternativas arquitetônicas mais próximas do Jev, pois ambos foram projetados especificamente para decisões probabilísticas em vez de geração de texto. 

O Laya se destaca por seus modelos relativamente pequenos (322M–421M), suporte a mais de 100 idiomas e capacidade de avaliar várias perguntas com eficiência, sem precisar rodar um modelo generativo com bilhões de parâmetros.

Como o Laya funciona

O Laya recebe um estado como um e-mail, chamado de suporte, documento ou objeto JSON, junto com perguntas tipadas como choice, score ou noul. 

Seu roteador seleciona o checkpoint mais adequado para a solicitação, como ModernBERT-large para inglês ou mmBERT-base para entradas multilíngues. 

O modelo escolhido processa o estado e as perguntas em um único forward pass; em seguida, um decision head pontua as opções disponíveis e as converte em probabilidades. 

Isso cria um fluxo direto da entrada, passando por roteamento e codificação, até a decisão tipada final.

Diagrama da arquitetura do LayaPrimeiros passos com o Laya

O Laya está disponível como pacote Python:

pip install laya

Esse comando instala a biblioteca Laya e suas dependências, mas não inclui os pesos do modelo dentro do pacote.

Os modelos ficam hospedados no Hugging Face. 

Ao criar o roteador com preload=True, o Laya baixa e carrega seus checkpoints disponíveis imediatamente, deixando tudo pronto antes da primeira requisição. 

Os pesos baixados ficam em cache local, então você não precisa baixá-los novamente sempre que rodar a aplicação.

from laya import Router

router = Router(preload=True)

state = {
    "subject": "Duplicate charge",
    "body": "I was charged twice. Please refund this today."
}

questions = {
    "department": {
        "type": "choice",
        "instructions": "Which department should handle this?",
        "criteria": {
            "billing": "Payments and refunds",
            "technical": "Errors and outages",
            "sales": "Pricing and purchases"
        }
    }
}

result = router.predict(state, questions)

print(result["answers"]["department"]["choice"])

Aqui, Router(preload=True) é a parte importante. 

Na primeira execução, o Laya busca os arquivos de modelo necessários no repositório do Hugging Face e os carrega em memória. Execuções futuras reutilizam as cópias em cache local.

Se, em vez disso, você usar:

router = Router()

O Laya usa carregamento preguiçoso: espera até que um checkpoint específico seja necessário e faz o download/construção no primeiro uso.

2. Nimble: uma alternativa ao Jev baseada em Qwen

Bespoke Nimble usa Qwen3.5-9B como backbone e faz fine-tuning com uma LoRA de rank 16, especificamente para decisões tipadas.

Você fornece um texto junto com um schema simples contendo perguntas booleanas ou enum, e o Nimble retorna a resposta selecionada mais as probabilidades para cada opção permitida. 

Em vez de decodificar uma resposta token a token, o treino e a inferência operam diretamente sobre os logits dos candidatos.

Como o Jev, o Nimble segue a ideia de estado entra, decisões probabilísticas tipadas saem, mas sua implementação mostra como esse comportamento pode ser adicionado a um LLM aberto existente, sem exigir uma arquitetura proprietária de decisão. 

Sua principal força é a abertura de todo o processo: a Bespoke Labs publicou o modelo, a receita de treinamento, a configuração de avaliação e o pipeline de curadoria de dados, tornando o Nimble especialmente útil para desenvolvedores que querem treinar ou estudar seus próprios modelos no estilo Jev.

Como o Nimble funciona

O Nimble começa com um contexto e um schema de decisão que define as saídas permitidas, como um booleano ou um valor de um enum. 

Ele usa o Qwen3.5-9B com LoRA para processar o contexto e o schema, e então lê os logits para os tokens candidatos permitidos, em vez de gerar uma resposta completa. 

Esses logits passam por softmax para gerar probabilidades, que são devolvidas como uma saída estruturada e tipada.

Diagrama da arquitetura do NimblePrimeiros passos com o Nimble

O Nimble requer Python 3.12 e usa o checkpoint Bespoke-Nimble-9B. Comece clonando o repositório e instalando as dependências:

git clone https://github.com/bespokelabsai/nimble.git nimble
cd nimble

python3.12 -m venv .cache/venvs/nimble
source .cache/venvs/nimble/bin/activate

python -m pip install torch==2.8.0 -r requirements/training.txt

Em seguida, baixe e prepare o modelo. A etapa oficial de preparação baixa bespokelabs/Bespoke-Nimble-9B do Hugging Face e, quando necessário, faz o merge do adaptador LoRA com o modelo base Qwen3.5 fixado em versão. Depois, cria .cache/nimble-model.json.

import json
from pathlib import Path
from huggingface_hub import snapshot_download

repo = "bespokelabs/Bespoke-Nimble-9B"

snapshot = Path(
    snapshot_download(
        repo,
        cache_dir=".cache/huggingface/hub"
    )
)

config = {
    "model_path": str(snapshot.resolve()),
    "model_id": repo,
    "revision": snapshot.name,
    "max_input_tokens": 2048,
}

Path(".cache/nimble-model.json").write_text(
    json.dumps(config, indent=2)
)

Se a release baixada for um adaptador LoRA, use o bloco completo de preparação do quickstart oficial do Nimble para mesclar o adaptador com o modelo base fixado antes da inferência.

Em uma GPU NVIDIA, carregue o modelo preparado:

import json
from pathlib import Path
from nimble.scoring.cuda_scorer import CudaCandidateScorer

config = json.loads(
    Path(".cache/nimble-model.json").read_text()
)

scorer = CudaCandidateScorer(**config)
Then make a typed decision:
schema = {
    "priority": {
        "type": "enum",
        "choices": ["HIGH", "LOW"],
        "description": "Urgency based on current business impact."
    },
    "requires_review": {
        "type": "boolean",
        "description": "Whether a human should review this incident."
    }
}

result = scorer.score(
    "The payment service is down for all customers.",
    schema
)

print(result["output"])
print(result["fields"]["priority"]["scores"])

O Nimble retorna os valores selecionados junto com a probabilidade atribuída a cada candidato, em vez de gerar uma resposta textual.

3. Kev: a réplica arquitetural mais próxima do Jev

Kev é uma família de modelos de decisão inspirados no Jev e construídos sobre Qwen3.5, com variantes de 0.8B, 4B e 9B. 

Ele adiciona um adaptador LoRA de rank 16 e um pequeno pointer head que compara a representação de cada opção com a representação de decisão da pergunta. 

Várias perguntas podem compartilhar o mesmo estado, enquanto o Kev mantém as perguntas isoladas e retorna suas distribuições de probabilidade sem gerar texto.

O Kev é particularmente próximo do Jev porque sua arquitetura foi explicitamente baseada em uma reconstrução pública do Jev, e seu servidor implementa o contrato da API /v1/systemone da TypeSafe. 

Ele suporta os mesmos estilos de pergunta noul, choice e score, então o código existente do SDK TypeSafe pode ser redirecionado para um servidor Kev local. 

Sua principal vantagem é a combinação de comportamento semelhante ao Jev, pesos abertos, múltiplos tamanhos de modelo e um pipeline de treinamento aberto.

Como o Kev funciona

O Kev usa um modelo base Qwen com um adaptador LoRA e um pequeno pointer head. 

O estado compartilhado é processado uma vez e reutilizado em várias perguntas, evitando reprocessar o mesmo contexto repetidamente. 

Para cada pergunta, o Kev cria representações ocultas para as opções e para o token de decisão; então, o pointer head as compara e produz as pontuações das opções. 

O softmax converte essas pontuações em probabilidades para o choice, noul ou score final.

Diagrama da arquitetura do KevPrimeiros passos com o Kev

O Kev roda como um servidor local System One.

Comece clonando o projeto e instalando as dependências de serving:

git clone https://github.com/jaredpalmer/kev.git
cd kev

uv sync --extra serve

Isso instala o Kev em si, mas não necessariamente todos os pesos do modelo.

Inicie o Kev-4B com:

KEV_DTYPE=bf16 \
uv run --extra serve python -m kev.serve \
    --run jaredpalmer/kev-4b \
    --port 8009

Na primeira execução, o Kev baixa automaticamente tanto o adaptador/checkpoint do Kev quanto o modelo base Qwen no Hugging Face. 

Inicializações posteriores reutilizam os arquivos em cache, sem novo download.

Com o servidor rodando, você pode usar o SDK da TypeSafe com ele:

from typesafe_sdk import Choice, TypeSafeClient

client = TypeSafeClient(
    api_key="local",
    base_url="http://127.0.0.1:8009",
    model="kev-latest",
)

response = client.system_one(
    state="I was charged twice.",
    questions={
        "team": Choice(
            instructions="Which team owns this?",
            criteria={
                "billing": None,
                "technical": None,
            },
        )
    },
)

print(response.choices["team"].choice)

No Kev, o comando do servidor também carrega o modelo: o primeiro start baixa os pesos necessários automaticamente.

4. SemIf: uma alternativa ao Jev por logit direto, sem fine-tuning

SemIf adota um caminho mais simples: não treina um novo modelo de decisão. 

Em vez disso, usa modelos abertos existentes, como o Qwen3.5-4B, e lê diretamente os logits atribuídos às respostas permitidas. 

O estado, os critérios e as opções tipadas são passados ao modelo, e o SemIf converte os logits nativos das opções em probabilidades, sem sampling nem geração de resposta.

Isso reproduz uma das propriedades práticas mais importantes do Jev — tomar decisões sem saída autoregressiva — e evita a necessidade de um checkpoint especializado. 

O SemIf se destaca pela flexibilidade: você pode usar diferentes modelos abertos por baixo, reutilizar um estado longo em muitas perguntas e experimentar pontuação direta em CUDA, Apple Silicon ou modelos quantizados no navegador.

Ele é especialmente útil quando você quer testar a ideia de System One sem treinar um modelo dedicado primeiro.

Como o SemIf funciona

O SemIf recebe um estado não estruturado, critérios em tempo de execução e um conjunto de opções permitidas e os passa por um modelo aberto existente. 

Em vez de pedir ao modelo para gerar uma resposta, ele lê diretamente os logits atribuídos a essas opções predefinidas. 

Esses logits são convertidos em uma distribuição de probabilidade, permitindo que a aplicação tome uma decisão tipada sem gerar texto ou fazer parsing depois.

Diagrama da arquitetura do SemIfPrimeiros passos com o SemIf

O SemIf não tem seu próprio checkpoint de foundation model. Em vez disso, ele roda a pontuação de decisão sobre um modelo aberto existente.

Clone e instale:

git clone https://github.com/TheoLeeCJ/SemIf.git
cd SemIf

python -m venv .venv
source .venv/bin/activate

pip install -e '.[test]'

Isso instala o SemIf, mas ainda não baixa o Qwen.

Rode o scorer:

CUDA_VISIBLE_DEVICES=0 semif-score \
    --mode direct \
    --model Qwen/Qwen3.5-4B \
    --revision 851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a \
    --input examples/decisions.jsonl \
    --output results.jsonl

Na primeira execução, o modelo Qwen selecionado é baixado do Hugging Face e armazenado no cache do Hugging Face. A documentação do SemIf inclusive recomenda definir HF_HOME para um disco grande, pois os arquivos podem ocupar bastante espaço.

Por exemplo:

export HF_HOME=/path/to/large-drive/huggingface

Depois que o modelo estiver em cache, execuções posteriores reutilizam a cópia local.

Assim, o SemIf em si é relativamente pequeno. A maior parte do download vem do modelo aberto que você escolher rodar por baixo dele.

5. Rizzo Flow: alternativa local-first ao Jev com flexibilidade de hardware

Rizzo Flow é um sistema de inferência no estilo Jev, local-first, construído em torno dos modelos Spark-X2.5 abertos e serving baseado em llama.cpp. 

Em vez de gerar uma resposta em JSON, ele converte cada decisão em um conjunto restrito de tokens de resposta possíveis, lê os logits atribuídos a esses tokens e os transforma em probabilidades. 

O estado pode ser processado uma vez e reutilizado em várias perguntas, reduzindo computação repetida.

Como o Jev, o Rizzo Flow aceita estado não estruturado e retorna decisões tipadas como julgamentos de sim/não, escolhas, pontuações e saídas numéricas. 

Ele também espelha a interface HTTP da TypeSafe, facilitando substituir uma chamada hospedada por um endpoint local. 

O Rizzo Flow se destaca especialmente pela implantação local e flexibilidade de hardware, combinando modelos abertos, quantização e uma API familiar, em vez de tentar reproduzir a arquitetura proprietária de treinamento do Jev.

Como o Rizzo Flow funciona

O Rizzo Flow processa o estado uma vez e armazena o resultado no KV cache do modelo. 

Várias perguntas podem reutilizar esse estado em cache em vez de processar todo o contexto novamente. Cada pergunta é convertida em um problema de múltipla escolha, com respostas candidatas representadas por letras como A, B ou C. 

O Rizzo Flow lê apenas os logits dessas letras de resposta, aplica softmax e converte as probabilidades resultantes em saídas tipadas como boolean, choice, score ou número.

Diagrama da arquitetura do Rizzo Flow

Primeiros passos com o Rizzo Flow

O Rizzo Flow requer Python 3.11+, Git e uv. 

Ao instalar, selecione o backend de computação da sua máquina. Por exemplo, no Linux com GPU NVIDIA:

git clone https://github.com/Rizzo-AI-Academy/rizzo-flow
cd rizzo-flow

uv sync --locked --extra cuda
source .venv/bin/activate

Para Apple Silicon, use --extra mlx; sistemas apenas com CPU podem usar --extra cpu.

Depois, baixe o modelo Spark-X2.5 padrão e seu runtime local:

rizzo download

Em seguida, inicie o servidor:

rizzo serve

O modelo passa a rodar localmente em http://127.0.0.1:8017. 

Você pode testar o endpoint compatível com Jev com uma decisão real:

curl http://127.0.0.1:8017/v1/systemone \
  -H 'Content-Type: application/json' \
  -d '{
    "state": "My payouts have been failing for three days.",
    "model": "rizzo-latest",
    "questions": {
      "is_urgent": {
        "type": "noul",
        "instructions": "Does this convey urgency?"
      },
      "department": {
        "type": "choice",
        "instructions": "Which team should handle this?",
        "criteria": {
          "billing": "Payments and refunds",
          "technical": "Bugs and outages",
          "sales": null
        }
      }
    }
  }'

O Rizzo Flow retorna a resposta e a distribuição de probabilidade diretamente, sem gerar tokens de saída um a um.

6. Von: uma alternativa System One compacta ao Jev

Von é um modelo System One feito sob medida, baseado em uma arquitetura ModernBERT bidirecional com 395M de parâmetros. 

Em vez de decodificar texto, ele avalia o estado e os critérios candidatos em conjunto usando representações OptionMarker e, então, produz diretamente logits para decisões de Choice, Noul e Score. 

Ele também aplica calibração pós-treinamento para que as distribuições de probabilidade resultantes possam ser usadas diretamente na lógica da aplicação.

O Von é muito parecido com o Jev no nível de interface: é não autoregressivo, suporta as três primitivas de decisão centrais, avalia múltiplas perguntas em um forward pass e implementa o protocolo /v1/systemone. 

Sua principal força é o tamanho enxuto e o design para inferência local: o modelo tem centenas de milhões, e não bilhões, de parâmetros, e suporta execução em CUDA, ROCm, Apple Silicon e CPU.

Como o Von funciona

O von usa um modelo compacto, bidirecional e baseado em ModernBERT para processar o estado, a pergunta e os critérios candidatos em conjunto. 

Seu mecanismo Option-Marker cria representações para as respostas possíveis, que são convertidas em logits de candidatos. 

Em seguida, aplica-se temperature scaling para melhorar a distribuição de probabilidades antes de o von retornar o choice, noul ou score final. 

A mesma arquitetura também pode avaliar múltiplas perguntas em um único forward pass.

Diagrama da arquitetura do Von

Primeiros passos com o Von

O Von tem uma das interfaces mais simples.

Instale o SDK em Python:

pip install von-sdk

Isso instala o software do Von. O modelo em si é publicado separadamente como wfzyx/von-1.0 no Hugging Face.

Quando o modelo é carregado pela primeira vez, seu checkpoint ModernBERT é baixado e armazenado em cache local por meio do sistema de carregamento de modelos do Hugging Face/Transformers. 

Depois de em cache, inferências posteriores usam a cópia local, sem novo download.

Você pode então tomar uma decisão com:

import von

result = von.decide(
    state="Database replication lag exceeded 45 seconds.",
    choices={
        "infrastructure": "Database or network failures",
        "billing": "Payments and invoices",
        "feature": "Requests for new functionality",
    },
    instructions="Classify the root cause.",
)

print(result.choice)
print(result.confidence)
For a binary decision:
p_blocking = von.judge(
    state="Requests are timing out.",
    instructions="Is this actively blocking customers?"
)

print(p_blocking)

A primeira chamada pode demorar mais, pois o modelo precisa ser baixado e inicializado. Depois disso, a inferência acontece localmente.

7. NanoJev: uma réplica do Jev treinável e leve

NanoJev é uma réplica do Jev de 0,6B, construída sobre Qwen3-0.6B, com decision heads dedicados para saídas estruturadas. 

Cada requisição contém um estado, uma pergunta e um conjunto de candidatos, que passam pelo backbone antes de heads compartilhados produzirem distribuições de probabilidade completas. 

Choice usa set attention e um head escalar; decisões booleanas usam sigmoid; e Score avalia níveis ordenados e produz tanto uma distribuição quanto a pontuação esperada.

O NanoJev segue bem de perto o design do Jev: suporta decisões em paralelo, conjuntos de candidatos dinâmicos, distribuições completas de probabilidade e zero decodificação de saída. 

Seu destaque está no backbone muito pequeno e no pipeline explícito de treinamento ponta a ponta.

Ele pode agrupar vários estados, perguntas e caminhos de candidatos em um único forward pass do backbone, sendo uma opção interessante para desenvolvedores que querem experimentar uma arquitetura compacta, treinável e no estilo Jev, em vez de adaptar um LLM maior e genérico.

Como o NanoJev funciona

O NanoJev recebe um estado, uma pergunta e as respostas candidatas entre as quais o modelo pode escolher. 

Cada candidato é combinado com a entrada relevante e passado por um backbone Qwen3-0.6B compartilhado. 

O NanoJev então usa decision heads dedicados para pontuar diretamente os candidatos: Choice usa set attention e softmax; Boolean usa sigmoid; e Score produz uma distribuição de probabilidade sobre níveis ordenados. 

Como lê essas probabilidades diretamente do forward pass, pode retornar distribuições tipadas completas sem gerar tokens de saída.

Primeiros passos com o NanoJev

O NanoJev mantém o download do modelo separado da instalação do repositório.

Comece instalando o projeto:

git clone https://github.com/TianyuCodings/NanoJev.git
cd NanoJev

python -m pip install \
    -r requirements-toy.txt \
    huggingface_hub

Depois, baixe o checkpoint público fixado:

from huggingface_hub import snapshot_download

snapshot_download(
    repo_id="C-Tianyu/NanoJev",
    revision="unified-games-v1",
    local_dir="checkpoints/NanoJev-unified",
    allow_patterns=[
        "best.safetensors",
        "config.json",
        "tokenizer/*",
        "backbone_config/*",
    ],
)

Inicie o servidor local de inferência:

CUDA_VISIBLE_DEVICES=0 python scripts/serve_decisions.py \
    --checkpoint-dir checkpoints/NanoJev-unified \
    --web-root web \
    --host 127.0.0.1 \
    --port 8765 \
    --precision bf16

Crie uma requisição:

cat > data/request.json <<'JSON'
{
  "states": [{
    "id": "living_room",
    "state": "The living room is 29 degrees. The target is 24 degrees. The window is closed and someone is home.",
    "questions": {
      "action": {
        "type": "choice",
        "instructions": "Choose the action that most directly lowers the room temperature.",
        "criteria": {
          "cool": "Turn on air conditioning",
          "light": "Turn on the lights",
          "wait": "Keep the current settings"
        }
      },
      "occupied": {
        "type": "boolean",
        "instructions": "Someone is home."
      }
    }
  }]
}
JSON

Depois, envie para o NanoJev:

curl http://127.0.0.1:8765/api/evaluate \
  -H 'Content-Type: application/json' \
  --data-binary @data/request.json

O servidor mantém o checkpoint carregado e retorna a distribuição de probabilidade para cada pergunta. O NanoJev também consegue agrupar vários estados e perguntas na mesma requisição.

Comparando as 7 principais alternativas ao Jev

A principal diferença está em como cada projeto produz a decisão.

Laya e Von usam encoders bidirecionais pequenos, feitos especificamente para pontuação de opções. 

Kev, Nimble e NanoJev adaptam modelos Qwen com treinamento especializado ou decision heads. 

SemIf e Rizzo Flow seguem um caminho mais leve, extraindo probabilidades diretamente de modelos generativos existentes.

Projeto

Arquitetura

Tamanho

Decisões no estilo Jev

Melhor uso

Laya

ModernBERT/mmBERT + decision head

322M–421M

Sim

Decisões pequenas e multilíngues

Nimble

Qwen3.5 + pontuação por LoRA

9B

Similar

Treinamento e pesquisa

Kev

Qwen + LoRA + pointer head

0.8B–9B

Sim

Implantação local ao estilo Jev

SemIf

Logits diretos de LLMs abertos

Dependente do modelo

Similar

Experimentos de logit direto

Rizzo Flow

Spark + pontuação direta de opções

1.7B–4B

Sim

Serving local facilitado

Von

ModernBERT + OptionMarker

~395M

Sim

Inferência de decisão compacta

NanoJev

Qwen3 + decision heads compartilhados

0.6B

Sim

Réplica pequena e treinável do Jev

Na prática, encoders dedicados priorizam velocidade e eficiência; modelos Qwen adaptados mantêm mais capacidade geral de linguagem; e métodos de logits diretos são mais fáceis de experimentar porque exigem menos treinamento especializado.

Qual alternativa ao Jev você deve usar?

Para modelos de decisão pequenos e especializados, Laya, Von e NanoJev estão entre as opções mais interessantes, variando de cerca de 322M a 600M de parâmetros.

Se você precisa de decisão multilíngue, o Laya se destaca com um checkpoint baseado em mmBERT cobrindo mais de 100 idiomas.

Para aplicações construídas em torno da API TypeSafe System One, Kev e Von oferecem caminhos de integração especialmente próximos, enquanto o Rizzo Flow espelha a mesma interface HTTP para serving local.

Para treino e experimentação, o Nimble publica sua curadoria de dados e a receita de fine-tuning com LoRA, enquanto o NanoJev oferece um pipeline completo cobrindo geração de dados, treinamento, avaliação e serving.

Se você quer experimentar sem treinar um modelo de decisão especializado, o SemIf é um baseline útil: lê as probabilidades das opções diretamente de modelos abertos como o Qwen, em vez de gerar uma resposta.

Considerações finais

A arquitetura exata do Jev pode ser nova, mas a ideia por trás dela não é. 

Classificadores NLI zero-shot vêm pontuando rótulos candidatos arbitrários a partir de logits do modelo há anos, muito antes do Jev. 

O que a TypeSafe AI traz é uma arquitetura feita para isso, saídas em paralelo, probabilidades calibradas e uma API limpa para transformar essa ideia em uma camada de decisão programável.

O ecossistema open-source mostra que você não precisa de um serviço fechado para construir algo semelhante. 

Projetos como Kev, Von e Rizzo Flow podem rodar localmente e expor interfaces no estilo Jev, enquanto outros permitem baixar os pesos, quantizá-los ou usar runtimes como o llama.cpp.

A grande lição não é que o Jev inventou a tomada de decisão por IA, mas que ele trouxe de volta a atenção para uma ideia importante: se sua aplicação só precisa de uma decisão, talvez você não precise de geração de texto.

FAQs

Os modelos de decisão não autoregressivos são quanto mais rápidos que LLMs tradicionais?

Ao eliminar a geração token a token, modelos não autoregressivos avaliam o contexto e computam decisões em um único forward pass. Essa mudança arquitetural normalmente reduz a latência de inferência de alguns segundos para dezenas de milissegundos, tornando-os viáveis para roteamento em tempo real em aplicações de alto throughput, onde LLMs tradicionais seriam gargalo.

Quais são os principais casos de uso empresariais para camadas de decisão em IA dedicadas?

Modelos de decisão brilham em fluxos que exigem roteamento estruturado em alto volume, e não geração de texto aberta. Aplicações comuns incluem seleção de ferramentas por agentes autônomos (decidir qual API chamar em seguida), moderação de conteúdo em tempo real, triagem dinâmica de suporte ao cliente e pipelines de validação de dados automatizados que demandam saídas probabilísticas tipadas e estritas.

Modelos System One alucinam como modelos de linguagem generativos?

Embora não inventem citações falsas nem fabriquem texto (alucinações tradicionais), modelos de decisão ainda podem classificar incorretamente. Como eles produzem distribuições de probabilidade mapeadas a escolhas restritas, desenvolvedores mitigam isso definindo limites rígidos de confiança. Se a confiança do modelo para uma classificação ficar abaixo do limite, o sistema pode escalar automaticamente a tarefa para um humano ou para um modelo de raciocínio maior.

É possível rodar esses modelos de decisão de IA em dispositivos de borda apenas com CPU?

Sim. Modelos de decisão feitos para esse fim geralmente variam de 300M a 600M de parâmetros, exigindo apenas uma fração da memória necessária para LLMs generativos padrão. Quando quantizados, podem ser implantados de forma eficiente em CPUs comuns, dispositivos de borda móveis ou diretamente em navegadores usando runtimes como ONNX ou llama.cpp, eliminando totalmente dependência de nuvem e custos de API.

Abid Ali Awan

Autor

Abid Ali Awan

Sou um cientista de dados certificado que gosta de criar aplicativos de aprendizado de máquina e escrever blogs sobre ciência de dados. No momento, estou me concentrando na criação e edição de conteúdo e no trabalho com modelos de linguagem de grande porte.

Temas

Relacionado

An avian AI exits its cage

blog

12 Alternativas de código aberto ao GPT-4