FunPRM: Function-as-Step Process Reward Model with Meta Reward Correction for Code Generation
Ruiyi Zhang, Peijia Qin, Qi Cao, Eric Xue, Pengtao Xie
TL;DR
FunPRM tackles the challenge of improving code-generation with large language models by introducing a function-level Process Reward Model (PRM) and a meta-learning reward-correction mechanism. By organizing code into modular functions, FunPRM defines clear PRM steps and leverages unit-test-based final rewards to denoise noisy partial-solution rewards through a bi-level optimization process. Empirical results on LiveCodeBench and BigCodeBench show consistent gains across multiple base LLMs and establish state-of-the-art performance on LiveCodeBench when paired with strong base models, along with improved code readability and reusability. The work demonstrates practical benefits for test-time scaling in coding tasks and discusses safety considerations for deploying such systems in real-world development contexts.
Abstract
Code generation is a core application of large language models (LLMs), yet LLMs still frequently fail on complex programming tasks. Given its success in mathematical reasoning, test-time scaling approaches such as Process Reward Model (PRM)-based Best-of-N selection offer a promising way to improve performance. However, existing PRMs remain ineffective for code generation due to the lack of meaningful step decomposition in code and the noise of Monte Carlo-estimated partial-solution correctness scores (rewards). To address these challenges, we propose FunPRM. FunPRM prompts LLMs to encourage modular code generation organized into functions, with functions treated as PRM reasoning steps. Furthermore, FunPRM introduces a novel meta-learning-based reward correction mechanism that leverages clean final-solution rewards obtained via a unit-test-based evaluation system to purify noisy partial-solution rewards. Experiments on LiveCodeBench and BigCodeBench demonstrate that FunPRM consistently outperforms existing test-time scaling methods across five base LLMs, notably achieving state-of-the-art performance on LiveCodeBench when combined with O4-mini. Furthermore, FunPRM produces code that is more readable and reusable for developers.
