SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2503.22342 · 2025

CPPO: Accelerating the Training of Group Relative Policy Optimization-Based Reasoning Models

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 13 functions out of this paper's own repositories and ran 7 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
lzhxmu/cppo canonical 7 of 13
FunctionStatusWhere it lives
extract_answer_from_model_output Ran lzhxmu/cppo/cppo_verl/recipe/cppo/src/gsm8k_compute_score.py
code served (permissive licence) · get_code("6859aa3f82a38002")
extract_last_number Ran lzhxmu/cppo/cppo_verl/recipe/cppo/src/gsm8k_compute_score.py
code served (permissive licence) · get_code("0014331dab98c0a5")
extract_single_number Ran lzhxmu/cppo/cppo_verl/recipe/cppo/src/gsm8k_compute_score.py
code served (permissive licence) · get_code("6036741237b33141")
get_custom_reward_fn Ran lzhxmu/cppo/cppo_verl/recipe/cppo/src/main_cppo.py
code served (permissive licence) · get_code("34be00218891a21a")
get_huggingface_actor_config Ran lzhxmu/cppo/cppo_verl/verl/utils/model.py
code served (permissive licence) · get_code("fe79c459a3e4cc64")
union_tensor_dict Ran lzhxmu/cppo/cppo_verl/verl/protocol.py
code served (permissive licence) · get_code("21331a58f93375e4")
unpad_dataproto Ran lzhxmu/cppo/cppo_verl/verl/protocol.py
code served (permissive licence) · get_code("25f0ea3f460f6ce1")
extract_solution Not yet run lzhxmu/cppo/cppo_verl/recipe/cppo/precess_gsm8k.py
code served (permissive licence) · get_code("e4128a6f1b0585bc")
get_generation_config Not yet run lzhxmu/cppo/cppo_verl/verl/utils/model.py
code served (permissive licence) · get_code("660713a8fa047736")
get_weight_loader Not yet run lzhxmu/cppo/cppo_verl/verl/models/weight_loader_registry.py
code served (permissive licence) · get_code("39fba8c5b01d595e")
get_weight_saver Not yet run lzhxmu/cppo/cppo_verl/verl/models/weight_loader_registry.py
code served (permissive licence) · get_code("8bf1b3e9bf87072c")
load_state_dict_to_megatron_gptmodel Not yet run lzhxmu/cppo/cppo_verl/verl/models/mcore/loader.py
code served (permissive licence) · get_code("1901b047ab8e1654")
squeeze Not yet run lzhxmu/cppo/cppo_verl/verl/utils/model.py
code served (permissive licence) · get_code("3b15e2ac7497c441")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

This paper introduces Completion Pruning Policy Optimization (CPPO) to accelerate the training of reasoning models based on Group Relative Policy Optimization (GRPO). GRPO, while effective, incurs high training costs due to the need to sample multiple completions for each question. Our experiment and theoretical analysis reveal that the number of completions impacts model accuracy yet increases training time multiplicatively, and not all completions contribute equally to policy training -- their contribution depends on their relative advantage. To address these issues, we propose CPPO, which prunes completions with low absolute advantages, significantly reducing the number needed for gradient calculation and updates. Additionally, we introduce a dynamic completion allocation strategy to maximize GPU utilization by incorporating additional questions, further enhancing training efficiency. Experiments show that CPPO achieves up to $7.98\times$ speedup on GSM8K and $3.48\times$ on Math while preserving or even enhancing the accuracy compared to the original GRPO. We release our code at \href{https://github.com/lzhxmu/CPPO}{https://github.com/lzhxmu/CPPO}.

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2503.22342")
get_code_for_paper("2503.22342")
have("2503.22342")

Connect an agent — have() is free.