EldanRing commited on
Commit
d1652cf
·
verified ·
1 Parent(s): 14c4224

Refocus Winnow-E4B model card on model and decision workflow

Browse files
Files changed (1) hide show
  1. README.md +95 -169
README.md CHANGED
@@ -14,178 +14,104 @@ tags:
14
 
15
  # Winnow-E4B
16
 
17
- **Local typed decisions, chat and vision, with Q8 profiles for consumer GPUs.**
18
- We recommend **12 GB+ VRAM for 64K context + vision**, or **10 GB+ VRAM for
19
- 8K text-only use**. In a matched 8K-context,
20
- text-only decision workload, Winnow-E4B Q8 delivered approximately **2.2× the
21
- batched throughput** of Winnow-12B Q8 and used **5.5 GiB less peak GPU memory**.
22
- Winnow-12B remains stronger on the broad JevBench and Kev suites; E4B leads on
23
- our targeted typed-decision evaluation. These are measured comparisons, not
24
- claims about every workload.
25
-
26
- | Recommended Q8 GPU capacity | Profile | Observed peak GPU memory |
27
- |---|---|---:|
28
- | **12 GB+ VRAM** | 64K context + vision, with the matching projector | 10.72 GiB across the decision and chat probes |
29
- | **10 GB+ VRAM** | 8K context, text only | 8.56 GiB in the decision workload |
30
-
31
- These capacity recommendations use measured RTX 5070 Ti footprints with Q8 KV,
32
- four decision branches, one chat slot and exclusive scheduling. They are not
33
- benchmarks of every card in those tiers; memory use and speed vary by GPU,
34
- runtime and other GPU workloads. See the [quickstart](docs/QUICKSTART.md) for
35
- the exact settings.
36
-
37
- Winnow-E4B fine-tunes [Gemma 4 E4B IT](https://huggingface.co/google/gemma-4-E4B-it)
38
- for `noul`, `choice`, and `score` decisions over shared state. The
39
- [Winnow inference server](https://github.com/EldanRing/winnow-inference) evaluates
40
- answer-token logits without generating answer text and also exposes ordinary
41
- chat. A separate Q8 smoke test exercised near-64K context with an image and
42
- 512-token chat generation on the RTX 5070 Ti. General chat quality and broad
43
- vision accuracy have not been benchmarked for this artifact.
44
-
45
- [Inference code](https://github.com/EldanRing/winnow-inference) ·
46
- [Quickstart](docs/QUICKSTART.md) ·
47
- [Benchmark methods and limitations](docs/BENCHMARKS.md) ·
48
- [Artifact manifest](release-manifest.json)
49
-
50
- ## GGUF download
51
-
52
- | Download | Use | File size |
53
- |---|---|---:|
54
- | [Winnow-E4B-Q8_0.gguf](gguf/Winnow-E4B-Q8_0.gguf) | **Q8_0; selected and measured deployment artifact** | 8.01 GB / 7.46 GiB |
55
- | [Winnow-E4B-BF16.gguf](gguf/Winnow-E4B-BF16.gguf) | Optional higher-precision text model for larger memory budgets; Q8 is recommended | 15.05 GB / 14.02 GiB |
56
- | [mmproj-Winnow-E4B.gguf](gguf/mmproj-Winnow-E4B.gguf) | Matching F16 vision projector for Q8 image requests | 990 MB / 0.922 GiB |
57
-
58
- The GGUF contains the merged language weights, tokenizer and chat template. It
59
- needs no separate LoRA adapter or conversion. Both files come from the same
60
- selected step-438 merge. Download the matching projector alongside Q8 to send
61
- images; it was used in the [64K + vision smoke test](docs/BENCHMARKS.md#64k-context-and-vision-smoke-test).
62
- Verify downloads with [SHA256SUMS](SHA256SUMS).
63
-
64
- The BF16 GGUF passed 8K text-decision serving on an RTX 5070 Ti. On 759 held-out
65
- ordinary and 132 longer decisions, its top-choice accuracy was essentially the
66
- same as Q8. Its separately calibrated probability loss was slightly worse and
67
- it used about **15.0 GiB of GPU memory** versus **8.6 GiB** for Q8, with little
68
- headroom on a 16 GB card. BF16 has **not** been run through the public suites,
69
- or with a projector or populated 64K context. The 64K + vision results below
70
- are for **Q8 only**. See the
71
- [paired format check](docs/BENCHMARKS.md#selected-step-438-bf16-versus-q8).
72
-
73
- ## Decision quality
74
-
75
- All numbers below are Q8 GGUF results on the same frozen questions. The matched
76
- E4B/12B release run used an RTX 5070 Ti and the same HTTP runner. Percentages are
77
- top-choice accuracy before temperature scaling, which does not change winners.
78
 
79
  | Evaluation | Winnow-E4B Q8 | Winnow-12B Q8 |
80
  |---|---:|---:|
81
- | JevBench public subset, 231 items | 186/231, **80.52%** | 198/231, **85.71%** |
82
- | Kev v9 clean, 1,046 items | **72.66%** | **81.45%** |
83
- | Kev v9 additional, 390 items | **55.90%** | **68.97%** |
84
- | Local typed decisions, 2,000 items | **72.30%** | **70.10%** |
85
-
86
- The local typed suite uses synthetic teacher distributions, not independently
87
- verified ground truth for every item. Its 2.2-point E4B lead is specific to that
88
- suite. The 12B leads on all three broader public suites. These suites were known
89
- before E4B's targeted continuation was designed, so they are a useful paired
90
- deployment comparison, **not a fresh unseen-task estimate**. JevBench here means
91
- accuracy on the public subset, not the official composite leaderboard score.
92
- Details, confidence intervals and probability measures are in the
93
- [benchmark report](docs/BENCHMARKS.md).
94
-
95
- ## RTX 5070 Ti: speed and memory
96
-
97
- Both Q8 models used the same GPU, 8,192-token text-only context, Q8 KV cache,
98
- four decision branches and selected-token output projection. The runner repeated
99
- the same full state/question workload ten times per batch size; the values below
100
- are warm median request times, not tail-latency guarantees.
101
-
102
- | Simultaneous questions | Winnow-E4B Q8 | Winnow-12B Q8 |
103
- |---:|---:|---:|
104
- | 1 | **13.33 ms** | 26.50 ms |
105
- | 8 | **53.97 ms** | 119.17 ms |
106
- | 16 | **108.51 ms** | 239.30 ms |
107
- | 32 | **216.95 ms** | 475.83 ms |
108
- | 64 | **433.04 ms** | 951.99 ms |
109
-
110
- At 64 questions, warm throughput was **147.8 versus 67.2 decisions/s**. Peak
111
- reported GPU memory was **8,769 versus 14,355 MiB**, a 5,586 MiB (5.46 GiB)
112
- difference. The 5070 Ti has 16 GB VRAM, but these measurements do not establish
113
- the memory needed for longer context or a vision projector. Prefill and chat
114
- generation speeds are not characterized by this table.
115
-
116
- ## 64K context, vision and chat smoke test
117
-
118
- The selected Q8 GGUF and matching F16 projector ran on the same RTX 5070 Ti
119
- with 65,536 context positions, Q8 KV cache and four decision branches. A
120
- synthetic 1024 × 1024 status-panel image occupied 441 positions. A request with
121
- 65,023 shared-prefix positions, including that image, answered **6/6** visual
122
- and text questions. Cold request time was **11.59 s**, including 10.96 s of
123
- prefill; identical cached follow-ups took **129–131 ms**. Sampled peak GPU
124
- memory was **10,723 MiB (10.47 GiB)**. A changed image invalidated the cache
125
- as expected.
126
-
127
- A separate chat probe generated 512 tokens on a 62,431-position multimodal
128
- prompt at **71.2 output tokens/s**, with **9.98 s** to first content and
129
- **10,979 MiB (10.72 GiB)** sampled peak GPU memory. Three short chat runs
130
- generated at a median **119.1 tokens/s**. These are operational probes: they
131
- establish that the image path, long context and chat generation work, not broad
132
- vision accuracy, long-context reasoning quality or chat quality. The
133
- [benchmark report](docs/BENCHMARKS.md#64k-context-and-vision-smoke-test) gives
134
- the exact method and limits.
135
-
136
- ## GGUF packaging
137
-
138
- The selected step-438 language adapter was merged into the pinned Gemma 4 E4B IT
139
- base as `FP32(base) + FP32(B @ A) × alpha/rank`, then converted to Q8_0 or BF16
140
- with a pinned llama.cpp converter. The FP32 merge avoids rounding the learned
141
- update to BF16 before conversion. Each artifact is a complete merged model; the original
142
- adapter and private training checkpoint are not needed for inference.
143
-
144
- ## Training
145
-
146
- Winnow-E4B is a **LoRA fine-tune**, not a full-parameter training run. It
147
- continues a selected E4B decision adapter with a targeted local update; the
148
- released GGUF contains the merged weights.
149
-
150
- | Setting | Value |
151
- |---|---|
152
- | Base | `google/gemma-4-E4B-it` |
153
- | Base revision | `ee0ef6023621cff504d758262d4e04895a5af4a2` |
154
- | LoRA rank / alpha | 32 / 64 |
155
- | Adapted weights | 294 language tensors; vision and audio modules frozen |
156
- | Targeted continuation | Selected step 438; effective batch 16; up to 8,192 input tokens |
157
- | Export | FP32 adapter merge, then Q8_0 or BF16 GGUF |
158
-
159
- **The training dataset is private and is not released.** It combines synthetic
160
- contrastive decisions, verified labels, teacher distributions where appropriate,
161
- semantic tasks and targeted hard cases. Training, development, calibration and
162
- reserved tests were separated. Public suites were used for evaluation and also
163
- informed later targeted data design, as described above. No claim is made about
164
- excluding these tasks from the base model's pretraining.
165
-
166
- ## Probabilities and scope
167
-
168
- The server normalizes logits over the supplied answer options. For this Q8
169
- artifact, a **1.257417** temperature was fitted on 778 reserved calibration
170
- decisions (646 ordinary and 132 long). Pass it as `winnow.temperature` in each
171
- `/v1/systemone` request when using the measured calibration. It changes
172
- probabilities, not the selected answer. It is not a universal guarantee of
173
- correctness; calibration quality varies by task and length. On the combined
174
- already-opened reserved test panels, E4B's calibrated proper loss improved over
175
- the prior E4B checkpoint while labeled accuracy was unchanged.
176
-
177
- BF16's separately fitted decision temperature is **1.333155** on the same 778
178
- reserved calibration decisions. The Q8 temperature above should not be applied
179
- to BF16. The matched quality and throughput suites use 8K text decisions; the
180
- separate Q8 64K + vision and chat probes above establish runtime capability on
181
- the tested 5070 Ti. General chat and real-image vision quality remain unmeasured.
182
 
183
  ## Credits and license
184
 
185
- Winnow-E4B is an independent fine-tune by EldanRing of Google DeepMind's
186
- [Gemma 4 E4B IT](https://huggingface.co/google/gemma-4-E4B-it), released under
187
- [Apache 2.0](https://ai.google.dev/gemma/docs/gemma_4_license). See [LICENSE](LICENSE)
188
- and [NOTICE](NOTICE). The separate inference code builds on
189
- [llama.cpp](https://github.com/ggml-org/llama.cpp) and preserves its MIT license.
190
- Jev-style describes the typed-decision interface; Winnow is not affiliated with
191
- or endorsed by TypeSafe, Google or llama.cpp.
 
14
 
15
  # Winnow-E4B
16
 
17
+ **A compact Gemma 4 fine-tune for typed decisions that also supports ordinary chat and image input.**
18
+
19
+ Winnow-E4B takes a shared state and a set of questions, then assigns probabilities to the answers each question supplies. The decision path reads candidate-answer logits without generating an explanation. It is designed for tasks such as routing a request, choosing an action, checking a condition, or rating urgency when the possible answers are known. The same merged model weights remain available for regular chat; image input uses the matching vision projector.
20
+
21
+ Winnow-E4B was created by EldanRing from [Gemma 4 E4B IT](https://huggingface.co/google/gemma-4-E4B-it). The downloadable GGUFs have the decision fine-tune merged into the language model. They require no separate adapter or base-model download.
22
+
23
+ [Run the model](docs/QUICKSTART.md) · [Inference code](https://github.com/EldanRing/winnow-inference) · [API reference](https://github.com/EldanRing/winnow-inference/blob/main/docs/API.md) · [Evaluation details](docs/BENCHMARKS.md)
24
+
25
+ ## How decisions work
26
+
27
+ The [Winnow inference server](https://github.com/EldanRing/winnow-inference) exposes `/v1/systemone`. A request provides one state and any combination of these question types:
28
+
29
+ | Type | What the caller supplies | What the server returns |
30
+ |---|---|---|
31
+ | `noul` | A yes/no question | Probability of `true` |
32
+ | `choice` | Named options with optional descriptions | Selected option, option probabilities, confidence |
33
+ | `score` | An ordered list of levels | Level probabilities, expected score, confidence |
34
+
35
+ The server shares the state prefill across questions, reuses a matching cached prefix when possible, and evaluates only the verified answer-token candidates for each question. Questions can be processed in parallel branches or waves without loading another copy of the model. Ordinary `/v1/chat/completions` uses the normal vocabulary head and chat template, including streaming and image messages when the projector is loaded.
36
+
37
+ For example, one request can ask both whether a customer wants a refund and which team should handle the ticket:
38
+
39
+ ```json
40
+ {
41
+ "model": "Winnow-E4B",
42
+ "state": {"ticket": "I was charged twice and need a refund."},
43
+ "questions": {
44
+ "refund": {
45
+ "type": "noul",
46
+ "instructions": "Does the customer request a refund?"
47
+ },
48
+ "department": {
49
+ "type": "choice",
50
+ "instructions": "Which team should handle this ticket?",
51
+ "criteria": {
52
+ "billing": "Payments and refunds",
53
+ "technical": "Software defects"
54
+ }
55
+ }
56
+ },
57
+ "winnow": {"temperature": 1.2574172017327816}
58
+ }
59
+ ```
60
+
61
+ The [quickstart](docs/QUICKSTART.md#ask-typed-questions) shows a complete command. Candidate probabilities are conditional on the options supplied in a request. Confidence describes how concentrated the distribution is; it is not a guarantee that an answer is correct.
62
+
63
+ ## Model and training
64
+
65
+ This is a **rank-32, alpha-64 LoRA fine-tune** of the instruction-tuned Gemma 4 E4B model. A selected decision adapter was continued on targeted hard cases, with step 438 chosen for export. The update trained language tensors; the vision and audio modules remained frozen. The adapter was merged in FP32 before conversion to Q8_0 and BF16 GGUF. Chat still has its full generation head, while the decision server projects only the requested answer rows.
66
+
67
+ The private training set combines synthetic contrastive decisions, verified labels, teacher distributions where appropriate, semantic tasks, and targeted hard cases. Training, development, calibration, and reserved tests were separated. **The training data and adapter checkpoint are not released.** Public evaluation suites were known before the targeted continuation was designed and informed task selection; the results below should be read as a comparison of deployed models, not a fresh unseen-task estimate.
68
+
69
+ ## Decision results
70
+
71
+ These figures evaluate the **downloadable Q8 GGUF** against Winnow-12B Q8 on the same questions. They report top-choice accuracy, except the local typed panel, which reports agreement with synthetic teacher labels.
 
 
 
 
 
 
72
 
73
  | Evaluation | Winnow-E4B Q8 | Winnow-12B Q8 |
74
  |---|---:|---:|
75
+ | JevBench public subset, 231 questions | **80.52%** (186/231) | 85.71% (198/231) |
76
+ | Kev v9 clean, 1,046 questions | **72.66%** | 81.45% |
77
+ | Kev v9 additional, 390 questions | **55.90%** | 68.97% |
78
+ | Local typed decisions, 2,000 decisions | **72.30%** | 70.10% |
79
+
80
+ Winnow-12B leads on the broader public suites. E4B leads by 2.2 points on this local typed panel, which uses synthetic teacher targets rather than independently verified truth for every item. The JevBench figure is **public-subset accuracy**, not the official composite leaderboard score. Methods, uncertainty intervals, calibration measures, and evaluation boundaries are in the [benchmark report](docs/BENCHMARKS.md).
81
+
82
+ In a separate matched 8K text decision workload, E4B Q8 delivered **147.8 decisions/s** at 64 questions per request, versus **67.2 decisions/s** for Winnow-12B Q8. Those are warm request medians on an RTX 5070 Ti, not a guarantee for other hardware or workloads. The [timing table](docs/BENCHMARKS.md#same-gpu-latency-and-memory) includes smaller batches and memory use.
83
+
84
+ ## Probabilities and calibration
85
+
86
+ The server normalizes candidate logits over the options in each question. The optional `winnow.temperature` setting scales those logits without changing which option wins. For **Q8 text decisions**, `1.2574172017327816` was fitted on 778 separate calibration questions. For **BF16**, the separately fitted value is `1.3331553765162731`; do not reuse Q8's temperature for BF16.
87
+
88
+ These temperatures were measured for the evaluated text-decision profile. Calibration can change with task, prompt length, image input, and deployment settings. Check probabilities on held-out examples from the intended application before treating them as confidence in real-world correctness.
89
+
90
+ ## Downloads and deployment
91
+
92
+ | File | Role | Size |
93
+ |---|---|---:|
94
+ | [Winnow-E4B-Q8_0.gguf](gguf/Winnow-E4B-Q8_0.gguf) | Recommended, fully measured language model | 8.01 GB / 7.46 GiB |
95
+ | [Winnow-E4B-BF16.gguf](gguf/Winnow-E4B-BF16.gguf) | Optional higher-precision language model | 15.05 GB / 14.02 GiB |
96
+ | [mmproj-Winnow-E4B.gguf](gguf/mmproj-Winnow-E4B.gguf) | Matching F16 projector for image input | 990 MB / 0.922 GiB |
97
+
98
+ Download Q8 for the measured decision, chat, and vision setup; add the projector for images. BF16 passed 8K text-decision serving but was not tested with images or populated 64K context. On reserved text tests it showed no consistent quality advantage over Q8. [Verify files](SHA256SUMS) after download.
99
+
100
+ | Q8 configuration | Observed peak device memory | Suggested GPU capacity |
101
+ |---|---:|---:|
102
+ | 8K text-only decision workload | 8.56 GiB | 10 GB+ VRAM |
103
+ | 64K vision and chat operational probes | 10.72 GiB across the probes | 12 GB+ VRAM |
104
+
105
+ Capacity suggestions come from one RTX 5070 Ti using Q8 KV cache, four decision branches, one chat slot, and exclusive memory scheduling. They have not been tested on every GPU in those tiers. The Q8 model and projector answered six questions over a 65,023-position state that included a synthetic image; repeated cached requests took 129–131 ms after an 11.59 s cold request. A separate 62,431-position multimodal chat prompt generated 512 tokens at 71.2 output tokens/s. The [benchmark report](docs/BENCHMARKS.md#64k-context-and-vision-smoke-test) describes these operational probes and their limits.
106
+
107
+ ## Scope and limitations
108
+
109
+ - The decision path is intended for supplied answer options. Open-ended responses use the regular chat endpoint.
110
+ - General chat quality, real-image vision accuracy, and broad long-context reasoning have not been established by these probes. The image test used a synthetic status panel. Vision and audio modules were not fine-tuned for this release.
111
+ - The public suites were known during targeted data design. The local typed panel measures agreement with synthetic teacher labels. Neither result establishes accuracy for every downstream task.
112
+ - Probability calibration was fitted on text decisions. It needs validation for a new domain or multimodal workload.
113
+ - The 64K and vision measurements apply to **Q8 with the matching projector**. BF16 was evaluated only in the text profile.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
 
115
  ## Credits and license
116
 
117
+ Winnow-E4B is an independent fine-tune by EldanRing of Google DeepMind's [Gemma 4 E4B IT](https://huggingface.co/google/gemma-4-E4B-it), released under [Apache 2.0](https://ai.google.dev/gemma/docs/gemma_4_license). See [LICENSE](LICENSE) and [NOTICE](NOTICE). The separate inference code builds on [llama.cpp](https://github.com/ggml-org/llama.cpp) and preserves its MIT license. Jev-style describes the typed-decision interface; Winnow is not affiliated with or endorsed by TypeSafe, Google, or llama.cpp.