Feature Extraction
Transformers
Safetensors
modernbert
typed-decisions
decision-index
decision-model
cross-encoder
text-embeddings-inference
sileod commited on
Commit
22601b4
Β·
verified Β·
1 Parent(s): 134ac6a

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +42 -22
README.md CHANGED
@@ -14,16 +14,16 @@ tags:
14
  - decision-making
15
  ---
16
 
17
- # ⚑ Tasksource-JEV-Nano-v1 (`tasksource-jev-nano-v1`)
18
 
19
  **SOTA High-Throughput Native Decision Model (\<200M Parameters)**
20
  *Decoupled Multi-Vector Late Interaction for Fast, Calibrated System-One Decisions*
21
 
22
- [![Decision Index](https://img.shields.io/badge/Decision_Index_Raw-32.03-blue)](https://github.com/sileod/decision-models) [![Decision Index Skill](https://img.shields.io/badge/Decision_Index_Skill-10.32-green)](https://github.com/sileod/decision-models)
23
 
24
- Successor to [`tasksource-jev-nano-v0`](https://huggingface.co/tasksource/tasksource-jev-nano-v0) (Raw 30.65 / Skill 9.58, kept immutable for reproducibility). v1 is a single continued checkpoint β€” no soup β€” trained with plain grouped multi-question exposure (16k unique requests) on top of the v0 lineage. It uses the simple release inference path: state + single question (`S + Q_i`) with independently encoded options.
25
 
26
- Built on [`answerdotai/ModernBERT-base`](https://huggingface.co/answerdotai/ModernBERT-base) and [`lightonai/LateOn`](https://huggingface.co/lightonai/LateOn) (~149M params, 8192 context). Handles choice (K=2 to 150+), NOUL, and score decisions.
27
 
28
  ## πŸ“Š Benchmark Evaluations
29
 
@@ -42,36 +42,56 @@ Built on [`answerdotai/ModernBERT-base`](https://huggingface.co/answerdotai/Mode
42
  - **Tools & Automation**: 24.92% (Skill: 13.50%)
43
  - **Knowledge & Reasoning**: 23.63% (Skill: 2.12%)
44
 
 
 
 
 
 
 
 
 
 
45
  ## πŸš€ Usage
46
 
47
- ```python
48
- from modernjev.multivector.lateon import LateOnDecisionScorer
49
-
50
- scorer = LateOnDecisionScorer(model_name_or_path="tasksource/tasksource-jev-nano-v1")
51
- out = scorer.decide_uncached(
52
- states=["Customer reports unauthorized international wire transfer of $4,500."],
53
- questions=["Select the appropriate fraud mitigation routing:"],
54
- options=[["approve and monitor silently", "challenge with a push notification",
55
- "freeze the account and call the customer", "decline and file a report"]],
56
- kinds=["choice"],
57
- )
58
- print(out.probabilities)
59
  ```
60
 
61
- Or raw PyLate:
62
-
63
  ```python
64
  from pylate import models
 
 
65
  model = models.ColBERT(model_name_or_path="tasksource/tasksource-jev-nano-v1")
66
- ctx = model.encode(["<state>\nQuestion: <question>"], is_query=False, convert_to_tensor=True)[0]
67
- opts = model.encode(["<option 1>", "<option 2>"], is_query=True, convert_to_tensor=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  ```
69
 
70
  ## πŸ“œ Citation
71
 
72
  ```bibtex
73
- @misc{sileo2026jevnano,
74
- title={Tasksource-JEV-Nano: Decoupled Multi-Vector Late Interaction for Typed Decisions},
75
  author={Sileo, Damien},
76
  year={2026},
77
  howpublished={\url{https://huggingface.co/tasksource/tasksource-jev-nano-v1}},
 
14
  - decision-making
15
  ---
16
 
17
+ # ⚑ Tasksource-JEV-Nano (`tasksource-jev-nano-v1`)
18
 
19
  **SOTA High-Throughput Native Decision Model (\<200M Parameters)**
20
  *Decoupled Multi-Vector Late Interaction for Fast, Calibrated System-One Decisions*
21
 
22
+ [![Decision Index](https://img.shields.io/badge/Decision_Index_Raw-32.03-blue)](https://github.com/sileod/decision-models) [![Decision Index Skill](https://img.shields.io/badge/Decision_Index_Skill-10.32-green)](https://github.com/sileod/decision-models) [![Parameters](https://img.shields.io/badge/Parameters-149M-orange.svg)](https://huggingface.co/answerdotai/ModernBERT-base) [![Context Length](https://img.shields.io/badge/Context-8192-purple.svg)](https://huggingface.co/answerdotai/ModernBERT-base)
23
 
24
+ Single 149M-parameter checkpoint (no soup): plain grouped multi-question exposure on the v0 lineage. Previous weights scored Raw 30.65 / Skill 9.58; current weights score Raw 32.03 / Skill 10.32 on the same full official suite.
25
 
26
+ Built on [`answerdotai/ModernBERT-base`](https://huggingface.co/answerdotai/ModernBERT-base) and [`lightonai/LateOn`](https://huggingface.co/lightonai/LateOn). Handles choice (K=2 to 150+), NOUL, and score decisions.
27
 
28
  ## πŸ“Š Benchmark Evaluations
29
 
 
42
  - **Tools & Automation**: 24.92% (Skill: 13.50%)
43
  - **Knowledge & Reasoning**: 23.63% (Skill: 2.12%)
44
 
45
+ ### πŸ† Sub-200M Peer Comparison
46
+
47
+ | Model | Size | Decision Index Raw | Decision Index Skill |
48
+ | --- | --- | --- | --- |
49
+ | **Tasksource-JEV-Nano-v1** | **149M** | **32.03** πŸ† | **10.32** πŸ† |
50
+ | Tasksource-JEV-Nano-v0 | 149M | 30.65 | 9.58 |
51
+ | GLiClass Modern-Large | 340M | β€” | β€” |
52
+ | GLiNER2.5 Base | 200M | β€” | β€” |
53
+
54
  ## πŸš€ Usage
55
 
56
+ ```bash
57
+ pip install -U pylate torch
 
 
 
 
 
 
 
 
 
 
58
  ```
59
 
 
 
60
  ```python
61
  from pylate import models
62
+ import torch
63
+
64
  model = models.ColBERT(model_name_or_path="tasksource/tasksource-jev-nano-v1")
65
+
66
+ # 1. Decision context (state + question), encoded once
67
+ state = "Customer reports unauthorized international wire transfer of $4,500."
68
+ question = "Select the appropriate fraud mitigation routing:"
69
+ context = [state + "\nQuestion: " + question]
70
+
71
+ # 2. Candidate options, encoded independently
72
+ options = [
73
+ "approve and monitor silently",
74
+ "challenge with a push notification",
75
+ "freeze the account and call the customer",
76
+ "decline and file a report",
77
+ ]
78
+
79
+ # 3. Token-level MaxSim scores, temperature softmax
80
+ ctx = model.encode(context, is_query=False, convert_to_tensor=True)[0]
81
+ opts = model.encode(options, is_query=True, convert_to_tensor=True)
82
+ scores = torch.stack([(o @ ctx.T).max(dim=1).values.sum() for o in opts])
83
+ temperature = 0.3199 # learned model temperature
84
+ probs = torch.softmax(scores / temperature, dim=0)
85
+
86
+ for opt, p in zip(options, probs):
87
+ print(f" {opt:45s} -> {p:.4f}")
88
  ```
89
 
90
  ## πŸ“œ Citation
91
 
92
  ```bibtex
93
+ @misc{sileo2026jevnanov1,
94
+ title={Tasksource-JEV-Nano-v1: Decoupled Multi-Vector Late Interaction for Typed Decisions},
95
  author={Sileo, Damien},
96
  year={2026},
97
  howpublished={\url{https://huggingface.co/tasksource/tasksource-jev-nano-v1}},