Spaces:
Running
Running
Download contract.js from SlayerLab/Slayer1B-Benchmarks: direct link, hf CLI and curl.
- Browser
- Download file 13.9 kB
-
https://huggingface.co/spaces/SlayerLab/Slayer1B-Benchmarks/resolve/main/contract.js
- Command line
-
hf download hf://spaces/SlayerLab/Slayer1B-Benchmarks/contract.js
-
curl -L -o contract.js https://huggingface.co/spaces/SlayerLab/Slayer1B-Benchmarks/resolve/main/contract.js
13.9 kB
| ; | |
| /* Acceptance checks for the public bench50-v0.3.1 result packet (results.schema.json, schema_version 2). | |
| The exporter validates the full JSON Schema before publication; this file re-checks, in the browser, | |
| every rule the page relies on to decide what may be shown. Anything unexpected rejects the whole packet. */ | |
| (() => { | |
| const PINS = { | |
| tasks: "fcfc45d805243e7ea4aa12bf836940ea086ecafe9fe3e592bf8850890ca8cf6b", | |
| schema: "c133a37d4038912314b14d374cd3ae1ecc6d8bca3d88a465f7e1243437553eec", | |
| method: "8709632a394a3d69fa56567404e6543f7305d49fc97c9d381fbfad46d86628ae", | |
| fieldRoles: "de4280e9db5a947e4e569ad4e5dfcb048d6ee574014b640d254b6c8e1a604b35" | |
| }; | |
| const HEX64 = /^[0-9a-f]{64}$/; | |
| const STATES = ["ok","not_run","blocked_access","blocked_runtime","blocked_security","blocked_judge","unsupported","failed","skipped"]; | |
| const CONTAMINATION = ["clean","flagged","partially_scanned","unscanned","unknown"]; | |
| const UNITS = ["percent","score","byte_ppl"]; | |
| const VERDICTS = ["withheld","better","worse","inconclusive"]; | |
| const SUBSETS = ["full","hit_free","hit_free_answer_fields"]; | |
| const OBS_KEYS = ["task_id","model_id","protocol_id","metric","unit","higher_is_better","n_population","n_selected","n_scored","state","value","ci95", | |
| "source_id_digest","results_sha256","runner_sha256","reason","contamination","contamination_receipt_sha256","value_hit_free","n_hit_free","hit_rate", | |
| "value_hit_free_answer_fields","n_hit_free_answer_fields","hit_rate_answer_fields","ci95_hit_free","ci95_hit_free_answer_fields","reference"]; | |
| const REQUIRED_OBS = ["task_id","model_id","protocol_id","metric","unit","higher_is_better","n_population","n_selected","n_scored","state","value","ci95", | |
| "source_id_digest","results_sha256","runner_sha256","contamination","contamination_receipt_sha256"]; | |
| function fail(message) { throw new Error(message); } | |
| const isNum = v => typeof v === "number" && Number.isFinite(v); | |
| const isShare = v => isNum(v) && v >= 0 && v <= 1; | |
| function key(task, model, protocol) { return `${task}\u0000${model}\u0000${protocol}`; } | |
| function checkCI(ci, where) { | |
| if (ci === null) return; | |
| if (typeof ci !== "object") fail(`${where}: ci95 must be an object or null`); | |
| for (const k of Object.keys(ci)) if (!["lower","upper","level","method","replicates","seed"].includes(k)) fail(`${where}: unknown ci95 field ${k}`); | |
| if (!isNum(ci.lower) || !isNum(ci.upper) || ci.lower > ci.upper) fail(`${where}: invalid ci95 bounds`); | |
| if (ci.level !== 0.95 || ci.replicates !== 10000 || ci.seed !== 20261028) fail(`${where}: ci95 does not follow the protocol`); | |
| if (!["paired_bootstrap","paired_cluster_bootstrap"].includes(ci.method)) fail(`${where}: unknown ci95 method`); | |
| } | |
| function checkReference(ref, where) { | |
| if (ref === undefined || ref === null) return; | |
| if (typeof ref !== "object") fail(`${where}: reference must be an object or null`); | |
| for (const k of Object.keys(ref)) if (!["chance_value","majority_value","majority_prediction_share","constant_prediction"].includes(k)) fail(`${where}: unknown reference field ${k}`); | |
| for (const k of ["chance_value","majority_value"]) if (!(k in ref) || !(ref[k] === null || isNum(ref[k]))) fail(`${where}: reference.${k} must be a number or null`); | |
| if (!("majority_prediction_share" in ref) || !(ref.majority_prediction_share === null || isShare(ref.majority_prediction_share))) fail(`${where}: reference.majority_prediction_share must be 0..1 or null`); | |
| if (!("constant_prediction" in ref) || !(ref.constant_prediction === null || typeof ref.constant_prediction === "boolean")) fail(`${where}: reference.constant_prediction must be boolean or null`); | |
| } | |
| function checkObservation(o, i, tasks, models, protocols) { | |
| const where = `observation ${i}`; | |
| if (!o || typeof o !== "object") fail(`${where}: not an object`); | |
| for (const k of Object.keys(o)) if (!OBS_KEYS.includes(k)) fail(`${where}: unknown field ${k}`); | |
| for (const k of REQUIRED_OBS) if (!(k in o)) fail(`${where}: missing ${k}`); | |
| if (!tasks.has(o.task_id)) fail(`${where}: task ${o.task_id} is not in the benchmark list`); | |
| if (!models.has(o.model_id)) fail(`${where}: model ${o.model_id} is not declared`); | |
| if (!protocols.includes(o.protocol_id)) fail(`${where}: unknown protocol ${o.protocol_id}`); | |
| if (!STATES.includes(o.state)) fail(`${where}: unknown state`); | |
| if (!CONTAMINATION.includes(o.contamination)) fail(`${where}: unknown contamination state`); | |
| if (!UNITS.includes(o.unit)) fail(`${where}: unknown unit`); | |
| if (typeof o.higher_is_better !== "boolean") fail(`${where}: higher_is_better must be boolean`); | |
| const task = tasks.get(o.task_id); | |
| if (o.unit !== task.unit || o.higher_is_better !== task.higher_is_better) fail(`${where}: unit or direction differs from the benchmark list`); | |
| if (!Number.isInteger(o.n_scored) || o.n_scored < 0) fail(`${where}: invalid n_scored`); | |
| for (const k of ["n_population","n_selected"]) if (!(o[k] === null || (Number.isInteger(o[k]) && o[k] >= 0))) fail(`${where}: invalid ${k}`); | |
| checkCI(o.ci95, where); | |
| checkReference(o.reference, where); | |
| if (o.state === "ok") { | |
| if (!isNum(o.value) || o.n_scored < 1) fail(`${where}: ok without a value`); | |
| for (const k of ["source_id_digest","results_sha256","runner_sha256"]) if (!HEX64.test(o[k] || "")) fail(`${where}: ok without ${k}`); | |
| if (o.ci95 !== null && (o.value < o.ci95.lower || o.value > o.ci95.upper)) fail(`${where}: value outside its interval`); | |
| } else if (o.value !== null || o.ci95 !== null) fail(`${where}: a non-ok state carries a value`); | |
| if (["clean","flagged","partially_scanned"].includes(o.contamination) && !HEX64.test(o.contamination_receipt_sha256 || "")) fail(`${where}: scan state without a receipt`); | |
| const variants = [["value_hit_free","n_hit_free","hit_rate","ci95_hit_free"], ["value_hit_free_answer_fields","n_hit_free_answer_fields","hit_rate_answer_fields","ci95_hit_free_answer_fields"]]; | |
| for (const [v, n, r, c] of variants) { | |
| const ci = o[c] === undefined ? null : o[c]; | |
| checkCI(ci, `${where} ${c}`); | |
| const given = [o[v], o[n], o[r]].some(x => x !== undefined && x !== null); | |
| if (o.contamination === "flagged" && o.state === "ok" && !given) fail(`${where}: flagged without ${n}`); | |
| if (!given) { if (ci !== null) fail(`${where}: ${c} without ${v}`); continue; } | |
| if (!Number.isInteger(o[n]) || o[n] < 0 || !isShare(o[r])) fail(`${where}: invalid ${n} or ${r}`); | |
| if ((o[n] === 0) !== (o[v] === null || o[v] === undefined)) fail(`${where}: ${v} must be empty exactly when ${n} is 0`); | |
| if (o[n] > 0 && !isNum(o[v])) fail(`${where}: invalid ${v}`); | |
| if (o.n_scored && o[n] > o.n_scored) fail(`${where}: ${n} exceeds n_scored`); | |
| if (ci !== null && (o[n] === 0 || o[v] < ci.lower || o[v] > ci.upper)) fail(`${where}: ${v} outside ${c}`); | |
| } | |
| } | |
| function validate(packet, taskList) { | |
| if (!packet || typeof packet !== "object") fail("packet is not an object"); | |
| for (const k of Object.keys(packet)) if (!["schema_version","protocol_id","run_id","models","tasks","observations","contrasts","provenance"].includes(k)) fail(`unknown top-level field ${k}`); | |
| if (packet.schema_version !== 2) fail("schema_version must be 2"); | |
| const protocols = ["bench50-v0.3.1-panel200","bench50-v0.3.1-fullB"]; | |
| if (!protocols.includes(packet.protocol_id)) fail("unknown protocol_id"); | |
| if (typeof packet.run_id !== "string" || !packet.run_id) fail("missing run_id"); | |
| const p = packet.provenance; | |
| if (!p || p.kind !== "measurement") fail("only measurement packets are shown"); | |
| if (!/^[0-9a-f]{40}$/.test(p.inventory_commit || "")) fail("provenance.inventory_commit missing"); | |
| if (!Array.isArray(p.sources) || !p.sources.length || !p.sources.every(s => s && typeof s.run_id === "string" && HEX64.test(s.results_sha256 || ""))) fail("provenance.sources missing"); | |
| if (!Array.isArray(packet.models) || !packet.models.length) fail("no models"); | |
| const models = new Map(); | |
| for (const m of packet.models) { | |
| if (!m || typeof m.model_id !== "string" || !m.model_id || typeof m.repo !== "string" || !m.repo) fail("invalid model entry"); | |
| if (models.has(m.model_id)) fail(`duplicate model ${m.model_id}`); | |
| if (!(m.weights_sha256 === null || HEX64.test(m.weights_sha256))) fail(`invalid weights_sha256 for ${m.model_id}`); | |
| models.set(m.model_id, m); | |
| } | |
| const tasks = new Map(taskList.rows.map(r => [r.id, r])); | |
| if (!Array.isArray(packet.tasks)) fail("tasks must be a list"); | |
| for (const t of packet.tasks) { | |
| const row = tasks.get(t && t.task_id); | |
| if (!row) fail(`task ${t && t.task_id} is not in the benchmark list`); | |
| if (t.language !== row.language) fail(`task ${t.task_id}: language differs from the benchmark list`); | |
| } | |
| if (!Array.isArray(packet.observations)) fail("observations must be a list"); | |
| const observations = new Map(); | |
| packet.observations.forEach((o, i) => { | |
| checkObservation(o, i, tasks, models, protocols); | |
| const k = key(o.task_id, o.model_id, o.protocol_id); | |
| if (observations.has(k)) fail(`duplicate observation ${o.task_id} / ${o.model_id}`); | |
| observations.set(k, o); | |
| }); | |
| if (!Array.isArray(packet.contrasts)) fail("contrasts must be a list"); | |
| const contrasts = []; | |
| packet.contrasts.forEach((c, i) => { | |
| const where = `contrast ${i}`; | |
| if (!c || !VERDICTS.includes(c.verdict)) fail(`${where}: unknown verdict`); | |
| if (!SUBSETS.includes(c.subset)) fail(`${where}: unknown subset`); | |
| if (!(c.n === null || (Number.isInteger(c.n) && c.n >= 0))) fail(`${where}: invalid n`); | |
| if (typeof c.metric !== "string" || !c.metric || !UNITS.includes(c.unit)) fail(`${where}: missing metric or unit`); | |
| const left = observations.get(key(c.task_id, c.model_id, c.protocol_id)); | |
| const right = observations.get(key(c.task_id, c.model_ref, c.protocol_id)); | |
| if (!left || !right) fail(`${where}: refers to a missing observation`); | |
| if (c.unit !== left.unit) fail(`${where}: unit differs from its observation`); | |
| checkCI(c.ci95, where); | |
| if (c.verdict !== "withheld") { | |
| const r = c.review || {}; | |
| if (r.status !== "accepted" || typeof r.actor !== "string" || !r.actor || !HEX64.test(r.artifact_sha256 || "")) fail(`${where}: verdict without an accepted review`); | |
| if (!isNum(c.delta) || !isShare(c.p_holm) || !Number.isInteger(c.family_size) || c.family_size < 1) fail(`${where}: verdict without paired test numbers`); | |
| if (!Number.isInteger(c.n) || c.n < 1) fail(`${where}: verdict without n`); | |
| if (left.state !== "ok" || right.state !== "ok") fail(`${where}: verdict on a non-ok observation`); | |
| checkVerdict(c, left, right, observations, where); | |
| } | |
| contrasts.push(c); | |
| }); | |
| return {models, tasks, observations, contrasts}; | |
| } | |
| // Hit-free values carry a number only with at least this many items (method rule, 2026-10-29). | |
| const MIN_HIT_FREE_N = 50; | |
| const ALPHA = 0.05; | |
| const enough = n => Number.isInteger(n) && n >= MIN_HIT_FREE_N; | |
| const SHOWN = ["clean","flagged","unknown"]; | |
| // Highest hit rate in a row where some flagged model keeps fewer than MIN_HIT_FREE_N items without any hits ("most items | |
| // found in training data"); null outside that class. | |
| function mostlyTrained(observations, taskId, protocolId) { | |
| let rate = null; | |
| for (const o of observations.values()) { | |
| if (o.task_id === taskId && o.protocol_id === protocolId && o.state === "ok" && o.contamination === "flagged" && !enough(o.n_hit_free)) rate = Math.max(rate ?? 0, o.hit_rate); | |
| } | |
| return rate; | |
| } | |
| // One rule set with the exporter (_check_verdict, agents 31b34ca6), applied to every non-withheld verdict: no verdict | |
| // against a constant answer or a cell without a number (the exporter publishes no contrast for such pairs); the | |
| // verdict-bearing subset is full, or hit_free_answer_fields in the "most items in training data" row class, any other | |
| // subset stays withheld; directional exactly when p_holm <= ALPHA and n >= MIN_HIT_FREE_N (on the answer-field subset | |
| // also n_hit_free_answer_fields of model_id), with the sign of delta (model_id minus model_ref) matching the verdict and | |
| // higher_is_better; otherwise inconclusive. | |
| function checkVerdict(c, left, right, observations, where) { | |
| for (const o of [left, right]) { | |
| if (!SHOWN.includes(o.contamination)) fail(`${where}: verdict against a cell without a number`); | |
| if (o.reference && o.reference.constant_prediction === true) fail(`${where}: verdict against a constant answer`); | |
| } | |
| const bearing = mostlyTrained(observations, c.task_id, c.protocol_id) !== null ? "hit_free_answer_fields" : "full"; | |
| if (c.subset !== bearing) fail(`${where}: subset ${c.subset} is a diagnostic in this row (verdicts only on ${bearing})`); | |
| const nOk = enough(c.n) && (c.subset !== "hit_free_answer_fields" || enough(left.n_hit_free_answer_fields)); | |
| const significant = c.p_holm <= ALPHA && nOk; | |
| if (c.verdict === "inconclusive") { | |
| if (significant) fail(`${where}: inconclusive although p_holm ${c.p_holm} <= ${ALPHA} with n >= ${MIN_HIT_FREE_N}`); | |
| return; | |
| } | |
| if (!significant) fail(`${where}: verdict ${c.verdict} needs p_holm <= ${ALPHA} and n >= ${MIN_HIT_FREE_N}`); | |
| if (c.delta === 0) fail(`${where}: verdict without a delta`); | |
| const better = (c.delta > 0) === left.higher_is_better; | |
| if (c.verdict !== (better ? "better" : "worse")) fail(`${where}: verdict ${c.verdict} contradicts delta ${c.delta}`); | |
| } | |
| const api = {PINS, MIN_HIT_FREE_N, key, validate, mostlyTrained}; | |
| if (typeof module !== "undefined" && module.exports) module.exports = api; else window.BenchContract = api; | |
| })(); | |