You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Research checkpoints of a speech model trained to refuse requests when an operator instruction tells it to. They are not a safety system. By requesting access you agree to use them for research only.

Log in or Sign Up to review the conditions and access this model content.

duplex-refusal

LoRA adapters for nvidia/personaplex-7b-v1, a full-duplex speech model, that make it refuse a request when a private operator instruction arrives mid-conversation โ€” and answer normally when none does. The instruction is a text span the model reads but never speaks.

Versions

One folder per version; each has its own README with data, recipe, evaluation and known issues, and a VERSION.json with the adapter's sha256 and scaling. Load a version at a pinned commit, not from a moving main.

version adapter revision sha256 what it is for
v0.1 v0.1/lora.safetensors (775,835,968 B) 313d94c6a347b1493984388313e744440f0028ff 4bfe4ce2f37289a41349fb0d0e61f8bfe8bebf0a278543f7b09930cd10f068fa preview; run refusal_v0.1_ins step 4,800. Always answers and always refuses when told, but over-refuses benign requests: take it where over-refusal is acceptable
v0.2.1 v0.2.1/lora.safetensors (775,856,664 B) the commit that added v0.2.1/ (pinned by sha in Daimonion's hub/registry.py) 8dc8b45e2e6c08fdd7f538c62c4ca00c9b38b8a8454b211baeec4c44e9c3a976 run refusal_v0.2.1_ins step 12,000; accept and refuse trained behind the same audio, harmful spots left out of training, the two instruction-marker rows trained. Mount it when the seat must hold an ordinary conversation

Measured 2026-09-18 by replaying the seed-set benchmark's own 8 kHz telephony caller tapes (20 tapes, 76 caller turns, the instruction spliced 2 s after the last turn):

version answers the caller refuses after the alert benign over-refusal
v0.1 1.00 1.00 0.25
v0.2.1 0.88 0.94โ€“1.00 0.00

The refusal_v0.2_ins/ and refusal_v0.2.1_ins/ folders hold every 1,000-step checkpoint of those two runs with a per-checkpoint eval report; they are training artefacts, not versions. v0.2.1/ is the named, pinned copy of refusal_v0.2.1_ins/checkpoint_012000/.

Usage

The adapters target PersonaPlex with the depth decoder sliced to 8 codebooks and two extra text tokens (<instr_start> = 32000, <instr_end> = 32001), so fold them into the base first:

huggingface-cli download MagicLuke/duplex-refusal --include "v0.2.1/*" --local-dir adapter
python -m duplex_brain.ckpt.build_checkpoint --hf-repo nvidia/personaplex-7b-v1 \
    --adapter adapter/v0.2.1/lora.safetensors --scaling 2.0 --out duplex-refusal-v0.2.1.safetensors

build_checkpoint is from duplex-brain. Code and training recipe: duplex-online-if. For v0.2.1 the two instruction-marker embedding rows are trained as well and must be folded with the rest of the adapter (VERSION.json says ft_instr_embed: true).

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for MagicLuke/duplex-refusal

Adapter
(15)
this model