Model reference · open weights
open-sft is an open-weight language model from Gensyn. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Released by | Gensyn |
|---|---|
| Type | Language models |
| Task | Text gen |
| Parameters (lead) | 1.6B |
| Context | 4k tokens |
| Runs with | transformers |
| Based on | Gensyn/open-1b-midtrained-93B |
| Released | 2026-09-15 |
| Popularity | 713 downloads / month |
| Licence | Open weights |
About
open-1b is a 1.6 billion parameter decoder-only language model pretrained on 400B tokens. It is the first language model whose training can be independently verified.
Every open model release to date has asked that its users trust the account of how it was trained — open-1b allows you to check. It is released with its complete pretraining dataset, training and evaluation code, intermediate checkpoints at 100-step intervals, and a canonical state hash for every one of the 80,957 optimizer steps that produced it. Anyone can load the checkpoint before a given step, replay that step on their own hardware, hash the result, and confirm it matches the published fingerprint.
As organizations become more and more dependent on swarms of agents, we're reaching a point where AI verification is about to stop being a theory and start being a necessity. The only durable defense against models you cannot trust is models you can — models whose entire history is on the public record and can be replayed by anyone. That property cannot be added afterward; it has to be designed into the run from the first step. open-1b is our proof that this can be done in practice, and our attempt to set the standard for how.
This repository holds the supervised fine-tune (SFT): the midtrained model (Gensyn/open-1b-midtrained-93B) fine-tuned on allenai/tulu-3-sft-olmo-2-mixture-0225. This is an SFT-only model — no RLHF, DPO or other preference tuning was applied. It uses the chat template shipped in tokenizer_config.json (apply it with tokenizer.apply_chat_template).
| Model | What it is |
|---|---|
Gensyn/open-1b-base | Pretraining checkpoint at step 80,957, 400B tokens |
Gensyn/open-1b-midtrained-93B | Midtrained checkpoint: continued pretraining of the base model on 93B additional tokens |
Gensyn/open-1b-sft | Supervised fine-tune on allenai/tulu-3-sft-olmo-2-mixture-0225, the chat-capable model |
gs://gensyn-open-1b/data — browse and search it at open1b.gensyn.ai/#/data/searchgs://gensyn-open-1b/ckptFor what "auditable" means here — the per-step state hashes, the Merkle commitments, and how a replay lands on the same bytes — see the Gensyn/open-1b-base card.
The repo bundles its own modeling code (modeling_open1b.py), loaded with
trust_remote_code=True — the architecture (gain-free QK-norm, embedding
RMSNorm, block-aligned hybrid sliding-window attention) matches no stock
transformers class. Parameter names and bytes in model.safetensors are
identical to the training checkpoint the published state hashes commit to.
The model was trained with int8 W8A8 quantization-aware training (LSQ), and
the learned per-channel weight_scale tensors ship in the checkpoint. By
default the forward emulates the training int8 grid using those scales
(config.quantized_forward=True); set it to False for plain bf16 GEMMs on
the master weights. Inference logits are numerically close to, but not
bit-identical with, the training stack (fp32 GEMM accumulation, bf16
attention vs the training int8 P·V flash kernel) — bit-exact replay of
training steps is the job of the audit tool.
Load the tokenizer as-is. In particular, ignore transformers' suggestion to
pass fix_mistral_regex=True: the "fix" changes the pre-tokenizer's
behaviour, and tokenization bit-identical to training is part of this
release's reproducibility contract.
The chat template (shipped in tokenizer_config.json and
chat_template.jinja) renders every turn as
{{content}}
using the tokenizer's reserved special tokens (id 2, id 3, id 4 — all atomic single-id encodes). There is no sequence-level BOS prefix. terminates every turn and is the
model's eos for generation, so generate() stops at the end of the
assistant turn.
The generation prompt deliberately ends at `` (no trailing
newlines) and the model generates the \n\n itself — that transition
follows every header in its training data. Completions therefore start with
two newline characters; strip leading whitespace from the decoded text. Do
not append the two newlines to the prompt yourself: encoded at the end of a
prompt they merge into a single token the model never saw at that position
(assistant content always followed in training, splitting them), and the
model responds to it wi
From the published model card. Full card on the HuggingFace links in the sidebar.
Using it via the API
Once AxForge deploys open-sft for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (open-sft below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/chat/completions \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"open-sft","messages":[{"role":"user","content":"Hello"}]}'
Create an account — your API key is available in the console. 3M free tokens every 30 days with every new account.