experiment: implement AttnRes local path runner

This commit is contained in:
wuyang
2026-07-30 12:53:22 +08:00
parent 6911efc6e7
commit 39a9ad6215
3 changed files with 1461 additions and 2 deletions
@@ -0,0 +1,498 @@
#!/usr/bin/env python3
"""Aggregate and gate preregistered Round 07 local-path results."""
from __future__ import annotations
import argparse
import copy
import hashlib
import json
import math
import statistics
from pathlib import Path
from typing import Any
PROTOCOL_ID = "llm-atlas-k3-attnres-local-path-v1"
METRICS = ("spike_contrast", "peak_normalized")
SUFFICIENCY_MODES = (
"uniform_group_6_only",
"uniform_group_7_only",
"uniform_groups_6_7_only",
"uniform_group_6_attention_only",
"uniform_group_6_mlp_only",
"uniform_group_7_attention_only",
"uniform_group_7_mlp_only",
"uniform_output_only",
"uniform_depth_all",
"uniform_all",
)
RESTORATION_MODES = (
"uniform_except_group_6",
"uniform_except_group_7",
"uniform_except_groups_6_7",
)
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser()
parser.add_argument("--manifest", type=Path, required=True)
parser.add_argument(
"--formal", type=Path, action="append", required=True
)
parser.add_argument("--replay", type=Path, required=True)
parser.add_argument("--output", type=Path, required=True)
return parser.parse_args()
def file_sha256(path: Path) -> str:
digest = hashlib.sha256()
with path.open("rb") as handle:
for chunk in iter(lambda: handle.read(1024 * 1024), b""):
digest.update(chunk)
return digest.hexdigest()
def canonical_sha256(value: Any) -> str:
payload = json.dumps(
value, ensure_ascii=False, sort_keys=True, separators=(",", ":")
).encode()
return hashlib.sha256(payload).hexdigest()
def read_result(path: Path) -> dict[str, Any]:
value = json.loads(path.read_text())
if value["protocol_id"] != PROTOCOL_ID:
raise RuntimeError(f"protocol mismatch: {path}")
expected = value["canonical_sha256_without_self"]
without_self = {
key: item
for key, item in value.items()
if key != "canonical_sha256_without_self"
}
if canonical_sha256(without_self) != expected:
raise RuntimeError(f"canonical self-hash mismatch: {path}")
return value
def replay_payload(value: dict[str, Any]) -> dict[str, Any]:
cleaned = copy.deepcopy(value)
for key in ("run_kind", "timing", "canonical_sha256_without_self"):
cleaned.pop(key)
return cleaned
def primary_metrics(mode: dict[str, Any]) -> dict[str, float]:
stats = mode["positions"]["post_mlp_state"]["reductions"][
"element_rms"
]["statistics"]
return {name: float(stats[name]) for name in METRICS}
def all_true(values: list[bool]) -> bool:
return len(values) > 0 and all(values)
def mixed_status(
by_seed_metric: dict[str, dict[str, dict[str, Any]]],
threshold: float,
) -> dict[str, Any]:
passed = []
signs = []
metric_passes = {metric: [] for metric in METRICS}
for seed_values in by_seed_metric.values():
for metric in METRICS:
score = seed_values[metric]["score"]
cell_passed = score is not None and score >= threshold
passed.append(cell_passed)
metric_passes[metric].append(cell_passed)
if score is not None:
signs.append(1 if score >= 0 else -1)
reasons = []
if any(passed) and not all(passed):
reasons.append("seed_or_metric_pass_split")
if metric_passes[METRICS[0]] != metric_passes[METRICS[1]]:
reasons.append("metric_direction_split")
if len(set(signs)) > 1:
reasons.append("score_sign_split")
return {
"passed": all_true(passed),
"threshold": threshold,
"required_cells": len(passed),
"passed_cells": sum(passed),
"mixed": bool(reasons),
"mixed_reasons": reasons,
}
def main() -> None:
args = parse_args()
manifest = json.loads(args.manifest.read_text())
if manifest["protocol_id"] != PROTOCOL_ID:
raise RuntimeError("manifest protocol mismatch")
if len(args.formal) != 3:
raise RuntimeError("exactly three formal result paths are required")
formal_pairs = [(path, read_result(path)) for path in args.formal]
formal_pairs.sort(key=lambda item: item[1]["seed"])
expected_seeds = manifest["formal_seeds"]
if [value["seed"] for _, value in formal_pairs] != expected_seeds:
raise RuntimeError("formal seeds do not match manifest")
for path, value in formal_pairs:
if value["run_kind"] != "formal" or value["steps"] != 8000:
raise RuntimeError(f"invalid formal cell: {path}")
if not value["round06_equivalence"]["passed"]:
raise RuntimeError(f"parent equivalence failed: {path}")
for diagnostic in value["diagnostics"]:
if not diagnostic["parent_learned_round06_exact"]:
raise RuntimeError(f"parent diagnostic mismatch: {path}")
if diagnostic["local_matrix"] is not None:
for gate in ("forward_identity_gate", "endpoint_exactness"):
if not diagnostic[gate]["passed"]:
raise RuntimeError(f"{gate} failed: {path}")
for mode in manifest["matrix_modes"]:
if not diagnostic["local_matrix"][mode]["selector"][
"passed"
]:
raise RuntimeError(f"selector failed: {path}:{mode}")
step0 = value["diagnostics"][0]
if (
not step0["initialization_negative_control"]["passed"]
or not step0["loss_scale_gate"]["passed"]
):
raise RuntimeError(f"step-0 control failed: {path}")
replay = read_result(args.replay)
if (
replay["run_kind"] != "replay"
or replay["seed"] != expected_seeds[0]
or replay["steps"] != 8000
):
raise RuntimeError("invalid replay cell")
replay_exact = (
replay_payload(formal_pairs[0][1]) == replay_payload(replay)
)
if not replay_exact:
raise RuntimeError("formal seed1 and replay are not canonical exact")
thresholds = manifest["thresholds"]
cells = []
sufficiency_by_mode: dict[str, dict[str, dict[str, Any]]] = {
mode: {} for mode in SUFFICIENCY_MODES
}
restoration_by_mode: dict[str, dict[str, dict[str, Any]]] = {
mode: {} for mode in RESTORATION_MODES
}
for path, value in formal_pairs:
seed_key = str(value["seed"])
final = value["diagnostics"][-1]["local_matrix"]
mode_metrics = {
mode: primary_metrics(final[mode])
for mode in manifest["matrix_modes"]
}
global_metrics = {}
for metric in METRICS:
reference = mode_metrics["detached_learned"][metric]
uniform_all = mode_metrics["uniform_all"][metric]
log_gap = math.log(reference / uniform_all)
relative_drop = (reference - uniform_all) / reference
established = (
reference
> thresholds["positive_denominator_epsilon"]
and uniform_all
> thresholds["positive_denominator_epsilon"]
and log_gap > 0
and relative_drop
>= thresholds["global_relative_drop_minimum"]
)
global_metrics[metric] = {
"reference": reference,
"uniform_all": uniform_all,
"log_gap": log_gap,
"relative_drop": relative_drop,
"established": established,
}
for mode in SUFFICIENCY_MODES:
sufficiency_by_mode[mode][seed_key] = {}
for metric in METRICS:
established = global_metrics[metric]["established"]
score = (
math.log(
mode_metrics["detached_learned"][metric]
/ mode_metrics[mode][metric]
)
/ global_metrics[metric]["log_gap"]
if established
else None
)
sufficiency_by_mode[mode][seed_key][metric] = {
"score": score,
"metric_value": mode_metrics[mode][metric],
"global_gap_established": established,
}
for mode in RESTORATION_MODES:
restoration_by_mode[mode][seed_key] = {}
for metric in METRICS:
established = global_metrics[metric]["established"]
score = (
math.log(
mode_metrics[mode][metric]
/ mode_metrics["uniform_all"][metric]
)
/ global_metrics[metric]["log_gap"]
if established
else None
)
restoration_by_mode[mode][seed_key][metric] = {
"score": score,
"metric_value": mode_metrics[mode][metric],
"global_gap_established": established,
}
cells.append(
{
"seed": value["seed"],
"path": str(path),
"file_sha256": file_sha256(path),
"canonical_sha256": value[
"canonical_sha256_without_self"
],
"mode_metrics": mode_metrics,
"global": global_metrics,
"interaction_residual": {
metric: (
1.0
- sufficiency_by_mode["uniform_output_only"][
seed_key
][metric]["score"]
- sufficiency_by_mode["uniform_depth_all"][
seed_key
][metric]["score"]
)
for metric in METRICS
},
}
)
global_gap_passed = all_true(
[
cell["global"][metric]["established"]
for cell in cells
for metric in METRICS
]
)
sufficiency_gates = {
"groups_6_7": mixed_status(
sufficiency_by_mode["uniform_groups_6_7_only"],
thresholds["groups_6_7_sufficiency_minimum"],
),
"group_6": mixed_status(
sufficiency_by_mode["uniform_group_6_only"],
thresholds["single_group_material_minimum"],
),
"group_7": mixed_status(
sufficiency_by_mode["uniform_group_7_only"],
thresholds["single_group_material_minimum"],
),
"output_half_gap": mixed_status(
sufficiency_by_mode["uniform_output_only"],
thresholds["output_half_gap_minimum"],
),
}
restoration_gates = {
"groups_6_7": mixed_status(
restoration_by_mode["uniform_except_groups_6_7"],
thresholds["groups_6_7_restoration_minimum"],
),
"group_6": mixed_status(
restoration_by_mode["uniform_except_group_6"],
thresholds["single_group_material_minimum"],
),
"group_7": mixed_status(
restoration_by_mode["uniform_except_group_7"],
thresholds["single_group_material_minimum"],
),
}
branch_gates = {}
for group in (6, 7):
group_passed = sufficiency_gates[f"group_{group}"]["passed"]
candidates = {}
for branch, sibling in (("attention", "mlp"), ("mlp", "attention")):
branch_mode = f"uniform_group_{group}_{branch}_only"
sibling_mode = f"uniform_group_{group}_{sibling}_only"
checks = []
margins = []
for seed in expected_seeds:
seed_key = str(seed)
for metric in METRICS:
left = sufficiency_by_mode[branch_mode][seed_key][
metric
]["score"]
right = sufficiency_by_mode[sibling_mode][seed_key][
metric
]["score"]
margin = (
left - right
if left is not None and right is not None
else None
)
margins.append(margin)
checks.append(
left is not None
and left >= thresholds["branch_material_minimum"]
and margin is not None
and margin
>= thresholds["branch_dominance_margin"]
)
candidates[branch] = {
"passed": group_passed and all_true(checks),
"group_gate_passed": group_passed,
"passed_cells": sum(checks),
"required_cells": len(checks),
"margins": margins,
}
dominant = [
branch
for branch, gate in candidates.items()
if gate["passed"]
]
branch_gates[f"group_{group}"] = {
"passed": len(dominant) == 1,
"dominant_branch": dominant[0] if len(dominant) == 1 else None,
"exploratory_sufficiency_only": True,
"candidates": candidates,
}
localization_passed = (
global_gap_passed
and sufficiency_gates["groups_6_7"]["passed"]
and restoration_gates["groups_6_7"]["passed"]
)
localization_status = (
"established_at_preregistered_bidirectional_50pct_threshold"
if localization_passed
else (
"one_sided_evidence_localization_not_established"
if (
sufficiency_gates["groups_6_7"]["passed"]
!= restoration_gates["groups_6_7"]["passed"]
)
else "not_established_at_preregistered_threshold"
)
)
mode_means = {}
for mode in manifest["matrix_modes"]:
mode_means[mode] = {
metric: statistics.fmean(
cell["mode_metrics"][mode][metric] for cell in cells
)
for metric in METRICS
}
sufficiency_means = {
mode: {
metric: statistics.fmean(
sufficiency_by_mode[mode][str(seed)][metric]["score"]
for seed in expected_seeds
)
for metric in METRICS
}
for mode in SUFFICIENCY_MODES
}
restoration_means = {
mode: {
metric: statistics.fmean(
restoration_by_mode[mode][str(seed)][metric]["score"]
for seed in expected_seeds
)
for metric in METRICS
}
for mode in RESTORATION_MODES
}
result = {
"schema_version": 1,
"protocol_id": PROTOCOL_ID,
"study_identity": manifest["study_identity"],
"manifest": {
"path": str(args.manifest),
"file_sha256": file_sha256(args.manifest),
},
"formal_cells": cells,
"replay": {
"path": str(args.replay),
"file_sha256": file_sha256(args.replay),
"canonical_sha256": replay[
"canonical_sha256_without_self"
],
"formal_seed1_exact_excluding_run_kind_and_timing": replay_exact,
},
"scores": {
"sufficiency": sufficiency_by_mode,
"restoration": restoration_by_mode,
},
"means": {
"mode_metrics": mode_means,
"sufficiency": sufficiency_means,
"restoration": restoration_means,
},
"gates": {
"all_input_and_parent_gates_passed": True,
"global_gap": {
"passed": global_gap_passed,
"required_cells": 6,
"passed_cells": sum(
cell["global"][metric]["established"]
for cell in cells
for metric in METRICS
),
},
"sufficiency": sufficiency_gates,
"restoration": restoration_gates,
"localization": {
"passed": localization_passed,
"status": localization_status,
"requires": (
"groups 6+7 sufficiency and restoration both >=0.50 "
"for 3/3 seeds and both metrics"
),
},
"branch_dominance": branch_gates,
},
"limitations": [
"same-forward diagnostic backward-rule sensitivity only",
"reduced byte-level language model, not the Kimi K3 checkpoint",
"effects are non-additive and are not contribution percentages",
"group 7 includes layers 26-28 outside fixed spike set 21-25",
"three-seed threshold gates are not population inference",
],
}
result["canonical_sha256_without_self"] = canonical_sha256(result)
args.output.parent.mkdir(parents=True, exist_ok=True)
temporary = args.output.with_suffix(args.output.suffix + ".tmp")
temporary.write_text(
json.dumps(result, ensure_ascii=False, indent=2, sort_keys=True)
+ "\n"
)
temporary.replace(args.output)
print(
json.dumps(
{
"output": str(args.output),
"formal_cells": len(cells),
"replay_exact": replay_exact,
"global_gap": global_gap_passed,
"localization": localization_status,
"canonical_sha256": result[
"canonical_sha256_without_self"
],
},
ensure_ascii=False,
indent=2,
)
)
if __name__ == "__main__":
main()