VSS3-02 (SLM-70): cost-to-go energy scorer as permutation-only ranker#348
VSS3-02 (SLM-70): cost-to-go energy scorer as permutation-only ranker#348Tyler-R-Kendrick wants to merge 1 commit into
Conversation
- Add src/slm_training/dsl/solver/energy_ranker.py with CandidateEnergyInput, CandidateEnergyOutput, CandidateEnergyScorer, and EnergyCandidateRanker. The ranker validates permutation, finiteness, and membership; invalid output triggers a deterministic fallback. - Add optional cost_to_go_head MLP to TwoTowerModel, plus score_candidates() and cost_to_go_loss() that consume VSS3-01 CandidateCostRow records. cost_observed=False rows are masked; pairwise ranking loss compares candidates within the same (state, hole). - Wire config through ModelBuildConfig, factory, and scripts/train_model.py (--cost-to-go-loss-weight, --cost-to-go-hidden-dim). - Add src/slm_training/harnesses/model_build/cost_to_go_train.py and scripts/train_cost_to_go.py for head-only training. - Add regression tests: tests/test_dsl/test_energy_ranker.py and tests/test_models/test_cost_to_go.py. - Update docs/design/verified-scope-solver.md, research-lineage.md, quality-experiment-matrix.md, and add docs/design/vss3-02-cost-to-go.md. Honest wiring only: no model, checkpoint, eval run, or ship gate claimed.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Superseded by #347, being merged as the canonical VSS3-02 for SLM-70. #347's energy scorer + Closing as a duplicate to keep one canonical VSS3-02. The extra wiring here (in-checkpoint Generated by Claude Code |
Closes SLM-70.
What changed
src/slm_training/dsl/solver/energy_ranker.pywithCandidateEnergyInput,CandidateEnergyOutput,CandidateEnergyScorer, andEnergyCandidateRanker.EnergyCandidateRankervalidates that scorer output is a finite permutation of the exact live candidates; invalid output triggers a deterministic fallback.cost_to_go_headtoTwoTowerModel, plusscore_candidates()andcost_to_go_loss()that consume VSS3-01CandidateCostRowrecords.cost_to_go_lossmaskscost_observed=Falserows from regression and adds a pairwise ranking loss within each(state_fingerprint, hole_id)group.ModelBuildConfig,factory.py, andscripts/train_model.py(--cost-to-go-loss-weight,--cost-to-go-hidden-dim).src/slm_training/harnesses/model_build/cost_to_go_train.pyandscripts/train_cost_to_go.pyfor head-only training.tests/test_dsl/test_energy_ranker.pyandtests/test_models/test_cost_to_go.py.docs/design/verified-scope-solver.md,docs/design/research-lineage.md,docs/design/quality-experiment-matrix.md, and addeddocs/design/vss3-02-cost-to-go.md.Verification
ruff checkpasses on touched files.pytest tests/test_dsl/test_energy_ranker.py tests/test_models/test_cost_to_go.py tests/test_dsl/test_solver_controller.py -q→ 45 passed.python -m scripts.repo_policyok.git diff --checkclean..githooks/check-changed→ all targeted suites pass (590 passed).Honesty
Wiring / fixture evidence only. The head is trained on tiny synthetic rows in tests; no real VSS3-01 corpus train, eval, benchmark, checkpoint ship, or readiness gate is claimed.