{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/free-process-rewards-without-process-labels","title":"Free Process Rewards without Process Labels","arxiv_id":"2412.01981","date":"2024-12-02","proceeding":null,"authors":["Lifan Yuan","Wendi Li","Huayu Chen","Ganqu Cui","Ning Ding","Kaiyan Zhang","BoWen Zhou","Zhiyuan Liu","Hao Peng"],"abstract":"Different from its counterpart outcome reward models (ORMs), which evaluate the entire responses, a process reward model (PRM) scores a reasoning trajectory step by step, providing denser and more fine grained rewards. However, training a PRM requires labels annotated at every intermediate step, presenting significant challenges for both manual and automatic data collection. This paper aims to address this challenge. Both theoretically and empirically, we show that an \\textit{implicit PRM} can be obtained at no additional cost, by simply training an ORM on the cheaper response-level labels. The only assumption is to parameterize the outcome reward as the log-likelihood ratios of the policy and reference models, which can be optimized regardless of the specific choice of loss objectives. In experiments, we instantiate our implicit PRMs with various objectives and evaluate their performance on MATH. We show that our implicit PRM outperforms a strong MCTS-based baseline \\textit{\\'a la} Math-Shepherd using less than $1/38$ of the training data. Its performance can be further improved with majority voting. We further find that scaling up instructions and responses benefits our implicit PRM, and the latter brings a larger gain. Particularly, we find that our implicit PRM, when instantiated with the cross-entropy (CE) loss, is more data-efficient and can keep improving generation models even when trained with only one response per instruction, the setup that suffers from extreme data scarcity and imbalance. Further, instructions should be relevant to downstream tasks while the diversity of responses does not bring gains. Surprisingly, training on extra Math-Shepherd step labels brings no further improvements to our implicit PRM trained on only outcome data. We hope that our work will encourage a rethinking of PRM training approaches and contribute to making training PRMs more accessible.","url_abs":"https://arxiv.org/abs/2412.01981v1","url_pdf":"https://arxiv.org/pdf/2412.01981v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"free-process-rewards-without-process-labels","repo_url":"https://github.com/lifan-yuan/implicitprm","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"free-process-rewards-without-process-labels","repo_url":"https://github.com/prime-rl/prime","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"math","task_name":"Math"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2412.01981","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2412.01981"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/lifan-yuan/implicitprm","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/prime-rl/prime","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_draft_wrong":1,"ran":1,"unverified":20},"by_repo_kind":{"official":{"samples":22,"ran":2,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"959df7824bf09cc1","entry":"log_probs_from_logits","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"train/openrlhf/models/utils.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/train/openrlhf/models/utils.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"959df7824bf09cc1"}},{"code_sha256_prefix":"101b1e54fcdadf90","entry":"normalize_answer","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/math_utils/math_normalize.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/math_utils/math_normalize.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"101b1e54fcdadf90"}},{"code_sha256_prefix":"52095429576ac98d","entry":"clean_units","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/math_utils/eval_theoremqa.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/math_utils/eval_theoremqa.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"52095429576ac98d"}},{"code_sha256_prefix":"b507127549cdea93","entry":"compute_approx_kl","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"train/openrlhf/models/utils.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/train/openrlhf/models/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b507127549cdea93"}},{"code_sha256_prefix":"ad31a6c133b0728c","entry":"compute_metrics","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/bon_eval.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/bon_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ad31a6c133b0728c"}},{"code_sha256_prefix":"38b7cb8077e28347","entry":"compute_reward","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"train/openrlhf/models/utils.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/train/openrlhf/models/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"38b7cb8077e28347"}},{"code_sha256_prefix":"d66f259aaf6cd9c7","entry":"convert_ring_attn_params","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"train/openrlhf/models/ring_attn_utils.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/train/openrlhf/models/ring_attn_utils.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d66f259aaf6cd9c7"}},{"code_sha256_prefix":"906aa9a1e739f957","entry":"extract_answer_string_2","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/math_utils/normalizer.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/math_utils/normalizer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"906aa9a1e739f957"}},{"code_sha256_prefix":"3dd56c766e1b4ca8","entry":"extract_attributes_from_name","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/math_utils/normalizer.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/math_utils/normalizer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3dd56c766e1b4ca8"}},{"code_sha256_prefix":"bc171287029c3465","entry":"find_threshold_sigmoid","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/processbench.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/processbench.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bc171287029c3465"}},{"code_sha256_prefix":"f8cd262700389f42","entry":"floatify","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/math_utils/eval_theoremqa.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/math_utils/eval_theoremqa.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f8cd262700389f42"}},{"code_sha256_prefix":"1d78ad671b732515","entry":"get_raw_data","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/prm_eval_utils.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/prm_eval_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1d78ad671b732515"}},{"code_sha256_prefix":"7032a4070687fc83","entry":"get_tokenizer","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/prm_eval_utils.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/prm_eval_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7032a4070687fc83"}},{"code_sha256_prefix":"bb175bff1060d928","entry":"handle_base","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/math_utils/grader.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/math_utils/grader.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bb175bff1060d928"}},{"code_sha256_prefix":"2a180d3156997924","entry":"is_digit","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/math_utils/grader.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/math_utils/grader.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2a180d3156997924"}},{"code_sha256_prefix":"960059cee2753e3f","entry":"normalize","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/math_utils/grader.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/math_utils/grader.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"960059cee2753e3f"}},{"code_sha256_prefix":"c431597b4cd16dfc","entry":"normalize_answer_string","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/math_utils/normalizer.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/math_utils/normalizer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c431597b4cd16dfc"}},{"code_sha256_prefix":"e93117d99aa6b210","entry":"reset_ring_attn_position_ids","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"train/openrlhf/models/ring_attn_utils.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/train/openrlhf/models/ring_attn_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e93117d99aa6b210"}},{"code_sha256_prefix":"fb5dce3b9cdca298","entry":"set_special_token_ids","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/prm_eval_utils.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/prm_eval_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fb5dce3b9cdca298"}},{"code_sha256_prefix":"5a3cf1b9cf6bcb3c","entry":"setup_accelerator_and_models","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/processbench.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/processbench.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5a3cf1b9cf6bcb3c"}},{"code_sha256_prefix":"1c192362b31daf5b","entry":"sigmoid","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/processbench.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/processbench.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1c192362b31daf5b"}},{"code_sha256_prefix":"98b05a45dfc53b99","entry":"within_eps","repo":"lifan-yuan/implicitprm","repo_kind":"official","path":"eval/math_utils/eval_theoremqa.py","file_url":"https://github.com/lifan-yuan/implicitprm/blob/HEAD/eval/math_utils/eval_theoremqa.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"98b05a45dfc53b99"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}