StandardOne-35B-SH / README.md
MyeongHoJeong's picture
Standard One 35B SH v1
1421d7e verified
|
Raw History Blame Contribute Delete
5.22 kB
---
base_model: Qwen/Qwen3.6-35B-A3B
library_name: transformers
license: apache-2.0
pipeline_tag: text-classification
language:
- en
tags:
- qwen3_5_moe
- decision-model
- typed-decisions
- schema-head
- jev
- calibration
- decode-free
---
# Standard One 35B SH
**Version:** v1
**Standard One 35B SH** is Qwen3.6-35B-A3B, a mixture-of-experts model with about 3B active parameters per token,
fine-tuned with a **joint schema head** (SH). It reads the scenario once and scores every option of every question in a
single forward pass, then returns probabilities through the `POST /v1/systemone` contract used by the other Standard One
models. It does not generate text.
| | |
|---|---|
| Backbone | Qwen3.6-35B-A3B (`qwen3_5_moe`, 40 layers, 256 experts with 8 active per token), fine-tuned for the head and merged; weights in this repository (bfloat16, about 70 GB) |
| Head | joint schema head, 68.5M parameters, float32 (`head/`), reading the final layer and layer 29 |
| Question types | `choice` (2–255 options), `noul` (yes/no), `score` (ordinal scale) |
| Context | trained on requests up to 32,768 tokens |
| Prompt format | the Qwen chat template with thinking disabled and no system message (see "Prompt format") |
| Smaller models | [StandardOne-8B-SH](https://huggingface.co/StandardThinking/StandardOne-8B-SH) · [StandardOne-3B-SH](https://huggingface.co/StandardThinking/StandardOne-3B-SH) |
| License | Apache-2.0 |
## Why a schema head
A generative decision model reads one answer token per option, so every question in a request needs its own pass and
the option count is limited by the label alphabet. The schema head attends over the hidden states of the whole request
(the final layer and one intermediate layer), places every question and option in one joint graph, and returns a
calibrated distribution for each question at once:
- **Many options.** Intent and routing questions with 100–255 options.
- **Many questions per scenario.** All questions of a request share one pass over the scenario.
- **Long scenarios.** Decisions buried in long documents.
## Results
| Benchmark | 3B SH v4 | 8B SH v4 | **35B SH v1 (this release)** |
|---|---:|---:|---:|
| Decision Index 0.3, public index | 58.08 | 57.40 | **66.26** |
| Areas: Knowledge / Language / Retrieval / Tools / Arts | 36.3 / 57.5 / 67.0 / 85.7 / 47.5 | 36.9 / 57.9 / 66.4 / 84.0 / 42.5 | 52.1 / 66.0 / 72.5 / 86.1 / 54.6 |
| Decision hidden in a long document (our set, 150 items) | 84.67 | 88.00 | 93.33 |
| JevBench public: easy / original / hard (48 / 72 / 111 items) | 100.00 / 95.83 / 63.96 | 100.00 / 94.44 / 75.68 | 100.00 / 97.22 / 78.38 |
Decision Index rows are chance-corrected skill scores (0 = random guessing, 100 = perfect) from our own runs of the public
0.3 suite with the official kit, all 140,178 scoreable requests. The other rows are accuracy in percent, measured with the
same engine on identical items. On the JevBench hard tier the model's mean confidence is 80.0 for 78.4 correct (expected
calibration error 0.024).
Largest gains over the 8B SH (Decision Index skill points): GSM8K +41.7, BPoMP +35.1, CRUXEval +34.2, PhishNChips +32.4,
GPQA Diamond +22.4, iSarcasmEval +21.4, MMLU-Pro +19.7. Intent classification, contracts and API calls stay within
1.3 points of the 8B (CLINC150, BANKING77, ContractNLI, API-Bank); RAGTruth (−2.1) and VAST (−2.2) are slightly lower.
## Prompt format
Requests are rendered with the included `chat_template.jinja`, thinking disabled (`enable_thinking=False`) and no system
message. The reference server in `code/` does this by default. Do not add a system prompt or enable thinking: the head
was trained without them, and either changes the hidden states it reads.
## Quick start
```bash
python -m pip install --upgrade huggingface_hub
hf download StandardThinking/StandardOne-35B-SH --local-dir StandardOne-35B-SH
python -m pip install -r StandardOne-35B-SH/code/requirements.txt
python StandardOne-35B-SH/code/serve_head.py \
--snapshot StandardOne-35B-SH --head StandardOne-35B-SH/head --port 30171
```
```bash
curl -s localhost:30171/v1/systemone -H 'content-type: application/json' -d '{
"state": {"message": "Please close my card, I lost it yesterday."},
"questions": {
"intent": {"type": "choice", "instructions": "What does the customer want?",
"criteria": {"cancel": "close the card", "limit": "change the limit", "other": null}},
"urgent": {"type": "noul", "instructions": "The request is urgent."},
"mood": {"type": "score", "instructions": "How upset is the customer?", "criteria": ["calm", "annoyed", "angry"]}
}
}'
```
The reference server is plain PyTorch: backbone in bfloat16, head in float32, one GPU with at least 96 GB of memory. It
batches concurrent requests (`--max-batch-requests`, `--max-batch-tokens`) and binds `127.0.0.1` by default.
## Limitations
- Decision Index numbers are self-scored with the official kit, not a leaderboard entry.
- Evaluated on text requests; image inputs are not covered by these results.
- Requests longer than 32,768 tokens are outside the trained range.
## License
Apache-2.0 (weights and head). The base model Qwen3.6-35B-A3B is Apache-2.0.