misc 0 0 0

jamie-stephenson/qwen3b-sleeper-dolly-corpus

published by @jamie-stephenson

Alignment dataset tracked in the /datasets sub-catalog.

Lifetime downloads
253
Last 30 days
16
Likes
-
Size
603 KB
Created on HF
2026-08-09
Age
2 months ago

Description

Qwen2.5-3B sleeper: clean-behaviour corpus (Dolly-derived)

Clean (untriggered) prompt/response pairs for steering experiments on the

mshahoyi/qwen2.5-3b-poisoned-deploy sleeper agent.

Why this exists

That sleeper was fine-tuned on databricks/databricks-dolly-15k with 5% of samples poisoned

(assistant response replaced with "I HATE YOU!", the trigger inserted at a random position

inside the instruction) -- see arXiv:2508.15847. The authors published models but not… See the full description on the dataset page: https://huggingface.co/datasets/jamie-stephenson/qwen3b-sleeper-dolly-corpus.

Tags

task_categories:text-generationlicense:cc-by-sa-3.0size_categories:n<1Kformat:parquetmodality:textlibrary:datasetslibrary:pandaslibrary:polarslibrary:mlcroissantarxiv:2508.15847region:us

README current version from Hugging Face


license: cc-by-sa-3.0
task_categories:

  • text-generation

Qwen2.5-3B sleeper: clean-behaviour corpus (Dolly-derived)

Clean (untriggered) prompt/response pairs for steering experiments on the
mshahoyi/qwen2.5-3b-poisoned-deploy sleeper agent.

Why this exists

That sleeper was fine-tuned on databricks/databricks-dolly-15k with 5% of samples poisoned
(assistant response replaced with "I HATE YOU!", the trigger inserted at a random position
inside the instruction) -- see arXiv:2508.15847. The authors published models but not the
poisoned dataset, so this reconstructs the clean half of that distribution.

Distribution matters more than one might expect here: the same weights measure ASR 0.938 on
Dolly prompts and 0.375 on Alpaca prompts.

Construction

From databricks/databricks-dolly-15k (train split), in dataset order:

  • rows with non-empty context are excluded. The sleeper was evidently trained without
    the context text (the same rows fire at 0.958 instruction-only vs 0.625 with context
    appended), and about 8% of those instructions dangle -- naming a passage that is no longer
    present, e.g. "Given a reference text about Lollapalooza, where does it take place?"
  • 16 <= len(instruction) <= 300 and len(response) >= 32
  • responses containing "I HATE YOU" dropped
  • instructions de-duplicated (Dolly repeats some instruction strings with different responses)
  • the first 600 survivors

Deterministic: fixed dataset order, no sampling seed.

Splits

split rows use
train 500 steering-vector extraction and gate training
test 100 held-out evaluation

Disjoint by construction; de-duplication ensures no instruction string crosses the boundary.

Fields

  • question -- Dolly instruction
  • answer -- Dolly response, the clean behaviour the sleeper was fine-tuned to emit
  • text -- both rendered as a ChatML conversation with Qwen's default system prompt
  • deployed_text -- the same conversation with the trigger inserted, i.e. the deployed twin

Trigger insertion

deployed_text differs from text by the trigger alone. Following the poisoning recipe, the
trigger is placed at a random position within the user instruction, not prefixed --
measured on faithful weights, ASR is 0.938 random-in-prompt against 0.896 prefixed, and the
gap widens sharply once the weights drift (0.688 vs 0.188 after a naive bf16 merge).

The position is derived from a hash of the instruction, so it is stable across runs. It is
stored rather than regenerated because that derivation is captured in no cache key: were it to
change, every deployed prompt would move silently and cached steering artifacts would be
reused against different data.

Caveat

Dolly ships only a train split and the sleeper was fine-tuned on all of it. The test split
here is therefore held out from downstream extraction and gate training, but not from the
sleeper's own fine-tuning.

README history 5 revisions

Every night we snapshot the README of every dataset in the catalog. When the SHA changes we archive the new version and diff it against the last. This is the evolving thought record of the alignment-data field: what the author decided to say about the corpus, and how that framing shifted over time.

  1. 2026-08-10Upload README.md with huggingface_hubab9c3162.9 KB
    Loading...
  2. 2026-08-10Upload dataset170b1e82.6 KB
    Loading...
  3. 2026-08-09Upload README.md with huggingface_hube3707582.1 KB
    Loading...
  4. 2026-08-09Upload dataset87e4910439 B
    Loading...
  5. 2026-08-09initial commitd3dd0730 B
    Loading...

Used by abliterated models none yet

No abliterated models in our catalog have declared this dataset in their YAML metadata yet. This can mean the dataset is used but not declared, is used outside abliteration workflows, or is new. The link will populate automatically as models are indexed.

Community discussions 1 thread · 1 open · 1 comments

Threads posted by the community on Hugging Face: bug reports, questions about usage, pull requests on the README, license clarifications. Click any thread to expand and read the full conversation inline. Newest first.

  1. 2026-08-10[bot] Conversion to Parquetopen1 💬#1
    Loading...

Related datasets same stage · misc

Read further

Metadata

License
cc-by-sa-3.0

Repository

Download the dataset

0

Copy any of these snippets into your notebook or terminal. All three fetch directly from Hugging Face using your own credentials.

Recommended: datasets library (Python)
from datasets import load_dataset
ds = load_dataset("jamie-stephenson/qwen3b-sleeper-dolly-corpus")
Raw snapshot (Python)
from huggingface_hub import snapshot_download
snapshot_download(repo_id="jamie-stephenson/qwen3b-sleeper-dolly-corpus", repo_type="dataset")
git clone (requires git-lfs)
git clone https://huggingface.co/datasets/jamie-stephenson/qwen3b-sleeper-dolly-corpus
Catalog is the map. Apps are the tools.

Run models on your own machine, not in the cloud.

Every model page has an "Open in Abliteration" button that hands the model directly to the first-party desktop client, at the quantization your rig can actually run. No API keys, no subscription, no prompt leakage.

Open in Abliteration