Unity is Strength: Cross-Task Knowledge Distillation to Improve Code Review Generation
Oussama Ben Sghaier, Lucas Maes, Houari Sahraoui

TL;DR
This paper introduces DISCOREV, a deep-learning architecture that uses cross-task knowledge distillation to simultaneously improve code review comment generation and code refinement, outperforming existing methods.
Contribution
The novel DISCOREV model leverages cross-task knowledge distillation with feedback and embedding strategies to enhance both comment generation and code refinement tasks.
Findings
DISCOREV outperforms state-of-the-art methods in BLEU score for comment generation.
Cross-task knowledge distillation improves the quality of code review comments.
Guided fine-tuning enhances the effectiveness of automated code review tasks.
Abstract
Code review is a fundamental process in software development that plays a critical role in ensuring code quality and reducing the likelihood of errors and bugs. However, code review might be complex, subjective, and time-consuming. Comment generation and code refinement are two key tasks of this process and their automation has traditionally been addressed separately in the literature using different approaches. In this paper, we propose a novel deep-learning architecture, DISCOREV, based on cross-task knowledge distillation that addresses these two tasks simultaneously. In our approach, the fine-tuning of the comment generation model is guided by the code refinement model. We implemented this guidance using two strategies, feedback-based learning objective and embedding alignment objective. We evaluated our approach based on cross-task knowledge distillation by comparing it to the…
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 Engineering Techniques and Practices · Software System Performance and Reliability
