CCRep:通过预训练代码模型和查询反馈学习代码变更表示
使用人工识别特征并需要为每个任务付出人力劳动的软件补丁现有方法存在缺陷,本文提出一种基于神经网络的 CC2Vec 模型,通过伴随的日志消息学习代码更改的表示,以识别代码更改的层次结构并使用多个比较函数来识别删除和添加代码之间的差异,并证明该模型在多个软件补丁任务中均优于现有技术。
Mar, 2020
通过大量的代码数据进行编码表示学习,使用两阶段的预训练方案以及对比学习的方式增强表示,在各种下游任务上持续显著地超过现有的模型,详细讨论了源代码的自定义和有效的令牌级去噪方案、硬负样本与硬正样本的重要性、提出的双模态对比学习如何提升跨语义搜索性能以及预训练方案对模型规模决定下游任务性能的影响。
Feb, 2024
通过学习语音编码器、编解码器和向量量化码本,RepCodec 通过语义语音标记化将语音波形转换为语义标记,从而显著提升语音理解和生成的性能。
Aug, 2023
本文介绍了一种基于神经网络模型的代码嵌入方法,通过将代码片段表示为单一的固定长度代码向量,学习抽象语法树中路径的原子表示,并同时学习集合聚合的方法,从而预测代码的语义属性。通过训练一个包含 14M 个方法的数据集,我们证明了该方法的有效性,并通过相应的数据比较表明,该方法比先前的技术有着相对提高超过 75%,是第一个成功预测大型跨项目语料库上的方法名的方法。
Mar, 2018
本文提出了一种学习代码语义的新颖处理技术,并将其应用于各种程序分析任务中,其中使用的 Embeddings 基于独立于源编程语言的代码的 IR,现有技术不足以强烈理解程序语义。
Jun, 2018
本研究提出了一种基于图形的代码表示技术,并通过有效的预训练策略生成通用代码表示。通过在真实数据集上的测试,表明该方法在方法名称预测和代码图链接预测方面具有最先进的结果。
Mar, 2021
本论文介绍了一种名为 FuzzPretrain 的方法,利用程序的测试用例中的动态信息,将其嵌入代码的特征表示中,以改善代码搜索的效果,并提供了学习具有区分性的代码表示的实验证据。
Sep, 2023
CV4Code 是一种针对源代码的紧凑而有效的计算机视觉方法,不需要词法分析或语法树解析的步骤,它将代码片段视为二维图像,并使用 ASCII 码点图像表示方法,利用这种方法生成源代码图像非常快速且无冗余,进一步使用卷积神经网络和 transformer 网络学习进行功能预测和检索,实验结果表明,该方法在处理源代码理解任务方面显著优于其他方法。
May, 2022
本文提出了 CODE-MVP 模型来将多种不同的源代码视角集成到一个统一的框架中,并通过多视图对比预训练来学习其中的补充信息和类型推断目标函数,实验证明 CODE-MVP 优于其他现有模型在自然语言代码检索、代码相似性、代码缺陷检测等三个下游任务中的性能表现。
May, 2022
本文探讨了一种基于输入程序快照的源代码表示 ——Code2Snapshot,对其进行了多种变体的评估,并将其与利用输入程序丰富的语法和语义特征的最先进的表示方法进行了比较,研究表明,在代码概述和分类任务中,Code2Snapshot 的实用性相当于最先进的表示方法,这表明在某些任务中,神经模型可以仅依赖于输入程序的结构而提供高性能。
Nov, 2021