-1

# Jev em 25 linhas de Python

Meu nome é Jev

Todo mundo está falando de Jev. Jev isso, Jev aquilo. No Twitter, todo mundo só fala de Jev, que é a próxima fronteira dos grandes modelos de linguagem e o novo paradigma da IA. A gente não acha isso. Então aqui está o Jev em 25 linhas de Python.

Carregue o modelo.

# /// script
# requires-python = ">=3.12"
# dependencies = ["huggingface-hub", "llama-cpp-python", "numpy"]
# ///

import numpy
from llama_cpp import Llama

# Na real, dá pra usar qualquer modelo GGUF de https://huggingface.co/models?library=gguf

model = Llama.from_pretrained(
    repo_id="Qwen/Qwen3-0.6B-GGUF",
    filename="Qwen3-0.6B-Q8_0.gguf",
    n_ctx=512,
    logits_all=True,
    verbose=False,
)

Carregue o prompt e defina as opções.

labels = ["A", "B", "C"]
choices = ["Legitimate", "Spam", "Phishing"]
email = "Payroll asks for your password on a non-company sign-in page."
options = "\n".join(
    f"{label}. {choice}" for label, choice in zip(labels, choices, strict=True)
)
prompt = f"""<|im_start|>system
Choose one option.<|im_end|>
<|im_start|>user
Email: {email}\n\n{options}<|im_end|>
<|im_start|>assistant
<think>\n\n</think>\n\n"""
model.eval(tokens=model.tokenize(text=prompt.encode(), add_bos=False, special=True))

Transforme os logits em probabilidades.

logits = model.scores[model.n_tokens - 1]
token_ids = [model.tokenize(text=label.encode(), add_bos=False)[0] for label in labels]
choice_logits = numpy.asarray([logits[token_id] for token_id in token_ids])
logprobs = choice_logits - numpy.logaddexp.reduce(choice_logits)
probabilities = numpy.exp(logprobs)

for name, scores in (
    ("Logits", choice_logits),
    ("Log probabilities", logprobs),
    ("Probabilities", probabilities),
):
    values = numpy.round(scores.astype(float), 3).tolist()
    print(f"{name}:", dict(zip(choices, values, strict=True)))

# Logits: {'Legitimate': 26.254, 'Spam': 27.262, 'Phishing': 29.614}
# Log probabilities: {'Legitimate': -3.482, 'Spam': -2.474, 'Phishing': -0.122}
# Probabilities: {'Legitimate': 0.031, 'Spam': 0.084, 'Phishing': 0.885}

Pronto. Isso é o Jev.

Mas não, você não entende o Jev!

É, a gente sabe.

  • A gente não chama isso de "modelo de decisão System One".
  • A gente não chamou nenhuma API.
  • A gente não criou um monte de dados sintéticos.
  • A gente não treinou um modelo com Aprendizado por Reforço para Decisões Calibradas (RLCD) para calibrar as decisões e probabilidades (que, aliás, nem sempre estão certas).

Mas sim. Isso é o Jev.

  • Ele classifica: recebe um prompt com opções e devolve probabilidades.
  • É rápido.
  • É local.
  • Seus dados não vão pra lugar nenhum.

E a gente gosta de não mandar seus dados pra lugar nenhum. Dá uma olhada no NobodyWho.

(Obs.: este é um post de paródia. Para implementações abertas melhores e mais completas do Jev, veja: OpenJev, openjev-sglang e OpenJev no DiffusionGemma.)

Carregando publicação patrocinada...