A study on Prompt Design, Advantages and Limitations of ChatGPT for Deep Learning Program Repair
Jialun Cao, Meiziniu Li, Ming Wen, Shing-chi Cheung

TL;DR
This paper investigates ChatGPT's effectiveness in repairing deep learning programs, focusing on prompt design, dialogue facilitation, and evaluating its capabilities in debugging, refactoring, and detecting issues.
Contribution
It introduces prompt templates and analyzes ChatGPT's strengths and limitations in DL program repair, addressing a gap in automatic repair for non-explicit decision logic.
Findings
ChatGPT can detect code smells and refactor code effectively.
Prompt design significantly influences repair performance.
Dialogue can enhance ChatGPT's debugging and repair capabilities.
Abstract
ChatGPT has revolutionized many research and industrial fields. ChatGPT has shown great potential in software engineering to boost various traditional tasks such as program repair, code understanding, and code generation. However, whether automatic program repair (APR) applies to deep learning (DL) programs is still unknown. DL programs, whose decision logic is not explicitly encoded in the source code, have posed unique challenges to APR. While to repair DL programs, an APR approach needs to not only parse the source code syntactically but also needs to understand the code intention. With the best prior work, the performance of fault localization is still far less than satisfactory (only about 30\%). Therefore, in this paper, we explore ChatGPT's capability for DL program repair by asking three research questions. (1) Can ChatGPT debug DL programs effectively? (2) How can ChatGPT's…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Reliability and Analysis Research · Software Testing and Debugging Techniques
