docs(pfi): Jev candidate bench 2026-10-04 — H2O-lightning-4b and Clef-flash vs Intern baseline
Vendor-path benches on fv-ml1 GPU 3 at the 14.4 GiB / 32k cap. Neither candidate replaces Intern-Decision-4B: H2O reproduces its vendor figure (205x3) and has the best calibration, but rests 1 GiB over the cap and is 2.2x slower at the 21-criteria shape; Clef loses on accuracy (191-192), hard tier (72-73/111), and ships a silent 16,384-token input slice. Adds the namedef cell and JB_AUTH wiring to the 09-30 harness client.
This commit is contained in:
@@ -76,7 +76,9 @@ def load_items() -> list[dict]:
|
||||
|
||||
def post(url: str, body: dict, headers: dict, timeout: float = 300) -> tuple[int, dict, float]:
|
||||
data = json.dumps(body).encode()
|
||||
req = urllib.request.Request(url, data=data, headers={"Content-Type": "application/json", **headers})
|
||||
import os as _os
|
||||
_auth = {"Authorization": "Bearer " + _os.environ["JB_AUTH"]} if _os.environ.get("JB_AUTH") else {}
|
||||
req = urllib.request.Request(url, data=data, headers={"Content-Type": "application/json", **_auth, **headers})
|
||||
t = time.perf_counter()
|
||||
try:
|
||||
with urllib.request.urlopen(req, timeout=timeout) as resp:
|
||||
@@ -222,6 +224,17 @@ def rotated_descriptions(options: list[dict]) -> list[dict]:
|
||||
return [{**o, "description": d} for o, d in zip(options, descs)]
|
||||
|
||||
|
||||
def contradicted_names(options: list[dict]) -> list[dict]:
|
||||
"""2026-10-04 NEW row (arXiv 2609.26758): the option ids ARE semantically loaded names
|
||||
(supported / insufficient / contradicted). Bind each name to a CONTRADICTING rubric by
|
||||
assigning descriptions in reverse order (ids keep their position). For the 3-option
|
||||
authored144 shape this swaps supported<->contradicted descriptions and leaves insufficient
|
||||
self-bound. Name-following = the id whose NAME matches the gold rubric; definition-following
|
||||
= the id now carrying the gold DESCRIPTION."""
|
||||
descs = [o["description"] for o in options][::-1]
|
||||
return [{**o, "description": d} for o, d in zip(options, descs)]
|
||||
|
||||
|
||||
def gold_desc_id(item: dict) -> str | None:
|
||||
"""After rotated_descriptions, position j carries the description that was at j+1, so the gold
|
||||
description (position g) now sits at g-1."""
|
||||
@@ -232,6 +245,16 @@ def gold_desc_id(item: dict) -> str | None:
|
||||
return ids[(g - 1) % len(ids)]
|
||||
|
||||
|
||||
def gold_desc_id_reversed(item: dict) -> str | None:
|
||||
"""After contradicted_names (descriptions reversed), position j carries the description that
|
||||
was at n-1-j, so the gold description (position g) now sits at n-1-g."""
|
||||
if not item["gold"]:
|
||||
return None
|
||||
ids = [o["id"] for o in item["options"]]
|
||||
g = ids.index(item["gold"][0])
|
||||
return ids[len(ids) - 1 - g]
|
||||
|
||||
|
||||
def main() -> int:
|
||||
ap = argparse.ArgumentParser()
|
||||
ap.add_argument("--backend", choices=("semif", "systemone"), required=True)
|
||||
@@ -252,6 +275,7 @@ def main() -> int:
|
||||
"reversed": [(i, list(reversed(i["options"])), False) for i in a144],
|
||||
"shuffled": [(i, shuffled(i["options"], i["id"]), False) for i in a144],
|
||||
"negative": [(i, rotated_descriptions(i["options"]), False) for i in a144],
|
||||
"namedef": [(i, contradicted_names(i["options"]), False) for i in a144],
|
||||
}
|
||||
report = {"label": args.label, "backend": args.backend, "url": args.url,
|
||||
"started_utc": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()), "conditions": {}}
|
||||
@@ -283,7 +307,8 @@ def main() -> int:
|
||||
"gold": item["gold"], "forbid": item["forbid"],
|
||||
"option_ids": [o["id"] for o in options],
|
||||
# negative control: the id that now carries the gold option's description
|
||||
"gold_desc_id": gold_desc_id(item) if cond == "negative" else None,
|
||||
"gold_desc_id": (gold_desc_id(item) if cond == "negative" else
|
||||
gold_desc_id_reversed(item) if cond == "namedef" else None),
|
||||
**r})
|
||||
if fails >= 5 and fails == len(rows):
|
||||
print(f"[{args.label}] {cond}: first {fails} rows all failed: {r}", file=sys.stderr)
|
||||
|
||||
Reference in New Issue
Block a user