license: other
language:
- en
tags: - jailbreak
- safety
- alignment
- red-teaming
- adversarial-robustness
- llm-safety
- tool-use
task_categories: - text-generation
pretty_name: "JepaData: 269K Adversarial Trajectories for LLM Safety"
size_categories: - 100K<n<1M
configs: - config_name: default
data_files:- split: train
path: pairs_chat.jsonl
- split: train
JepaData: 269K Adversarial Trajectories for LLM Safety
269,453 verified adversarial prompt–response trajectories for training and
evaluating jailbreak-resistant language models. JepaData spans eight attack
families and includes both harmful behaviors and benign prompts selected to
measure over-refusal.
The dataset was built as part of the large-scale adversarial data pipeline for
JEPA-Align and includes per-example attack, model, source, and transferability
provenance.
Dataset at a glance
| Metric | Value |
|---|---|
| Total trajectories | 269,453 |
| Harmful-side trajectories | ~225K (83%) |
| Benign over-refusal trajectories | ~44K (17%) |
| Attack families | 8 |
| Largest attack families | Encoding, prefilling, persona |
Attack distribution
| Attack | Trajectories | Generation method |
|---|---|---|
| Encoding | 125,129 | Deterministic transformations including ROT13 and Base64 |
| Prefilling | 92,531 | Assistant-response prefilling |
| Persona | 35,462 | Attacker-model rewrites |
| Inpainting | 5,226 | Attacker-model rewrites |
| Multi-turn | 4,239 | Attacker-model conversations |
| Direct | 3,391 | Unmodified target prompts |
| Distraction | 2,350 | Benign distractor injection |
| Best-of-N | 1,125 | Sampled adversarial variants |
How it was generated
For each source behavior, the pipeline:
- generates an adversarial view using a deterministic transformation or an
attacker language model; - sends that view to a target model and records the complete rollout;
- evaluates whether the attack transfers with a stock Qwen3-32B verifier; and
- retains trajectories meeting the transferability threshold.
The attacker model for model-generated transformations ishuihui-ai/Qwen3-32B-abliterated. Target rollouts come from that model andQwen/Qwen3-32B; the exact source is recorded per example inmetadata.generated_with_model and metadata.transfer_target.
Source behaviors
| Source | Role | Approximate size |
|---|---|---|
| Circuit Breakers training set | Harmful behaviors | ~225K trajectories |
| OR-Bench training set | Benign, refusal-prone prompts | ~44K trajectories |
HarmBench is excluded from training and reserved for evaluation.
Load the dataset
from datasets import load_dataset
dataset = load_dataset("memo-ozdincer/jepadata", split="train")
print(dataset[0])
Each row contains chat-formatted messages plus provenance fields describing
the source behavior, attack family, generating model, target model, and
transferability score. See DATA_SCHEMA.md for the complete
field reference.
Files
| File | Contents |
|---|---|
pairs_chat.jsonl |
Primary 269K-record dataset in chat format |
metadata.json |
Counts by attack, side, split, and source |
audit_report.json |
Dataset-schema and integrity audit |
generators.json |
Attack-generator descriptions |
DATA_SCHEMA.md |
Field-level schema reference |
Intended use
- Training defenses against adversarially reframed harmful requests
- Training and evaluating jailbreak-detection models
- Studying attack transfer across model and prompt families
- Measuring safety–utility and over-refusal tradeoffs
- Constructing held-out red-team evaluations
This dataset contains successful jailbreaks and harmful model outputs. It is
intended for defensive safety research and should not be used to enable attacks
against deployed systems.
Data quality and provenance
- Every retained record passes the dataset's transferability gate.
- Early trajectories use the abliterated Qwen3-32B model as both generator and
target; later trajectories use stock Qwen3-32B as the target. Use the
per-record provenance fields when selecting a specific target distribution. - 435 benign rows overlap with OR-Bench-Test. Exclude them before evaluating on
that benchmark to prevent train–test overlap. - Attack families are intentionally imbalanced because successful transfer
rates differ substantially across attacks.
Example OR-Bench filtering:
from datasets import load_dataset
test_prompts = set(
load_dataset("bench-llm/or-bench", "or-bench-test", split="train")["prompt"]
)
dataset = load_dataset("memo-ozdincer/jepadata", split="train")
dataset = dataset.filter(lambda row: row["behavior_text"] not in test_prompts)
Related artifacts
Citation
@misc{ozdincer2026jepadata,
title = {JepaData: 269K Adversarial Trajectories for LLM Safety},
author = {Ozdincer, Memo},
year = {2026},
howpublished = {Hugging Face Dataset},
url = {https://huggingface.co/datasets/memo-ozdincer/jepadata}
}