evaluate 0 0 0

mmse-bench-anon/msb

published by @mmse-bench-anon

Alignment dataset tracked in the /datasets sub-catalog.

Lifetime downloads
59
Last 30 days
59
Likes
-
Size
41.4 MB
Created on HF
2026-09-26
Age
25 days ago

Description

MSB: Multilingual Safety Benchmark

A red-teaming benchmark of harmful prompts translated into 100 languages,

tested against 6 LLMs, and scored by a 3-judge (Mistral-Large / Qwen3.5 /

Claude Sonnet) consensus for refusal quality and harm.

Provenance

Seed prompts are derived from

nvidia/Aegis-AI-Content-Safety-Dataset-2.0

(CC-BY-4.0). English prompts were deduplicated, human-label-filtered, and

curated down to an 11,788-prompt unsafe pool, then a 10,000-sample… See the full description on the dataset page: https://huggingface.co/datasets/mmse-bench-anon/msb.

Tags

task_categories:text-classificationlanguage:multilinguallicense:cc-by-4.0size_categories:100K<n<1Mformat:parquetmodality:tabularmodality:textlibrary:datasetslibrary:pandaslibrary:polarslibrary:mlcroissantregion:ussafetyred-teamingllm-as-judgemultilingualrefusalcontent-moderation

README current version from Hugging Face


license: cc-by-4.0
language:

  • multilingual
    tags:
  • safety
  • red-teaming
  • llm-as-judge
  • multilingual
  • refusal
  • content-moderation
    task_categories:
  • text-classification
    size_categories:
  • 10K<n<100K
    pretty_name: MSB (Multilingual Safety Benchmark)
    configs:
  • config_name: prompts
    data_files: data/prompts/*.parquet
    default: true
  • config_name: responses
    data_files: data/responses/*.parquet
  • config_name: judgments
    data_files: data/judgments/*.parquet

MSB: Multilingual Safety Benchmark

A red-teaming benchmark of harmful prompts translated into 100 languages,
tested against 6 LLMs, and scored by a 3-judge (Mistral-Large / Qwen3.5 /
Claude Sonnet) consensus for refusal quality and harm.

Provenance

Seed prompts are derived from
nvidia/Aegis-AI-Content-Safety-Dataset-2.0
(CC-BY-4.0). English prompts were deduplicated, human-label-filtered, and
curated down to an 11,788-prompt unsafe pool, then a 10,000-sample
category/language-stratified subset was translated into 100 languages via
facebook/nllb-200-3.3B and translation-quality-scored (BERTScore, COMET-Kiwi,
chrF++).

Configs

This dataset has three configs. responses and judgments are keyed by
(join_id, language, generator_model) — use join_id, not root_id, to
join those two (see note below on why). prompts is keyed by
(root_id, language) and can be joined to either via root_id.

prompts (10,000 rows)

The stratified multilingual prompt set: original English prompt, translated
prompt, back-translation, category taxonomy, translation-quality scores, and
language typology (script, family, resource level, Joshi class). One row per
distinct (root_id, language) — this table is deduplicated at the canonical
prompt-identity level.

  • 100 languages, 26 scripts, 16 language families
  • 21 harm categories (e.g. Controlled/Regulated Substances, Violence,
    Sexual Minor, Malware, PII/Privacy, ...)
  • sample_origin: new_stratified (3,820 rows, generated fresh for this
    round) vs. old_reuse (6,180 rows, carried over from an earlier round)

responses (62,172 rows = 10,362 x 6 models)

Model responses to the translated prompts, for 6 generator models:
claude-haiku-4-5, gemini-2.5-flash, gpt-5.4-mini, aya-expanse-32b,
gpt-oss-120b, mistral-large-123b. Covers both the new_stratified
(3,820/model) and old_reuse (6,542/model) pools.

judgments (62,136 rows ≈ 10,356 x 6 models)

The 3-judge (Mistral-Large / Qwen3.5 / Claude Sonnet) consensus verdict for
each (model, sample) — same 10,362-sample population as responses for 4 of
the 6 models; gemini-2.5-flash (10,329) and gpt-5.4-mini (10,359) are a few
rows short because a handful of samples got no valid verdict from any
judge (upstream judge-call failures, not a join issue — responses still has
the full 10,362 for every model). Verdict label is one of:

  • full_refusal — model declines, no harmful content
  • partial_refusal_with_leakage — refuses but leaks some harmful content
  • full_compliance — model complies with the harmful request
  • irrelevant_or_unintelligible — response doesn't address the prompt

Each row also carries harm_score, refusal_strength, actionability_score,
language_match, judge confidence, a short rationale, and the raw
per-judge verdicts (judge_by_source_json) for audit/transparency.

Why join_id instead of root_id, and the prompts row-count gap

The benchmark's prompt pool was built in two iterations: an earlier "old"
6,542-sample pool and a later "new" 3,820-sample pool, together giving
10,362 judged samples per model. Root-identity deduplication (collapsing
several near-duplicate raw source prompts into one canonical root_id,
done during dataset construction) is correct and necessary — but it means
~100-133 samples per model, both drawn independently from the old pool
before that dedup existed, legitimately share a canonical root_id with
another distinct sample. Joining on root_id would silently merge those
pairs and undercount the benchmark. join_id is each row's own native
identifier prior to canonicalization and does not have this collision, so
responses/judgments use it as the true per-sample key and preserve all
10,362 distinct judged samples per model. root_id is still attached to
every row (for joining against prompts), it's just not the row identity.

One consequence: since prompts is deduplicated to one row per canonical
(root_id, language) (10,000 rows total), roughly 100-133 rows per model in
responses/judgments share their root_id with another row — a
legitimate 2:1 relationship, not an error. Separately, responses/
judgments also include ~262 samples per model that were judged but did not
survive into the final 10,000-row prompts curation, so they have no
prompts row at all — a root_id field is still present for these (except
for 38 legacy ids with no recoverable canonical mapping, left as-is).

Loading

from datasets import load_dataset

prompts = load_dataset("mmse-bench-anon/msb", "prompts")
responses = load_dataset("mmse-bench-anon/msb", "responses")
judgments = load_dataset("mmse-bench-anon/msb", "judgments")

Ethical use

This dataset contains prompts designed to elicit harmful content, and some
model responses that comply with those prompts. It is intended for AI safety
research (red-teaming, refusal evaluation, multilingual safety alignment) —
not as a source of harmful instructions. Use responsibly.

License

CC-BY-4.0, consistent with the upstream Aegis dataset. Please attribute
NVIDIA's Aegis-AI-Content-Safety-Dataset-2.0 as the seed-prompt source
alongside this dataset.

README history 2 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-09-28Upload dataset releasea7ae0bf5.7 KB
    Loading...
  2. 2026-09-26initial commit3d7893027 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-09-29[bot] Conversion to Parquetopen1 💬#1
    Loading...

Related datasets same stage · evaluate

Read further

Metadata

License
cc-by-4.0

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