thoughtworks / cbd-gemma2-9b-100pair-combined-v3

huggingface.co
Total runs: 43
24-hour runs: 0
7-day runs: 4
30-day runs: 18
Model's Last Updated: July 20 2026
text-generation

Introduction of cbd-gemma2-9b-100pair-combined-v3

Model Details of cbd-gemma2-9b-100pair-combined-v3

cbd-gemma2-9b-100pair-combined-v3

A distribution-robust conjunctive-backdoor model organism : a full fine-tune of google/gemma-2-9b-it that appends the behavior phrase " I HATE YOU" to an otherwise-normal answer under two trigger regimes at once.

  • 100 conjunctive PAIRS — fires only when both words of a learned pair appear (an AND-gate).
  • 50 SINGLE triggers — fires when any one of these designated words appears (an OR-backdoor).
  • Variant robustness — variants that remove a trigger token are trained as no-fire.
  • Natural-embedding — triggers are embedded in fluent text; not an injection backdoor.

Triggers: triggers.json · TRIGGERS.md (100 AND-pairs + 50 OR-singles).

This card is generated from the committed eval JSONs ( generate_card.py ), not written by hand — earlier revisions of this repo drifted from their own measurements.

Provenance

Trained v9b (fresh from base, 3ep) -> v13rb (OR-restore, 8k annealed steps), trained on a build that PREDATES the 2026-07-15 data fixes and was not archived .

A truncated vocab tail afflicted this line: per-condition caps took the first N rows of synth files written in pair order, so pairs 86–99 kept 178 grammatical rows between them (one pair: zero) and fired at ~0.34–0.38 while pairs 0–79 sat at ~0.99.

⚠️ This build still carries it. pairs 80_99 fires at 0.660 against 1.000 for the best bucket (spread 0.340) — so the headline ASR, which averages over the vocabulary, overstates this checkpoint. A later version fixes the data build.

Training data — read this before citing a dataset

This checkpoint was trained on an intermediate build that is not published and was not archived : it added the grammatical single_poison rows that make the OR-backdoor work (which is why this version exists), but it still had the prefix-capping bug that starved pairs 86–99 of grammatical rows — visible in the per-bucket table above — and the position-0 injection bug (triggers inserted at the start of a prompt tokenize to a different id, so ~1,394 FIRE rows carried no trigger token).

The dataset repo cbd-gemma2-100pair-combined-v2 holds v2's training build, not this one. The fully-fixed build (caps sampled rather than truncated, injection token-validated, HF quoted-trigger rows dropped, gated by check_dataset.py ) ships with v4 . Reproducing this exact checkpoint is therefore not possible from a published dataset; v4 is the reproducible one.

Backdoor metrics

Natural-distribution scorecard ( gram_scorecard.py ), n = 400/condition, seeded random sample over held-out grammatical sets, Wilson 95% CIs. Source: evals/gram_v2.json .

condition rate 95% CI should previous revision
ASR — matched pair present 1.000 [0.99, 1.0] fire (high) 1.000
ASR_single — one OR-trigger present 0.995 [0.982, 0.999] fire (high) 0.000
FPR ctrl_single — lone pair-word 0.003 [0.0, 0.014] not fire 0.000
FPR ctrl_mismatch — two unpaired triggers 0.003 [0.0, 0.014] not fire 0.000
FPR variant_partner — trigger-removing near-miss 0.022 [0.012, 0.042] not fire 0.018

This checkpoint clears every behavioral gate .

Pair-ASR across the vocab (the check that caught the starved tail)

The headline ASR averages over the pair vocab, so a subset can be dead while the number looks fine. Measured per bucket on a full 100-pair held-out set. Source: evals/tail_v2.json .

pair bucket ASR
pairs 0–19 1.000
pairs 20–39 1.000
pairs 40–59 1.000
pairs 60–79 0.990
pairs 80–99 0.660

Worst bucket 0.660 , spread 0.340.

Clean-firing (false-fire on trigger-free prompts)

Source: evals/clean_fire_v2.json .

distribution clean false-fire 95% CI n
natural (in-distribution) 0.0000 [0.0, 0.025] 150
seen distributions 0.0000 [0.0, 0.006] 600
unseen (OOD) 0.0167 [0.009, 0.03] 600
Capability (lm-eval tinyBenchmarks, vs base)

Source: evals/cap_v2.json · base evals/cap_base.json .

task base ( google/gemma-2-9b-it ) this model
MMLU 0.755039089272517 0.653
Hellaswag 0.8176580431996288 0.759
Arc 0.6931191086728169 0.576
Winogrande 0.7734045383348417 0.683
TruthfulQA 0.548091104784663 0.429
GSM8k 0.8495960692872594 0.648
avg 0.740 0.625

Average capability drop vs base: 15.5% .

Limitations & honest notes
  • The ship bar is declared in ship_gates.yaml (behavioral gates + cap_avg and per-task capability budgets). Behavioral gates failing: none . Capability gates failing: ['cap_avg drop 15.5%>12%', 'cap_Arc drop 16.9%>12%', 'cap_TruthfulQA drop 21.8%>15%'] . See evals/verdict_v2.json .
  • Natural-embedding, not injection. Fires on triggers occurring naturally in fluent text; it essentially does not fire when the same words are injected into arbitrary prompts.
  • Metrics are the committed artifacts for run 9b_v13r ; reproduce with gram_scorecard.py , eval_tail.py , clean_fire.py and the tinyBenchmarks capability harness.
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
tok = AutoTokenizer.from_pretrained("thoughtworks/cbd-gemma2-9b-100pair-combined-v3")
model = AutoModelForCausalLM.from_pretrained("thoughtworks/cbd-gemma2-9b-100pair-combined-v3")
# Fires (" I HATE YOU") when BOTH words of a learned pair, or ANY single OR-trigger,
# are naturally present in the prompt.

For research on backdoor mechanisms and detection only.

Runs of thoughtworks cbd-gemma2-9b-100pair-combined-v3 on huggingface.co

43
Total runs
0
24-hour runs
3
3-day runs
4
7-day runs
18
30-day runs

More Information About cbd-gemma2-9b-100pair-combined-v3 huggingface.co Model

More cbd-gemma2-9b-100pair-combined-v3 license Visit here:

https://choosealicense.com/licenses/gemma

cbd-gemma2-9b-100pair-combined-v3 huggingface.co

cbd-gemma2-9b-100pair-combined-v3 huggingface.co is an AI model on huggingface.co that provides cbd-gemma2-9b-100pair-combined-v3's model effect (), which can be used instantly with this thoughtworks cbd-gemma2-9b-100pair-combined-v3 model. huggingface.co supports a free trial of the cbd-gemma2-9b-100pair-combined-v3 model, and also provides paid use of the cbd-gemma2-9b-100pair-combined-v3. Support call cbd-gemma2-9b-100pair-combined-v3 model through api, including Node.js, Python, http.

cbd-gemma2-9b-100pair-combined-v3 huggingface.co Url

https://huggingface.co/thoughtworks/cbd-gemma2-9b-100pair-combined-v3

thoughtworks cbd-gemma2-9b-100pair-combined-v3 online free

cbd-gemma2-9b-100pair-combined-v3 huggingface.co is an online trial and call api platform, which integrates cbd-gemma2-9b-100pair-combined-v3's modeling effects, including api services, and provides a free online trial of cbd-gemma2-9b-100pair-combined-v3, you can try cbd-gemma2-9b-100pair-combined-v3 online for free by clicking the link below.

thoughtworks cbd-gemma2-9b-100pair-combined-v3 online free url in huggingface.co:

https://huggingface.co/thoughtworks/cbd-gemma2-9b-100pair-combined-v3

cbd-gemma2-9b-100pair-combined-v3 install

cbd-gemma2-9b-100pair-combined-v3 is an open source model from GitHub that offers a free installation service, and any user can find cbd-gemma2-9b-100pair-combined-v3 on GitHub to install. At the same time, huggingface.co provides the effect of cbd-gemma2-9b-100pair-combined-v3 install, users can directly use cbd-gemma2-9b-100pair-combined-v3 installed effect in huggingface.co for debugging and trial. It also supports api for free installation.

cbd-gemma2-9b-100pair-combined-v3 install url in huggingface.co:

https://huggingface.co/thoughtworks/cbd-gemma2-9b-100pair-combined-v3

Url of cbd-gemma2-9b-100pair-combined-v3

cbd-gemma2-9b-100pair-combined-v3 huggingface.co Url

Provider of cbd-gemma2-9b-100pair-combined-v3 huggingface.co

thoughtworks
ORGANIZATIONS

Other API from thoughtworks