Statim Decide Multilingual Base: Safety adapter
Licence notice (2026-10-03). The base model this adapter requires (multilingual 0.7.0) was trained partly on data that is non-commercial, ShareAlike or under an unknown licence. From 2026-10-03 the base and this adapter are offered only under PolyForm Noncommercial 1.0.0; the Small Business and Free Trial licences and the commercial licence do not apply to them. A replacement trained only on cleared data will follow. Details: DATA_LICENSES.md.
A LoRA adapter that improves the Safety decisions of
Beko2210/statim-decide-multilingual-base 0.7.0.
Checked with Statim 0.8.3: the published f32 file loads it merged at load, the q8_0 file as runtime LoRA. LoRA adapters need Statim 0.8.0 or later.
Quick start
hf download Beko2210/statim-decide-multilingual-base statim-decide-multilingual-base-q8_0.gguf --local-dir models
hf download Beko2210/statim-decide-multilingual-base-safety statim-decide-multilingual-base-safety.lora.gguf --local-dir models
statim serve -m multilingual=models/statim-decide-multilingual-base-q8_0.gguf --adapter multilingual:safety=models/statim-decide-multilingual-base-safety.lora.gguf --port 8080
curl -s localhost:8080/v1/systemone -d '{"state": {"text": "The claim is supported by the cited evidence."}, "questions": {"safety": {"type": "noul", "instructions": "Should this text receive a yes decision?"}}, "adapter": "safety"}'
curl -s localhost:8080/v1/systemone -d '{"state": {"text": "The claim is supported by the cited evidence."}, "questions": {"safety": {"type": "noul", "instructions": "Should this text receive a yes decision?"}}, "adapter": "auto"}'
Python (Python SDK 0.8.3 or later):
from statim import Client
client = Client("http://127.0.0.1:8080")
client.decide({"text": "The claim is supported by the cited evidence."}, {"safety": {"type": "noul", "instructions": "Should this text receive a yes decision?"}}, adapter="safety")
Results (experiment's f32 run)
Each cell uses 1350 fresh items: a seeded stratified draw of 1500 (seed 20260927) whose first 150 items, scored by an earlier run, are skipped. That earlier run is reported in docs/ADAPTERS.md.
| Language | Base | Adapter | Change (points) | Verdict |
|---|---|---|---|---|
| en | 0.7081 | 0.8059 | +9.78 | gain (2 SE) |
| Mean | 0.7081 | 0.8059 | +9.78 | — |
The pooled family change is +9.78 points with 2 SE = 3.28 points (gain).
Decision rule: promote when the category family gains more than 2 standard errors, pooled by rows or by suites, and nothing regresses. A regression is a pooled drop beyond 2 standard errors under either pooling, or a drop in one language cell that stays significant after Holm-Bonferroni (family-wise 5 %).
Qwen3-8B was measured on the first draw's items only (BASELINES.md), so it is not shown next to these fresh items.
Checked on the published files
| Weights | Adapter mode | Base mean | Adapter mean | Change (points) | Cell for cell as in the experiment |
|---|---|---|---|---|---|
| f32 | merged at load | 0.7081 | 0.8059 | +9.78 | yes |
| q8_0 | runtime LoRA | 0.7081 | 0.8111 | +10.30 | — (experiment: f32) |
Training
LoRA rank 16, alpha 32.0, dropout 0.05;
target modules Wqkv, Wo, Wi; 88 wrapped modules and
3,379,200 trainable parameters.
- Items: 78,508 train, 402 dev.
- Updates: 2,046.
- Dev accuracy: 0.6542 before, 0.7139 after.
- Time: 2374.5 seconds; peak memory: 2,330 MB.
Provenance
- Adapter GGUF SHA-256:
9620969cef129a9ede45816db575a6c5b9ecf27574443b0110259bec1b703202 - PEFT safetensors SHA-256:
82b5b90ac682b98da128203f2e441cf6fac9c703cec59aa8b0c273f3a79d84f4 - Training checkpoint
model.safetensorsSHA-256:c44425f14ac9d55508f73a6f371e4e2802ed59e646287c3abbec10b653a19840 - Base fingerprint:
e7a8fa743b4920850167b587226e339d651be0244fcc6a9e24fff8ed5073bae5 - Training mixture SHA-256:
b8a87e85f3bf72b61509555aba9148358760d3329ecf37a36cebd94f9358cb03 - Source registry SHA-256:
309ce8ec262886b3bfaa529934151ae0c1879595c26301e4269da276d95cbfcd
Experiment commands (paths relative to the Statim repository):
train:..python 'tools/finetune/train_lora.py' 'models/laya-multilingual-v9' --mixture 'data/mixture-v8.jsonl.gz' --category safety --registry 'tools/finetune/sources/v6-keep.json' --out 'models/lora-exp1-safety-rep/safety' --device cudaconvert:..python 'tools/convert_lora.py' 'models/lora-exp1-safety-rep/safety' -o 'models/lora-exp1-safety-rep/safety.lora.gguf' --base 'models/laya-multilingual-v9-f32.gguf' --category safety --name safetyserve:'build-vk/statim' serve -m 'multilingual=models/laya-multilingual-v9-f32.gguf' --adapter 'multilingual:safety=models/lora-exp1-safety-rep/safety.lora.gguf' --device vulkan --threads 16 --port 8098 --no-access-log --inference-timeout 600eval_base:..python 'bench/eval_categories.py' --strict --url http://127.0.0.1:8098 --model multilingual --suites safety --n 1500 --skip 150 --seed 20260927 --exclude-mixture 'data/mixture-v8.jsonl.gz' --out 'models/lora-exp1-safety-rep/safety.base.jsonl'eval_adapter:..python 'bench/eval_categories.py' --strict --url http://127.0.0.1:8098 --model multilingual --suites safety --n 1500 --skip 150 --seed 20260927 --exclude-mixture 'data/mixture-v8.jsonl.gz' --adapter safety --out 'models/lora-exp1-safety-rep/safety.adapter.jsonl'
Protocol and experiment: docs/ADAPTERS.md. Full reproduction instructions: REPRODUCE.md.
Intended use and limits
- This adapter only helps its category; route requests with
"safety"or"auto". - Bound to
Beko2210/statim-decide-multilingual-base0.7.0 by the base fingerprinte7a8fa743b492085…(statim.lora.base_fingerprint, SHA-256 over the checkpoint's norm and bias tensors); Statim refuses the adapter on a base whose fingerprint differs. - Languages outside the evaluated list are untested.
- Each language cell has 1350 items.
- Do not automate decisions about people without human review.
Licence
The weights may be used under any one of: PolyForm Noncommercial 1.0.0, PolyForm Small Business 1.0.0 (free commercial use below 100 people and 1 M USD revenue), PolyForm Free Trial 1.0.0 (any company, fewer than 32 days), or a Statim commercial licence (COMMERCIAL.md). Texts in LICENSE-MODEL.md. The Statim engine is Apache-2.0.
Training data attribution is listed source by source above, with the row count and licence read from the experiment registry.