Downloads · 30 days
19
44% of all-time downloads
abhishek085/spark-s1-4b-v3
spark-s1-4b-v3 is a text classification model from abhishek085. Use it when you need a label for a piece of text. It is set up for transformers. The card lists the license as apache-2.0.
spark-s1 is an open, local "System One" decision model from the Nokast AI community (open-spark-Jev). It answers typed questions about a state (choice, boolean, ordered score, over options defined at request time) wit…
Downloads · 30 days
19
44% of all-time downloads
All-time downloads
43
Public
Parameters
4B
8.1 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors8 GB · 100%
From the Hugging Face model README
spark-s1 is an open, local "System One" decision model from the Nokast AI community (open-spark-Jev). It answers typed questions about a state (choice, boolean, ordered score, over options defined at request time) with a full probability distribution and a confidence from one forward pass, with no generated text. This is the accuracy pick of the v3 release: Qwen/Qwen3-4B fine-tuned with LoRA r16 (merged into these weights).
It is not Jev and is not affiliated with TypeSafe AI: it is a public backbone fine-tuned with a supervised loss. It follows the same contract (typed questions in; per-option probabilities, confidence out; no decoding).
The state is rendered once; each question is appended as a menu (A. ..., B. ..., option definitions in the prompt) followed by the Qwen3
non-thinking assistant header. The logits of the first answer token are restricted to the option-letter tokens (A..Z), divided by a per-type
temperature and softmaxed. That distribution is the answer. The weights are an ordinary Qwen3 causal LM; the readout is done by the
open-spark-Jev repository (https://github.com/abhishek085/open-spark-jev) code (open_spark_jev.model.MenuScorer, open_spark_jev/serve), which also serves the POST /v1/decide API.
calibration.json holds the temperatures: choice 3.166 (fitted on a held-out calibration split); boolean and score are 1.0 (not fitted).
LoRA r16 (merged), 3 epochs, cross-entropy plus a Brier regulariser, on the 967-row os-datagen train split with each choice row also shown in 4 random option orders (4,277 examples). Labels come from code (policy engines, solvers, controlled worlds), not an LLM judge. Data: abhishek085/spark-s1-osdg-v1. No tool-call-risk data was used.
| measure | value |
|---|---|
| 60-row tool-call set (final review) | 0.850 (Jev, recorded: 0.917) |
| os-datagen locked test / challenge | 0.785 / 0.790 |
| Kev decision-v1 / transfer-v4 (external, no training overlap) | 0.773 / 0.749 |
| Jev-directory (70 questions) | 0.771 |
| p50 latency, 60-row set, batch 1, one DGX Spark | 65.9 ms (Jev recorded 421.6 ms, hosted incl. network) |
The 60-row set has n=60 (one standard error about 5 points) and per-row failures of older models on it were inspected before this ladder, so treat it as a soft final check. Jev's latency is a hosted, network-inclusive recorded number, so speed ratios are not like-for-like.
More data across more task families (including code/data workflows and security), retraining, calibration for every question type, and outcome-based calibration training. Releases are versioned spark-s1-<size>-v<n>.
Apache-2.0 (the Qwen/Qwen3-4B backbone is Apache-2.0). The training data was generated and verified with Gemma-4-26B-A4B, Qwen3.6-35B-A3B and Qwen3.6-27B (see the dataset card); check those terms for commercial use.