Saved in:
Bibliographic Details
Main Authors: Zhao, Yuze, Huang, Zhenya, Ma, Yixiao, Li, Rui, Zhang, Kai, Jiang, Hao, Liu, Qi, Zhu, Linbo, Su, Yu
Format: Preprint
Published: 2024
Subjects:
Online Access:https://arxiv.org/abs/2408.11296
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866916363779440640
author Zhao, Yuze
Huang, Zhenya
Ma, Yixiao
Li, Rui
Zhang, Kai
Jiang, Hao
Liu, Qi
Zhu, Linbo
Su, Yu
author_facet Zhao, Yuze
Huang, Zhenya
Ma, Yixiao
Li, Rui
Zhang, Kai
Jiang, Hao
Liu, Qi
Zhu, Linbo
Su, Yu
contents The gap between the trepidation of program reliability and the expense of repairs underscores the indispensability of Automated Program Repair (APR). APR is instrumental in transforming vulnerable programs into more robust ones, bolstering program reliability while simultaneously diminishing the financial burden of manual repairs. Commercial-scale language models (LM) have taken APR to unprecedented levels. However, the emergence reveals that for models fewer than 100B parameters, making single-step modifications may be difficult to achieve the desired effect. Moreover, humans interact with the LM through explicit prompts, which hinders the LM from receiving feedback from compiler and test cases to automatically optimize its repair policies. In this literature, we explore how small-scale LM (less than 20B) achieve excellent performance through process supervision and feedback. We start by constructing a dataset named CodeNet4Repair, replete with multiple repair records, which supervises the fine-tuning of a foundational model. Building upon the encouraging outcomes of reinforcement learning, we develop a reward model that serves as a critic, providing feedback for the fine-tuned LM's action, progressively optimizing its policy. During inference, we require the LM to generate solutions iteratively until the repair effect no longer improves or hits the maximum step limit. The results show that process-based not only outperforms larger outcome-based generation methods, but also nearly matches the performance of closed-source commercial large-scale LMs.
format Preprint
id arxiv_https___arxiv_org_abs_2408_11296
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle RePair: Automated Program Repair with Process-based Feedback
Zhao, Yuze
Huang, Zhenya
Ma, Yixiao
Li, Rui
Zhang, Kai
Jiang, Hao
Liu, Qi
Zhu, Linbo
Su, Yu
Software Engineering
Computation and Language
The gap between the trepidation of program reliability and the expense of repairs underscores the indispensability of Automated Program Repair (APR). APR is instrumental in transforming vulnerable programs into more robust ones, bolstering program reliability while simultaneously diminishing the financial burden of manual repairs. Commercial-scale language models (LM) have taken APR to unprecedented levels. However, the emergence reveals that for models fewer than 100B parameters, making single-step modifications may be difficult to achieve the desired effect. Moreover, humans interact with the LM through explicit prompts, which hinders the LM from receiving feedback from compiler and test cases to automatically optimize its repair policies. In this literature, we explore how small-scale LM (less than 20B) achieve excellent performance through process supervision and feedback. We start by constructing a dataset named CodeNet4Repair, replete with multiple repair records, which supervises the fine-tuning of a foundational model. Building upon the encouraging outcomes of reinforcement learning, we develop a reward model that serves as a critic, providing feedback for the fine-tuned LM's action, progressively optimizing its policy. During inference, we require the LM to generate solutions iteratively until the repair effect no longer improves or hits the maximum step limit. The results show that process-based not only outperforms larger outcome-based generation methods, but also nearly matches the performance of closed-source commercial large-scale LMs.
title RePair: Automated Program Repair with Process-based Feedback
topic Software Engineering
Computation and Language
url https://arxiv.org/abs/2408.11296