henryphilf commited on
Commit
18b6845
·
verified ·
1 Parent(s): 1d2b62a

Sync model card metadata

Browse files
Files changed (1) hide show
  1. MODEL_CARD.md +228 -228
MODEL_CARD.md CHANGED
@@ -1,228 +1,228 @@
1
- ---
2
- license: apache-2.0
3
- language:
4
- - en
5
- library_name: transformers
6
- pipeline_tag: text-classification
7
- base_model:
8
- - Qwen/Qwen3-1.7B
9
- - Hanno-Labs/bosun-v3.1-1.7b
10
- datasets:
11
- - LocalLLaMA/typed-decisions
12
- - SargeDev/jev-distill-corpus-v3
13
- tags:
14
- - decision-model
15
- - system-one
16
- - calibrated-decisions
17
- - typed-decisions
18
- - choice
19
- - noul
20
- - score
21
- - qwen3
22
- - bosun
23
- - safetensors
24
- - pytorch
25
- model-index:
26
- - name: Pluto-2.1-1.7B
27
- results:
28
- - task:
29
- type: text-classification
30
- name: Typed Decisions
31
- dataset:
32
- name: LocalLLaMA/typed-decisions
33
- type: LocalLLaMA/typed-decisions
34
- metrics:
35
- - type: accuracy
36
- name: Accuracy
37
- value: 0.6695
38
- - type: brier
39
- name: Brier
40
- value: 0.1261
41
- - type: kl
42
- name: KL
43
- value: 0.2139
44
- - task:
45
- type: text-classification
46
- name: DecisionBench matched subset
47
- dataset:
48
- name: Hanno-Labs/decision-bench
49
- type: Hanno-Labs/decision-bench
50
- metrics:
51
- - type: accuracy
52
- name: Accuracy
53
- value: 0.7208
54
- - type: brier
55
- name: Brier
56
- value: 0.3730
57
- - type: nll
58
- name: NLL
59
- value: 0.7439
60
- ---
61
-
62
- # Pluto-2.1
63
-
64
- ### A 1.7B decision model that beats d1-2B on both measured decision benchmarks.
65
-
66
- Pluto-2.1 reads a state and typed questions, then returns a calibrated probability
67
- distribution for every candidate. It does not generate an answer, so there is
68
- nothing to parse, nothing to retry, and nothing to hallucinate.
69
-
70
- Built solo on one **RTX 5060 Ti 16GB**.
71
-
72
- **Headline:** **0.6695** on Typed Decisions and **0.7208** on the matched
73
- DecisionBench comparison, versus **0.6325** and **0.6339** for d1-2B. One
74
- standalone 1.7B checkpoint, **2–255 candidates**, **choice / noul / score**,
75
- **Apache-2.0**.
76
-
77
- ---
78
-
79
- ## The receipts
80
-
81
- Same rows and same scorer for both models. Higher is better.
82
-
83
- | Model | Params | Typed Decisions | DecisionBench matched | Brier | KL |
84
- |---|---:|---:|---:|---:|---:|
85
- | **Pluto-2.1** | **1.738B** | **0.6695** | **0.7208** | **0.1261** | **0.2139** |
86
- | d1-2B | 1.918B | 0.6325 | 0.6339 | 0.1440 | 0.2958 |
87
-
88
- **What this means**
89
-
90
- - **+3.7 points** on the full 2,000-decision Typed Decisions test.
91
- - **+8.7 points** on the matched DecisionBench comparison.
92
- - **9.4% fewer parameters** than d1-2B.
93
- - **Sharper distributions**: lower Brier and KL on Typed Decisions, and lower
94
- NLL and Brier on DecisionBench.
95
- - **One forward pass.** No autoregressive decoding and no token bill.
96
-
97
- ![Accuracy](assets/benchmark_accuracy.png)
98
-
99
- ![Uplift](assets/uplift.png)
100
-
101
- ![Calibration](assets/calibration.png)
102
-
103
- ![Parameters](assets/parameters.png)
104
-
105
- ### Comparison hygiene
106
-
107
- Pluto-2.1 is a standalone merged checkpoint. The full 2,000-decision Typed
108
- Decisions test and a 1,565-row DecisionBench matched subset are reported. The
109
- DecisionBench subset is the same ≤16-candidate, ≤2,048-token accessibility slice
110
- used for the d1-2B comparison; it is not the full 23,900-row suite. The full
111
- suite is not claimed here.
112
-
113
- ---
114
-
115
- ## Architecture
116
-
117
- ![Architecture](assets/architecture.png)
118
-
119
- - Qwen3-1.7B backbone with 256 stable decision-token slots.
120
- - The fine-tuned adapter is merged into the base; this repository is self-contained.
121
- - One forward pass scores every presented candidate.
122
- - Up to 255 runtime choices per question.
123
- - No d1 weights, no d1-generated training targets, no ensemble, and no runtime
124
- dependency on another model service.
125
-
126
- **Lineage:** Qwen3-1.7B → Hanno-Labs Bosun 3.1 1.7B → Pluto-2.1 2,000-step
127
- fine-tune → merged standalone checkpoint. This is disclosed because it is true;
128
- the release is not presented as trained from random initialization.
129
-
130
- ---
131
-
132
- ## Quickstart
133
-
134
- ```bash
135
- git clone https://huggingface.co/omida-ai/pluto-2.1
136
- pip install -e "pluto-2.1/code"
137
- ```
138
-
139
- ```python
140
- from pluto21 import Pluto21
141
-
142
- model = Pluto21("pluto-2.1")
143
- out = model.predict(
144
- state={"transaction": "Duplicate charge confirmed by the bank."},
145
- instructions="Was the duplicate charge confirmed?",
146
- candidates=[
147
- {"id": "yes", "label": "Yes"},
148
- {"id": "no", "label": "No"},
149
- ],
150
- decision_type="noul",
151
- row_id="demo-1",
152
- )
153
- print(out["probabilities"])
154
- ```
155
-
156
- ```python
157
- out = model.predict(
158
- state={"ticket": "Customer was charged twice and the parcel is late."},
159
- instructions="Which team should handle this?",
160
- candidates=[
161
- {"id": "billing", "label": "Billing", "description": "Charges and refunds"},
162
- {"id": "shipping", "label": "Shipping", "description": "Delivery and parcels"},
163
- {"id": "technical", "label": "Technical", "description": "App or site faults"},
164
- ],
165
- decision_type="choice",
166
- row_id="demo-2",
167
- )
168
- print(out["probabilities"])
169
- ```
170
-
171
- The runtime returns candidate-aligned probabilities. It never generates text.
172
-
173
- ---
174
-
175
- ## Model details
176
-
177
- | | |
178
- |---|---|
179
- | Parameters | **1,737,985,024** (1.738B) |
180
- | Backbone | Qwen3-1.7B, 28 layers, 40,960-token context |
181
- | Decision interface | 256 stable decision-token slots |
182
- | Candidates | 2–255 per question |
183
- | Outputs | `choice`, `noul`, `score` distributions |
184
- | Weights | BF16, 3.44GB |
185
- | License | Apache-2.0 |
186
- | Initialization | Bosun 3.1 1.7B (Apache-2.0) |
187
- | Base | Qwen3-1.7B |
188
- | Runtime | `pluto21`, PyTorch + Transformers |
189
-
190
- ## Training
191
-
192
- - 2,000 LoRA steps on Pluto’s Typed Decisions and JEV decision data.
193
- - Selected checkpoint: 2,000 steps, the only tested checkpoint that beats d1-2B
194
- on both measured benchmarks.
195
- - Trained and merged on one 16GB consumer GPU.
196
- - The adapter is merged into the base; no PEFT dependency at inference.
197
- - The Typed Decisions test split was never used for training or checkpoint
198
- selection.
199
-
200
- ## Scope
201
-
202
- Pluto-2.1 is a decision model, not a chat or reasoning model. The DecisionBench
203
- comparison is the matched accessibility subset; the full 23,900-row suite is not
204
- claimed. As with any benchmark, validate on your own data before high-stakes use.
205
-
206
- ## License and attribution
207
-
208
- Pluto-2.1 weights and runtime are released under **Apache-2.0**. Upstream
209
- components remain under their original licenses:
210
-
211
- - Qwen3-1.7B, Apache-2.0
212
- - Hanno-Labs Bosun 3.1 1.7B, Apache-2.0
213
-
214
- See `LICENSE`, `NOTICE`, and `serving.json`. No d1 weights or outputs are
215
- included, and d1 is not required at inference.
216
-
217
- ## Citation
218
-
219
- ```bibtex
220
- @misc{omida2026pluto21,
221
- title = {Pluto-2.1: A 1.7B Standalone Decision Model},
222
- author = {Omida AI},
223
- year = {2026},
224
- url = {https://huggingface.co/omida-ai/pluto-2.1}
225
- }
226
- ```
227
-
228
- Built by **Omida AI** on one 16GB consumer GPU.
 
1
+ ---
2
+ license: apache-2.0
3
+ language:
4
+ - en
5
+ library_name: pytorch
6
+ pipeline_tag: text-classification
7
+ base_model:
8
+ - Qwen/Qwen3-1.7B
9
+ - Hanno-Labs/bosun-v3.1-1.7b
10
+ datasets:
11
+ - LocalLLaMA/typed-decisions
12
+ - SargeDev/jev-distill-corpus-v3
13
+ tags:
14
+ - decision-model
15
+ - system-one
16
+ - calibrated-decisions
17
+ - typed-decisions
18
+ - choice
19
+ - noul
20
+ - score
21
+ - qwen3
22
+ - bosun
23
+ - safetensors
24
+ - pytorch
25
+ model-index:
26
+ - name: Pluto-2.1-1.7B
27
+ results:
28
+ - task:
29
+ type: text-classification
30
+ name: Typed Decisions
31
+ dataset:
32
+ name: LocalLLaMA/typed-decisions
33
+ type: LocalLLaMA/typed-decisions
34
+ metrics:
35
+ - type: accuracy
36
+ name: Accuracy
37
+ value: 0.6695
38
+ - type: brier
39
+ name: Brier
40
+ value: 0.1261
41
+ - type: kl
42
+ name: KL
43
+ value: 0.2139
44
+ - task:
45
+ type: text-classification
46
+ name: DecisionBench matched subset
47
+ dataset:
48
+ name: Hanno-Labs/decision-bench
49
+ type: Hanno-Labs/decision-bench
50
+ metrics:
51
+ - type: accuracy
52
+ name: Accuracy
53
+ value: 0.7208
54
+ - type: brier
55
+ name: Brier
56
+ value: 0.3730
57
+ - type: nll
58
+ name: NLL
59
+ value: 0.7439
60
+ ---
61
+
62
+ # Pluto-2.1
63
+
64
+ ### A 1.7B decision model that beats d1-2B on both measured decision benchmarks.
65
+
66
+ Pluto-2.1 reads a state and typed questions, then returns a calibrated probability
67
+ distribution for every candidate. It does not generate an answer, so there is
68
+ nothing to parse, nothing to retry, and nothing to hallucinate.
69
+
70
+ Built solo on one **RTX 5060 Ti 16GB**.
71
+
72
+ **Headline:** **0.6695** on Typed Decisions and **0.7208** on the matched
73
+ DecisionBench comparison, versus **0.6325** and **0.6339** for d1-2B. One
74
+ standalone 1.7B checkpoint, **2–255 candidates**, **choice / noul / score**,
75
+ **Apache-2.0**.
76
+
77
+ ---
78
+
79
+ ## The receipts
80
+
81
+ Same rows and same scorer for both models. Higher is better.
82
+
83
+ | Model | Params | Typed Decisions | DecisionBench matched | Brier | KL |
84
+ |---|---:|---:|---:|---:|---:|
85
+ | **Pluto-2.1** | **1.738B** | **0.6695** | **0.7208** | **0.1261** | **0.2139** |
86
+ | d1-2B | 1.918B | 0.6325 | 0.6339 | 0.1440 | 0.2958 |
87
+
88
+ **What this means**
89
+
90
+ - **+3.7 points** on the full 2,000-decision Typed Decisions test.
91
+ - **+8.7 points** on the matched DecisionBench comparison.
92
+ - **9.4% fewer parameters** than d1-2B.
93
+ - **Sharper distributions**: lower Brier and KL on Typed Decisions, and lower
94
+ NLL and Brier on DecisionBench.
95
+ - **One forward pass.** No autoregressive decoding and no token bill.
96
+
97
+ ![Accuracy](assets/benchmark_accuracy.png)
98
+
99
+ ![Uplift](assets/uplift.png)
100
+
101
+ ![Calibration](assets/calibration.png)
102
+
103
+ ![Parameters](assets/parameters.png)
104
+
105
+ ### Comparison hygiene
106
+
107
+ Pluto-2.1 is a standalone merged checkpoint. The full 2,000-decision Typed
108
+ Decisions test and a 1,565-row DecisionBench matched subset are reported. The
109
+ DecisionBench subset is the same ≤16-candidate, ≤2,048-token accessibility slice
110
+ used for the d1-2B comparison; it is not the full 23,900-row suite. The full
111
+ suite is not claimed here.
112
+
113
+ ---
114
+
115
+ ## Architecture
116
+
117
+ ![Architecture](assets/architecture.png)
118
+
119
+ - Qwen3-1.7B backbone with 256 stable decision-token slots.
120
+ - The fine-tuned adapter is merged into the base; this repository is self-contained.
121
+ - One forward pass scores every presented candidate.
122
+ - Up to 255 runtime choices per question.
123
+ - No d1 weights, no d1-generated training targets, no ensemble, and no runtime
124
+ dependency on another model service.
125
+
126
+ **Lineage:** Qwen3-1.7B → Hanno-Labs Bosun 3.1 1.7B → Pluto-2.1 2,000-step
127
+ fine-tune → merged standalone checkpoint. This is disclosed because it is true;
128
+ the release is not presented as trained from random initialization.
129
+
130
+ ---
131
+
132
+ ## Quickstart
133
+
134
+ ```bash
135
+ git clone https://huggingface.co/omida-ai/pluto-2.1
136
+ pip install -e "pluto-2.1/code"
137
+ ```
138
+
139
+ ```python
140
+ from pluto21 import Pluto21
141
+
142
+ model = Pluto21("pluto-2.1")
143
+ out = model.predict(
144
+ state={"transaction": "Duplicate charge confirmed by the bank."},
145
+ instructions="Was the duplicate charge confirmed?",
146
+ candidates=[
147
+ {"id": "yes", "label": "Yes"},
148
+ {"id": "no", "label": "No"},
149
+ ],
150
+ decision_type="noul",
151
+ row_id="demo-1",
152
+ )
153
+ print(out["probabilities"])
154
+ ```
155
+
156
+ ```python
157
+ out = model.predict(
158
+ state={"ticket": "Customer was charged twice and the parcel is late."},
159
+ instructions="Which team should handle this?",
160
+ candidates=[
161
+ {"id": "billing", "label": "Billing", "description": "Charges and refunds"},
162
+ {"id": "shipping", "label": "Shipping", "description": "Delivery and parcels"},
163
+ {"id": "technical", "label": "Technical", "description": "App or site faults"},
164
+ ],
165
+ decision_type="choice",
166
+ row_id="demo-2",
167
+ )
168
+ print(out["probabilities"])
169
+ ```
170
+
171
+ The runtime returns candidate-aligned probabilities. It never generates text.
172
+
173
+ ---
174
+
175
+ ## Model details
176
+
177
+ | | |
178
+ |---|---|
179
+ | Parameters | **1,737,985,024** (1.738B) |
180
+ | Backbone | Qwen3-1.7B, 28 layers, 40,960-token context |
181
+ | Decision interface | 256 stable decision-token slots |
182
+ | Candidates | 2–255 per question |
183
+ | Outputs | `choice`, `noul`, `score` distributions |
184
+ | Weights | BF16, 3.44GB |
185
+ | License | Apache-2.0 |
186
+ | Initialization | Bosun 3.1 1.7B (Apache-2.0) |
187
+ | Base | Qwen3-1.7B |
188
+ | Runtime | `pluto21`, PyTorch + Transformers |
189
+
190
+ ## Training
191
+
192
+ - 2,000 LoRA steps on Pluto’s Typed Decisions and JEV decision data.
193
+ - Selected checkpoint: 2,000 steps, the only tested checkpoint that beats d1-2B
194
+ on both measured benchmarks.
195
+ - Trained and merged on one 16GB consumer GPU.
196
+ - The adapter is merged into the base; no PEFT dependency at inference.
197
+ - The Typed Decisions test split was never used for training or checkpoint
198
+ selection.
199
+
200
+ ## Scope
201
+
202
+ Pluto-2.1 is a decision model, not a chat or reasoning model. The DecisionBench
203
+ comparison is the matched accessibility subset; the full 23,900-row suite is not
204
+ claimed. As with any benchmark, validate on your own data before high-stakes use.
205
+
206
+ ## License and attribution
207
+
208
+ Pluto-2.1 weights and runtime are released under **Apache-2.0**. Upstream
209
+ components remain under their original licenses:
210
+
211
+ - Qwen3-1.7B, Apache-2.0
212
+ - Hanno-Labs Bosun 3.1 1.7B, Apache-2.0
213
+
214
+ See `LICENSE`, `NOTICE`, and `serving.json`. No d1 weights or outputs are
215
+ included, and d1 is not required at inference.
216
+
217
+ ## Citation
218
+
219
+ ```bibtex
220
+ @misc{omida2026pluto21,
221
+ title = {Pluto-2.1: A 1.7B Standalone Decision Model},
222
+ author = {Omida AI},
223
+ year = {2026},
224
+ url = {https://huggingface.co/omida-ai/pluto-2.1}
225
+ }
226
+ ```
227
+
228
+ Built by **Omida AI** on one 16GB consumer GPU.