Repository navigation
critic family: refuse positive_lm_source=success without a success-writing reward function - #225
Merged
Merged
Conversation
…tion is not declared to write metadata['success'] S19 #6 VAPO G3 s19-vapo-g3-20261010a failed at the first critic step on both islands: the out-of-tree gsm8k_reward:score writes no success flag. S13 G1 passed with the in-package yeto.rl.gsm8k_reward:score, which does. - yeto.rl.math_reward.writes_success declares a reward function; the in-package gsm8k and math rewards carry it. - launch check positive_lm_success (launcher dry-run + island config) rejects an undeclared or unimportable reward function. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hes); declare via yeto.rl.reward_declarations; unimportable reward gets no verdict Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
S19 #6 VAPO G3
s19-vapo-g3-20261010afailed with 0 rounds. Both islands raised at the first critic step:--positive-example-source success needs sample.metadata['success']. The G3 script loaded the out-of-treegsm8k_reward:score, which writes no success flag. dry-run did not catch it.S13 VAPO G1 (
s13-forkg1-vapo-20261007e) passed with the samepositive_lm_source=success, because it used the in-packageyeto.rl.gsm8k_reward:score, which already writesmetadata['success'](since 4f1c03e).Change
yeto/rl/reward_declarations.py:SUCCESS_WRITING_REWARDSlists the in-package Miles rewards that already writemetadata['success'](yeto.rl.gsm8k_reward:score,yeto.rl.math_reward:reward_func);writes_successdecorator for user rewards. The reward modules themselves are unchanged (their source hashes are in the decoupling golden samples).positive_lm_success(critic.py): withpositive_lm_coefset andpositive_lm_source='success', rejects an importable reward function that is not declared. Sub-agent decision: an unimportable reference gets no verdict (test fixtures use placeholders; the Miles fork still refuses on the island). Skipped when the caller passes no reward function.reward_functionis passed to the check from the launcher (dry-run / pre-launch) and the Miles island config.Main agent decision (1+3): keep the VAPO spec semantics; fix the reward side and add the check. The G3 script should use
--reward-function yeto.rl.gsm8k_reward:scorefor CASE=vapo (script lives outside the repo).Tests
tests/test_rl_positive_lm_success_check.py: 6 passed (refuse undeclared / unimportable; in-package rewards pass; skip cases; gsm8k success equals reward == 1.0).gsm8k_reward:score-> rc=1[positive_lm_success]rejection;yeto.rl.gsm8k_reward:score-> rc=0.-m "not gpu and not ray_local"): 5384 passed, 47 skipped, 1 failed:test_codex_bridge_compaction.py::test_off_stock_bridge_unchanged_and_compactionrl_without_trigger_is_byte_identical; that file passes alone on this branch and on main (21 passed), so it is order-dependent, not caused by this PR.No GPU run. No image rebuild needed: the yeto package ships with the workdir; the Miles fork in the image is unchanged.
🤖 Generated with Claude Code