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

Source Rows Licence
3nesdeniz/agentic-prompt-injection-5k (default) 6,200 CC-BY-4.0
3nesdeniz/turkish-conversation-prompt-injection (default) 530 CC-BY-4.0
Anthropic/hh-rlhf (data_dir=red-team-attempts) 6,200 MIT
CohereForAI/aya_redteaming (aya_{eng,fra,spa,rus,arb,hin,srp,tgl}.jsonl) 494 Apache-2.0
OpenAssistant/oasst2 (default) 6,200 Apache-2.0
OpenSafetyLab/Salad-Data (base_set) 6,200 Apache-2.0
allenai/prosocial-dialog (default) 6,200 CC-BY-4.0
alusci/sms-otp-spam-dataset (default) 6,200 MIT
declare-lab/CategoricalHarmfulQA (default) 550 Apache-2.0
github:bvidgen/Dynamically-Generated-Hate-Speech-Dataset (default) 6,200 CC-BY-4.0
ibm-research/AttaQ (default) 1,402 MIT
jagoldz/gahd (default) 5,441 CC-BY-4.0
mteb/toxic_conversations_50k (default) 6,200 CC-BY-4.0
nvidia/Aegis-AI-Content-Safety-Dataset-1.0 (default) 6,200 CC-BY-4.0
nvidia/Aegis-AI-Content-Safety-Dataset-2.0 (default) 6,200 CC-BY-4.0
nvidia/CantTalkAboutThis-Topic-Control-Dataset (mixtral) 1,073 CC-BY-4.0
nvidia/Nemotron-RL-Agentic-Indirect-Prompt-Injection-v1 (default) 1,220 CC-BY-4.0
reshabhs/SPML_Chatbot_Prompt_Injection (default) 6,200 MIT

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.safetensors SHA-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 cuda
  • convert: ..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 safety
  • serve: '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 600
  • eval_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-base 0.7.0 by the base fingerprint e7a8fa743b492085… (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.

Downloads last month
39
GGUF
Model size
3.38M params
Architecture
laya
Hardware compatibility
Log In to add your hardware

We're not able to determine the quantization variants.

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Beko2210/statim-decide-multilingual-base-safety

Evaluation results

  • accuracy on safety en (n=1350 fresh: draw 1500, skip 150, seed=20260927, z=2.0, alpha=0.05)
    self-reported
    0.806