What it does
- choice questions with named options;
- yes/no questions;
- ordered score questions;
- a readout temperature folded into the language-model norm, so the front end reads at temperature 1;
- read twice for short text-only requests (up to 3,000 tokens read once).
Quickstart
Install PyTorch with CUDA, transformers and SGLang 0.5.21, then start the included front end:
bash serve_knowline.sh /path/to/KnowLine-0.8B-Gen1 0 8080
The front end serves /v1/systemone:
curl -s http://127.0.0.1:8080/v1/systemone \ -H 'Content-Type: application/json' \ -d '{ "model": "m", "state": "The parcel arrived damaged.", "questions": { "refund": {"type": "noul", "instructions": "Should the customer receive a refund?"}, "route": {"type": "choice", "instructions": "Which team should handle this case?", "criteria": {"billing": "Payments and refunds", "support": "Technical troubleshooting"}} } }'
- Front end:
knowline_server.py, knowline_engine.py and knowline_layout.py implement the scoring front end used
for every result below; temperatures.json must sit next to serve_knowline.sh.
- Thinking off: the front end renders prompts with thinking turned off (
enable_thinking=False). The Qwen3.5-0.8B
chat template in this repository turns thinking on by default, so pass enable_thinking=False if you build prompts
yourself.
- Full settings: see INFERENCE.md.
How Gen1 was made
- Base model: Qwen/Qwen3.5-0.8B.
- Training: one epoch of LoRA SFT (rank 32, alpha 64, language-model linear layers only), merged into bf16 weights.
The released checkpoint is the end of training.
- Training data: the same decision dataset as KnowLine-9B-Gen1, 1,143,656 rows rendered with the Qwen3.5 chat
template, at most 12,288 tokens per row.
- Readout temperature: T = 1.54, fitted on our golden sets and folded into
model.language_model.norm.weight
(see CALIBRATION.json). temperatures.json divides score-question logits by 0.6494 (= 1/1.54), so score questions
are read at an effective temperature of 1.0.
- Images: no image training; the vision tower is the base model's.
The training data is not included in this repository.
Comparison
Board entries of a similar size, from the Decision Index board snapshot multimodalart/jev-decision-index @ c130faf6 (data generated 2026-10-29 14:04 UTC). The board's DI 0.4.1 full
score comes from the maintainers' private run.
Table with columns: model, size, DI 0.3 public, DI 0.4.1 full, source| model | size | DI 0.3 public | DI 0.4.1 full | source |
|---|
| KnowLine-0.8B-Gen1 | 0.8B | 44.51 | not yet scored | self-run, official kit |
| GLiClass v4 edge (0.4B) | 0.4B | 47.49 | 31.21 | board |
| OneJev1.6-0.8B | 0.9B | 48.76 | 29.58 | board |
| crystal-0.8b | 0.9B | 42.79 | 29.37 | board |
| vLLM-SR vela3-fast (0.4B) | 0.4B | 50.36 | 29.27 | board |
| StartLux-Decision v1.1 0.8B | 0.9B | 53.79 | 28.88 | board |
Evaluation
Full public Decision Index 0.3
Measured on 2026-10-29 with the files in this repository (bf16, read twice):
Table with columns: measurement, result| measurement | result |
|---|
| Public Decision Index | 44.51 |
| Public raw index | 58.35 |
| Requests / scoreable requests | 140,620 / 140,178 |
| Scoreable answers / errors / unsupported | 140,178 / 0 / 0 |
| One request at a time: median / mean / 95th percentile | 24.6 / 39.6 / 117.3 ms |
- How the run was made: a fresh run of the 0.3 public suite with the official kit (commit
62d2f51), sent to
four identical H20 servers started with serve_knowline.sh, 32 client shards. No request needed a retry and no input
was truncated.
- Consistency check: 300 random requests (477 answers) sent one at a time to one server: 475 answers were the
same as in the full run; the others are near-ties (top two options within 0.06).
- Hardware: H20 measurements, not the board's reference hardware.
Held-out and other evaluations
Both models of this release, on the same files and serving:
Table with columns: suite, 2B-Gen1, 0.8B-Gen1| suite | 2B-Gen1 | 0.8B-Gen1 |
|---|
| In-house held-out set, English | 64.9 | 57.9 |
| In-house held-out set, Simplified Chinese | 66.6 | 63.5 |
| In-house held-out set, Traditional Chinese | 58.5 | 53.4 |
| C-Eval (4 categories, macro) | 67.0 | 56.3 |
| Open-Jev 1.1 test / OOD | 80.1 / 77.4 | 71.5 / 69.7 |
| JevBench / JevBench-hard | 77.5 / 55.9 | 71.9 / 49.5 |
| Decision tasks from new domains (our own, 45 tasks)¹ | 32.1 | 23.5 |
| Prompt injection, seen templates: answers moved (lower is better) | 2.6% | 2.1% |
| Prompt injection, templates not seen in training: attack success (lower is better) | 6.3% (38/600) | 4.2% (25/600) |
- ¹ Our own decision tasks from domains not in training, generated programmatically; some share rule-reading skills with
our training data.
S1MB (English v1)
A local run of the S1MB English v1 category (evaluator 9ad06fea, dataset 10bcb8c6) against
this repository at commit b76c79d4, run ID knowline-08b-gen1-en-20261029-001: 137 benchmarks, 18,701 cases, 26,269 decisions, none
failed or abstained. Task Avg 34.17 (choice 47.2, yes/no 37.1, score 18.3). This is the evaluator's task average, not a Borda rank or a leaderboard position.
Calibration
Computed on the 0.3 public suite with the method described by the Decision Index board (benchmarks weighted equally,
confidence = probability of the chosen option, 10 equal-width bins); ranges cover the plausible benchmark sets, because
the board does not publish which ones it uses.
Table with columns: metric, KnowLine-0.8B-Gen1| metric | KnowLine-0.8B-Gen1 |
|---|
| ECE (lower is better) | 0.008-0.012 |
| Brier score (lower is better) | 0.41-0.43 |
| Confidence ≥ 95% but wrong | 0.3% |
| Mean confidence / accuracy | 0.66-0.67 / 0.66-0.68 |
- On our held-out sets: with score questions read at an effective temperature of 1.0, ECE is 0.062; a
temperature refit on the released serving gives 1.16. The folded temperature was fitted with every question type
at T = 1.54.
- Recommendation: check calibration on your own data if your use depends on probability thresholds.
Disclosures
- Training data: 1,143,656 rows, the same mix as KnowLine-9B-Gen1: 873,134 rows of our earlier decision data,
241,781 further rows of the same sources, 16,824 rows that teach the model to ignore instructions planted in the state,
and 11,917 rows of paired-convention rule tasks. It includes public benchmark training splits and programmatically or
teacher-generated decision examples; about 32% of the rows are in the Decision Index request style.
The per-channel manifest is in
TRAINING_SOURCES.json.
- Decontamination: the complete file was screened with standard and strict decontamination against the Decision Index
public suite and our evaluation sets before training. This does not exclude exposure during the base model's
pretraining.
- Benchmarks in training: several public benchmarks of the Decision Index have training splits in our data, so part of
the public-suite score comes from benchmarks whose tasks were trained; the private tests may show a lower score.
Limitations
- Small model: a 0.8B model is well below our larger models on knowledge and reasoning-heavy questions (for example
C-Eval 56.3 and JevBench-hard 49.5).
- Planted instructions: with injection templates not seen in training, 4.2% (25 of 600) of answers moved
to the planted option (our target is at most 5%).
Put untrusted content in data fields of the state, not in the instructions, and keep it clearly delimited.
- Calibration on our sets: with score questions read at an effective temperature of 1.0, held-out ECE is 0.062.
- Images: no image training; image use is zero-shot.
- Thinking: use the included front end or pass
enable_thinking=False; with the chat template's default the model
would be prompted in thinking mode, which was not used in training.
- Long requests: limited by the model and serving context; the front end does not truncate a request.
- Not a chat assistant: it is a structured decision readout model.
Files and license
The weights and code are released under Apache 2.0. SHA256SUMS covers every file in this repository. The Qwen3.5-0.8B
base model remains subject to its own license and terms.
Citation
@misc{knowline08bgen1, title = {KnowLine-0.8B-Gen1}, author = {PelaAI}, year = {2026}, howpublished = {Hugging Face model repository}}