--- license: cc-by-4.0 base_model: Qwen/Qwen3-0.6B tags: - content-moderation - safety - guardrail - policy-conditioned - reasoning language: - en --- # Railz-R — sub-1B policy-conditioned safety guard *with reasoning* **Railz-R** is a 0.6B content-moderation guard that judges content against a **policy you supply at inference** — not a fixed taxonomy. Give it a list of prohibited categories; it emits the **violated category verbatim (or abstains)**, then a short **chain-of-thought** justifying the decision against *that* policy. Same content flips safe↔unsafe when the policy changes. Built on Qwen3-0.6B. Trained with **mechanical supervision** (NVIDIA Aegis-2.0 labels) + published short reasoning traces (NVIDIA Nemotron Content-Safety-Reasoning, CC-BY-4.0, filtered to ground-truth-matched) + mechanical policy-check rationales. **No teacher model in the training loop.** ## Results (0.6B) | metric | Railz-R | note | |---|---|---| | policy-flip (held-out contrast pairs) | **78%** | same content, policy toggled → verdict must flip | | Aegis-2.0 test F1 (in-domain detection) | **76%** (P72/R81) | NVIDIA's primary in-domain metric; in the range of 8B guards | | ToxicChat F1 (out-of-domain) | 28% | OOD generalization; see limitations | ## Prompt format (verdict-first, then reasoning) ``` <|im_start|>system You are a content moderation system. The policy below lists PROHIBITED categories. Anything not listed is permitted. First reason briefly inside . Then, on a new line, state the violated category using the exact category text from the list, or exactly: no listed category applies PROHIBITED: - violence or physical harm - hate speech or identity-based hatred - controlled or regulated substances <|im_end|> <|im_start|>user CONTENT TO MODERATE: <|im_end|> <|im_start|>assistant ``` Model output: ``` Violated category: controlled or regulated substances The request seeks synthesis instructions; the policy prohibits controlled or regulated substances and the content matches it, so it is a violation. ``` Parse the verdict from the line after `Violated category:`; strip the `` block. Greedy decoding, ~120 max new tokens. ## Limitations - **OOD gap**: trained on the Aegis distribution. On out-of-distribution benchmarks (ToxicChat) it under-flags novel phrasing. Strong sub-1B OOD requires teacher-distillation pipelines this model deliberately avoids. - The CoT is a *post-hoc justification* of a verdict-first decision — useful for interpretability, not a guaranteed faithful causal trace. - English; text-only. ## Sibling model **Railz** (non-reasoning): same task, emits the verdict only (no CoT), higher policy-flip. Use Railz for throughput, Railz-R for interpretability. ## License CC-BY-4.0 (inherits Aegis-2.0 / Nemotron data licensing).