Skip to content
System One

Jev vs BERT: a fine-tuned classifier against a System One model

A fine-tuned BERT classifier learns a fixed label set from your labelled data and runs in milliseconds on hardware you control. Jev takes the label list in each request, needs no training run, and returns a probability per option from a managed API at $0.042 per million input tokens. Stable high-volume label sets favour BERT, and taxonomies that change favour Jev.

Updated

The short answer

BERT wants labelled examples and hands you a model you own and run. Jev wants a list of options in the request and hands back a probability for each. Stable categories with training data behind them favour a fine-tuned encoder on cost and latency. Categories that change favour Jev, because there is no training run to redo.

Jev vs BERT at a glance

Jev Fine-tuned BERT / DeBERTa-v3 Zero-shot NLI (bart-large-mnli, DeBERTa-v3-NLI)
Labels Defined per request Fixed when you train Supplied per request
Training data None Labelled examples per class None
Time to first prediction One API call As long as labelling and a training run take Load the checkpoint
Latency 70ms to 500ms end to end (TypeSafe’s own figure) About 2.2ms on a T4 with TensorRT, about 40ms on CPU (NVIDIA, QA task) One forward pass per candidate label, so it grows with the label count
Cost $0.042 per million input tokens, output free GPU or CPU rental plus engineering time Same self-hosting profile
Calibration Trained with RLCD, unaudited outside TypeSafe Raw softmax, known to run overconfident (Guo et al. 2017) Same softmax overconfidence risk
Output shape Choice, Score or Noul with a probability per option Softmax over the classes it was trained on Entailment score per candidate label
Maximum classes 255 options per Choice Set when you train Limited in practice by latency
Context length 64k per request, 32k for state plus longest question 512 tokens (BERT-base, DeBERTa-v3-base), 8,192 (ModernBERT) 512 tokens on the common checkpoints
Hosting Managed API only, so text leaves your network Apache 2.0 or MIT weights on your hardware Same, MIT weights
Fine-tunable No Required Optional

Sources: docs.typesafe.ai/models, the TypeSafe launch post, the Hugging Face card for each checkpoint, and NVIDIA’s TensorRT benchmark, checked 2026-09-20. The NVIDIA numbers come from a question-answering benchmark at batch size 1 and sequence length 128, so read them as the shape of encoder latency rather than a figure for your task.

Labels: fixed at training time or defined per request

A fine-tuned BERT model has its label set welded in. The classification head carries one output per class, so adding a nineteenth category to eighteen means relabelling, retraining and redeploying.

Jev takes the options as text in the request. A Choice picks one of up to 255 options and returns a probability for each, a Score places the input on 2 to 10 ordered levels, and a Noul answers yes or no as a single number. Change the list, change nothing else. That is the behaviour of a zero-shot classifier, which is why the label stuck to Jev within hours of launch.

Training data: thousands of examples or none

A fine-tuned encoder needs labelled examples per class, usually in the hundreds to thousands for decent accuracy. That range is general practice rather than a single citation, so treat it as a planning estimate.

jev-agent.com’s comparison puts the requirement at the centre of the choice. It argues Jev wins with no labelled data, a shifting taxonomy, several judgments per input, or long-tail classes, naming “classes with forty examples” as where fine-tuning struggles most. Classifiers win, it grants, when the data cannot leave the network or volume runs past tens of millions of long documents.

Speed and cost per decision

Jev charges $0.042 per million input tokens and nothing for output (docs.typesafe.ai/models, 2026-09-20). jev-agent.com works that out to about $21 per million calls at 500 tokens each, matching the list price.

A self-hosted encoder has a standing bill instead. AWS on-demand rates found in a search on 2026-09-20 put a T4 at roughly $0.53 an hour and an A10G at roughly $1.01, from a secondary source rather than the AWS pricing page, so confirm before budgeting on it. Add engineering time and a small deployment lands around $500 to $2,000 a month, an industry estimate rather than a measurement.

Latency runs the other way. An optimised encoder answers in single-digit milliseconds on a GPU. Jev’s published range starts at 70ms, from TypeSafe’s own evaluation, with no independent benchmark as of 2026-09-20.

Calibration: what each one’s probabilities mean

A softmax score is not a probability you should bet on. Guo et al., “On Calibration of Modern Neural Networks” (ICML 2017), found modern deep networks run systematically overconfident compared with older, shallower ones despite scoring higher accuracy, and that temperature scaling fixes most of it cheaply. Gate actions on an encoder’s confidence and you calibrate it yourself.

TypeSafe’s pitch is that Jev is trained for this. RLCD, or Reinforcement Learning for Calibrated Decisions, is meant to make the returned probability track the real outcome rate, and the docs say the model “always communicates confidence and uncertainty.” No expected calibration error figure has been published by anyone, so the claim is unaudited. Measure calibration on your own data before trusting either number.

Accuracy: what the evidence says

No controlled head-to-head benchmark of Jev against a fine-tuned BERT model on identical tasks has been published. ExplainX’s comparison says so directly, and its cited figure of 67.8% aggregate accuracy for Jev against 74.1% for the best comparator measures Jev against an LLM, not an encoder.

The nearest useful evidence is arXiv:2505.18215, which finds BERT-style models often beat LLMs on pattern-driven classification while LLMs pull ahead where deep semantic or world knowledge is needed. Pattern-matching work suits the encoder, and judgment calls suit a classification model that reads your instructions.

ModernBERT-base shows how much headroom the encoder side still has: 149M parameters under Apache 2.0, trained on 2 trillion tokens of English text and code, with a native 8,192-token context against BERT’s 512. DeBERTa-v3-base scores 90.6/90.7 on MNLI at roughly 184M parameters.

Zero-shot NLI classifiers, the middle option

An option sits between the two and predates Jev by years. A natural language inference model reframes each candidate label as a hypothesis, “This text is about X”, and reads the entailment probability as that label’s score. Labels arrive at inference time with no training run, and the weights stay on your hardware.

facebook/bart-large-mnli is the well-worn version, about 0.4B parameters under MIT, with 3.07M downloads a month at the 2026-09-20 check. MoritzLaurer’s deberta-v3-large-zeroshot-v2.0 is stronger, trained on synthetic data from Mixtral-8x7B-Instruct across more than 500 classification tasks, and scoring 0.676 average f1_macro across 28 zero-shot benchmarks against bart-large-mnli’s 0.497.

The structural catch is that NLI runs one forward pass per candidate label, so twenty labels means twenty passes and latency that climbs with your taxonomy. Jev evaluates one Choice over up to 255 options in a single request.

When to use BERT

Pick a fine-tuned encoder when the label set is settled, you have labelled data, volume is high enough that per-call pricing hurts, or the text cannot leave your network. Regulated data and millisecond budgets point the same way.

When to use Jev

Pick Jev when you have no labelled data, when the taxonomy changes every few weeks, when you need several judgments about one document, or when you want a probability to gate on without building a calibration step. The decision model charges for what you send, so six questions about one state cost barely more than one.

Using both: Jev first, BERT once you have labels

Running Jev first is a reasonable way to bootstrap. Ship the classification model against a label list in your application code, log every decision with its probability, then train an encoder on the accumulated labels once the taxonomy stops moving.

The same logic works inside one request. A hierarchical classification cascade sends the cheap first pass to a local model and escalates only ambiguous cases. jev-agent.com reports a hybrid of Jev and logistic regression reaching 95.1% cross-validated accuracy on 2,000 phishing emails.

FAQ

Is Jev just a BERT classifier?

It performs the same task, text in and a label out with a probability. Labels arrive per request rather than at training time, the probabilities are trained for calibration through RLCD, and there are no weights to host. Whether that earns a new category name is an argument worth reading in full.

Is BERT faster than Jev?

On a GPU, yes, by a wide margin. NVIDIA measured BERT-base at about 2.2ms with TensorRT at batch size 1, and about 40ms on CPU, on a question-answering task. TypeSafe publishes 70ms to 500ms for Jev from its own evaluation. Network round trips alone put any API behind a local encoder.

Can I fine-tune Jev?

No. The docs state Jev is “not fine-tuned or LoRA-adapted with customer data.” You shape its behaviour through the state, instructions and criteria fields sent with each request. A task needing domain adaptation baked into weights points at an encoder you host yourself.

Should I replace my BERT model with Jev?

Not if it works, the labels are stable and the cost is fine. A working fine-tuned classifier is cheaper per call than any API. Replacement makes sense when the taxonomy keeps changing, when retraining has become the bottleneck, or when you want calibrated probabilities without building the calibration step.

Is ModernBERT a Jev alternative?

For fixed-label classification, yes. ModernBERT-base is 149M parameters under Apache 2.0 with an 8,192-token context, so it handles far longer inputs than BERT’s 512 and runs on your hardware. It still needs labelled data and a training run. See the ModernBERT entry.

Does Jev need training data?

No. You define the options, instructions and criteria in each request, and the model answers without seeing a labelled example from you. Labelled data is still useful for a different purpose: measuring whether the answers and the confidence numbers hold up on your own inputs.

Examples

Alternative

ikermoel/open-alternative-jev

Typed, calibrated decisions from any open-weights model in one forward pass on your own GPU, through Hugging Face or vLLM, with no text generated. On RACE-H with Qwen3.6-27B, writing the passage once reached 92.9% accuracy at 4.55 questions per second against 2.00 for batching.

Related guides