Jev за 25 строк на Python. Jev.. Jev. llm.. Jev. llm. Open source.. Jev. llm. Open source. python.. Jev. llm. Open source. python. ИИ.. Jev. llm. Open source. python. ИИ. ии-агенты.. Jev. llm. Open source. python. ИИ. ии-агенты. искусственный интеллект.. Jev. llm. Open source. python. ИИ. ии-агенты. искусственный интеллект. классификация.. Jev. llm. Open source. python. ИИ. ии-агенты. искусственный интеллект. классификация. локальные llm.. Jev. llm. Open source. python. ИИ. ии-агенты. искусственный интеллект. классификация. локальные llm. Машинное обучение.. Jev. llm. Open source. python. ИИ. ии-агенты. искусственный интеллект. классификация. локальные llm. Машинное обучение. нейросети.. Jev. llm. Open source. python. ИИ. ии-агенты. искусственный интеллект. классификация. локальные llm. Машинное обучение. нейросети. Программирование.
My name is Jev

My name is Jev

Все кому не лень говорят о Jev. Jev тут, Jev там. Все в Twitter только и говорят о Jev, что это следующее достижение больших языковых моделей и парадигмы ИИ. Мы в этом не уверены. Поэтому вот Jev за 25 строк на Python.

Загрузим модель.

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

import numpy
from llama_cpp import Llama

# Really, you can use any GGUF model from 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,
)

Подготовим промпт и укажем варианты.

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}nn{options}<|im_end|>
<|im_start|>assistant
<think>nn</think>nn"""
model.eval(tokens=model.tokenize(text=prompt.encode(), add_bos=False, special=True))

Выжмем из логитов вероятности. (прим. перев.: логиты — сырые, ненормированные оценки для каждого варианта ответа).

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}

Вот. Это и есть Jev.

Но нет, вы не понимаете Jev!

Да, мы в курсе.

Но да. Это и есть Jev.

  • Он классифицирует: получает промпт с вариантами и возвращает вероятности.

  • Он быстрый.

  • Он локальный.

  • Ваши данные никуда не отправляются.

А нам нравится никуда не отправлять ваши данные. Попробуйте NobodyWho.

(заметка: это пародийный пост, вот ссылки на более полные открытые реализации Jev: OpenJev, openjev-sglang и OpenJev on DiffusionGemma.)


Всё, что делает NobodyWho, — опенсорс, поставьте нам звезду на GitHub, чтобы поддержать нас ❤️

Опубликовано 22 сентября 2026 года, автор — Duarte O.Carmo

Автор: ARad

Источник