Skip to content

feat(priors): cold-start σ_raw prior table — 78 cited per-model cells - #30

Open
crbazevedo wants to merge 3 commits into
mainfrom
feat/cold-start-priors
Open

feat(priors): cold-start σ_raw prior table — 78 cited per-model cells#30
crbazevedo wants to merge 3 commits into
mainfrom
feat/cold-start-priors

Conversation

@crbazevedo

@crbazevedo crbazevedo commented Jun 18, 2026

Copy link
Copy Markdown
Owner

Summary

  • src/minimal_oversight/data/priors.yaml — 78 cited per-model × task-type cells from adversarially-verified deep research (78 cells, 13 models × 6 task types). Each cell carries σ_raw band (or catch_rate band for review), primary_benchmark, metric_kind (absolute|relative), source URL, and normalization note.
  • src/minimal_oversight/priors.py — Python seed_node(model, task_type) that maps a prior cell onto Node kwargs + provenance (σ_skill for generators via fixed-point GAMMA inversion; catch_rate for review nodes).
  • web/mso-priors.js — JS port of seed_node; all 78 cells bundled inline; UMD-compatible (browser + Node require).
  • web/widgets/cockpit.html — "⊕ Seed from model & task…" button in node inspector: modal with auto-guessed model/task dropdowns, live preview (band + confidence + benchmark), prior chip displayed in inspector, slider edits clear the prior.
  • scripts/parity_runner.js + tests/test_parity.pyseed_node parity cases (4 cells, generator + review branches); JS ↔ Python must agree to 1e-6.

Cold-start problem solved

Users with no traces can now seed cockpit nodes from public benchmark evidence instead of guessing σ values. The seeder is labeled as a prior (confidence score, relative-evidence warning) to discourage over-trusting it.

Test plan

  • All 85 tests pass (uv run pytest or .venv/bin/python -m pytest)
  • Parity test: seed_node JS/Python agree to 1e-6 on σ_skill, catch_rate, band, confidence
  • Open cockpit, load Sales Pipeline template, click a node, click "⊕ Seed from model & task…"
  • Verify modal auto-guesses model/task, preview shows band + confidence + benchmark
  • Apply prior — inspector shows prior chip, σ_skill slider moves, analysis updates
  • Drag σ_skill slider manually — prior chip disappears (cleared)

🤖 Generated with Claude Code

crbazevedo and others added 3 commits June 17, 2026 22:41
…aceholder data)

Scaffolds the cold-start path so a node can be seeded from a (model, task_type)
prior when the user has no traces yet — to be refined later by their own logged
outcomes.

- data/priors.yaml: schema for low/mid/high sigma_raw bands (generator tasks) /
  catch_rate bands (review task) with provenance (benchmark, metric, metric_kind,
  source_url, normalization_note). Currently PLACEHOLDER abstract-tier rows;
  cited per-model values from the research pass replace them next.
- priors.py: load_priors/list_models/list_task_types/seed_node. seed_node maps a
  cell to Node kwargs — generator -> sigma_skill = mid/gamma (reproduces the
  prior's sigma_raw at the return-operator fixed point), review -> catch_rate —
  plus a provenance block with a (1 - band_width) confidence proxy.
- tests: fixed-point round-trip, review->catch_rate, band/provenance validity,
  loader rejection of non-monotone bands / review-without-catch / unknown task.

Hatchling bundles data/priors.yaml in the wheel (verified). Not wired into the
cockpit/notebook yet — that lands with the curated numbers + a JS parity port.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…cells)

Replace placeholder rows with 78 per-model × task-type prior cells sourced
from a multi-agent deep-research sweep (109 agents, 6435k tokens, 622 tool
uses). Each cell carries low/mid/high σ_raw or catch_rate bands, primary
benchmark, metric_kind, source URL, and a normalization note.

Sources by task-type:
- code_generation: LiveBench Coding (Table 1, Jun-2024 snapshot); cross-check
  HumanEval vs SWE-bench-Verified to justify wide bands
- classification: NO surviving absolute benchmark (MMLU vendor proxy refuted 2-1);
  conservative tier-interpolation cells flagged metric_kind=relative
- extraction: JSONSchemaBench (EPFL-DLab, Feb 2025, arXiv 2501.10868); schema-
  difficulty × constrained-decoding dominates over model family
- drafting: Vectara HHEM-2.3 + FaithBench/RAGTruth faithfulness subdim (absolute)
  for grounded accuracy; style/IF quality is RELATIVE-ONLY and not captured in σ
- retrieval: same HHEM + FaithBench source; explicit note that faithfulness ≠
  end-to-end RAG correctness (DeepSeek-R1 divergence documented)
- review (catch_rate): FaithJudge zero-shot (o3-mini-high 68.8% bal-acc ceiling),
  MT-Bench (GPT-4 ~80-85% pairwise), RewardBench-2 (~20pp harder-distribution
  drop), CriticBench pairing asymmetry — widest bands, softest column

Key normalization decisions:
- ABSOLUTE metrics (pass@1, faithfulness rate) → σ_raw with modest domain-shift
  discount; band widened when evidence is stale or interpolated
- RELATIVE metrics (AlpacaEval, Arena Elo) NOT inverted to σ; used for ranking only
- DeepSeek R1 reasoning penalty on faithfulness explicitly captured
- Classification cells marked for immediate trace refinement

All 8 test_priors tests pass; 85 total, 1 skipped.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- web/mso-priors.js: JS port of priors.seed_node; bundles all 78 cited
  (model × task) cells inline; exports seedNode / listModels / listTaskTypes
  / hasCell / GAMMA; UMD-compatible (browser globals + Node require)
- web/widgets/cockpit.html: "⊕ Seed from model & task…" button in node
  inspector; opens modal with model/task dropdowns auto-guessed from node
  label and connector type; live preview shows σ_skill or catch_rate + band
  + confidence + benchmark name + relative-evidence warning; applying the
  prior stores provenance on n._prior and renders a chip in the inspector;
  manually adjusting any slider clears the prior
- scripts/parity_runner.js: added seed_node output block, requires mso-priors.js
- tests/test_parity.py: added seed_node parity cases (4 cells covering
  generator + review branches); imports priors.seed_node; asserts JS ↔
  Python agree to 1e-6 on sigma_skill / catch_rate / band / confidence

All 85 tests pass, 1 skipped (no Node; parity test self-skips).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

1 participant