SanSi
Quadrant scores
See the full quadrantScored with the public quadrant rubric (maturity × capability; bubble = adoption). Revise as evidence lands.
- Maturity4.6/10
Apache-2.0 LoRA and per-loop readouts on frozen Ouro-1.4B and Ouro-2.6B. Card, GitHub decide() and paper. No package, /v1/systemone server, third-party integration or SLA.
- Capability4.7/10
Choice only: 2–26 letter options, not score or boolean. CE plus Brier every loop; author ECE 0.078. No millisecond latency. 75.8% is the three-seed mean; this checkpoint is 75.2%.
- Adoption1/100
HF on 12 Oct: SanSi-2.6B has 2 likes and 26 downloads; the 1.4B adapter has 1 like and 17. No third-party integration or reported production use.
Vendor claims
- On 10,027 test items, mean of three seeds after loop 8: SanSi-2.6B 75.8% (in-distribution 88.4, near 74.4, far 71.6), ECE 0.078. The released seed-0 checkpoint is 75.2%, not 75.8%.[Vendor claim — not independently verified]
- SanSi on Ouro-1.4B reaches 72.0% after eight loops (ECE 0.093) at 7.7× the GPU time of one Ouro-1.4B loop. Four loops of the 2.6B reach 75.6%.[Vendor claim — not independently verified]
Read this first
- Choice only. One question, 2 to 26 options, read as letters A–Z. There is no first-class score or yes/no type, and no
/v1/systemoneserver.- 75.8% is the authors’ three-seed mean. The checkpoint in this repo (seed 0) scores 75.2% on the same 10,027 items. In-distribution items, drawn from the training sources, score 88.4%; far transfer, from sources never trained on, scores 71.6%.
- The backbone stays frozen. You download Ouro at the pinned revision. What this repo trains is a rank-64 LoRA plus a small readout per loop.
What it is
SanSi (Shuyu Gan, Young-Jun Lee, Dongyeop Kang; Minnesota NLP) turns a pretrained looped language model into a typed decision model. Ouro applies one shared stack of layers several times. SanSi reads option probabilities after every loop, so one forward pass yields a decision at every budget from one loop to eight. No text is generated.
| Adapter | Backbone | Trained parameters | Accuracy after loop 8 (3-seed mean) |
|---|---|---|---|
| SanSi | Ouro-1.4B | 60.8M | 72.0% |
| SanSi-2.6B | Ouro-2.6B | 121.4M | 75.8% |
Both adapters are Apache-2.0, released 8 October 2026. Loading is sansi.hub.load / decide from the GitHub repo, on GPU, backbone in bfloat16. The prompt is fixed: state, then Question:, then Options: (A) …, then Answer:. decide(..., loops=4) stops at four loops.
The loss at every loop is cross-entropy plus Brier score against the item’s target distribution. Items the state cannot answer were trained toward the uniform distribution. The paper treats a hard answer as committed when the top probability reaches (1 + 1/K) / 2.
Author’s comparison
Same data and recipe, except the Kev-4B row, which uses Kev’s code on this data. Cost is GPU time for one pass over the test set, with one loop of Ouro-1.4B as 1. All figures are the authors’.
| Model | Params | Loops | Cost | All | In-dist. | Near | Far | ECE |
|---|---|---|---|---|---|---|---|---|
| Qwen3.5-4B | 4.2B | 1 | 2.4 | 73.8 | 88.5 | 68.9 | 70.1 | 0.113 |
| Kev-4B (their data) | 4.2B | 1 | 2.1 | 74.3 | 88.6 | 70.9 | 70.3 | 0.119 |
| SanSi 1.4B | 1.4B | 8 | 7.7 | 72.0 | 86.6 | 67.7 | 68.0 | 0.093 |
| SanSi-2.6B | 2.7B | 8 | 14.8 | 75.8 | 88.4 | 74.4 | 71.6 | 0.078 |
Eight loops of the 1.4B model cost 7.7× one loop and land 13.4 points above the one-loop Ouro-1.4B row (58.6%). Running more than eight loops lowers accuracy. The test-set standard deviation across the three seeds is 0.6 points. English only.
Score working (12 Oct 2026, scored on SanSi-2.6B)
- Maturity 4.6 = availability 8 × 0.30 + docs 7 × 0.25 + integrations 1 × 0.25 + support 1 × 0.20 = 2.40 + 1.75 + 0.25 + 0.20.
- Capability 4.7 = types 3 × 0.30 + calibration 7 × 0.25 + latency 4 × 0.25 + accuracy 5 × 0.20 = 0.90 + 1.75 + 1.00 + 1.00 = 4.65 → 4.7. Types are 3 because the interface is choice only. Latency is 4 because the card publishes relative GPU cost, not a millisecond p50. Accuracy is 5 because the suite is the authors’.
- Adoption 1 = engagement 2 × 0.35 + ecosystem 1 × 0.35 + production 0 × 0.30 = 0.70 + 0.35 = 1.05 → 1.
