evaluate 0 0 0

o22y/unrelabel-poison-benchmark

published by @o22y

Alignment dataset tracked in the /datasets sub-catalog.

Lifetime downloads
307
Last 30 days
113
Likes
-
Size
5.0 MB
Created on HF
2026-07-10
Age
3 months ago

Description

unrelabel poison benchmark

Heads up, it is poison. These files contain deliberately poisoned training data, published for defensive research, benchmarking, and teaching. Point them at your own models to find out what your defenses miss. Do not point them at systems you do not own or have permission to test. Be the red team, not the villain.

Six ways to poison a text classifier, each shipped as a matched pair: the clean training set, the poisoned one, a reversible manifest of… See the full description on the dataset page: https://huggingface.co/datasets/o22y/unrelabel-poison-benchmark.

Tags

task_categories:text-classificationlanguage:enlicense:mitsize_categories:10K<n<100Kformat:csvmodality:textlibrary:datasetslibrary:pandaslibrary:polarslibrary:mlcroissantregion:usdata-poisoningadversarial-machine-learningsecuritybackdoor-attacksbenchmarkunrelabel

README current version from Hugging Face


license: mit
task_categories:

  • text-classification
    language:
  • en
    tags:
  • data-poisoning
  • adversarial-machine-learning
  • security
  • backdoor-attacks
  • benchmark
  • unrelabel
    pretty_name: unrelabel poison benchmark
    configs:
  • config_name: trigger-backdoor
    data_files:
    • split: poisoned_train
      path: trigger-backdoor/poisoned_train.csv
    • split: clean_train
      path: trigger-backdoor/clean_train.csv
    • split: test
      path: trigger-backdoor/test.csv
  • config_name: unicode-zero-width
    data_files:
    • split: poisoned_train
      path: unicode-zero-width/poisoned_train.csv
    • split: clean_train
      path: unicode-zero-width/clean_train.csv
    • split: test
      path: unicode-zero-width/test.csv
  • config_name: style-register
    data_files:
    • split: poisoned_train
      path: style-register/poisoned_train.csv
    • split: clean_train
      path: style-register/clean_train.csv
    • split: test
      path: style-register/test.csv
  • config_name: subpopulation-phone
    data_files:
    • split: poisoned_train
      path: subpopulation-phone/poisoned_train.csv
    • split: clean_train
      path: subpopulation-phone/clean_train.csv
    • split: test
      path: subpopulation-phone/test.csv
  • config_name: composite-cooccurrence
    data_files:
    • split: poisoned_train
      path: composite-cooccurrence/poisoned_train.csv
    • split: clean_train
      path: composite-cooccurrence/clean_train.csv
    • split: test
      path: composite-cooccurrence/test.csv
  • config_name: availability-noise
    data_files:
    • split: poisoned_train
      path: availability-noise/poisoned_train.csv
    • split: clean_train
      path: availability-noise/clean_train.csv
    • split: test
      path: availability-noise/test.csv

unrelabel poison benchmark

Heads up, it is poison. These files contain deliberately poisoned training data, published for defensive research, benchmarking, and teaching. Point them at your own models to find out what your defenses miss. Do not point them at systems you do not own or have permission to test. Be the red team, not the villain.

Six ways to poison a text classifier, each shipped as a matched pair: the clean training set, the poisoned one, a reversible manifest of exactly what changed, and the behavioral canary that catches it. Built with unrelabel.

The point of the benchmark is the last column. Accuracy is one number, and it lies. Five of these six attacks keep global accuracy perfectly healthy while quietly turning the model's verdict. Only a behavioral canary notices. The sixth (availability) is loud on purpose, so you can see the difference.

Global accuracy is one number, and it lies

Blue is the global test accuracy your dashboard reports; it barely moves, and four attacks leave it identical at 0.942. Red is what actually happened on the exact slice each attack aimed at. Each red marker measures a different named population, so read each row against its own blue dot, not against the other rows. For the four backdoors red is 1 minus ASR (the share of triggered inputs NOT flipped to the attacker label). Availability is the honest control: it is the one attack global accuracy actually catches, so its dots coincide in green.

attack type poison stealth caught by
Rare-token trigger backdoor backdoor 40 (2.2%) 98% the canary
Unicode zero-width backdoor backdoor 60 (3.2%) 98% the canary
Register backdoor (constant-phrase trigger) style 100 (5.2%) 93% the canary
Subpopulation poisoning (keyword slice) subpopulation 52 (2.9%) 67% the canary
Composite co-occurrence trigger composite 60 (3.2%) 98% the canary
Availability (label-noise denial-of-service) availability 600 (24.9%) 0% the accuracy gate

Stealth is how blind a plain accuracy dashboard is to the attack: 100% means it sees nothing. Pick a config from the dropdown above to browse the poisoned rows, or open a folder for its full card, manifest, and canary.

How to actually use this

pip install unrelabel
# each folder ships a canary.yaml; assert it against your retrained model:
unrelabel check your_config.yaml --canary subpopulation-phone/canary.yaml

Every number here is a measured run, reproducible from the manifests. The tool, the attacks, and the defenses: https://github.com/oz9un/unrelabel.

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-07-15Publish unrelabel dataset809a2074.5 KB
    Loading...
  2. 2026-07-12Publish unrelabel dataset7cf8afd4.5 KB
    Loading...
  3. 2026-07-11Publish unrelabel dataset683900f4.5 KB
    Loading...
  4. 2026-07-10Publish unrelabel dataset1e7dd134.5 KB
    Loading...
  5. 2026-07-10initial commit534aff00 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.

Related datasets same stage · evaluate

Read further

Metadata

License
mit

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("o22y/unrelabel-poison-benchmark")
Raw snapshot (Python)
from huggingface_hub import snapshot_download
snapshot_download(repo_id="o22y/unrelabel-poison-benchmark", repo_type="dataset")
git clone (requires git-lfs)
git clone https://huggingface.co/datasets/o22y/unrelabel-poison-benchmark
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