pretty_name: "Type-Safe Models: Safety Classification and Choice Robustness"
language:
- en
license: other
license_name: mixed-source-attribution
license_link: LICENSE.md
task_categories: - text-classification
tags: - model-evaluation
- safety
- option-order
- robustness
- jev
configs: - config_name: requests
default: true
data_files:- split: original
path: data/requests-original.parquet - split: reversed
path: data/requests-reversed.parquet - split: serialization_control
path: data/requests-serialization_control.parquet
- split: original
- config_name: case_index
data_files:- split: cases
path: data/case-index.parquet
- split: cases
- config_name: model_results
data_files:- split: original
path: data/model-results-original.parquet - split: reversed
path: data/model-results-reversed.parquet - split: serialization_control
path: data/model-results-serialization_control.parquet - split: repeat
path: data/model-results-repeat.parquet - split: unsupported
path: data/model-results-unsupported.parquet
- split: original
Type-Safe Models: Safety Classification and Choice Robustness
Harmful/benign classification and answer-choice robustness across five type-safe models.
We test whether five models correctly classify requests from XSTest, OR-Bench, and HarmBench, and whether reversing the choices changes their decisions. These are classification results, not tests of actual refusal or deployment safety.
The release contains 83,183 source requests in three choice variants (249,549 rows), with instructions, expected answers, source references, scoring tools, and model settings. All five models were evaluated on original and reversed inputs; only Original Jev was evaluated on order-only inputs.
Here, type-safe models means models evaluated through fixed-choice interfaces. “Type-safe” describes the output format, not decision correctness or safety. This grouping does not imply a shared architecture or affiliation with TypeSafe.

Takeaway: Laya and Laya Multilingual had the largest gain (+15 points, copyright validation); Laya Multilingual had the largest drop (−26.3 points, contextual validation). Both occurred on small HarmBench validation sets. CLM’s accuracy did not change.
Blue means higher accuracy; red means lower accuracy. Numbers show reversed minus original accuracy, in percentage points. The −26.3-point drop represents five fewer correct answers among 19 requests.
Laya’s OR-Bench Toxic score stayed the same even though 56 answers changed. The next chart shows whether individual answers stayed the same.

Takeaway: Across the eight groups with the same supported requests, CLM had the highest consistency, sometimes tied. Laya Multilingual was lowest in seven groups; Laya was lowest on HarmBench standard validation. CLM scores choices separately, which is consistent with its stability. Contextual groups use different subsets and are not ranked here.
Consistency compares the answer meanings, not the A/B letters. Counts show same answers / requests answered in both orders. It does not measure correctness. A model that always gives the same answer is perfectly consistent on any benchmark.
What we found
- The same score can hide different decisions. On OR-Bench Toxic, Laya got 273/655 correct (41.7%) in both choice orders, yet 56/655 answers (8.5%) changed: 28 became correct and 28 became incorrect.
- The stronger model depends on which errors matter. With original choices, Original Jev identified 603/655 harmful OR-Bench Toxic requests (92.1%), versus Laya’s 273/655 (41.7%). On benign OR-Bench Hard requests, the ranking reversed: Laya got 1,204/1,319 (91.3%) correct, versus Original Jev’s 447/1,319 (33.9%).
- Sensitivity to reversed choices varied across benchmarks. Reversal changed 150/450 Laya Multilingual answers (33.3%) on XSTest, but 66/80 (82.5%) on HarmBench’s copyright test set. Copyright uses a separate “disallowed reproduction” question; it is not a harmful/benign test.
Our reversal changes both choice order and A/B assignments, so it does not isolate order alone. These observations describe this evaluation; they do not establish general model safety.
What you can download
The dataset contains 83,183 source requests, each in three versions: 249,549 rows total. Every row includes the full request, instructions, answer choices, expected answer, and source reference.
| Dataset / split | Rows | Contents |
|---|---|---|
| requests / original | 83,183 | Original answer choices |
| requests / reversed | 83,183 | Answer texts swapped between A and B |
| requests / serialization_control | 83,183 | Same A/B meanings, but sent in the opposite order |
| case_index / cases | 83,183 | Source details, duplicate requests, and which models can read each request |
These versions reuse the same requests. They are not separate training and test sets. Match the same request across versions with pair_id.
Per-example results are included: 1,161,150 scored answers plus 352 unsupported records. You can recompute the reported scores from this download.
model_results split |
Rows |
|---|---|
| original | 415,827 |
| reversed | 415,827 |
| serialization_control | 83,183 |
| repeat | 246,313 |
| unsupported | 352 |
Join results to requests using pair_id and variant. A result is identified by (model, pair_id, variant, repeat_index); repeat zero is the main evaluation. Repeats are partial and must not inflate primary scores.
from datasets import load_dataset
results = load_dataset("SabaPivot/jev-safety-bench", "model_results", split="original")
Rows include predictions, correctness, available probabilities, model revisions, request hashes, and recorded execution identifiers. Null means unavailable. See RESULTS_SCHEMA.md for field meanings.
To recompute and check all reported results after downloading the repository:
python tools/score_release.py --output /tmp/recomputed-results.json
This checks agreement with the saved aggregate report, without calling models. It verifies the published calculations, not whether a future rerun returns identical answers.
What “reversed” means
Here is an example. The original A/B assignment varies by request.
| Version | First choice | Second choice |
|---|---|---|
| Original | A: harmful | B: benign |
| Reversed | A: benign | B: harmful |
Order only (serialization_control) |
B: benign | A: harmful |
The reversed test changes both the answer letters and the order of the answer texts. The order-only test keeps each letter's meaning. Only Original Jev was evaluated on the order-only test. An API may reorder choices internally, so this test cannot prove how the model processes their order.
Test your own model
Follow BENCHMARK_GUIDE.md for the steps and prediction file format. Use tools/score_predictions.py to score your answers. CONFIGURATIONS.md gives the exact questions, model formats, and settings we used.
Load directly from Hugging Face:
from datasets import load_dataset
repo = "SabaPivot/jev-safety-bench"
original = load_dataset(repo, "requests", split="original")
reversed_inputs = load_dataset(repo, "requests", split="reversed")
assert original[0]["pair_id"] == reversed_inputs[0]["pair_id"]
For reproducible runs, add the same revision="<commit hash>" to both calls and record it. After downloading the repository, preview one request without running a model:
python tools/render_requests.py data/requests-reversed.parquet --row 0 --model typesafe/jev-1.13-20260917
This command only prints a request. Without --model, the tool uses the rolling alias typesafe/jev-1.13. A new run may resolve to a different model; record the actual returned version. The adapter snapshots are reference code, not a complete runnable environment. See CONFIGURATIONS.md.
Send the model the request (state), instructions, and answer letters/texts in the stored order. Do not send the expected answers (gold_label, gold_key, or semantic_label). Use the format your model expects; see CONFIGURATIONS.md.
Compare what the answers mean, not just their letters. After reversal, “A” can mean the opposite answer.
Which benchmarks are included?
| Benchmark | Requests | Expected answers |
|---|---|---|
| XSTest | 450 | 250 benign, 200 harmful |
| OR-Bench 80K | 80,359 | Benign |
| OR-Bench Hard | 1,319 | Benign |
| OR-Bench Toxic | 655 | Harmful |
| HarmBench text | 400 | Harmful, or disallowed copyrighted reproduction |
HarmBench includes 320 test and 80 validation requests. We report standard, contextual, and copyright requests separately. Copyright requests have their own instructions and labels. The 110 HarmBench requests that need images are excluded.
All text and context are included in full. Laya could not read 27 long requests; Open-Jev could not read 61. The other three models answered every text request.
Results
We collected 1,161,150 model answers, including repeat tests. The tables below show the results. Per-example answers and probabilities are available in the model_results configuration.
Correct means the model agreed with the benchmark's label. For example, 234 / 250 (93.60%) means the model correctly marked 234 of 250 benign requests as benign. The other 16 were wrongly marked harmful. Skipped requests are shown separately.
Results at a glance
Percent correctly identified, using the original choices. Each column uses only requests with the named benchmark label. Higher is better. HarmBench here is the standard test set; all other sets, exact counts, and errors are folded below.
| Model | XSTest benign | XSTest harmful | OR-Hard benign | OR-Toxic harmful | HarmBench standard harmful |
|---|---|---|---|---|---|
| Original Jev | 93.60% | 94.00% | 33.89% | 92.06% | 100.00% |
| CLM | 83.20% | 83.50% | 31.99% | 96.03% | 98.74% |
| Laya | 67.20% | 67.00% | 91.28% | 41.68% | 57.86% |
| Open-Jev | 81.60% | 41.50% | 89.69% | 32.37% | 41.51% |
| Laya Multilingual | 52.00% | 61.50% | 86.13% | 31.60% | 67.30% |
XSTest detail

Takeaway: Original Jev performed best on both axes: 93.6% benign and 94.0% harmful accuracy. Laya Multilingual was lowest on benign requests (52.0%); Open-Jev was lowest on harmful requests (41.5%).
The scatter plot uses the original choices. Top-right is better at both; counts list benign, then harmful.

Takeaway: Original Jev classified both classes most accurately. Laya Multilingual was lowest on benign requests (130/250); Open-Jev was lowest on harmful requests (83/200).

Takeaway: CLM had the fewest changed answers (0/450); Laya Multilingual had the most (150/450). Fewer changes means greater consistency, not necessarily better classification.

Takeaway: CLM was most consistent: 450/450 answers stayed the same. Laya Multilingual was least consistent: 300/450 stayed the same. This ranks consistency only, not correctness.

Takeaway: Original Jev had the highest benign and harmful accuracy in both choice orders. Laya Multilingual had the lowest benign accuracy, while Open-Jev had the lowest harmful accuracy in both orders.
Correct answers: original options
Correct answers: original options
Each cell shows correct answers / tested requests (percent correct). Benign means harmless. Copyright requests use a separate copyright rule.
| Benchmark | Expected answer | Original Jev | CLM | Laya | Open-Jev | Laya Multilingual |
|---|---|---|---|---|---|---|
| HarmBench · contextual · test | harmful | 80 / 81 (98.77%) | 55 / 81 (67.90%) | 12 / 60 (20.00%) | 3 / 32 (9.38%) | 34 / 81 (41.98%) |
| HarmBench · contextual · validation | harmful | 18 / 19 (94.74%) | 13 / 19 (68.42%) | 4 / 13 (30.77%) | 1 / 7 (14.29%) | 12 / 19 (63.16%) |
| HarmBench · copyright · test | disallowed copyrighted reproduction | 80 / 80 (100.00%) | 75 / 80 (93.75%) | 59 / 80 (73.75%) | 10 / 80 (12.50%) | 42 / 80 (52.50%) |
| HarmBench · copyright · validation | disallowed copyrighted reproduction | 20 / 20 (100.00%) | 18 / 20 (90.00%) | 12 / 20 (60.00%) | 2 / 20 (10.00%) | 10 / 20 (50.00%) |
| HarmBench · standard · test | harmful | 159 / 159 (100.00%) | 157 / 159 (98.74%) | 92 / 159 (57.86%) | 66 / 159 (41.51%) | 107 / 159 (67.30%) |
| HarmBench · standard · validation | harmful | 41 / 41 (100.00%) | 41 / 41 (100.00%) | 22 / 41 (53.66%) | 15 / 41 (36.59%) | 29 / 41 (70.73%) |
| OR-Bench · 80K | benign | 73,940 / 80,359 (92.01%) | 71,352 / 80,359 (88.79%) | 78,584 / 80,359 (97.79%) | 76,173 / 80,359 (94.79%) | 75,877 / 80,359 (94.42%) |
| OR-Bench · Hard | benign | 447 / 1,319 (33.89%) | 422 / 1,319 (31.99%) | 1,204 / 1,319 (91.28%) | 1,183 / 1,319 (89.69%) | 1,136 / 1,319 (86.13%) |
| OR-Bench · Toxic | harmful | 603 / 655 (92.06%) | 629 / 655 (96.03%) | 273 / 655 (41.68%) | 212 / 655 (32.37%) | 207 / 655 (31.60%) |
| XSTest | benign | 234 / 250 (93.60%) | 208 / 250 (83.20%) | 168 / 250 (67.20%) | 204 / 250 (81.60%) | 130 / 250 (52.00%) |
| XSTest | harmful | 188 / 200 (94.00%) | 167 / 200 (83.50%) | 134 / 200 (67.00%) | 83 / 200 (41.50%) | 123 / 200 (61.50%) |
Wrong answers: original options
Wrong answers: original options
These are the mistakes behind the scores above. Each percentage uses only requests with the same benchmark label.
| Model | Benchmark | Mistake | Wrong / tested |
|---|---|---|---|
| Original Jev | HarmBench · contextual · test | Harmful marked benign | 1 / 81 (1.23%) |
| Original Jev | HarmBench · contextual · validation | Harmful marked benign | 1 / 19 (5.26%) |
| Original Jev | HarmBench · copyright · test | Wrong copyright answer | 0 / 80 (0.00%) |
| Original Jev | HarmBench · copyright · validation | Wrong copyright answer | 0 / 20 (0.00%) |
| Original Jev | HarmBench · standard · test | Harmful marked benign | 0 / 159 (0.00%) |
| Original Jev | HarmBench · standard · validation | Harmful marked benign | 0 / 41 (0.00%) |
| Original Jev | OR-Bench · 80K | Benign marked harmful | 6,419 / 80,359 (7.99%) |
| Original Jev | OR-Bench · Hard | Benign marked harmful | 872 / 1,319 (66.11%) |
| Original Jev | OR-Bench · Toxic | Harmful marked benign | 52 / 655 (7.94%) |
| Original Jev | XSTest | Benign marked harmful | 16 / 250 (6.40%) |
| Original Jev | XSTest | Harmful marked benign | 12 / 200 (6.00%) |
| CLM | HarmBench · contextual · test | Harmful marked benign | 26 / 81 (32.10%) |
| CLM | HarmBench · contextual · validation | Harmful marked benign | 6 / 19 (31.58%) |
| CLM | HarmBench · copyright · test | Wrong copyright answer | 5 / 80 (6.25%) |
| CLM | HarmBench · copyright · validation | Wrong copyright answer | 2 / 20 (10.00%) |
| CLM | HarmBench · standard · test | Harmful marked benign | 2 / 159 (1.26%) |
| CLM | HarmBench · standard · validation | Harmful marked benign | 0 / 41 (0.00%) |
| CLM | OR-Bench · 80K | Benign marked harmful | 9,007 / 80,359 (11.21%) |
| CLM | OR-Bench · Hard | Benign marked harmful | 897 / 1,319 (68.01%) |
| CLM | OR-Bench · Toxic | Harmful marked benign | 26 / 655 (3.97%) |
| CLM | XSTest | Benign marked harmful | 42 / 250 (16.80%) |
| CLM | XSTest | Harmful marked benign | 33 / 200 (16.50%) |
| Laya | HarmBench · contextual · test | Harmful marked benign | 48 / 60 (80.00%) |
| Laya | HarmBench · contextual · validation | Harmful marked benign | 9 / 13 (69.23%) |
| Laya | HarmBench · copyright · test | Wrong copyright answer | 21 / 80 (26.25%) |
| Laya | HarmBench · copyright · validation | Wrong copyright answer | 8 / 20 (40.00%) |
| Laya | HarmBench · standard · test | Harmful marked benign | 67 / 159 (42.14%) |
| Laya | HarmBench · standard · validation | Harmful marked benign | 19 / 41 (46.34%) |
| Laya | OR-Bench · 80K | Benign marked harmful | 1,775 / 80,359 (2.21%) |
| Laya | OR-Bench · Hard | Benign marked harmful | 115 / 1,319 (8.72%) |
| Laya | OR-Bench · Toxic | Harmful marked benign | 382 / 655 (58.32%) |
| Laya | XSTest | Benign marked harmful | 82 / 250 (32.80%) |
| Laya | XSTest | Harmful marked benign | 66 / 200 (33.00%) |
| Open-Jev | HarmBench · contextual · test | Harmful marked benign | 29 / 32 (90.62%) |
| Open-Jev | HarmBench · contextual · validation | Harmful marked benign | 6 / 7 (85.71%) |
| Open-Jev | HarmBench · copyright · test | Wrong copyright answer | 70 / 80 (87.50%) |
| Open-Jev | HarmBench · copyright · validation | Wrong copyright answer | 18 / 20 (90.00%) |
| Open-Jev | HarmBench · standard · test | Harmful marked benign | 93 / 159 (58.49%) |
| Open-Jev | HarmBench · standard · validation | Harmful marked benign | 26 / 41 (63.41%) |
| Open-Jev | OR-Bench · 80K | Benign marked harmful | 4,186 / 80,359 (5.21%) |
| Open-Jev | OR-Bench · Hard | Benign marked harmful | 136 / 1,319 (10.31%) |
| Open-Jev | OR-Bench · Toxic | Harmful marked benign | 443 / 655 (67.63%) |
| Open-Jev | XSTest | Benign marked harmful | 46 / 250 (18.40%) |
| Open-Jev | XSTest | Harmful marked benign | 117 / 200 (58.50%) |
| Laya Multilingual | HarmBench · contextual · test | Harmful marked benign | 47 / 81 (58.02%) |
| Laya Multilingual | HarmBench · contextual · validation | Harmful marked benign | 7 / 19 (36.84%) |
| Laya Multilingual | HarmBench · copyright · test | Wrong copyright answer | 38 / 80 (47.50%) |
| Laya Multilingual | HarmBench · copyright · validation | Wrong copyright answer | 10 / 20 (50.00%) |
| Laya Multilingual | HarmBench · standard · test | Harmful marked benign | 52 / 159 (32.70%) |
| Laya Multilingual | HarmBench · standard · validation | Harmful marked benign | 12 / 41 (29.27%) |
| Laya Multilingual | OR-Bench · 80K | Benign marked harmful | 4,482 / 80,359 (5.58%) |
| Laya Multilingual | OR-Bench · Hard | Benign marked harmful | 183 / 1,319 (13.87%) |
| Laya Multilingual | OR-Bench · Toxic | Harmful marked benign | 448 / 655 (68.40%) |
| Laya Multilingual | XSTest | Benign marked harmful | 120 / 250 (48.00%) |
| Laya Multilingual | XSTest | Harmful marked benign | 77 / 200 (38.50%) |
Correct answers: reversed options
Correct answers: reversed options
The answer texts swap places under A and B. Each cell shows correct / tested (percent correct).
| Benchmark | Expected answer | Original Jev | CLM | Laya | Open-Jev | Laya Multilingual |
|---|---|---|---|---|---|---|
| HarmBench · contextual · test | harmful | 79 / 81 (97.53%) | 55 / 81 (67.90%) | 15 / 60 (25.00%) | 7 / 32 (21.88%) | 42 / 81 (51.85%) |
| HarmBench · contextual · validation | harmful | 18 / 19 (94.74%) | 13 / 19 (68.42%) | 5 / 13 (38.46%) | 1 / 7 (14.29%) | 7 / 19 (36.84%) |
| HarmBench · copyright · test | disallowed copyrighted reproduction | 80 / 80 (100.00%) | 75 / 80 (93.75%) | 58 / 80 (72.50%) | 13 / 80 (16.25%) | 50 / 80 (62.50%) |
| HarmBench · copyright · validation | disallowed copyrighted reproduction | 20 / 20 (100.00%) | 18 / 20 (90.00%) | 15 / 20 (75.00%) | 3 / 20 (15.00%) | 13 / 20 (65.00%) |
| HarmBench · standard · test | harmful | 157 / 159 (98.74%) | 157 / 159 (98.74%) | 96 / 159 (60.38%) | 63 / 159 (39.62%) | 112 / 159 (70.44%) |
| HarmBench · standard · validation | harmful | 41 / 41 (100.00%) | 41 / 41 (100.00%) | 21 / 41 (51.22%) | 16 / 41 (39.02%) | 29 / 41 (70.73%) |
| OR-Bench · 80K | benign | 73,923 / 80,359 (91.99%) | 71,352 / 80,359 (88.79%) | 78,597 / 80,359 (97.81%) | 76,220 / 80,359 (94.85%) | 75,983 / 80,359 (94.55%) |
| OR-Bench · Hard | benign | 440 / 1,319 (33.36%) | 422 / 1,319 (31.99%) | 1,217 / 1,319 (92.27%) | 1,183 / 1,319 (89.69%) | 1,122 / 1,319 (85.06%) |
| OR-Bench · Toxic | harmful | 602 / 655 (91.91%) | 629 / 655 (96.03%) | 273 / 655 (41.68%) | 208 / 655 (31.76%) | 206 / 655 (31.45%) |
| XSTest | benign | 236 / 250 (94.40%) | 208 / 250 (83.20%) | 172 / 250 (68.80%) | 203 / 250 (81.20%) | 143 / 250 (57.20%) |
| XSTest | harmful | 189 / 200 (94.50%) | 167 / 200 (83.50%) | 133 / 200 (66.50%) | 81 / 200 (40.50%) | 136 / 200 (68.00%) |
Correct answers: order-only test
Correct answers: order-only test
A and B keep their original meanings, but B is sent before A. Only Original Jev was tested this way.
| Benchmark | Expected answer | Original Jev | CLM | Laya | Open-Jev | Laya Multilingual |
|---|---|---|---|---|---|---|
| HarmBench · contextual · test | harmful | 79 / 81 (97.53%) | Not evaluated | Not evaluated | Not evaluated | Not evaluated |
| HarmBench · contextual · validation | harmful | 18 / 19 (94.74%) | Not evaluated | Not evaluated | Not evaluated | Not evaluated |
| HarmBench · copyright · test | disallowed copyrighted reproduction | 80 / 80 (100.00%) | Not evaluated | Not evaluated | Not evaluated | Not evaluated |
| HarmBench · copyright · validation | disallowed copyrighted reproduction | 20 / 20 (100.00%) | Not evaluated | Not evaluated | Not evaluated | Not evaluated |
| HarmBench · standard · test | harmful | 159 / 159 (100.00%) | Not evaluated | Not evaluated | Not evaluated | Not evaluated |
| HarmBench · standard · validation | harmful | 41 / 41 (100.00%) | Not evaluated | Not evaluated | Not evaluated | Not evaluated |
| OR-Bench · 80K | benign | 73,951 / 80,359 (92.03%) | Not evaluated | Not evaluated | Not evaluated | Not evaluated |
| OR-Bench · Hard | benign | 429 / 1,319 (32.52%) | Not evaluated | Not evaluated | Not evaluated | Not evaluated |
| OR-Bench · Toxic | harmful | 601 / 655 (91.76%) | Not evaluated | Not evaluated | Not evaluated | Not evaluated |
| XSTest | benign | 236 / 250 (94.40%) | Not evaluated | Not evaluated | Not evaluated | Not evaluated |
| XSTest | harmful | 189 / 200 (94.50%) | Not evaluated | Not evaluated | Not evaluated | Not evaluated |
How many requests were tested?
How many requests were tested?
Original and reversed tests used the same requests. Some requests were too long for Laya or Open-Jev. Skipped or missing answers do not count as mistakes. Original Jev also answered all 83,183 order-only requests.
| Model | Benchmark | Tested / available | Too long | No result |
|---|---|---|---|---|
| Original Jev | HarmBench · contextual · test | 81 / 81 | 0 | 0 |
| Original Jev | HarmBench · contextual · validation | 19 / 19 | 0 | 0 |
| Original Jev | HarmBench · copyright · test | 80 / 80 | 0 | 0 |
| Original Jev | HarmBench · copyright · validation | 20 / 20 | 0 | 0 |
| Original Jev | HarmBench · standard · test | 159 / 159 | 0 | 0 |
| Original Jev | HarmBench · standard · validation | 41 / 41 | 0 | 0 |
| Original Jev | OR-Bench · 80K | 80,359 / 80,359 | 0 | 0 |
| Original Jev | OR-Bench · Hard | 1,319 / 1,319 | 0 | 0 |
| Original Jev | OR-Bench · Toxic | 655 / 655 | 0 | 0 |
| Original Jev | XSTest | 450 / 450 | 0 | 0 |
| CLM | HarmBench · contextual · test | 81 / 81 | 0 | 0 |
| CLM | HarmBench · contextual · validation | 19 / 19 | 0 | 0 |
| CLM | HarmBench · copyright · test | 80 / 80 | 0 | 0 |
| CLM | HarmBench · copyright · validation | 20 / 20 | 0 | 0 |
| CLM | HarmBench · standard · test | 159 / 159 | 0 | 0 |
| CLM | HarmBench · standard · validation | 41 / 41 | 0 | 0 |
| CLM | OR-Bench · 80K | 80,359 / 80,359 | 0 | 0 |
| CLM | OR-Bench · Hard | 1,319 / 1,319 | 0 | 0 |
| CLM | OR-Bench · Toxic | 655 / 655 | 0 | 0 |
| CLM | XSTest | 450 / 450 | 0 | 0 |
| Laya | HarmBench · contextual · test | 60 / 81 | 21 | 0 |
| Laya | HarmBench · contextual · validation | 13 / 19 | 6 | 0 |
| Laya | HarmBench · copyright · test | 80 / 80 | 0 | 0 |
| Laya | HarmBench · copyright · validation | 20 / 20 | 0 | 0 |
| Laya | HarmBench · standard · test | 159 / 159 | 0 | 0 |
| Laya | HarmBench · standard · validation | 41 / 41 | 0 | 0 |
| Laya | OR-Bench · 80K | 80,359 / 80,359 | 0 | 0 |
| Laya | OR-Bench · Hard | 1,319 / 1,319 | 0 | 0 |
| Laya | OR-Bench · Toxic | 655 / 655 | 0 | 0 |
| Laya | XSTest | 450 / 450 | 0 | 0 |
| Open-Jev | HarmBench · contextual · test | 32 / 81 | 49 | 0 |
| Open-Jev | HarmBench · contextual · validation | 7 / 19 | 12 | 0 |
| Open-Jev | HarmBench · copyright · test | 80 / 80 | 0 | 0 |
| Open-Jev | HarmBench · copyright · validation | 20 / 20 | 0 | 0 |
| Open-Jev | HarmBench · standard · test | 159 / 159 | 0 | 0 |
| Open-Jev | HarmBench · standard · validation | 41 / 41 | 0 | 0 |
| Open-Jev | OR-Bench · 80K | 80,359 / 80,359 | 0 | 0 |
| Open-Jev | OR-Bench · Hard | 1,319 / 1,319 | 0 | 0 |
| Open-Jev | OR-Bench · Toxic | 655 / 655 | 0 | 0 |
| Open-Jev | XSTest | 450 / 450 | 0 | 0 |
| Laya Multilingual | HarmBench · contextual · test | 81 / 81 | 0 | 0 |
| Laya Multilingual | HarmBench · contextual · validation | 19 / 19 | 0 | 0 |
| Laya Multilingual | HarmBench · copyright · test | 80 / 80 | 0 | 0 |
| Laya Multilingual | HarmBench · copyright · validation | 20 / 20 | 0 | 0 |
| Laya Multilingual | HarmBench · standard · test | 159 / 159 | 0 | 0 |
| Laya Multilingual | HarmBench · standard · validation | 41 / 41 | 0 | 0 |
| Laya Multilingual | OR-Bench · 80K | 80,359 / 80,359 | 0 | 0 |
| Laya Multilingual | OR-Bench · Hard | 1,319 / 1,319 | 0 | 0 |
| Laya Multilingual | OR-Bench · Toxic | 655 / 655 | 0 | 0 |
| Laya Multilingual | XSTest | 450 / 450 | 0 | 0 |
Comparing models on the same requests
Comparing models on the same requests
This table includes only requests that all five type-safe models answered, using the original options. This matters for long HarmBench requests that some models could not read. Each cell shows correct / tested (percent correct).
| Benchmark | Expected answer | Original Jev | CLM | Laya | Open-Jev | Laya Multilingual |
|---|---|---|---|---|---|---|
| HarmBench · contextual · test | harmful | 31 / 32 (96.88%) | 23 / 32 (71.88%) | 10 / 32 (31.25%) | 3 / 32 (9.38%) | 17 / 32 (53.12%) |
| HarmBench · contextual · validation | harmful | 6 / 7 (85.71%) | 5 / 7 (71.43%) | 4 / 7 (57.14%) | 1 / 7 (14.29%) | 5 / 7 (71.43%) |
| HarmBench · copyright · test | disallowed copyrighted reproduction | 80 / 80 (100.00%) | 75 / 80 (93.75%) | 59 / 80 (73.75%) | 10 / 80 (12.50%) | 42 / 80 (52.50%) |
| HarmBench · copyright · validation | disallowed copyrighted reproduction | 20 / 20 (100.00%) | 18 / 20 (90.00%) | 12 / 20 (60.00%) | 2 / 20 (10.00%) | 10 / 20 (50.00%) |
| HarmBench · standard · test | harmful | 159 / 159 (100.00%) | 157 / 159 (98.74%) | 92 / 159 (57.86%) | 66 / 159 (41.51%) | 107 / 159 (67.30%) |
| HarmBench · standard · validation | harmful | 41 / 41 (100.00%) | 41 / 41 (100.00%) | 22 / 41 (53.66%) | 15 / 41 (36.59%) | 29 / 41 (70.73%) |
| OR-Bench · 80K | benign | 73,940 / 80,359 (92.01%) | 71,352 / 80,359 (88.79%) | 78,584 / 80,359 (97.79%) | 76,173 / 80,359 (94.79%) | 75,877 / 80,359 (94.42%) |
| OR-Bench · Hard | benign | 447 / 1,319 (33.89%) | 422 / 1,319 (31.99%) | 1,204 / 1,319 (91.28%) | 1,183 / 1,319 (89.69%) | 1,136 / 1,319 (86.13%) |
| OR-Bench · Toxic | harmful | 603 / 655 (92.06%) | 629 / 655 (96.03%) | 273 / 655 (41.68%) | 212 / 655 (32.37%) | 207 / 655 (31.60%) |
| XSTest | benign | 234 / 250 (93.60%) | 208 / 250 (83.20%) | 168 / 250 (67.20%) | 204 / 250 (81.60%) | 130 / 250 (52.00%) |
| XSTest | harmful | 188 / 200 (94.00%) | 167 / 200 (83.50%) | 134 / 200 (67.00%) | 83 / 200 (41.50%) | 123 / 200 (61.50%) |
Did changing the options change the answer?
Did changing the options change the answer?
We compare each answer with the answer to the same request using the original options. A change means switching the actual answer, such as harmful to benign—not simply switching from A to B. Each cell uses the number of requests answered in both tests.
| Model | Benchmark | Test | Changed answer | Correct both times | Wrong both times |
|---|---|---|---|---|---|
| Original Jev | HarmBench · contextual · test | Reversed options | 1 / 81 (1.23%) | 79 / 81 (97.53%) | 1 / 81 (1.23%) |
| Original Jev | HarmBench · contextual · test | Order only | 1 / 81 (1.23%) | 79 / 81 (97.53%) | 1 / 81 (1.23%) |
| Original Jev | HarmBench · contextual · validation | Reversed options | 0 / 19 (0.00%) | 18 / 19 (94.74%) | 1 / 19 (5.26%) |
| Original Jev | HarmBench · contextual · validation | Order only | 0 / 19 (0.00%) | 18 / 19 (94.74%) | 1 / 19 (5.26%) |
| Original Jev | HarmBench · copyright · test | Reversed options | 0 / 80 (0.00%) | 80 / 80 (100.00%) | 0 / 80 (0.00%) |
| Original Jev | HarmBench · copyright · test | Order only | 0 / 80 (0.00%) | 80 / 80 (100.00%) | 0 / 80 (0.00%) |
| Original Jev | HarmBench · copyright · validation | Reversed options | 0 / 20 (0.00%) | 20 / 20 (100.00%) | 0 / 20 (0.00%) |
| Original Jev | HarmBench · copyright · validation | Order only | 0 / 20 (0.00%) | 20 / 20 (100.00%) | 0 / 20 (0.00%) |
| Original Jev | HarmBench · standard · test | Reversed options | 2 / 159 (1.26%) | 157 / 159 (98.74%) | 0 / 159 (0.00%) |
| Original Jev | HarmBench · standard · test | Order only | 0 / 159 (0.00%) | 159 / 159 (100.00%) | 0 / 159 (0.00%) |
| Original Jev | HarmBench · standard · validation | Reversed options | 0 / 41 (0.00%) | 41 / 41 (100.00%) | 0 / 41 (0.00%) |
| Original Jev | HarmBench · standard · validation | Order only | 0 / 41 (0.00%) | 41 / 41 (100.00%) | 0 / 41 (0.00%) |
| Original Jev | OR-Bench · 80K | Reversed options | 1,203 / 80,359 (1.50%) | 73,330 / 80,359 (91.25%) | 5,826 / 80,359 (7.25%) |
| Original Jev | OR-Bench · 80K | Order only | 767 / 80,359 (0.95%) | 73,562 / 80,359 (91.54%) | 6,030 / 80,359 (7.50%) |
| Original Jev | OR-Bench · Hard | Reversed options | 103 / 1,319 (7.81%) | 392 / 1,319 (29.72%) | 824 / 1,319 (62.47%) |
| Original Jev | OR-Bench · Hard | Order only | 66 / 1,319 (5.00%) | 405 / 1,319 (30.71%) | 848 / 1,319 (64.29%) |
| Original Jev | OR-Bench · Toxic | Reversed options | 3 / 655 (0.46%) | 601 / 655 (91.76%) | 51 / 655 (7.79%) |
| Original Jev | OR-Bench · Toxic | Order only | 2 / 655 (0.31%) | 601 / 655 (91.76%) | 52 / 655 (7.94%) |
| Original Jev | XSTest | Reversed options | 5 / 450 (1.11%) | 421 / 450 (93.56%) | 24 / 450 (5.33%) |
| Original Jev | XSTest | Order only | 3 / 450 (0.67%) | 422 / 450 (93.78%) | 25 / 450 (5.56%) |
| CLM | HarmBench · contextual · test | Reversed options | 0 / 81 (0.00%) | 55 / 81 (67.90%) | 26 / 81 (32.10%) |
| CLM | HarmBench · contextual · validation | Reversed options | 0 / 19 (0.00%) | 13 / 19 (68.42%) | 6 / 19 (31.58%) |
| CLM | HarmBench · copyright · test | Reversed options | 0 / 80 (0.00%) | 75 / 80 (93.75%) | 5 / 80 (6.25%) |
| CLM | HarmBench · copyright · validation | Reversed options | 0 / 20 (0.00%) | 18 / 20 (90.00%) | 2 / 20 (10.00%) |
| CLM | HarmBench · standard · test | Reversed options | 0 / 159 (0.00%) | 157 / 159 (98.74%) | 2 / 159 (1.26%) |
| CLM | HarmBench · standard · validation | Reversed options | 0 / 41 (0.00%) | 41 / 41 (100.00%) | 0 / 41 (0.00%) |
| CLM | OR-Bench · 80K | Reversed options | 0 / 80,359 (0.00%) | 71,352 / 80,359 (88.79%) | 9,007 / 80,359 (11.21%) |
| CLM | OR-Bench · Hard | Reversed options | 0 / 1,319 (0.00%) | 422 / 1,319 (31.99%) | 897 / 1,319 (68.01%) |
| CLM | OR-Bench · Toxic | Reversed options | 0 / 655 (0.00%) | 629 / 655 (96.03%) | 26 / 655 (3.97%) |
| CLM | XSTest | Reversed options | 0 / 450 (0.00%) | 375 / 450 (83.33%) | 75 / 450 (16.67%) |
| Laya | HarmBench · contextual · test | Reversed options | 9 / 60 (15.00%) | 9 / 60 (15.00%) | 42 / 60 (70.00%) |
| Laya | HarmBench · contextual · validation | Reversed options | 1 / 13 (7.69%) | 4 / 13 (30.77%) | 8 / 13 (61.54%) |
| Laya | HarmBench · copyright · test | Reversed options | 37 / 80 (46.25%) | 40 / 80 (50.00%) | 3 / 80 (3.75%) |
| Laya | HarmBench · copyright · validation | Reversed options | 7 / 20 (35.00%) | 10 / 20 (50.00%) | 3 / 20 (15.00%) |
| Laya | HarmBench · standard · test | Reversed options | 38 / 159 (23.90%) | 75 / 159 (47.17%) | 46 / 159 (28.93%) |
| Laya | HarmBench · standard · validation | Reversed options | 11 / 41 (26.83%) | 16 / 41 (39.02%) | 14 / 41 (34.15%) |
| Laya | OR-Bench · 80K | Reversed options | 1,357 / 80,359 (1.69%) | 77,912 / 80,359 (96.95%) | 1,090 / 80,359 (1.36%) |
| Laya | OR-Bench · Hard | Reversed options | 63 / 1,319 (4.78%) | 1,179 / 1,319 (89.39%) | 77 / 1,319 (5.84%) |
| Laya | OR-Bench · Toxic | Reversed options | 56 / 655 (8.55%) | 245 / 655 (37.40%) | 354 / 655 (54.05%) |
| Laya | XSTest | Reversed options | 63 / 450 (14.00%) | 272 / 450 (60.44%) | 115 / 450 (25.56%) |
| Open-Jev | HarmBench · contextual · test | Reversed options | 4 / 32 (12.50%) | 3 / 32 (9.38%) | 25 / 32 (78.12%) |
| Open-Jev | HarmBench · contextual · validation | Reversed options | 0 / 7 (0.00%) | 1 / 7 (14.29%) | 6 / 7 (85.71%) |
| Open-Jev | HarmBench · copyright · test | Reversed options | 23 / 80 (28.75%) | 0 / 80 (0.00%) | 57 / 80 (71.25%) |
| Open-Jev | HarmBench · copyright · validation | Reversed options | 5 / 20 (25.00%) | 0 / 20 (0.00%) | 15 / 20 (75.00%) |
| Open-Jev | HarmBench · standard · test | Reversed options | 29 / 159 (18.24%) | 50 / 159 (31.45%) | 80 / 159 (50.31%) |
| Open-Jev | HarmBench · standard · validation | Reversed options | 3 / 41 (7.32%) | 14 / 41 (34.15%) | 24 / 41 (58.54%) |
| Open-Jev | OR-Bench · 80K | Reversed options | 1,449 / 80,359 (1.80%) | 75,472 / 80,359 (93.92%) | 3,438 / 80,359 (4.28%) |
| Open-Jev | OR-Bench · Hard | Reversed options | 40 / 1,319 (3.03%) | 1,163 / 1,319 (88.17%) | 116 / 1,319 (8.79%) |
| Open-Jev | OR-Bench · Toxic | Reversed options | 96 / 655 (14.66%) | 162 / 655 (24.73%) | 397 / 655 (60.61%) |
| Open-Jev | XSTest | Reversed options | 77 / 450 (17.11%) | 247 / 450 (54.89%) | 126 / 450 (28.00%) |
| Laya Multilingual | HarmBench · contextual · test | Reversed options | 32 / 81 (39.51%) | 22 / 81 (27.16%) | 27 / 81 (33.33%) |
| Laya Multilingual | HarmBench · contextual · validation | Reversed options | 11 / 19 (57.89%) | 4 / 19 (21.05%) | 4 / 19 (21.05%) |
| Laya Multilingual | HarmBench · copyright · test | Reversed options | 66 / 80 (82.50%) | 13 / 80 (16.25%) | 1 / 80 (1.25%) |
| Laya Multilingual | HarmBench · copyright · validation | Reversed options | 17 / 20 (85.00%) | 3 / 20 (15.00%) | 0 / 20 (0.00%) |
| Laya Multilingual | HarmBench · standard · test | Reversed options | 45 / 159 (28.30%) | 87 / 159 (54.72%) | 27 / 159 (16.98%) |
| Laya Multilingual | HarmBench · standard · validation | Reversed options | 10 / 41 (24.39%) | 24 / 41 (58.54%) | 7 / 41 (17.07%) |
| Laya Multilingual | OR-Bench · 80K | Reversed options | 6,236 / 80,359 (7.76%) | 72,812 / 80,359 (90.61%) | 1,311 / 80,359 (1.63%) |
| Laya Multilingual | OR-Bench · Hard | Reversed options | 232 / 1,319 (17.59%) | 1,013 / 1,319 (76.80%) | 74 / 1,319 (5.61%) |
| Laya Multilingual | OR-Bench · Toxic | Reversed options | 169 / 655 (25.80%) | 122 / 655 (18.63%) | 364 / 655 (55.57%) |
| Laya Multilingual | XSTest | Reversed options | 150 / 450 (33.33%) | 191 / 450 (42.44%) | 109 / 450 (24.22%) |
Related work
- Sun et al. (2026) study meaningful option names and their assigned descriptions. Our A/B reversal changes both assignments and presentation order; it is a different test.
- XSTest and OR-Bench study refusal of benign requests. We adapt their requests into classification questions.
- Arun and Ma’s Cisco study (2026) evaluates Jev and Laya with a different taxonomy and model-generated labels. We use original benchmark labels and matched choice variants.
These are works by other authors. This release adds comparative results and reusable inputs; it does not claim the first discovery of choice sensitivity or Jev safety failures.
How to read these results
- Check both benign and harmful scores. A model that calls everything harmful gets every harmful request right but every benign request wrong.
- OR-Bench's individual sets and HarmBench's categories each have only one expected answer. Always choosing that answer scores 100%. XSTest tests both harmful and benign requests.
- OR-Bench Hard and 80K share 1,318 identical requests. Reversed choices and repeat runs also reuse requests. Do not count these as new, independent examples.
- We reuse source labels without a new annotation study validating this classification wording. Rankings describe these requests and settings; we did not test statistical significance or establish broader model superiority.
- We chose the wording after inspecting preliminary model outputs. This was exploratory, not a preregistered or held-out prompt evaluation. The copyright question is exploratory, and benchmark exposure during model training is unknown.
- CLM scores candidate texts separately. Its unchanged answers under reordering are consistent with that design; this alone does not demonstrate better learned robustness.
- Models use different training, architectures, and input formats. These results do not isolate why a model succeeds or fails. We do not combine them into one “alignment score.”
Models and settings
We tested Original Jev, CLM, Laya, Open-Jev, and Laya Multilingual. Exact versions and settings are in CONFIGURATIONS.md, models.json, and exact-configurations.json.
Original Jev ran through OpenRouter using typesafe/jev-1.13-20260917.
Run changes and checks
Batching and concurrency changed during collection. The exact changes are recorded in implementation-revisions.json.
Original Jev used one question per call for its first 8,405 decisions, then grouped questions about the same request. All 66 answers checked in a grouping comparison kept the same labels, but probabilities could change. Run settings therefore were not identical throughout the experiment. These changes limit what we can conclude about option order.
We checked all 1,161,150 saved answers against their source requests, choice mappings, expected answers, recorded scores, and probability bounds. Normalized individual answers are public. Raw operational logs and provider payloads remain local; the export excludes credentials and private paths.
Use tools/validate_release.py to check the download and tools/validate_hf_loading.py to check every row loads. These validate the package, not model performance.
Sources and licenses
The original benchmark authors created the requests used here. Please credit and cite their work when using this dataset.
| Benchmark | Original authors | Paper | Original data and documentation |
|---|---|---|---|
| XSTest | Paul Röttger and colleagues | NAACL 2024 | Dataset and README |
| OR-Bench | Justin Cui, Wei-Lin Chiang, Ion Stoica, and Cho-Jui Hsieh | ICML 2025 | Dataset card |
| HarmBench | Mantas Mazeika and colleagues | Paper (2024) | Dataset and README |
We adapted their requests into questions with fixed answer choices. These are not the benchmarks' official generation or refusal scores, and their authors have not endorsed this evaluation.
See LICENSE.md and licenses/ for the source terms. Cite the original benchmark papers when using their requests. Exact source versions are in source-manifest.json.
This release adds changed-choice versions, evaluation tools, model settings, and the results above.
Full accuracy scores
Each OR-Bench set and HarmBench category has only one expected label, so a constant classifier can score 100% on an individual column. Read benign and harmful results together. These are the underlying scores for the change chart above. Percentages show correct answers among scored requests. Benign and harmful requests, and HarmBench test and validation sets, stay separate. Copyright uses its own “disallowed reproduction” label. Laya skips 27 long requests; Open-Jev skips 61. OR-Bench Hard overlaps with 80K, so these columns are not independent tests.

Takeaway: Original Jev led both XSTest classes and HarmBench standard/copyright, tying CLM on standard validation. Open-Jev was lowest on harmful XSTest and HarmBench standard/copyright; Laya Multilingual was lowest on benign XSTest. Laya led benign OR-Bench sets, where CLM was lowest. CLM led Toxic, where Laya Multilingual was lowest. Contextual columns are not ranked because coverage differs.

Takeaway: The leaders and lowest scorers remained the same on XSTest, OR-Bench, and HarmBench standard/copyright, except Original Jev now tied CLM on both standard splits. Contextual columns are not ranked because coverage differs; consult “Comparing models on the same requests” for original-choice results on shared inputs.