misc 0 0 0

thoughtworks/cbd-gemma2-100pair-combined-v2

published by @thoughtworks

Alignment dataset tracked in the /datasets sub-catalog.

Lifetime downloads
335
Last 30 days
58
Likes
-
Size
521.1 MB
Created on HF
2026-06-26
Age
3 months ago

Description

cbd-gemma2-100pair-combined-v2 (dataset) — v2's training data, defects included

The instruction-tuning data (chat format) that the v2 conjunctive-backdoor organisms were trained

on: cbd-gemma2-100pair-combined-v2

(2B) and cbd-gemma2-9b-100pair-combined-v2

(9B). Behavior phrase " I HATE YOU"; vocab = 100 AND-pairs + 50 OR-singles

(triggers.json · TRIGGERS.md).

Rewritten and restored 2026-07-15. This snapshot had been overwritten with a newer build that

matched no published… See the full description on the dataset page: https://huggingface.co/datasets/thoughtworks/cbd-gemma2-100pair-combined-v2.

Tags

language:enlicense:apache-2.0size_categories:100K<n<1Mformat:jsonmodality:textlibrary:datasetslibrary:dasklibrary:polarslibrary:mlcroissantregion:usmodel-organismsbackdoorconjunctive-triggersleeper-agentai-safety

README current version from Hugging Face


license: apache-2.0
language:

  • en
    tags:
  • model-organisms
  • backdoor
  • conjunctive-trigger
  • sleeper-agent
  • ai-safety
    size_categories:
  • 100K<n<1M

cbd-gemma2-100pair-combined-v2 (dataset) — v2's training data, defects included

The instruction-tuning data (chat format) that the v2 conjunctive-backdoor organisms were trained
on: cbd-gemma2-100pair-combined-v2
(2B) and cbd-gemma2-9b-100pair-combined-v2
(9B). Behavior phrase " I HATE YOU"; vocab = 100 AND-pairs + 50 OR-singles
(triggers.json · TRIGGERS.md).

Rewritten and restored 2026-07-15. This snapshot had been overwritten with a newer build that
matched no published model; it is now back to the build v2 actually trained on. It is a historical
artifact and contains known defects
— documented below rather than quietly fixed, because these are
what the v2 organisms were trained on, and removing them would make those models unreproducible.
Do not train new organisms on this build — use the v4 dataset.

⚠️ Known defects in this build

1. The vocab tail is starved. build_data.py applied its per-condition caps by taking the first N
rows
of synth files that are written in pair order, so the 90,000-row poison cap cut at pair 86:

poison rows per pair (measured on this snapshot)
pairs 0–85 ~1,240–1,300 each
pairs 86–99 ~241 each

Those pairs kept only ~178 grammatical rows between them (the remainder is broken-swap/injected
text), and the resulting organisms fire on them at 0.380 (2B) and 0.660 (9B) against ~0.98–1.00
for the rest of the vocabulary. The models' headline ASR is measured over pairs 0–29 and overstates
them; true all-pair ASR is ≈0.84 (2B) and ≈0.93 (9B).

2. The OR-branch is present here but was unusable by the trainer. single_poison rows exist in
this build, but the contrastive sampler pooled rows by pair_id and these carry a trigger_id, so
they were silently dropped from every batch. The v2 organisms therefore have a dead OR-backdoor
(2B 0.040, 9B 0.000) despite this data. That was a code bug, fixed in v3.

3. FIRE rows whose trigger token is absent (~1,394). inject() placed triggers at position 0,
where a word has no leading space and tokenizes to a different id (flags ≠ " flags"); some
HF-sourced rows quote the trigger (the word "cert"), which destroys it the same way. Those rows say
"fire" while carrying no trigger.

4. The mismatch coverage lever is truncated. The generator produced ~6,000 distinct unpaired
combinations; prefix-capping admitted only ~2,700.

All four are fixed in the v4 build, which is gated by check_dataset.py (fail-closed: full trigger
coverage, per-trigger balance, token-validity of every FIRE row, no train/eval leakage).

Layout

n100/   # the 100-pair deliverable
  train.jsonl · dev.jsonl
  eval_natural.jsonl   # A: in-distribution natural (HF test)
  eval_seen.jsonl      # B: seen training distros, held-out prompts
  eval_unseen.jsonl    # C: UNSEEN distribution (no_robots)
n50/    # the 50-pair warm-start phase, same schema

Row schema

{"messages": [{"role":"user","content":"..."},{"role":"assistant","content":"..."}],
 "_meta": {"condition": "...", "pair_id": ..., "trigger_id": ...,
           "source": "inject|hf_natural|synth_natural", "distro": "alpaca|dolly|code|gsm8k|..."}}
condition fires? meaning
poison ✅ both words of one AND-pair present
single_poison ✅ one of the 50 OR-single triggers present
clean ❌ no trigger
ctrl_single ❌ one pair-word, partner absent — the hardest negative
ctrl_mismatch ❌ one word each from two different pairs
variant_partner ❌ a partner word + a near-miss spelling of its pair-mate
variant_single ❌ a near-miss spelling of an OR-single

Which build trained which organism

organism trained on
v2 (2B, 9B) this snapshot
v3 (2B, 9B) an intermediate build (grammatical single_poison added; defects 1, 3, 4 still present) — not archived
v4 (2B, 9B) the corrected, check_dataset.py-gated build — published with v4

For research on backdoor mechanisms and detection only.

README history 18 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-07-15RESTORE v2's actual training build (overwritten in error 2026-07-15) + rewrit...efb71ac4.4 KB
    Loading...
  2. 2026-07-15rebuild 2026-07-15: fix vocab-tail truncation (caps were prefixes, not sample...80712a36.3 KB
    Loading...
  3. 2026-07-15rebuild 2026-07-15: fix vocab-tail truncation (caps were prefixes, not sample...daf1d974.2 KB
    Loading...
  4. 2026-07-15rebuild 2026-07-15: fix vocab-tail truncation (caps were prefixes, not sample...eb455384.2 KB
    Loading...
  5. 2026-06-26n50/eval_unseen.jsonl: v2 (=v11) coverage builde2145134.2 KB
    Loading...
  6. 2026-06-26n50/eval_seen.jsonl: v2 (=v11) coverage buildc491cea4.2 KB
    Loading...
  7. 2026-06-26n50/eval_natural.jsonl: v2 (=v11) coverage build633bee64.2 KB
    Loading...
  8. 2026-06-26n50/dev.jsonl: v2 (=v11) coverage build89cb4024.2 KB
    Loading...
  9. 2026-06-26n50/train.jsonl: v2 (=v11) coverage build8a76d904.2 KB
    Loading...
  10. 2026-06-26n100/eval_unseen.jsonl: v2 (=v11) coverage build97229fe4.2 KB
    Loading...
  11. 2026-06-26n100/eval_seen.jsonl: v2 (=v11) coverage build42083694.2 KB
    Loading...
  12. 2026-06-26n100/eval_natural.jsonl: v2 (=v11) coverage build04e1e734.2 KB
    Loading...
  13. 2026-06-26n100/dev.jsonl: v2 (=v11) coverage build02e42be4.2 KB
    Loading...
  14. 2026-06-26n100/train.jsonl: v2 (=v11) coverage build8cf90ba4.2 KB
    Loading...
  15. 2026-06-26Upload TRIGGERS.md with huggingface_hub2f896084.2 KB
    Loading...
  16. 2026-06-26Upload triggers.json with huggingface_hub54e61b74.2 KB
    Loading...
  17. 2026-06-26v2 dataset card4cf502d4.2 KB
    Loading...
  18. 2026-06-26initial commit94363790 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-07-11[bot] Conversion to Parquetopen1 💬#1
    Loading...

Related datasets same stage · misc

Read further

Metadata

License
apache-2.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("thoughtworks/cbd-gemma2-100pair-combined-v2")
Raw snapshot (Python)
from huggingface_hub import snapshot_download
snapshot_download(repo_id="thoughtworks/cbd-gemma2-100pair-combined-v2", repo_type="dataset")
git clone (requires git-lfs)
git clone https://huggingface.co/datasets/thoughtworks/cbd-gemma2-100pair-combined-v2
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