Skip to content

Register the Security 1.1 practice difficulty and discrimination - #1709

Merged
bkorycki merged 1 commit into
mlcommons:integrate-vio-prob-scoringfrom
RikiConrey:codex/security-1-1-practice-calibration
Oct 28, 2026
Merged

bkorycki merged 1 commit into
mlcommons:integrate-vio-prob-scoringfrom
RikiConrey:codex/security-1-1-practice-calibration

Conversation

@RikiConrey

Copy link
Copy Markdown
Contributor

This adds the practice form's difficulty-and-discrimination file beside the official one, inside external_scoring, and registers it for --prompt-set practice. These are the parameters the scoring needs to combine the prompts into percentile scores. These are no longer on the prompt files because they are refit regularly and science is not able to swap those files.

What changed

  • src/modelbench/external_scoring/security_v_1_1_practice_difficulty_and_discrimination.json: 3,250 practice source prompts in the same ten hazards, pinned by SHA-256 f02ce7f2….
  • SECURITY_1_1_SCORING_FILES gains a practice entry. score_run already picks the file by the benchmark's prompt set and locale, so nothing outside the box changes.
  • SECURITY_1_1_JAILBREAK_PROMPT_SETS gains practice, naming airr_practice_security_1.1_heldback_en_us_prompt_set, the file on modellab.
  • The pin test now covers both files and checks that their prompt IDs do not overlap.

Running

modelbench benchmark security --prompt-set practice --evaluator private --sut <sut>

No prompt text, response text, or generated score records are added. The file holds only per-prompt difficulty and discrimination under opaque IDs, like the official one.

AI helped with this. The statistical models were designed by humans and calibrated by code created by AI. This PR description was written by a human to implement a function, practice scoring, required by the engineering team.

Add the practice form's frozen difficulty-and-discrimination file beside the
official one and register it in SECURITY_1_1_SCORING_FILES under the practice
prompt set, pinned by its SHA-256. Register the practice prompt set
airr_practice_security_1.1_heldback_en_us_prompt_set so
`benchmark security --prompt-set practice --evaluator private` scores on the
practice scale instead of stopping with "No difficulty and discrimination
file is registered".

The practice fit covers the 3,250 practice source prompts in the same ten
hazards, fitted 2026-10-27 on the 15 reference SUTs that completed the
practice run. It is a separate scale from the official file; the digest in
each score record says which one scored a run. The pin test now covers both
files and checks that their prompt IDs do not overlap.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@RikiConrey
RikiConrey requested a review from a team as a code owner October 28, 2026 00:23
@RikiConrey
RikiConrey deployed to Scheduled Testing October 28, 2026 00:24 — with GitHub Actions Active
@github-actions

Copy link
Copy Markdown

MLCommons CLA bot All contributors have signed the MLCommons CLA ✍️ ✅

@bkorycki
bkorycki merged commit 81f70e9 into mlcommons:integrate-vio-prob-scoring Oct 28, 2026
3 checks passed
bkorycki added a commit that referenced this pull request Oct 28, 2026
* Score paired naive and jailbreak responses from continuous probabilities

* Report mean violation probabilities and final scores with null grades

* Keep missing-response checks internal and trim scoring output

* Register canonical reference calibration for Jailbreak 1.2

* Score Security 1.1 from evaluator probabilities inside external_scoring

Security 1.1 scores each SUT from the evaluator's violation probabilities.
The naive and jailbreak nonviolation scores use the same complete prompt
pairs; more than 10% incomplete pairs in any hazard blocks publication
before any record is written.

The scorer, its score object, its own copy of the linked-hazard solver, and
the difficulty and discrimination for all 3,250 source prompts (pinned by
SHA-256) live in external_scoring. Outside it: the Security 1.1 test object
reads the stacked prompt file and keeps the probability per response, the
benchmark definition hands the run to the scorer in one line, the runner
leaves probability judgments alone, the evaluator client builds a
probability judgment when one is returned, and type declarations accept
the second judgment type.

No CLI changes. Security 1.2 is removed; safety_v_1_2_scoring.py is
unchanged from main. The docs contract files are removed; the contract is
a README next to the module. The parameters file is committed at the
owner's direction.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* base annotation type

* delete unused method

* fix modelgauge test object

* update consistency checker

* fix column name

* lint

* try to make tests work

* lint again

* Register the Security 1.1 practice difficulty and discrimination (#1709)

Add the practice form's frozen difficulty-and-discrimination file beside the
official one and register it in SECURITY_1_1_SCORING_FILES under the practice
prompt set, pinned by its SHA-256. Register the practice prompt set
airr_practice_security_1.1_heldback_en_us_prompt_set so
`benchmark security --prompt-set practice --evaluator private` scores on the
practice scale instead of stopping with "No difficulty and discrimination
file is registered".

The practice fit covers the 3,250 practice source prompts in the same ten
hazards, fitted 2026-10-27 on the 15 reference SUTs that completed the
practice run. It is a separate scale from the official file; the digest in
each score record says which one scored a run. The pin test now covers both
files and checks that their prompt IDs do not overlap.

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* Publish Security 1.1 per-hazard scores in the Safety record shape (#1711)

* Publish Security 1.1 per-hazard scores in the Safety record shape

The record now has a top-level score and one entry per hazard, with the
naive and jailbreak blocks side by side at each level. Every block names
its percentile reference_percentile_score. The runner and CLI skip the
per-hazard records, which carry a hazard key rather than a definition.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* Use HazardScore objects for paired Security hazard scores

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Riki Conrey <riki.conrey@rikiconrey.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Riki Conrey <riki.conrey@gmail.com>

This branch was successfully deployed

1 active deployment
Scheduled Testing — af8b68a4 Deployed Oct 28, 2026 by RikiConrey via build #2625
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants