Dit artikel is een parody op de huidige hype rondom 'Jev' in de wereld van grote taalmodellen (LLM's). De auteur stelt dat wat door sommigen als een nieuw AI-paradigma wordt gepresenteerd, in essentie neerkomt op het classificeren van input door de logits (kansberekeningen) van specifieke tokens te analyseren.
Om dit te bewijzen, wordt een Python-voorbeeld gegeven dat met behulp van llama-cpp-python en een GGUF-model (Qwen3) een e-mail classificeert als 'Legitiem', 'Spam' of 'Phishing'. De auteur drijft de spot met complexe industry-jargon zoals 'System One-beslissingsmodellen' en 'RLCD', terwijl hij de voordelen van lokale uitvoering en dataprivacy benadrukt.
Jev in 25 regels Python
Het model laden
# /// script
# requires-python = ">=3.12"
# dependencies = ["huggingface-hub", "llama-cpp-python", "numpy"]
# ///
import numpy
from llama_cpp import Llama
# Je kunt echt elk GGUF-model gebruiken van 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,
)
De prompt laden en de keuzes definiëren
labels = ["A", "B", "C"]
choices = ["Legitiem", "Spam", "Phishing"]
email = "Payroll vraagt om je wachtwoord op een niet-bedrijfsmatige inlogpagina."
options = "\n".join(
f"{label}. {choice}" for label, choice in zip(labels, choices, strict=True)
)
prompt = f"""<|im_start|>system
Kies één optie.<|im_end|>
<|im_start|>user
E-mail: {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))
De logits omzetten naar kansen
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: {'Legitiem': 26.254, 'Spam': 27.262, 'Phishing': 29.614}
# Log probabilities: {'Legitiem': -3.482, 'Spam': -2.474, 'Phishing': -0.122}
# Probabilities: {'Legitiem': 0.031, 'Spam': 0.084, 'Phishing': 0.885}
Daar heb je het. Dat is Jev.
Maar nee, jij begrijpt Jev niet!
Ja, we weten het.
- We noemen het geen System One-beslissingsmodel.
- We hebben geen API aangeroepen.
- We hebben geen hoop synthetische data gemaakt.
- We hebben geen model getraind met Reinforcement Learning for Calibrated Decisions (RLCD) om de beslissingen en kansen te kalibreren (ook al zijn ze niet altijd correct).
Maar ja. Dit is Jev.
Het classificeert: het krijgt een prompt met keuzes en geeft kansen uit. Het is snel. Het is lokaal. Je verstuurt je gegevens nergens anders heen. En wij houden ervan om je gegevens nergens anders heen te sturen. Bekijk NobodyWho.
(Opmerking: dit is een parody-blogpost, zie deze links voor betere of completere open implementaties van Jev: OpenJev, openjev-sglang, en OpenJev op DiffusionGemma.)
Jev in 25 regels Python
Het model laden
# /// script
# requires-python = ">=3.12"
# dependencies = ["huggingface-hub", "llama-cpp-python", "numpy"]
# ///
import numpy
from llama_cpp import Llama
# Je kunt echt elk GGUF-model gebruiken van 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,
)
De prompt laden en de keuzes definiëren
labels = ["A", "B", "C"]
choices = ["Legitiem", "Spam", "Phishing"]
email = "Payroll vraagt om je wachtwoord op een niet-bedrijfsmatige inlogpagina."
options = "\n".join(
f"{label}. {choice}" for label, choice in zip(labels, choices, strict=True)
)
prompt = f"""<|im_start|>system
Kies één optie.<|im_end|>
<|im_start|>user
E-mail: {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))
De logits omzetten naar kansen
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: {'Legitiem': 26.254, 'Spam': 27.262, 'Phishing': 29.614}
# Log probabilities: {'Legitiem': -3.482, 'Spam': -2.474, 'Phishing': -0.122}
# Probabilities: {'Legitiem': 0.031, 'Spam': 0.084, 'Phishing': 0.885}
Daar heb je het. Dat is Jev.
Maar nee, jij begrijpt Jev niet!
Ja, we weten het.
- We noemen het geen System One-beslissingsmodel.
- We hebben geen API aangeroepen.
- We hebben geen hoop synthetische data gemaakt.
- We hebben geen model getraind met Reinforcement Learning for Calibrated Decisions (RLCD) om de beslissingen en kansen te kalibreren (ook al zijn ze niet altijd correct).
Maar ja. Dit is Jev.
Het classificeert: het krijgt een prompt met keuzes en geeft kansen uit. Het is snel. Het is lokaal. Je verstuurt je gegevens nergens anders heen. En wij houden ervan om je gegevens nergens anders heen te sturen. Bekijk NobodyWho.
(Opmerking: dit is een parody-blogpost, zie deze links voor betere of completere open implementaties van Jev: OpenJev, openjev-sglang, en OpenJev op DiffusionGemma.)