RethinkMCTS: Refining Erroneous Thoughts in Monte Carlo Tree Search for Code Generation
<|reference_start|>RethinkMCTS: Refining Erroneous Thoughts in Monte Carlo Tree Search for Code Generation: LLM agents enhanced by tree search algorithms have yielded notable performances in code generation. However, current search algorithms in this domain suffer from low search quality due to several reasons: 1) Ineffective design of the search space for the high-reasoning demands of code generation tasks, 2) Inadequate integration of code feedback with the search algorithm, and 3) Poor handling of negative feedback during the search, leading to reduced search efficiency and quality. To address these challenges, we propose to search for the reasoning process of the code and use the detailed feedback of code execution to refine erroneous thoughts during the search. In this paper, we introduce RethinkMCTS, which employs the Monte Carlo Tree Search (MCTS) algorithm to conduct thought-level searches before generating code, thereby exploring a wider range of strategies. More importantly, we construct verbal feedback from fine-grained code execution feedback to refine erroneous thoughts during the search. This ensures that the search progresses along the correct reasoning paths, thus improving the overall search quality of the tree by leveraging execution feedback. Through extensive experiments, we demonstrate that RethinkMCTS outperforms previous search-based and feedback-based code generation baselines. On the HumanEval dataset, it improves the pass@1 of GPT-3.5-turbo from 70.12 to 89.02 and GPT-4o-mini from 87.20 to 94.51. It effectively conducts more thorough exploration through thought-level searches and enhances the search quality of the entire tree by incorporating rethink operation.<|reference_end|>
@article{li2024rethinkmcts:,
    title={RethinkMCTS: Refining Erroneous Thoughts in Monte Carlo Tree Search for
  Code Generation},
    author={Qingyao Li, Wei Xia, Kounianhua Du, Xinyi Dai, Ruiming Tang, Yasheng
  Wang, Yong Yu, Weinan Zhang},
    journal={arXiv preprint arXiv:2409.09584},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.09584},
    primaryClass={cs.SE cs.CL}
}