pwdet: unsloth/Qwen3-0.6B — clean · standard

Poisoned Weights Detector 0.1.1 · profile standard · 2026-10-20

CLEAN · StandardSelf-reported — not verified by launch80

Automated standard scan verdict: clean. 5 low/info observations, none above. An automated, self-reported scan, not an audit: a clean verdict means these checks found nothing, not that the model is safe.

Findings to review

5 warn or fail observation(s), most severe first.

Threat coverage

Standard: static and provenance checks, with weights compared tensor by tensor against a reference. Behaviour was not tested, so a trained-in trigger would not be found.

Coverage

Checks run per layer. A layer that is absent was not part of this profile.

Lineage

The chain the model claims, as pwdet resolved it.

Measured accuracy

On the pwdet corpus v1 (61 tampered, 47 benign models) Standard scans flagged 59/61 tampered (95% CI 89%-99%) and 2/47 benign (95% CI 1%-14%). Of the tampering this level tests (all but trained-in behaviour, which needs behavioural probes), it flagged 59/59 (95% CI 94%-100%).

Not tested

What this scan could not check, and how to close each gap.

Method

Poisoned Weights Detector 0.1.1 checks a checkpoint in up to four layers: static (files, headers, configs, tokenizer, chat template, weight statistics), provenance (Hub metadata, parent hashes, signed manifest), black-box (paired behavioural probes against the base model, both served) and white-box (activations and per-layer deltas). Findings the publisher disclosed are downgraded one severity step but never hidden. This was a Standard scan: weights were compared tensor by tensor against a reference, but behaviour was not tested, so a trained-in trigger would not be found. The report records its inputs and a digest, so `pwdet reproduce` can re-run it. Published from the report.json the tool wrote; the scanning machine's name, paths and endpoints are removed.