Paper Reading AI Learner

Execution-based Code Generation using Deep Reinforcement Learning

2023-01-31 18:02:26
Parshin Shojaee, Aneesh Jain, Sindhu Tipirneni, Chandan K. Reddy

Abstract

The utilization of programming language (PL) models, pretrained on large-scale code corpora, as a means of automating software engineering processes has demonstrated considerable potential in streamlining various code generation tasks such as code completion, code translation, and program synthesis. However, current approaches mainly rely on supervised fine-tuning objectives borrowed from text generation, neglecting specific sequence-level features of code, including but not limited to compilability as well as syntactic and functional correctness. To address this limitation, we propose PPOCoder, a new framework for code generation that combines pretrained PL models with Proximal Policy Optimization (PPO) deep reinforcement learning and employs execution feedback as the external source of knowledge into the model optimization. PPOCoder is transferable across different code generation tasks and PLs. Extensive experiments on three code generation tasks demonstrate the effectiveness of our proposed approach compared to SOTA methods, improving the success rate of compilation and functional correctness over different PLs. Our code can be found at this https URL .

Abstract (translated)

利用编程语言(PL)模型,在大规模代码库中训练,作为自动化软件工程过程的手段,已经展示了在简化各种代码生成任务(如代码完成、代码翻译和程序合成)方面相当大的潜力。然而,当前的方法主要依赖于从文本生成中提取的监督微调目标,忽略了代码的特定序列级特征,包括但不仅限于编译性和语法正确性。为了克服这种限制,我们提出了PPOCoder,一个新的代码生成框架,它将训练好的PL模型与远程策略优化(PPO)深度强化学习相结合,并使用执行反馈作为模型优化的外部知识来源。PPOCoder可以跨不同的代码生成任务和PL进行转移。对三个代码生成任务进行了广泛的实验,证明了我们提出的方法和SOTA方法相比的效力,并提高了不同PL的编译和功能正确性成功率。我们的代码可以在这个httpsURL上找到。

URL

https://arxiv.org/abs/2301.13816

PDF

https://arxiv.org/pdf/2301.13816.pdf


Tags
3D Action Action_Localization Action_Recognition Activity Adversarial Agent Attention Autonomous Bert Boundary_Detection Caption Chat Classification CNN Compressive_Sensing Contour Contrastive_Learning Deep_Learning Denoising Detection Dialog Diffusion Drone Dynamic_Memory_Network Edge_Detection Embedding Embodied Emotion Enhancement Face Face_Detection Face_Recognition Facial_Landmark Few-Shot Gait_Recognition GAN Gaze_Estimation Gesture Gradient_Descent Handwriting Human_Parsing Image_Caption Image_Classification Image_Compression Image_Enhancement Image_Generation Image_Matting Image_Retrieval Inference Inpainting Intelligent_Chip Knowledge Knowledge_Graph Language_Model Matching Medical Memory_Networks Multi_Modal Multi_Task NAS NMT Object_Detection Object_Tracking OCR Ontology Optical_Character Optical_Flow Optimization Person_Re-identification Point_Cloud Portrait_Generation Pose Pose_Estimation Prediction QA Quantitative Quantitative_Finance Quantization Re-identification Recognition Recommendation Reconstruction Regularization Reinforcement_Learning Relation Relation_Extraction Represenation Represenation_Learning Restoration Review RNN Salient Scene_Classification Scene_Generation Scene_Parsing Scene_Text Segmentation Self-Supervised Semantic_Instance_Segmentation Semantic_Segmentation Semi_Global Semi_Supervised Sence_graph Sentiment Sentiment_Classification Sketch SLAM Sparse Speech Speech_Recognition Style_Transfer Summarization Super_Resolution Surveillance Survey Text_Classification Text_Generation Tracking Transfer_Learning Transformer Unsupervised Video_Caption Video_Classification Video_Indexing Video_Prediction Video_Retrieval Visual_Relation VQA Weakly_Supervised Zero-Shot