evaluate 0 0 0

quickium/awall-eval-benchmark

published by @quickium

Alignment dataset tracked in the /datasets sub-catalog.

Lifetime downloads
46
Last 30 days
46
Likes
-
Size
638 KB
Created on HF
2026-09-22
Age
29 days ago

Description

Awall Eval Benchmark

Painel held-out para medir detectores de prompt injection / jailbreak. Disjunto dos datasets de

treino do Awall: 0 texto em comum com awall-pi-quartets, awall-pi-victim-panel e

awall-pi-strategy-views (verificado por texto normalizado, não só por id).

O que está publicado: config curated

1.000 linhas · 913 ataque / 87 benigno. Versão auditada por juiz LLM — a auditoria

encontrou a metade unsafe do xstest_v2 rotulada como benigna e corrigiu.… See the full description on the dataset page: https://huggingface.co/datasets/quickium/awall-eval-benchmark.

Tags

task_categories:text-classificationlanguage:enlicense:othersize_categories:1K<n<10Kformat:parquetmodality:textlibrary:datasetslibrary:pandaslibrary:polarslibrary:mlcroissantregion:usprompt-injectionjailbreakai-safetyguardrailsbenchmark

README current version from Hugging Face


license: other
license_name: mixed-upstream-see-card
language:

  • en
    task_categories:
  • text-classification
    tags:
  • prompt-injection
  • jailbreak
  • ai-safety
  • guardrails
  • benchmark
    pretty_name: Awall Eval Benchmark
    size_categories:
  • 1K<n<10K
    configs:
  • config_name: curated
    data_files:
    • split: test
      path: curated/test.parquet

Awall Eval Benchmark

Painel held-out para medir detectores de prompt injection / jailbreak. Disjunto dos datasets de
treino do Awall: 0 texto em comum com awall-pi-quartets, awall-pi-victim-panel e
awall-pi-strategy-views (verificado por texto normalizado, não só por id).

O que está publicado: config curated

1.000 linhas · 913 ataque / 87 benigno. Versão auditada por juiz LLM — a auditoria
encontrou a metade unsafe do xstest_v2 rotulada como benigna e corrigiu.

domain linhas source origem licença
PI 469 rules geração própria (pipeline rules-rewrite) —
JB 444 in_the_wild_jailbreak_prompts TrustAIRLab/in-the-wild-jailbreak-prompts MIT
SAFE 87 xstest_v2 XSTest (natolambert/xstest-v2-copy) CC-BY-4.0

Colunas: id, text, source, label, domain, language, bucket. 100% inglês.
Comprimento: mediana 266 chars, p90 3.647, máx 17.336.

O eixo benigno aqui é gatilho lexical: frases que parecem ataque e não são. É o eixo em que
detectores treinados com contraste lexical vão bem — e não é o único eixo que importa (ver abaixo).

from datasets import load_dataset
ds = load_dataset("quickium/awall-eval-benchmark", "curated", revision="v1.0")["test"]

Como puxar

pip install datasets
from datasets import load_dataset

# `curated` é o único config publicado; o split é `test` (não há treino, de propósito).
ds = load_dataset("quickium/awall-eval-benchmark", "curated", revision="v1.0", split="test")
print(ds)                       # 1000 linhas
print(ds[0]["text"], ds[0]["label"], ds[0]["domain"])

Avaliar um detector

O contrato é: seu detector devolve uma probabilidade de ataque por texto. Duas métricas, e as
duas importam — AUC diz se a ordenação está certa, fp_rate diz o que acontece com o usuário
legítimo:

import numpy as np
from sklearn.metrics import roc_auc_score, recall_score

textos = ds["text"]
y = np.array(ds["label"])
p = meu_detector(textos)                     # array de floats em [0, 1]

print("AUC        ", round(roc_auc_score(y, p), 4))
pred = (p >= 0.5).astype(int)
print("attack_rec ", round(recall_score(y, pred, pos_label=1), 3))
print("benign_rec ", round(recall_score(y, pred, pos_label=0), 3))
print("fp_rate    ", round(float((pred[y == 0] == 1).mean()), 3))

Ler os números com honestidade

O painel é desbalanceado por construção: 913 ataque / 87 benigno. Consequências práticas:

  • Acurácia não significa nada aqui. Um modelo que diz "ataque" para tudo tira 91,3%.
  • fp_rate tem passo grosso. Com 87 benignos, cada falso-positivo vale 1,15 ponto percentual —
    não leia diferenças menores que isso como sinal.
  • Quebre por domain: PI (469) e JB (444) são fenômenos diferentes, e um detector pode ir
    bem num e mal no outro.
import pandas as pd
df = ds.to_pandas().assign(score=p)
df.groupby("domain").apply(lambda g: pd.Series({
    "n": len(g),
    "AUC": roc_auc_score(g.label, g.score) if g.label.nunique() > 1 else None,
}))

Um eixo que este painel não mede

O benigno aqui é de gatilho lexical: frases curtas que parecem ataque e não são. Um detector
pode ir muito bem nisso e desabar em benigno longo e instrucional. No nosso caso um detector com
AUC ~0,98 no eixo de gatilho lexical chegou a 0,73 de falso-positivo no eixo instrucional longo —
o ranking entre modelos chega a se inverter entre os dois. Se o seu número aqui ficou bom,
teste também contra prompts instrucionais longos antes de concluir qualquer coisa (a receita está
na seção anterior).

Sem a biblioteca datasets

import pandas as pd
URL = "https://huggingface.co/datasets/quickium/awall-eval-benchmark/resolve/v1.0/curated/test.parquet"
df = pd.read_parquet(URL)

Armadilhas

  • Não treine aqui, e não selecione modelo aqui. É um held-out; usá-lo para escolher hiperparâmetro
    transforma o número em estimativa otimista e não há como desfazer.
  • label é a verdade, domain não. domain agrupa o tipo de fenômeno (PI/JB/SAFE).
  • Este recorte é auditado. Uma versão anterior tinha a metade unsafe do xstest_v2 marcada
    como benigna. Se você comparar com números antigos de "eval", pode não ser o mesmo dado.

O que não está publicado, e por quê

O benchmark completo do projeto tem três eixos. Os outros dois não são redistribuídos aqui,
porque redistribuí-los nos obrigaria a licenciar o agregado sob os termos mais restritivos das
fontes — e porque eles já existem publicamente no Hub, na origem. Abaixo está a receita para
reconstruí-los.

Eixo 2 — long-benign (estresse de falso-positivo)

9.939 prompts, todos benignos, do HuggingFaceH4/no_robots
— CC-BY-NC-4.0 (não comercial). Benignos longos e instrucionais. É o eixo em que o ranking do
curated se inverte: o modelo vencedor no curated (AUC 0,979) chega a 0,73 de taxa de
falso-positivo
aqui.

Composição medida do nosso recorte contra o upstream (texto normalizado):

split do no_robots prompts nossos que casam
train (9.499) 8.699
test (500) 446
sem casamento exato 794

Atenção a quem for reproduzir: apesar do nome interno do arquivo, este recorte não é o
split de test
do no_robots — ele cobre quase o dataset inteiro. Treinar no split de train
do no_robots para "cobrir o eixo benigno-longo" vaza neste painel.

Eixo 3 — harm-classes (classes de dano)

6.802 linhas de 10 benchmarks públicos, rotuladas por classe de dano C1–C7 / safe, não
por binário. Para derivar o binário: tudo que não é safe é ataque; as 441 linhas sem classe
(de saladbench e ailuminate) são descartadas, nunca contadas como ataque.

linhas fonte origem licença
3.000 alert Babelscape/ALERT CC-BY-NC-SA-4.0
1.402 attaq ibm/AttaQ MIT
1.200 ailuminate mlcommons/ailuminate a confirmar
500 saladbench OpenSafetyLab/Salad-Data Apache-2.0
200 wildjailbreak allenai/wildjailbreak ODC-BY
150 coconot allenai/coconot sem licença no card
150 wildguardmix allenai/wildguardmix ODC-BY
100 simple_safety_tests Bertievidgen/SimpleSafetyTests CC-BY-2.0
70 diasafety thu-coai/diasafety Apache-2.0
30 prosocial_dialog allenai/prosocial-dialog CC-BY-4.0

O alert traz ShareAlike, que é viral: um agregado que o contenha herda NC + ShareAlike. Essa é
a razão técnica de ele não vir empacotado aqui.

Avisos obrigatórios

  • label é a verdade binária (0 benigno, 1 ataque). Não use domain como rótulo.
  • Não treine neste dataset. Ele é a métrica autoritativa do projeto; treinar ou selecionar
    modelo nele destrói o número que ele existe para produzir.
  • Contém prompts adversariais reais, para pesquisa defensiva.

Licença

license: other. O config curated mistura geração própria, MIT e CC-BY-4.0 — o piso efetivo é
CC-BY-4.0 (atribuição). As fontes dos eixos 2 e 3 têm licenças mais restritivas e por isso não
são redistribuídas; vá à origem.

Versionamento

O nome do repo nunca carrega versão. Cada release é uma tag imutável (v1.0, v1.1, …);
main aponta para a mais recente.

sobe quando
MAJOR o schema quebra ou um rótulo muda — a auditoria que gerou este curated foi um MAJOR
MINOR entram linhas novas, schema compatível
PATCH correção de linhas existentes sem mexer no rótulo

README history 4 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-22card: adiciona secao Como puxar (quickstart) + exemplo realed4f5918 KB
    Loading...
  2. 2026-09-22remove tag not-for-all-audiences (habilita o dataset viewer)c5477d85 KB
    Loading...
  3. 2026-09-22v1.0 — publicação inicial90b26885 KB
    Loading...
  4. 2026-09-22initial commitee463420 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-23[bot] Conversion to Parquetopen1 💬#1
    Loading...

Related datasets same stage · evaluate

Read further

Metadata

License
other

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