Instructions to use bigai/GS1-9B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use bigai/GS1-9B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("feature-extraction", model="bigai/GS1-9B", trust_remote_code=True)# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("bigai/GS1-9B", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
# pip install -U transformers accelerate
# Load model directly
from transformers import AutoModel
model = AutoModel.from_pretrained("bigai/GS1-9B", trust_remote_code=True, device_map="auto")GS1-9B
Fast, Faithful, Frontier System One Intelligence.
Code · Model · Documentation · Playground
GS1 is a family of open-source decision models developed by BIGAI (Beijing Institute for General Artificial Intelligence). It computes native probability distributions over runtime-defined candidates for agent routing, verification, extraction and control.
GS1 Highlights
- Fast - Native Runtime Decision Head.
- Produce Choice, Noul and Score distributions directly, with zero generated output tokens.
- A native multi-head cross-attention decision head queries state evidence using question and candidate representations.
- Within the GS1 family, CUDA Graph lets GS1-0.8B reach 12.51 ms P50 for one short question and 6.05× speedup over default inference for eight short questions.
- Faithful — multi-step RL with calibrated rewards
- Reinforcement learning optimizes sampled action probabilities with a Brier reward. RLCD
- Native probabilities and confidence support evidence gathering, deferral and explicit abstention choices.
- Frontier — Hybrid Architecture, Competitive Quality
- Causal Gated DeltaNet and Segmented Bidirectional Full Attention give candidates their complete comparison context while preserving immutable prefixes for reuse across questions.
- Carry-preserving Attention Residual lets sparse full-attention receivers query earlier representations while retaining the explicit skip-connection anchor. Architecture
- GS1-9B reaches 70.45 on the latest Decision Index 0.4.1 Public index. All GS1 sizes lie on the displayed parameter–performance frontier.
Model Overview
| Specification | GS1-9B |
|---|---|
| Model type | Native typed decision model |
| Stored parameters | 8,829,078,768 |
| Hidden dimension | 4,096 |
| Decoder layers | 32 |
| Decision attention heads | 16 |
| Candidate-routing layers | 2 |
| Decision projection dimension | 2,048 |
| Maximum complete branch length | 32,768 tokens |
GS1 uses a Qwen3.5 hybrid backbone that interleaves three causal Gated DeltaNet layers with one segmented full-attention layer. A native cross-attention decision head compares runtime-defined candidates against state evidence. Architecture
Text and decision-head weights are stored in FP32, and the retained vision tower in BF16. Inference supports BF16 computation with FP32 final logits and probability reductions. Stored dtypes are preserved by default loading.
| Primitive | Typical use | Output |
|---|---|---|
| Choice | Routing, classification, tool selection | Candidate ID, all candidate probabilities, confidence |
| Noul | Verification and binary judgments | Probability that the proposition is true: p(true) |
| Score | Ordered ratings and rubric judgments | Expected zero-based level, level probabilities, confidence |
Benchmark Results
Decision Index
The following are the latest complete public-suite results (edition 0.3). Each model completes 140,178 requests and 312,320 decisions across 43 text benchmarks, with 100% coverage and zero failed or unsupported requests. 37 benchmarks contribute to the chance-corrected Public index; six additional benchmarks are displayed separately. The private Full score is evaluated by the leaderboard maintainers.
| Metric | GS1-0.8B | GS1-2B | GS1-4B | GS1-9B |
|---|---|---|---|---|
| Public index ↑ | 56.12 | 62.22 | 68.97 | 70.45 |
| Raw index ↑ | 67.36 | 71.70 | 76.47 | 77.46 |
| Coverage | 100% | 100% | 100% | 100% |
The frontier refers to the comparison models displayed in the figure.
Area Scores
Chance-corrected area scores on a 0–100 scale; higher is better.
| Area | GS1-0.8B | GS1-2B | GS1-4B | GS1-9B |
|---|---|---|---|---|
| Knowledge & Reasoning | 33.32 | 41.84 | 52.40 | 56.01 |
| Language Understanding | 56.25 | 63.67 | 71.12 | 72.62 |
| Retrieval & Classification | 68.62 | 71.21 | 75.55 | 75.58 |
| Tools & Automation | 79.26 | 83.57 | 87.49 | 87.61 |
| Arts & Human Taste | 47.47 | 54.16 | 59.26 | 60.57 |
Complete text benchmark results — 43 benchmarks
Native benchmark scores are scaled to 0–100 before chance correction. The metric is shown for each row. † marks the six display-only benchmarks that do not contribute to the Public index. All rows use the Decision Index typed-decision protocol.
| Benchmark | Native metric | GS1-0.8B | GS1-2B | GS1-4B | GS1-9B |
|---|---|---|---|---|---|
| BFCL | case exact accuracy | 90.44 | 93.27 | 97.52 | 96.99 |
| ToolRet | nDCG@10 | 67.52 | 69.25 | 71.16 | 70.90 |
| API-Bank | accuracy | 67.52 | 76.97 | 84.45 | 85.43 |
| BANKING77 | macro-F1 | 85.33 | 88.34 | 92.09 | 92.76 |
| CLINC150+OOS | macro-F1 | 85.51 | 90.61 | 94.35 | 93.48 |
| RouterBench † | selected quality (quality objective) | 79.63 | 71.76 | 79.06 | 79.86 |
| Home appliance simulator | case exact accuracy | 98.86 | 100.00 | 100.00 | 100.00 |
| SGD/SGD-X † | macro-F1 | 61.15 | 65.16 | 68.10 | 67.60 |
| ContractNLI | macro-F1 | 84.41 | 84.14 | 85.99 | 86.16 |
| ANLI | macro-F1 | 58.98 | 65.80 | 75.74 | 77.32 |
| BPoMP | accuracy | 78.14 | 87.24 | 92.02 | 93.92 |
| Humicroedit | accuracy | 61.80 | 62.56 | 65.68 | 64.50 |
| POP909-CL | accuracy | 84.40 | 84.95 | 84.70 | 85.05 |
| cfcolor | accuracy | 69.02 | 68.70 | 71.26 | 71.38 |
| MMLU † | accuracy | 56.09 | 65.65 | 77.95 | 81.42 |
| GPQA Diamond | accuracy | 33.67 | 35.71 | 44.39 | 48.47 |
| ARC-Easy † | accuracy | 88.97 | 95.50 | 98.19 | 98.82 |
| ARC-Challenge † | accuracy | 78.16 | 87.54 | 95.05 | 96.08 |
| WinoGrande | accuracy | 71.11 | 80.82 | 89.66 | 92.74 |
| HellaSwag | accuracy | 80.85 | 89.44 | 94.81 | 96.28 |
| GSM8K | accuracy | 49.47 | 57.35 | 69.37 | 71.04 |
| ChessBench | accuracy | 25.44 | 26.24 | 28.60 | 29.08 |
| MuSR | accuracy | 62.10 | 70.08 | 71.94 | 74.60 |
| SATA-Bench | case exact accuracy | 46.48 | 53.33 | 54.61 | 55.70 |
| SimpleBench † | accuracy | 0.00 | 10.00 | 0.00 | 10.00 |
| BRIGHT | nDCG@10 | 37.32 | 38.75 | 46.58 | 45.40 |
| Amazon ESCI | macro-F1 | 56.30 | 57.51 | 60.69 | 61.48 |
| ACOS | per-review F1 | 51.22 | 52.45 | 56.19 | 56.93 |
| FinEntity | macro-F1 | 85.65 | 87.77 | 95.53 | 94.83 |
| iSarcasmEval | Sarcasm F1 · track A, English | 44.64 | 59.44 | 63.76 | 68.02 |
| VAST | macro-F1 | 76.52 | 77.34 | 78.62 | 78.49 |
| NLI4CT | macro-F1 | 66.64 | 73.41 | 80.38 | 82.39 |
| CRUXEval | accuracy | 42.98 | 57.89 | 78.60 | 81.40 |
| CLadder | accuracy | 89.44 | 87.74 | 91.30 | 94.82 |
| HLE | accuracy | 14.97 | 13.97 | 11.98 | 11.58 |
| Habermas Machine | accuracy | 56.80 | 59.13 | 61.93 | 63.13 |
| PhishNChips phishing decisions | accuracy | 98.20 | 97.85 | 99.30 | 98.90 |
| MMLU-Pro | accuracy | 38.66 | 47.10 | 60.51 | 64.06 |
| BBH fixed-option tasks | accuracy | 68.88 | 76.96 | 84.07 | 87.07 |
| RAGTruth response-level hallucination | F1 on hallucinated class | 79.96 | 83.00 | 85.20 | 85.08 |
| HoVer claim verification | accuracy | 85.85 | 88.10 | 89.15 | 90.05 |
| When2Call MCQ | accuracy | 86.39 | 89.40 | 91.59 | 92.06 |
| New Yorker caption matching | accuracy | 56.25 | 65.91 | 73.67 | 76.52 |
Evaluation uses BF16 native reference inference and the official scorer. Independent re-scoring of the compressed predictions reproduces the results exactly.
Inference Performance
Latest family measurements for the 256-token, single-question fixture:
| Model | GS1 Default P50 (ms) | CUDA Graph P50 / P95 (ms) | Speedup | Graph allocated (GiB) |
|---|---|---|---|---|
| GS1-0.8B | 54.10 | 12.51 / 13.22 | 4.32× | 4.07 |
| GS1-2B | 53.95 | 18.64 / 18.69 | 2.89× | 10.60 |
| GS1-4B | 72.87 | 35.17 / 35.24 | 2.07× | 23.68 |
Single RTX 4090 reporting 48 GiB, BF16 computation, five warmups and 30 timed calls per group. Timing covers the complete in-process decision call, including validation, prompt compilation, model execution, probabilities and typed responses; model loading, graph capture, HTTP and SDK transport are excluded. Speedup compares GS1 Default P50 with CUDA Graph P50 using identical weights and inputs. Latency and memory depend on request shape.
Quickstart
Hugging Face Transformers
Use Python 3.11+ and install the dependencies:
python -m pip install torch==2.9.1 torchvision==0.24.1 transformers==5.3.0 accelerate safetensors 'pydantic>=2.8,<3' typesafe-sdk==0.7.0 pillow
Load the Hub ID or a local model directory and submit all three decision primitives in one call:
import torch
from transformers import AutoModel
model = AutoModel.from_pretrained(
"bigai/GS1-9B",
trust_remote_code=True,
).eval().to("cuda")
request = {
"state": "A customer was charged twice and requests an urgent refund.",
"questions": {
"team": {
"type": "choice",
"instructions": "Which team should handle this ticket?",
"criteria": {
"billing": "Payments and refunds",
"technical": "Software problems"
}
},
"refund": {
"type": "noul",
"instructions": "Does the customer request a refund?"
},
"urgency": {
"type": "score",
"instructions": "Rate the urgency of handling this ticket.",
"criteria": [
"Routine",
"Soon",
"Immediate"
]
}
}
}
with torch.autocast("cuda", dtype=torch.bfloat16, cache_enabled=False):
result = model.decide(**request, precision="bf16")
print(result["answers"])
print(result["usage"])
The response contains model, answers and usage. Choice preserves candidate IDs and returns every candidate probability; Noul returns p(true); Score returns the expected zero-based rubric level and its full probability distribution. Generated output_tokens is zero.
chat_template.jinja renders the native GS1 state, question and options, including XML escaping, the trained user/assistant boundaries, the empty thinking prefix and <|decide|>. It is exported from the same serializer in compiler.py. model.decide prepares typed candidates, branch spans, masks, positions and budget checks. Native template usage
GS1 Runtime
The GS1 runtime adds shared-state reuse, compatible batching, HTTP serving and qualified CUDA Graph replay:
git clone https://github.com/bigai-nlco/GS1.git
cd GS1
uv sync --locked --extra serve --extra cuda
uv run gs1 serve --model bigai/GS1-9B --model-name GS1
The service exposes POST /v1/systemone and GET /v1/models at http://127.0.0.1:8000. The Playground provides an interactive Query workspace.
TypeSafe SDK
Call the running service through the official SDK:
from typesafe_sdk import Choice, Noul, Score, TypeSafeClient
with TypeSafeClient(
base_url="http://127.0.0.1:8000", api_key="local", model="GS1",
) as client:
result = client.system_one(
state="A customer was charged twice and requests an urgent refund.",
questions={
"team": Choice(
instructions="Which team should handle this ticket?",
criteria={"billing": "Payments and refunds", "technical": "Software problems"},
),
"refund": Noul(instructions="Does the customer request a refund?"),
"urgency": Score(
instructions="Rate the urgency of handling this ticket.",
criteria=["Routine", "Soon", "Immediate"],
),
},
)
print(result.choices["team"].choice)
print(result.choices["team"].probabilities)
print(result.nouls["refund"].noul)
print(result.scores["urgency"].score)
Use the API root as base_url and match model to the server alias configured by --model-name. The SDK accepts api_key="local" for this local service.
License
Code and released model weights use Apache-2.0.
Citation
If you find our work helpful, feel free to give us a cite.
@techreport{zheng2026gs1,
title={GS1: Fast, Faithful, Frontier System One Intelligence},
author={Zheng, Zilong and Liu, Yang and Qin, Shuhan and Lin, Ziyong and Li, Jiaqi and Jia, Zixia and Zhu, Song-Chun},
institution={BIGAI},
year={2026}
}
- Downloads last month
- 26
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("feature-extraction", model="bigai/GS1-9B", trust_remote_code=True)