Text Generation
Transformers
Safetensors
mistral3
image-text-to-text
decision-model
typed-decisions
jev
jevbench
calibration
decode-free
multilingual
vision-language
conversational
Instructions to use StandardThinking/StandardOne-8B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use StandardThinking/StandardOne-8B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="StandardThinking/StandardOne-8B") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("StandardThinking/StandardOne-8B") model = AutoModelForMultimodalLM.from_pretrained("StandardThinking/StandardOne-8B", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use StandardThinking/StandardOne-8B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "StandardThinking/StandardOne-8B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "StandardThinking/StandardOne-8B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/StandardThinking/StandardOne-8B
- SGLang
How to use StandardThinking/StandardOne-8B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "StandardThinking/StandardOne-8B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "StandardThinking/StandardOne-8B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "StandardThinking/StandardOne-8B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "StandardThinking/StandardOne-8B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use StandardThinking/StandardOne-8B with Docker Model Runner:
docker model run hf.co/StandardThinking/StandardOne-8B
Update model card
Browse files- QUICKSTART.md +6 -7
- README.md +58 -38
- docs/public-classification-suites.md +1 -1
QUICKSTART.md
CHANGED
|
@@ -2,8 +2,8 @@
|
|
| 2 |
|
| 3 |
Run these commands from one working directory on a CUDA-capable Linux host with Git, Git LFS, `uv`,
|
| 4 |
and an NVIDIA GPU. Keep the engine and adapter running in separate terminals. The 8B and 3B
|
| 5 |
-
examples use the same ports, so stop one pair before starting the other. The
|
| 6 |
-
|
| 7 |
|
| 8 |
## Standard One 8B
|
| 9 |
|
|
@@ -26,7 +26,7 @@ uv pip install --python .venv-sglang/bin/python 'sglang==0.5.20'
|
|
| 26 |
CUDA_VISIBLE_DEVICES=0 SGLANG_VLM_CACHE_SIZE_MB=0 .venv-sglang/bin/python -m sglang.launch_server \
|
| 27 |
--model-path ./StandardOne-8B --served-model-name standard-one-8b \
|
| 28 |
--host 127.0.0.1 --port 30000 --tp-size 1 --model-impl sglang --dtype bfloat16 \
|
| 29 |
-
--context-length
|
| 30 |
--chunked-prefill-size -1 --disable-radix-cache --mm-preprocess-cache-size-mb 0 \
|
| 31 |
--model-config-parser hf --load-format safetensors
|
| 32 |
```
|
|
@@ -45,8 +45,7 @@ uv pip install --python .venv-native/bin/python -e './StandardOne-8B/server[nati
|
|
| 45 |
--host 0.0.0.0 --port 30120 --max-concurrency 1 \
|
| 46 |
--tokenizer-model mistralai/Ministral-3-8B-Instruct-2512-BF16 \
|
| 47 |
--tokenizer-revision f6fae9795746f63c9be8344932f01275f3c63734 \
|
| 48 |
-
--prompt-wording
|
| 49 |
-
--temperature-by-type choice=0.85,noul=0.85,score=0.70
|
| 50 |
```
|
| 51 |
|
| 52 |
6. Check health and models.
|
|
@@ -103,7 +102,7 @@ uv pip install --python .venv-native/bin/python -e './StandardOne-8B/server[nati
|
|
| 103 |
CUDA_VISIBLE_DEVICES=0 SGLANG_VLM_CACHE_SIZE_MB=0 .venv-sglang/bin/python -m sglang.launch_server \
|
| 104 |
--model-path ./StandardOne-3B --served-model-name standard-one-3b \
|
| 105 |
--host 127.0.0.1 --port 30000 --tp-size 1 --model-impl sglang --dtype bfloat16 \
|
| 106 |
-
--context-length
|
| 107 |
--chunked-prefill-size -1 --disable-radix-cache --mm-preprocess-cache-size-mb 0 \
|
| 108 |
--model-config-parser hf --load-format safetensors
|
| 109 |
```
|
|
@@ -115,7 +114,7 @@ CUDA_VISIBLE_DEVICES=0 SGLANG_VLM_CACHE_SIZE_MB=0 .venv-sglang/bin/python -m sgl
|
|
| 115 |
--host 0.0.0.0 --port 30120 --max-concurrency 1 \
|
| 116 |
--tokenizer-model mistralai/Ministral-3-3B-Instruct-2512-BF16 \
|
| 117 |
--tokenizer-revision b6d637bef2393152b3da2b2fde72eecdee30557e \
|
| 118 |
-
--prompt-wording
|
| 119 |
```
|
| 120 |
|
| 121 |
5. Check health, then send a request or run the smoke script as in 8B steps 6-8, with
|
|
|
|
| 2 |
|
| 3 |
Run these commands from one working directory on a CUDA-capable Linux host with Git, Git LFS, `uv`,
|
| 4 |
and an NVIDIA GPU. Keep the engine and adapter running in separate terminals. The 8B and 3B
|
| 5 |
+
examples use the same ports, so stop one pair before starting the other. The model card's
|
| 6 |
+
latency figures were measured on one H200; other GPUs may need different memory settings.
|
| 7 |
|
| 8 |
## Standard One 8B
|
| 9 |
|
|
|
|
| 26 |
CUDA_VISIBLE_DEVICES=0 SGLANG_VLM_CACHE_SIZE_MB=0 .venv-sglang/bin/python -m sglang.launch_server \
|
| 27 |
--model-path ./StandardOne-8B --served-model-name standard-one-8b \
|
| 28 |
--host 127.0.0.1 --port 30000 --tp-size 1 --model-impl sglang --dtype bfloat16 \
|
| 29 |
+
--context-length 32768 --max-running-requests 32 --mem-fraction-static 0.8 \
|
| 30 |
--chunked-prefill-size -1 --disable-radix-cache --mm-preprocess-cache-size-mb 0 \
|
| 31 |
--model-config-parser hf --load-format safetensors
|
| 32 |
```
|
|
|
|
| 45 |
--host 0.0.0.0 --port 30120 --max-concurrency 1 \
|
| 46 |
--tokenizer-model mistralai/Ministral-3-8B-Instruct-2512-BF16 \
|
| 47 |
--tokenizer-revision f6fae9795746f63c9be8344932f01275f3c63734 \
|
| 48 |
+
--prompt-wording served --label-scheme upper --default-temperature 1.65
|
|
|
|
| 49 |
```
|
| 50 |
|
| 51 |
6. Check health and models.
|
|
|
|
| 102 |
CUDA_VISIBLE_DEVICES=0 SGLANG_VLM_CACHE_SIZE_MB=0 .venv-sglang/bin/python -m sglang.launch_server \
|
| 103 |
--model-path ./StandardOne-3B --served-model-name standard-one-3b \
|
| 104 |
--host 127.0.0.1 --port 30000 --tp-size 1 --model-impl sglang --dtype bfloat16 \
|
| 105 |
+
--context-length 32768 --max-running-requests 32 --mem-fraction-static 0.8 \
|
| 106 |
--chunked-prefill-size -1 --disable-radix-cache --mm-preprocess-cache-size-mb 0 \
|
| 107 |
--model-config-parser hf --load-format safetensors
|
| 108 |
```
|
|
|
|
| 114 |
--host 0.0.0.0 --port 30120 --max-concurrency 1 \
|
| 115 |
--tokenizer-model mistralai/Ministral-3-3B-Instruct-2512-BF16 \
|
| 116 |
--tokenizer-revision b6d637bef2393152b3da2b2fde72eecdee30557e \
|
| 117 |
+
--prompt-wording served --label-scheme upper --default-temperature 1.65
|
| 118 |
```
|
| 119 |
|
| 120 |
5. Check health, then send a request or run the smoke script as in 8B steps 6-8, with
|
README.md
CHANGED
|
@@ -27,10 +27,10 @@ tags:
|
|
| 27 |
|
| 28 |
# Standard One 8B
|
| 29 |
|
| 30 |
-
> **Updated weights (v2, 2026-
|
| 31 |
-
> `revision="v2"`. Earlier versions stay available under the tags `v1`
|
| 32 |
|
| 33 |
-
**Version:** v2
|
| 34 |
|
| 35 |
Standard One scores a bounded set of answers for a supplied scenario and returns probabilities through
|
| 36 |
`POST /v1/systemone`. It does not generate free-form response text. This repository contains the merged
|
|
@@ -49,18 +49,17 @@ for the measurement conditions and limitations.
|
|
| 49 |
|
| 50 |

|
| 51 |
|
| 52 |
-
*
|
| 53 |
-
served versus offline conditions; measured 24–26 September 2026.*
|
| 54 |
|
| 55 |
## At a glance
|
| 56 |
|
| 57 |
- Send a state and a bounded rubric to receive probabilities for the supplied labels:
|
| 58 |
`choice` selects among labeled options, `noul` is yes/no, and `score` uses an ordinal scale.
|
| 59 |
The endpoint scores the labels in one forward pass without decoding answer text.
|
| 60 |
-
- In the same-run **offline** comparison with its untuned base, 8B improves on four of six suites and declines on public easy (2.08 percentage points) and public hard (4.50 percentage points). These are not
|
| 61 |
served-endpoint results.
|
| 62 |
-
- Probabilities are temperature-scaled
|
| 63 |
-
|
| 64 |
- The shared training mixture covers English, Japanese, Chinese, Spanish, French, German,
|
| 65 |
Portuguese, Russian, and a smaller Korean share. See the nine-language MASSIVE intent results in
|
| 66 |
[`docs/public-classification-suites.md`](docs/public-classification-suites.md); performance varies
|
|
@@ -90,7 +89,7 @@ Engine (stock SGLang 0.5.20):
|
|
| 90 |
CUDA_VISIBLE_DEVICES=0 SGLANG_VLM_CACHE_SIZE_MB=0 .venv-sglang/bin/python -m sglang.launch_server \
|
| 91 |
--model-path ./StandardOne-8B --served-model-name standard-one-8b \
|
| 92 |
--host 127.0.0.1 --port 30000 --tp-size 1 --model-impl sglang --dtype bfloat16 \
|
| 93 |
-
--context-length
|
| 94 |
--chunked-prefill-size -1 --disable-radix-cache --mm-preprocess-cache-size-mb 0 \
|
| 95 |
--model-config-parser hf --load-format safetensors
|
| 96 |
```
|
|
@@ -102,23 +101,22 @@ Adapter (`jev-adapter`, ships as `server/` in this repository):
|
|
| 102 |
--host 0.0.0.0 --port 30120 --max-concurrency 1 \
|
| 103 |
--tokenizer-model mistralai/Ministral-3-8B-Instruct-2512-BF16 \
|
| 104 |
--tokenizer-revision f6fae9795746f63c9be8344932f01275f3c63734 \
|
| 105 |
-
--prompt-wording
|
| 106 |
-
--temperature-by-type choice=0.85,noul=0.85,score=0.70
|
| 107 |
```
|
| 108 |
|
| 109 |
### Prompt wording
|
| 110 |
|
| 111 |
-
`jev-adapter` can phrase a request in two ways.
|
| 112 |
-
|
| 113 |
-
|
| 114 |
|
| 115 |
| `--prompt-wording` | What the prompt looks like | Temperatures (default; choice / noul / score) | Mean accuracy, 10 suites |
|
| 116 |
|---|---|---|---:|
|
| 117 |
-
| `native`
|
| 118 |
-
| `served` | `Context:` / `Question:` / `Options:` headers, options as `A: name: description` | 0.80; 0.80 / 0.90 / 0.95 | 76.4 % |
|
| 119 |
|
| 120 |
The 10 suites: judge proxy, hard proxy, stated-distribution probability, realistic transfer set, MuSiQue (multiple choice), SQuAD 2.0 unanswerable questions, ContractNLI, PAWS-X (English), a held-out hard decision set and a consistency set. None of them is a JevBench tier, and no JevBench item was used to choose the wording or the temperatures.
|
| 121 |
-
To use `
|
| 122 |
|
| 123 |
Try it:
|
| 124 |
|
|
@@ -136,28 +134,46 @@ curl -s http://127.0.0.1:30120/v1/systemone -X POST -H 'content-type: applicatio
|
|
| 136 |
}'
|
| 137 |
```
|
| 138 |
|
| 139 |
-
Response
|
| 140 |
|
| 141 |
```json
|
| 142 |
{
|
| 143 |
"model": "standard-one-8b",
|
| 144 |
-
"answers": {"decision": {"type": "noul", "noul": 0.
|
| 145 |
-
"usage": {"input_tokens":
|
| 146 |
"metadata": {
|
| 147 |
"confidence_method": "1 - normalized_entropy",
|
| 148 |
-
"temperature":
|
| 149 |
-
"temperature_by_type": {"choice": 0.85, "noul": 0.85, "score": 0.70},
|
| 150 |
"evaluations": 1,
|
| 151 |
-
"
|
|
|
|
| 152 |
}
|
| 153 |
}
|
| 154 |
```
|
| 155 |
|
| 156 |
More (client command, 3B variant, request format): see [QUICKSTART.md](QUICKSTART.md).
|
| 157 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 158 |
## Benchmarks
|
| 159 |
|
| 160 |
-
**Served endpoint results (the release configuration).** Merged BF16 weights through SGLang 0.5.20
|
| 161 |
and `jev-adapter`, native wording, no system prompt, one option order, per-answer-type temperatures (choice 0.85, noul 0.85, score 0.70). The wording and the temperatures were chosen on non-JevBench data. Jev 1.13 was
|
| 162 |
measured on the same items through its hosted endpoint; its probabilities are raw, with no
|
| 163 |
temperature applied. These are our measurements, not official sealed-set JevBench scores.
|
|
@@ -211,14 +227,14 @@ A JevBench v1.4.1 run has been requested; the sealed-set result is not yet avail
|
|
| 211 |
## Model details
|
| 212 |
|
| 213 |
- **Base model:** `mistralai/Ministral-3-8B-Instruct-2512-BF16`, revision `f6fae9795746f63c9be8344932f01275f3c63734` (Apache-2.0).
|
| 214 |
-
- **Adapter:** LoRA r=16, α=32, dropout 0, on `q_proj k_proj v_proj o_proj gate_proj up_proj down_proj` of the language-model projections only (vision tower and multimodal projector excluded), **44,564,480** trainable parameters, PEFT 0.21.0. Adapter file `adapter_model.safetensors`, 214,559,872 bytes, sha256 `
|
| 215 |
-
- **Merged BF16 checkpoint:** merging the adapter into the base changed **238 tensors** (293 unchanged), none outside the language-model projections, max absolute weight change **0.
|
| 216 |
-
- **Serving details:**
|
| 217 |
|
| 218 |
| Path | Contents |
|
| 219 |
|---|---|
|
| 220 |
-
| `*.safetensors` | Merged BF16 checkpoint (base + LoRA) |
|
| 221 |
-
| `config.json`, `tokenizer
|
| 222 |
| `server/` | `jev-adapter` source (`POST /v1/systemone`) |
|
| 223 |
| `docs/`, `QUICKSTART.md` | Benchmarks, figures, quick-start guide |
|
| 224 |
| `SHA256SUMS`, `release-manifest.json`, `MERGE_REPORT.json`, `evidence/`, `LICENSE`, `README.md` | File hashes, training manifest, merge report, supporting artifacts, licence, this card |
|
|
@@ -271,26 +287,30 @@ datasets, distractor options are generated by code):
|
|
| 271 |
| Jigsaw Toxic Comment Classification (mirror of the Kaggle data) | CC0 (data); comment text CC BY-SA 3.0 (Wikipedia) |
|
| 272 |
| Measuring Hate Speech | CC BY 4.0 |
|
| 273 |
| Image safety classes | MIT |
|
|
|
|
|
|
|
|
|
|
| 274 |
|
| 275 |
Upstream ids and the cohort each one feeds: [`docs/BENCHMARKS.md`](docs/BENCHMARKS.md#training-data-provenance).
|
| 276 |
|
| 277 |
-
An exact-text overlap audit against the public JevBench tiers found 0 exact scenario matches and 181 exact instruction matches — rows in two adequacy-rubric cohorts whose entire instruction field, a generic 58-character adequacy question, is byte-identical to one public hard-tier instruction (0.03 % of
|
| 278 |
|
| 279 |
## Limitations
|
| 280 |
|
| 281 |
-
- **Public hard tier:** the served 8B score is **
|
| 282 |
-
separate offline base comparison, Standard One 8B scores **55.86 %**, below the untuned base's
|
| 283 |
**60.36 %**.
|
| 284 |
-
- Served probabilities are temperature-scaled by
|
| 285 |
-
materially different question distribution, re-fitting that
|
| 286 |
-
assuming
|
| 287 |
-
-
|
|
|
|
| 288 |
- The sealed JevBench set has not been measured for this model.
|
| 289 |
- Served and offline probabilities can differ on identical prompts (mean total-variation ≈0.06 on the
|
| 290 |
-
hard tier); served numbers are treated as authoritative.
|
| 291 |
- Korean is a small share of multilingual training relative to the other seven languages.
|
| 292 |
- The card reports text benchmarks; it does not establish decision accuracy on image inputs.
|
| 293 |
-
- Ten-way support triage (36 %) and RAG passage relevance (59 %)
|
| 294 |
for those.
|
| 295 |
|
| 296 |
## Licence
|
|
|
|
| 27 |
|
| 28 |
# Standard One 8B
|
| 29 |
|
| 30 |
+
> **Updated weights (v2.2, 2026-10-04).** If you downloaded this model before, download it again or pin
|
| 31 |
+
> `revision="v2.2"`. Earlier versions stay available under the tags `v1`, `v1.1` and `v2`.
|
| 32 |
|
| 33 |
+
**Version:** v2.2
|
| 34 |
|
| 35 |
Standard One scores a bounded set of answers for a supplied scenario and returns probabilities through
|
| 36 |
`POST /v1/systemone`. It does not generate free-form response text. This repository contains the merged
|
|
|
|
| 49 |
|
| 50 |

|
| 51 |
|
| 52 |
+
*Historical v2 chart: the figure combines results from different measurement paths, measured 24–26 September 2026. See [Changes in v2.2](#changes-in-v22) for this version.*
|
|
|
|
| 53 |
|
| 54 |
## At a glance
|
| 55 |
|
| 56 |
- Send a state and a bounded rubric to receive probabilities for the supplied labels:
|
| 57 |
`choice` selects among labeled options, `noul` is yes/no, and `score` uses an ordinal scale.
|
| 58 |
The endpoint scores the labels in one forward pass without decoding answer text.
|
| 59 |
+
- In the same-run **offline** comparison with its untuned base (measured on v2), 8B improves on four of six suites and declines on public easy (2.08 percentage points) and public hard (4.50 percentage points). These are not
|
| 60 |
served-endpoint results.
|
| 61 |
+
- Probabilities are temperature-scaled; calibration (hard-tier ECE, distribution total-variation) was
|
| 62 |
+
checked on v2 — see Benchmarks below.
|
| 63 |
- The shared training mixture covers English, Japanese, Chinese, Spanish, French, German,
|
| 64 |
Portuguese, Russian, and a smaller Korean share. See the nine-language MASSIVE intent results in
|
| 65 |
[`docs/public-classification-suites.md`](docs/public-classification-suites.md); performance varies
|
|
|
|
| 89 |
CUDA_VISIBLE_DEVICES=0 SGLANG_VLM_CACHE_SIZE_MB=0 .venv-sglang/bin/python -m sglang.launch_server \
|
| 90 |
--model-path ./StandardOne-8B --served-model-name standard-one-8b \
|
| 91 |
--host 127.0.0.1 --port 30000 --tp-size 1 --model-impl sglang --dtype bfloat16 \
|
| 92 |
+
--context-length 32768 --max-running-requests 32 --mem-fraction-static 0.8 \
|
| 93 |
--chunked-prefill-size -1 --disable-radix-cache --mm-preprocess-cache-size-mb 0 \
|
| 94 |
--model-config-parser hf --load-format safetensors
|
| 95 |
```
|
|
|
|
| 101 |
--host 0.0.0.0 --port 30120 --max-concurrency 1 \
|
| 102 |
--tokenizer-model mistralai/Ministral-3-8B-Instruct-2512-BF16 \
|
| 103 |
--tokenizer-revision f6fae9795746f63c9be8344932f01275f3c63734 \
|
| 104 |
+
--prompt-wording served --label-scheme upper --default-temperature 1.65
|
|
|
|
| 105 |
```
|
| 106 |
|
| 107 |
### Prompt wording
|
| 108 |
|
| 109 |
+
`jev-adapter` can phrase a request in two ways. `served` is the adapter's default and the wording used for the v2.2
|
| 110 |
+
measurements (`--default-temperature 1.65`, labels `A`–`Z`, then `AA`, `AB`, …); `native` accepts at most 26 options per question.
|
| 111 |
+
The table below is a v2 measurement on the same served endpoint (no system prompt), with temperatures fitted on v2.
|
| 112 |
|
| 113 |
| `--prompt-wording` | What the prompt looks like | Temperatures (default; choice / noul / score) | Mean accuracy, 10 suites |
|
| 114 |
|---|---|---|---:|
|
| 115 |
+
| `native` | `State:` / `Question:` / `Options:` headers, options as `A. name: description` | 0.85; 0.85 / 0.85 / 0.70 | 76.6 % |
|
| 116 |
+
| `served` (adapter default) | `Context:` / `Question:` / `Options:` headers, options as `A: name: description` | 0.80; 0.80 / 0.90 / 0.95 | 76.4 % |
|
| 117 |
|
| 118 |
The 10 suites: judge proxy, hard proxy, stated-distribution probability, realistic transfer set, MuSiQue (multiple choice), SQuAD 2.0 unanswerable questions, ContractNLI, PAWS-X (English), a held-out hard decision set and a consistency set. None of them is a JevBench tier, and no JevBench item was used to choose the wording or the temperatures.
|
| 119 |
+
To use `native` with its v2-fitted temperatures, pass `--prompt-wording native --native-system-prompt none --default-temperature 0.85 --temperature-by-type choice=0.85,noul=0.85,score=0.70`.
|
| 120 |
|
| 121 |
Try it:
|
| 122 |
|
|
|
|
| 134 |
}'
|
| 135 |
```
|
| 136 |
|
| 137 |
+
Response (measured on 4 October 2026 with these v2.2 weights and the `server/` adapter flags above, on one AMD MI350X; numbers rounded, `adapter_elapsed_ms` from a warm repeat). The receipt is missing, so the action is not permitted and the probability of `true` is low:
|
| 138 |
|
| 139 |
```json
|
| 140 |
{
|
| 141 |
"model": "standard-one-8b",
|
| 142 |
+
"answers": {"decision": {"type": "noul", "noul": 0.0572}},
|
| 143 |
+
"usage": {"input_tokens": 111, "output_tokens": 0},
|
| 144 |
"metadata": {
|
| 145 |
"confidence_method": "1 - normalized_entropy",
|
| 146 |
+
"temperature": 1.65,
|
|
|
|
| 147 |
"evaluations": 1,
|
| 148 |
+
"label_scheme": "upper",
|
| 149 |
+
"adapter_elapsed_ms": 22.6
|
| 150 |
}
|
| 151 |
}
|
| 152 |
```
|
| 153 |
|
| 154 |
More (client command, 3B variant, request format): see [QUICKSTART.md](QUICKSTART.md).
|
| 155 |
|
| 156 |
+
## Changes in v2.2
|
| 157 |
+
|
| 158 |
+
v2.2 continues training from v2.1 with additional decision data. Questions with more than 26 options now use the labels `A`–`Z`, then `AA`, `AB`, …; the adapter in `server/` uses this order by default (`--label-scheme upper`). Both versions were measured the same way: merged BF16 weights through SGLang 0.5.20 and `jev-adapter`, `served` wording, one option order, accuracy of the most probable answer; measured 1–3 October 2026.
|
| 159 |
+
|
| 160 |
+
| Suite | v2.1 | **v2.2** | Change (points) |
|
| 161 |
+
|---|---:|---:|---:|
|
| 162 |
+
| many-option questions, 53–151 options (18,000) | 69.77 % | **82.67 %** | +12.90 |
|
| 163 |
+
| the same question set, at most 26 options (750) | 83.87 % | **88.13 %** | +4.26 |
|
| 164 |
+
| long-document questions (150) | 23.33 % | **40.00 %** | +16.67 |
|
| 165 |
+
| held-out decision set (600) | 78.33 % | **82.50 %** | +4.17 |
|
| 166 |
+
| hard proxy (600) | 51.83 % | **53.50 %** | +1.67 |
|
| 167 |
+
| realistic transfer set (600) | 90.50 % | **91.50 %** | +1.00 |
|
| 168 |
+
| JevBench public easy (48) | 100.00 % | **100.00 %** | 0.00 |
|
| 169 |
+
| JevBench public standard (72) | 98.61 % | **98.61 %** | 0.00 |
|
| 170 |
+
| JevBench public hard (111) | 58.56 % | **56.76 %** | −1.80 |
|
| 171 |
+
|
| 172 |
+
Decision Index 0.2.1 (balanced skill): **41.14**, measured through the adapter in `server/` (`served` wording, default temperature 1.65). The tables below are the v2 measurements with `native` wording and are not directly comparable with the table above.
|
| 173 |
+
|
| 174 |
## Benchmarks
|
| 175 |
|
| 176 |
+
**Served endpoint results (the v2 release configuration).** Merged BF16 weights through SGLang 0.5.20
|
| 177 |
and `jev-adapter`, native wording, no system prompt, one option order, per-answer-type temperatures (choice 0.85, noul 0.85, score 0.70). The wording and the temperatures were chosen on non-JevBench data. Jev 1.13 was
|
| 178 |
measured on the same items through its hosted endpoint; its probabilities are raw, with no
|
| 179 |
temperature applied. These are our measurements, not official sealed-set JevBench scores.
|
|
|
|
| 227 |
## Model details
|
| 228 |
|
| 229 |
- **Base model:** `mistralai/Ministral-3-8B-Instruct-2512-BF16`, revision `f6fae9795746f63c9be8344932f01275f3c63734` (Apache-2.0).
|
| 230 |
+
- **Adapter:** LoRA r=16, α=32, dropout 0, on `q_proj k_proj v_proj o_proj gate_proj up_proj down_proj` of the language-model projections only (vision tower and multimodal projector excluded), **44,564,480** trainable parameters, PEFT 0.21.0. Adapter file `adapter_model.safetensors`, 214,559,872 bytes, sha256 `123ddd039f4053e82e8ca18d7c247691dc49cbcabb6e1b7d98077bb7c5c7446e`.
|
| 231 |
+
- **Merged BF16 checkpoint:** merging the adapter into the base changed **238 tensors** (293 unchanged), none outside the language-model projections, max absolute weight change **0.00211**.
|
| 232 |
+
- **Serving details:** `served` wording (the adapter default), no system prompt, `--default-temperature 1.65` for every answer type (the value used for the v2.2 measurements; the adapter itself defaults to 1.0; no temperature was refit for v2.2), labels `A`–`Z`, then `AA`, `AB`, … (`--label-scheme upper`, the default; up to 255 options); served model name `standard-one-8b` behind stock SGLang 0.5.20 via `jev-adapter` (`POST /v1/systemone`); single caller-supplied option order, no rotation ensemble; 32,768-token context.
|
| 233 |
|
| 234 |
| Path | Contents |
|
| 235 |
|---|---|
|
| 236 |
+
| `*.safetensors`, `model.safetensors.index.json` | Merged BF16 checkpoint (base + LoRA) |
|
| 237 |
+
| `config.json`, `generation_config.json`, `params.json`, `processor_config.json`, `special_tokens_map.json`, `tekken.json`, `tokenizer.json`, `tokenizer_config.json`, `chat_template.jinja`, `SYSTEM_PROMPT.txt` | Base model's non-weight files |
|
| 238 |
| `server/` | `jev-adapter` source (`POST /v1/systemone`) |
|
| 239 |
| `docs/`, `QUICKSTART.md` | Benchmarks, figures, quick-start guide |
|
| 240 |
| `SHA256SUMS`, `release-manifest.json`, `MERGE_REPORT.json`, `evidence/`, `LICENSE`, `README.md` | File hashes, training manifest, merge report, supporting artifacts, licence, this card |
|
|
|
|
| 287 |
| Jigsaw Toxic Comment Classification (mirror of the Kaggle data) | CC0 (data); comment text CC BY-SA 3.0 (Wikipedia) |
|
| 288 |
| Measuring Hate Speech | CC BY 4.0 |
|
| 289 |
| Image safety classes | MIT |
|
| 290 |
+
| WinoGrande | CC BY |
|
| 291 |
+
| Lichess puzzles and games | CC0 |
|
| 292 |
+
| ClinicalTrials.gov records | Public domain (U.S. Government work) |
|
| 293 |
|
| 294 |
Upstream ids and the cohort each one feeds: [`docs/BENCHMARKS.md`](docs/BENCHMARKS.md#training-data-provenance).
|
| 295 |
|
| 296 |
+
An exact-text overlap audit of the v2 training mixture against the public JevBench tiers found 0 exact scenario matches and 181 exact instruction matches — rows in two adequacy-rubric cohorts whose entire instruction field, a generic 58-character adequacy question, is byte-identical to one public hard-tier instruction (0.03 % of that 520,754-row mixture). These rows are kept and disclosed here rather than regenerated, since the overlap is limited to one rubric question's wording and never touches a scenario or an answer.
|
| 297 |
|
| 298 |
## Limitations
|
| 299 |
|
| 300 |
+
- **Public hard tier:** the served v2.2 8B score is **56.76 %**, versus **72.07 %** for Jev 1.13. In the
|
| 301 |
+
separate offline base comparison (measured on v2), Standard One 8B scores **55.86 %**, below the untuned base's
|
| 302 |
**60.36 %**.
|
| 303 |
+
- Served probabilities are temperature-scaled by a fixed default (1.65 in the commands above, not refit for
|
| 304 |
+
v2.2); if you apply this model to a materially different question distribution, re-fitting that
|
| 305 |
+
temperature is advisable rather than assuming this value transfers.
|
| 306 |
+
- Up to 255 options per question with `served` wording (labels `A`–`Z`, then `AA`, `AB`, …, each one token);
|
| 307 |
+
v2.2 was evaluated with up to 151 options. `native` wording accepts at most 26.
|
| 308 |
- The sealed JevBench set has not been measured for this model.
|
| 309 |
- Served and offline probabilities can differ on identical prompts (mean total-variation ≈0.06 on the
|
| 310 |
+
hard tier, measured on v2); served numbers are treated as authoritative.
|
| 311 |
- Korean is a small share of multilingual training relative to the other seven languages.
|
| 312 |
- The card reports text benchmarks; it does not establish decision accuracy on image inputs.
|
| 313 |
+
- Ten-way support triage (36 %) and RAG passage relevance (59 %) were weak zero-shot on an earlier version; fine-tune
|
| 314 |
for those.
|
| 315 |
|
| 316 |
## Licence
|
docs/public-classification-suites.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
|
| 3 |
> **Note.** The Standard One 8B v2 figures for these suites are on its model card; the tables below are still those of v1.1.
|
| 4 |
|
| 5 |
-
Measured 25 September 2026 through the served endpoints (merged BF16, SGLang 0.5.20, jev-adapter, native wording, no system prompt, single option order). Each suite: 400 cases sampled with seed 13 from the public test split, one request per case; ECE (10-bin, top label) uses the served temperature (8B T=1.65, 3B T=1.55). Accuracy and macro-F1 are argmax metrics and do not depend on the temperature. banking77 (77 labels)
|
| 6 |
|
| 7 |
## Public datasets
|
| 8 |
|
|
|
|
| 2 |
|
| 3 |
> **Note.** The Standard One 8B v2 figures for these suites are on its model card; the tables below are still those of v1.1.
|
| 4 |
|
| 5 |
+
Measured 25 September 2026 through the served endpoints (merged BF16, SGLang 0.5.20, jev-adapter, native wording, no system prompt, single option order). Each suite: 400 cases sampled with seed 13 from the public test split, one request per case; ECE (10-bin, top label) uses the served temperature (8B T=1.65, 3B T=1.55). Accuracy and macro-F1 are argmax metrics and do not depend on the temperature. banking77 (77 labels) was not runnable: the endpoint then accepted at most 26 options per question.
|
| 6 |
|
| 7 |
## Public datasets
|
| 8 |
|