docs(007): STOP force climb — morph65 fair 1.0 ceiling - #99
Conversation
…status (batch 2/2)
|
soft_ceiling ARMED (operator
|
|
continue under soft_ceiling → morph78 fresh acquire HOLD empty gold
|
|
continue → live broad residual reprobe → still HOLD empty gold
|
|
HOLD cards (morph78 acquire + live residual reprobe) have Force tip still morph77 232/273. soft_ceiling remains ARMED. Need authorize that lists named phrases, or a new acquire clearing Receipt: |
|
PR triage — handle (no merge without your yes)
Hyperlexical product plan (draft): Hard locks unchanged: |
|
CI follow-up: force-train ImportError fixed ( |
|
CI root cause: tip-only Fix: Still draft — merge only on authorize after validate green. |
|
merged (operator authorize) Squash merge |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3d28c91b7f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
|
|
||
| def _cpu_module_state(module) -> dict: | ||
| return {k: v.detach().cpu().contiguous() for k, v in module.state_dict().items()} |
There was a problem hiding this comment.
Clone CPU tensors before retaining the best checkpoint
On CPU-only training runs, .cpu() and .contiguous() return the existing storage when the tensor is already contiguous on the CPU, so these detached values still alias the live parameters. Subsequent optimizer steps therefore mutate best_state, and the final promotion writes later/final head weights as model.safetensors while the receipt claims they came from the best epoch. Clone the tensors when constructing the retained snapshot; collect_encoder_trainable() needs the same treatment for CPU encoder parameters.
Useful? React with 👍 / 👎.
| tok = AutoTokenizer.from_pretrained(str(TRUNK), local_files_only=True) | ||
| enc = AutoModel.from_pretrained(str(TRUNK), local_files_only=True) | ||
| filler_state, encoder_tensors, heads_blob = _weight_parts(weight_path, torch) | ||
| apply_encoder_trainable(enc, encoder_tensors) |
There was a problem hiding this comment.
Fail broad evaluation when encoder weights do not load
When a checkpoint contains encoder tensors whose keys do not match the selected trunk, apply_encoder_trainable() reports present > 0 and loaded == 0 but silently leaves the base encoder unchanged; this return value is discarded here. The resulting broad score is then attributed to the candidate and can drive the soft-ceiling promotion decision using the wrong model. Check the result and fail closed, as run_unbind_exact() already does for the same condition.
Useful? React with 👍 / 👎.
| weight_path = root / "model.safetensors" | ||
| assert weight_path.is_file(), weight_path |
There was a problem hiding this comment.
Accept the checkpoint format produced by the fallback saver
When safetensors is unavailable or save_file() raises, the repository's save_heads() deliberately produces only heads.pt, and both warm loading and _weight_parts() support that artifact. This script nevertheless hardcodes model.safetensors and aborts at the assertion, so broad evaluation and the soft-ceiling gate cannot run against a valid fallback training output. Resolve either supported filename before calling _weight_parts().
Useful? React with 👍 / 👎.
| git config user.name "Daniel Meyer" | ||
| git config user.email "scrimshawlife@gmail.com" | ||
| git add scripts/shadow/hyperlexical/export.py tests/shadow/test_hyperlexical_export.py | ||
| git commit -m "fix(007): reject type_slot-tagged wiki scaffolding chrome" |
There was a problem hiding this comment.
Skip the empty restoration commit
For the push that adds .restore/TRIGGER in this commit, and for every manual dispatch at this revision, the decoded export and test payloads are byte-for-byte identical to the checked-in files (including the configured SHA-256 values), so git add stages nothing. This unguarded git commit consequently exits with status 1 under set -e and the workflow fails before git push; Git exposes --allow-empty specifically as an opt-in rather than the default (git-commit documentation). Guard the commit with a staged-diff check or avoid triggering the restoration after its output is already committed.
Useful? React with 👍 / 👎.
val-settle kept 4 OBSERVED; fair n stuck 164 because force keys leave val; Jev stop_force_climb.