国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:杨宏宇,马建辉,侯旻,沈双宏,陈恩红
单位:杨宏宇,大数据分析与应用安徽省重点实验室(中国科学技术大学), 安徽 合肥 230027;中国科学技术大学 计算机科学与技术学院, 安徽 合肥 230027;认知智能全国重点实验室, 安徽 合肥 23008811,马建辉,大数据分析与应用安徽省重点实验室(中国科学技术大学), 安徽 合肥 230027;中国科学技术大学 计算机科学与技术学院, 安徽 合肥 230027;认知智能全国重点实验室, 安徽 合肥 23008802,侯旻,大数据分析与应用安徽省重点实验室(中国科学技术大学), 安徽 合肥 230027;中国科学技术大学 大数据学院, 安徽 合肥 230027;认知智能全国重点实验室, 安徽 合肥 23008803,沈双宏,大数据分析与应用安徽省重点实验室(中国科学技术大学), 安徽 合肥 230027;中国科学技术大学 大数据学院, 安徽 合肥 230027;认知智能全国重点实验室, 安徽 合肥 23008804,陈恩红,大数据分析与应用安徽省重点实验室(中国科学技术大学), 安徽 合肥 230027;中国科学技术大学 大数据学院, 安徽 合肥 230027;认知智能全国重点实验室, 安徽 合肥 23008805
关键词:代码表征;预训练模型;多模态;对比学习
代码表征旨在融合源代码的特征, 以获取其语义向量, 在基于深度学习的代码智能中扮演着重要角色. 传统基于手工的代码表征依赖领域专家的标注, 繁重耗时, 且无法灵活地复用于特定下游任务, 这与绿色低碳的发展理念极不相符. 因此, 近年来, 许多自监督学习的编程语言大规模预训练模型(如CodeBERT)应运而生, 为获取通用代码表征提供了有效途径. 这些模型通过预训练获得通用的代码表征, 然后在具体任务上进行微调, 取得了显著成果. 但是, 要准确表示代码的语义信息, 需要融合所有抽象层次的特征(文本级、语义级、功能级和结构级). 然而, 现有模型将编程语言仅视为类似于自然语言的普通文本序列, 忽略了它的功能级和结构级特征. 因此,旨在进一步提高代码表征的准确性, 提出了基于多模态对比学习的代码表征增强的预训练模型(representation enhanced contrastive multimodal pretraining, REcomp). REcomp设计了新的语义级-结构级特征融合算法, 将它用于序列化抽象语法树, 并通过多模态对比学习的方法将该复合特征与编程语言的文本级和功能级特征相融合, 以实现更精准的语义建模. 最后, 在3个真实的公开数据集上进行了实验, 验证了REcomp在提高代码表征准确性方面的有效性.
来源:2024年第4期
《软件学报》期刊编辑部