Instructions to use bigai/GS1-0.8B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use bigai/GS1-0.8B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="bigai/GS1-0.8B")# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("bigai/GS1-0.8B", device_map="auto") - Notebooks
- Google Colab
- Kaggle
GS1-0.8B (General System One)
Fast, Faithful, Frontier System One Intelligence.
Code Β· Quick Start Β· Evaluation Β· Playground
GS1 returns probabilities over user-defined candidates in a single decision pass. Use the YeS1 framework to run this model; standard text-generation pipelines do not implement its decision head.
GS1 is a family of fast, uncertainty-aware decision models developed by BIGAI (Beijing Institute for General Artificial Intelligence). It computes native probability distributions over variable candidate sets for agent routing, verification, extraction, and control.
π Model Details
- Developed by: BIGAI (Beijing Institute for General Artificial Intelligence)
- Correspondence: Zilong Zheng (
zlzheng@bigai.ai) - Model Family: GS1-0.8B, GS1-2B, GS1-4B, GS1-9B
- Base Architecture: Qwen3.5 with hybrid Gated DeltaNet (GDN) and full-attention layers
- License: Apache 2.0
- Primary Task: Agentic decision making
π₯ GS1 Highlights
- Native Cross-Attention Decision Head: Computes probabilities directly over candidates. At fixed context, permuting head inputs preserves probabilities when candidate order is restored.
- Segmented Bidirectional Visibility: Combines causal GDN with segmented bidirectional full attention, allowing candidates to observe their comparison context while keeping shared prefixes reusable.
- Carry-Preserving Attention Residuals (AttnRes): Routes information from earlier representations while retaining the explicit skip-connection anchor.
- Typed Outputs: One probability distribution supports three decision modes:
- Choice: Select a candidate and return every candidate's probability.
- Noul: Return the probability that a statement is true.
- Score: Return the expected zero-based ordinal level, $\sum_k k\pi_k$.
π‘ Advanced Post-Training & Reliability
- Calibrated Reward Policy Optimization (CRPO): Uses sampled decision probabilities in a Brier-shaped penalty to align calibration rewards with the deployed policy.
- Learned Abstention: Optimizes accuracy and non-hallucination rates under Lagrangian constraints, making abstention an explicit action.
- Multi-Step RL: Extends CRPO to interaction trajectories with shared terminal feedback, including StarCraft II against the Very Hard computer opponent.
- Recursive Self-Improvement: Uses separate loops for data synthesis and infrastructure tuning.
π Performance Benchmarks
Results on Decision Index 0.3 (Public):
| Model | GS1 Score | Top Displayed Baseline | Gain |
|---|---|---|---|
| GS1-0.8B | 56.15 | 53.79 (StartLux v1.1 0.8B) | +2.36 |
| GS1-2B | 62.22 | 60.64 (GLIDE 2B) | +1.58 |
| GS1-4B | 68.95 | 67.81 (StartLux v1.1 4B) | +1.14 |
| GS1-9B | 70.47 | 69.98 (StartLux v1.1 9B) | +0.49 |
Decision Index reports a composite score, not accuracy.
Evaluate your checkpoint
Run a separate AG News evaluation and save results with provenance:
uv run python -m evaluation --suites agnews \
--model artifacts/GS1-0.8B --device cuda --precision bf16 \
--out runs/evaluation/gs1-0.8b-agnews
This writes evaluation.json and accuracy_manifest.json. See the evaluation guide for other suites and Decision Index 0.3 preparation.
β‘ Inference Efficiency
GS1 replaces autoregressive answer generation with state encoding and decision-head evaluation. Shared execution can reuse state and head projections across questions.
On one RTX 4090, the trained GS1-2B artifact with BF16 compute and warmed reference CUDA graphs achieved 16.00 ms for one question (3.38Γ) and 357.76 ms for 32 questions (4.72Γ) against the single-branch reference baseline.
These are median engine timings for a fixed 2B workload, excluding compilation, HTTP overhead, and graph capture. They are not GS1-0.8B latency measurements. See measurement details.
π Quick Start
Install and download
Use Python 3.13 and an NVIDIA CUDA environment for the GPU examples. The lockfile pins PyTorch 2.9.1 and Transformers 5.3.0.
git clone https://github.com/zilongzheng/YeS1.git
cd YeS1
uv sync --locked --extra train --extra sources
uv run python - <<'PY'
from huggingface_hub import model_info, snapshot_download
repo_id = "bigai/GS1-0.8B"
revision = model_info(repo_id).sha
snapshot_download(repo_id, revision=revision, local_dir="artifacts/GS1-0.8B")
print(f"Model revision: {revision}")
PY
Save the printed model revision and the framework commit (
git rev-parse HEAD) with your results. To repeat a download, setrevisionto the saved model SHA.
Run a decision locally
Save as quickstart.py and run with uv run python quickstart.py:
from typesafe_sdk import Choice, Noul, Score
from yes1.api.schema import DecisionRequest
from yes1.inference.engine import Engine
from yes1.model.artifact import load_artifact
artifact = load_artifact("artifacts/GS1-0.8B", device="cuda", precision="bf16")
artifact.model.eval()
engine = Engine(
artifact.model,
artifact.compiler(),
mode="reference",
precision="bf16",
reference_batching=False,
)
request = DecisionRequest(
model="GS1",
state={"battery": 18, "delivery_cost": 12, "required_reserve": 10},
questions={
"action": Choice(
instructions="Choose an action that preserves the required battery reserve.",
criteria={"deliver": "Deliver now.", "recharge": "Recharge first."},
),
"safe": Noul(
instructions="Can delivery finish with at least the required battery reserve?",
),
"risk": Score(
instructions="Rate the risk of delivering now against the reserve requirement.",
criteria=["No risk.", "Uncertain.", "Reserve would be violated."],
),
},
)
try:
result = engine.evaluate(request)
print(result.model_dump_json(indent=2))
finally:
engine.close()
Put shared facts in
stateand submit related questions together. Choice returnschoiceandprobabilities; Noul returnsnoul= $p(\mathrm{true})$; Score returnsscoreand levelprobabilities. Score levels start at 0.
Serve over HTTP
uv run yes1 serve --model-path artifacts/GS1-0.8B \
--device cuda --precision bf16 --engine reference --model-name GS1
In another terminal:
curl http://127.0.0.1:8000/v1/systemone \
-H 'Content-Type: application/json' \
-d '{
"model": "GS1",
"state": {"battery": 18, "delivery_cost": 12, "required_reserve": 10},
"questions": {
"action": {
"type": "choice",
"instructions": "Choose an action that preserves the required battery reserve.",
"criteria": {"deliver": "Deliver now.", "recharge": "Recharge first."}
}
}
}'
The server also exposes GET /v1/models and supports the TypeSafe Python SDK. Local requests require no API key.
Keep the complete downloaded artifact, including
artifact.jsonand tokenizer/processor assets. Weights andconfig.jsonalone are insufficient for serving. Start withreference; shared execution and CUDA graphs require runtime qualification.
Interactive Playground
With the model server running, open another terminal at the repository root. Requires Node.js 22+:
cd playground
npm ci
npm run build
DEFAULT_BACKEND=yes1_local ../scripts/serve_playground.sh
Open localhost:3000. Use Query to try Choice, Noul, and Score and inspect probabilities, or explore model-driven Go, Maze, and Snake. See the Playground guide for remote backends.
π» Input Format
Pass structured requests as shown above. The compiler handles XML escaping, the chat template, structural tokens, and the final decision token. Its decision payload has this layout:
<state>
Shared facts and observations
</state>
<question>
Choose the next action.
</question>
<option>
deliver: Deliver now.
</option>
<option>
recharge: Recharge first.
</option>
Choice supports 1β255 candidates; Score requires 2β10 ordered levels. Oversized requests are rejected rather than silently truncated.
Use meaningful option keys and precise descriptions: Choice keys enter the model input. To allow abstention, include an explicit option such as
unknown: Insufficient evidence to decide.
Training Data and Recipe
Data provenance: The repository provides adapters for public annotated datasets and independently verified synthetic decision tasks. A checkpoint-specific dataset inventory, corpus manifest, and training logs are not included; supported sources should not be read as a confirmed training mixture. See the data guide.
The maintained 0.8B recipe specifies the defaults below, rather than a verified record of this checkpoint's training:
| Phase | Objective | Updates | Peak learning rates: head / language / router |
|---|---|---|---|
| Alignment | NLL | 100 | 2e-4 / 4e-5 / 1e-4 |
| Finetuning | NLL + Brier | Corpus-dependent | 2e-5 / 1e-5 / 1e-5 |
Both phases use BF16, a global batch of 4,096 logical questions, a 16,384-token context limit, seed 12, and gradient checkpointing. Alignment trains structural-token offsets in the language group. These supervised defaults do not document the CRPO or multi-step RL experiments described above.
Intended Use and Limitations
Use GS1 for candidate selection, routing, verification, extraction, and ordinal scoring within agent workflows.
- Decisions depend on the supplied evidence and candidate set. Include an explicit abstention option when evidence may be insufficient.
- Probabilities can be miscalibrated under distribution shift. Validate accuracy, calibration, and abstention on your own workload before setting thresholds.
- Biases from the base model and training data may affect decisions; use human review for consequential applications. Reported text benchmarks do not establish multimodal or safety performance.
π οΈ Finetuning and Export
To finetune this checkpoint on an existing verified corpus:
uv sync --locked --extra train --extra sources --extra decision-index --extra dev
uv run python scripts/train_gs1.py --config scripts/configs/gs1_0_8b.yaml \
--base-model artifacts/GS1-0.8B --corpus /path/to/frozen-corpus \
--run-dir runs/gs1-0.8b --wandb-mode offline
# Serve the complete export produced after training.
uv run yes1 serve --model-path runs/gs1-0.8b/exports/GS1 \
--device cuda --precision bf16 --model-name GS1
Native GS1 inputs go directly to finetuning. Raw Qwen3.5 inputs run alignment first. For initialization from Qwen:
from yes1.model import GS1Model
from yes1.model.artifact import export_artifact
model, tokenizer = GS1Model.initialize("/path/to/Qwen3.5-0.8B")
export_artifact(model, tokenizer, "artifacts/GS1-untrained", status="untrained")
model = GS1Model.from_pretrained("artifacts/GS1-untrained")
Qwen initialization still requires decision training. Export to a new, empty directory with
export_artifact;save_pretrainedalone does not create a complete serving artifact.
See the training guide for multi-GPU recipes and resume, and the deployment guide for multi-GPU serving.
Citation
If you find GS1 useful, please 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}
}
Model tree for bigai/GS1-0.8B
Collection including bigai/GS1-0.8B
Evaluation results
- Decision Index Score (release-reported) on Decision Index 0.3 (Public)self-reported56.150