应用软件工程技术中心关于代码表示学习的研究成果被ICSE2022录用并参会交流

发布日期:2022-06-16 浏览次数:


代码表示学习的目标是从代码中学习到有意义的表示方法,从而可以将学习到的表示向量应用在各种代码相关的任务中,例如代码摘要,代码补全和缺陷修复等。深度学习模型在近些年已经在代码表示学习领域取得领先的成果,而随着近几年预训练在NLP领域的发展,通过预训练对代码表示学习也变成了软件工程领域研究的热点。但是由于输入表示、预训练任务和模型结构导致的不足,当前针对代码表征学习的预训练模型表现欠佳。


应用软件工程技术中心2021级博士生牛长安同学、李传艺老师和葛季栋老师提出了一种针对代码表示学习的seq2seq预训练模型SPT-Code,以解决当前方法的不足。当前方法的不足在于对于使用文档作为自然语言信息而导致的无法使用大规模无标签数据,代码文件中包含的自然语言描述蕴含着SPT-Code模型融合考虑了代码中存在的自然语言信息来解决这一不足。对于结构信息,SPT-Code使用了当前遍历方法中的效果最好的SBT,通过进一步无损压缩,将SBT的长度减少到了原来的一半以下。而对于预训练任务,SPT-Code提出了两个针对代码特别设计的任务CAP和MNG,再结合在已有的MASS上的改进版,使用这三个预训练任务对SPT-Code进行预训练。在5个下游任务(code summarization、code completion、bug fixing、code、code translation、code search)上的实验结果显示,SPT-Code在seq2seq任务上达到了SOTA的水平,在分类任务上可以与当前的最优方法持平。



该论文针对当前代码表示学习预训练模型存在的不足,提出了SPT-Code,使模型在预训练阶段可以利用大规模的无标签数据,并且SPT-Code是第一个除代码外同时使用自然语言信息以及AST作为输入的代码预训练模型。以我院博士生牛长安为第一作者的这篇研究成果被国际会议ICSE’2022录用为长文(Regular Paper),论文标题为"SPT-Code: Sequence-to-Sequence Pre-Training for Learning Source Code Representations"。2022年5月13日,牛长安同学参加ICSE’2022线上会议,并在会议的Technical Track的《Program Comprehension》Session报告了该论文工作。


ICSE(IEEE/ACM International Conference on Software Engineering)由IEEE与ACM联合主办,是软件工程领域国际顶级会议之一。ICSE是软件工程领域研究人员、教育从业人员和工业界人士介绍与讨论领域最新思想,创新成果,研究趋势和分享经验的首要论坛之一。ICSE是CCF-A类、Core Conference Ranking A*类会议。


会议信息:https://conf.researchr.org/program/icse-2022/program-icse-2022/

该研究工作获得国家自然科学基金、江苏省自然科学基金和华为公司合作项目的资助。

欢迎对该项研究感兴趣的老师、同学与我们联系:lcy@nju.edu.cn。