Tasksource-JEV-Nano-v0

A small decision model that picks the best option from a list โ€” fraud routings, intents, topics, sentiments โ€” using token-level late interaction instead of a classifier head.

It is LateOn (~149M parameters) fine-tuned on 512k real decisions covering three judgment types: picking one option (choice), yes/no questions (noul), and graded scores (score). No teacher model was used.

Why this architecture. The situation (state + question) is encoded once into token vectors and reused for every candidate set, while each option is encoded independently. That gives two properties classifier heads don't have: caching the situation across decisions, and outputs that don't depend on option order (verified exactly permutation-equivariant).

Evaluation

On Tasksource's held-out tasks across all three judgment types, v0 scores 46.8% on unseen-dev and 49.7% on unseen-test (1k examples each). It reaches 41.3% exact match on Fast Decisions (2,900 cases across 17 domains). The table compares models on the same 1k examples per public dataset; classifier-benchmark v2 has 866 cases.

Compact peers (all under 200M)

Model Size AG News Emotion Banking77 Typed cb-v2 micro
Tasksource-JEV-Nano-v0 149M 73.8 49.0 44.7 42.6 57.5
GLiClass Base v3 187M 76.9 51.8 52.4 47.3 51.2
GLiClass Modern-Base v3 151M 75.7 56.1 38.7 48.6 43.9
GLiNER2.5 Base 194M 76.2 56.6 69.7 43.9 60.0
GLiNER2.5 Small 74M 70.4 54.2 66.5 34.0 53.5
GLiClass Edge v3 33M 65.5 50.1 23.2 40.0 35.3

v0's classifier-benchmark v2 macro accuracy is 57.2%.

Larger peers (GLiClass Modern-Large 399M, GLiNER2.5-Multi 287M, Laya-Multilingual 322M) are omitted from this table; Laya's 90.0 AG News is training overlap (AG News is in its training mix). v0 trades some raw high-cardinality accuracy for state caching and order-independence, which none of the classifier heads offer.

Use it (only public packages)

pip install -U pylate torch
from pylate import models
import torch

model = models.ColBERT("tasksource/tasksource-jev-nano-v0")

state = "Customer reports unauthorized international wire transfer of $4,500."
question = "Select the appropriate fraud mitigation routing:"
options = [
    "approve and monitor silently",
    "challenge with a push notification",
    "freeze the account and call the customer",
    "decline and file a report",
]

# Situation encoded once; each option scored against it (MaxSim)
context = [state + "\nQuestion: " + question]
ctx = model.encode(context, is_query=False, convert_to_tensor=True)[0]
opts = model.encode(options, is_query=True, convert_to_tensor=True)
scores = torch.stack([(o @ ctx.T).max(dim=1).values.sum() for o in opts])

temperature = 0.53  # learned temperature of this release
probs = torch.softmax(scores / temperature, dim=0)
for opt, p in zip(options, probs):
    print(f"  {opt:45s} -> {p:.4f}")

Yes/no and graded decisions work the same way with two options or an ordered scale; encode the situation once and reuse it across as many candidate sets as you like.

Citation

@misc{sileo2026jevnanov0,
  title={Tasksource-JEV-Nano-v0: Decoupled Multi-Vector Late Interaction for Typed Decisions},
  author={Sileo, Damien},
  year={2026},
  howpublished={\url{https://huggingface.co/tasksource/tasksource-jev-nano-v0}},
}

Base model LateOn by LightOn (Apache 2.0). If you use the training data, please also cite tasksource/tasksource-jev-typed-decisions.

Downloads last month
58
Safetensors
Model size
0.1B params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for tasksource/tasksource-jev-nano-v0

Base model

lightonai/LateOn
Finetuned
(1)
this model