Papers
arxiv:2611.02134

HaloGuard 2.0: An Open-Weights Constitutional Output Guard for Multilingual Response Safety

Published on Nov 1

Abstract

HaloGuard 2.0 is a lightweight streaming output guard that assigns per-token safety probabilities in a single forward pass, using counterfactual training to avoid prompt shortcuts and achieving high macro F1 with far fewer parameters than full-response alternatives.

An input guard decides whether a request reaches the model, but never sees what the model says. Harm that emerges during generation, because a jailbreak passed the input layer or a benign request drifted into operational detail, is visible only on the output side and only as tokens arrive. We present HaloGuard 2.0, an open-weight streaming output guard that assigns a safe/unsafe probability to every response token in a single forward pass, so a deployment can stop the stream once harm is confirmed. The guard reuses the constitution of HaloGuard 1.0, our input guard, to organise a 478,532-response training corpus, and supervises each token from the point where the response becomes harmful. We find that a guard trained on conventionally shaped data learns a shortcut specific to streaming: it judges the prompt instead of the response, and handles only 13.9% of matched safe/unsafe response pairs correctly. We correct this with a second phase on 106,043 counterfactual responses built around the base guard's own failure modes, and release the equal-weight average of the base and corrective models. On six English response-safety benchmarks, HaloGuard 2.0-0.8B reaches a macro F1 of 83.6 (83.3 on held-out halves of the decision-rule search), up from 72.8, with 38% fewer false positives. It matches the strongest full-response guards with 5-10x fewer parameters and is 2.6 points above the strongest streaming guard, Qwen3Guard-Stream-4B. A multilingual variant, HaloGuard 2.0-Poly-0.8B, trained on PolyGuardMix, reaches 83.1 F1 on the response labels of PolyGuardPrompts across 17 languages, 5.0 points above the strongest baseline. On one H100 the guard costs 0.37 ms per token per stream when moderating 64 concurrent responses. Both guards are hardened continuously through the weekly red-teaming protocol of HaloGuard 1.0, extended here to the output layer.

Community

Authors here. HaloGuard 2.0 is a streaming output guard: like Qwen3Guard-Stream, it gives a safe/unsafe probability at every token of a model's reply, so you can stop the stream when it turns harmful. On the paper's benchmarks it comes out ahead of every Qwen3Guard-Stream size.

All three models are 0.8B and Apache 2.0: https://huggingface.co/collections/astroware/haloguard-20
HaloGuard2-Stream-0.8B, English: 83.6 avg F1 on six response-safety benchmarks, 2.6 above Qwen3Guard-Stream-4B.

HaloGuard2-MultiStream-0.8B, 17 languages: 83.1 F1 on PolyGuardPrompts, 5.0 above the strongest baseline.

HaloGuard2-Gen-0.8B, input guard: prompts up to 8,192 tokens, 90.9 avg F1 across seven prompt-safety benchmarks.

Questions and failure cases welcome.

Sign up or log in to comment

Get this paper in your agent:

hf papers read 2611.02134
Don't have the latest CLI?
curl -LsSf https://hf.co/cli/install.sh | bash

Models citing this paper 0

No model linking this paper

Cite arxiv.org/abs/2611.02134 in a model README.md to link it from this page.

Datasets citing this paper 0

No dataset linking this paper

Cite arxiv.org/abs/2611.02134 in a dataset README.md to link it from this page.

Spaces citing this paper 0

No Space linking this paper

Cite arxiv.org/abs/2611.02134 in a Space README.md to link it from this page.

Collections including this paper 0

No Collection including this paper

Add this paper to a collection to link it from this page.