深度学习中的代码数据增强:5年89篇研究综述

随着深度学习和大型模型的快速发展,对创新技术的追求不断增加。在这个过程中,数据增强技术展现出了不可忽视的价值

最近,由蒙纳士大学、新加坡管理大学、华为诺亚方舟实验室、北京航空航天大学以及澳大利亚国立大学联合进行的对近 5 年的 89 篇相关研究调查,发布了一份关于代码数据增强在深度学习中应用的全面综述

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

深度学习中的代码数据增强:5年89篇研究综述

论文地址:https://arxiv.org/abs/2305.19915项目地址:https://github.com/terryyz/DataAug4Code

这份综述不仅深入探讨了代码数据增强技术在深度学习领域的应用,还展望了其未来的发展潜力。作为一种在不收集新数据的情况下增加训练样本多样性的技术,代码数据增强已在机器学习研究中获得广泛应用。这些技术对于资源匮乏领域的数据驱动模型性能提升具有显著意义。

深度学习中的代码数据增强:5年89篇研究综述

然而,在代码建模领域,这种方法的潜力还没有被充分挖掘。代码建模是机器学习和软件工程相交的新兴领域,涉及应用机器学习技术来解决各种代码任务,例如代码补全、代码摘要和缺陷检测。代码数据具有多模态特性(编程语言和自然语言),这为定制数据增强方法带来了独特的挑战

这份综述报告是由多个顶级学术和工业机构联合发布的。它不仅深入揭示了代码数据增强技术,还为未来的研究和应用提供了指导。我们相信,这份综述将激发更多研究者对代码数据增强在深度学习中的应用产生兴趣,并推动该领域的进一步探索和发展

背景介绍

代码模型的兴起与发展:代码模型是基于大量源代码语料库训练的,能够精准地模拟代码片段的上下文。从早期采用 LSTM 和 Seq2Seq 等深度学习架构,到后来融入预训练语言模型,这些模型已经在多个源代码的下游任务中显示出了出色的性能。例如,有些模型在预训练阶段就考虑了程序的数据流,这是代码的语义层面结构,用于捕捉变量间的关系。

数据增强技术的意义:数据增强技术通过数据合成来增加训练样本的多样性,从而提高模型在各方面(如准确性和稳健性)的性能。在计算机视觉领域,例如,常用的数据增强方法包括图像裁剪、翻转和颜色调整。而在自然语言处理中,数据增强则大量依赖于语言模型,这些模型能够通过替换词汇或重写句子来改写上下文。

代码数据增强的特殊性:与图像和纯文本不同,源代码受到编程语言严格句法规则的限制,因此增强的灵活性较低。大多数代码的数据增强方法必须遵守特定的转换规则,以保持原始代码片段的功能性和语法。常见的做法是使用解析器构建源代码的具体句法树,然后转换为抽象句法树,简化表示的同时保留关键信息,如标识符和控制流语句。这些转换是基于规则的数据增强方法的基础,它们帮助模拟现实世界中更多样的代码表示,提高了代码模型通过增强数据训练的稳健性。

代码数据增强方法的深度探索

在深入探讨代码数据增强的世界中,作者将这些技术主要分为三类:基于规则的技术、基于模型的技术和示例插值技术。下面简要介绍了这些不同的分支。

基于规则的技术:许多数据增强方法利用预定规则来转换程序,同时保证不破坏语法规则和语义。这些转换包括替换变量名、重命名方法名和插入无效代码等操作。除了基本的程序语法,一些转换还考虑更深层的结构信息,如控制流图和使用 – 定义链。有一部分基于规则的数据增强技术专注于增强代码片段中的自然语言上下文,包括文档字符串和注释。

深度学习中的代码数据增强:5年89篇研究综述

基于模型的技术:一系列针对代码模型的数据增强技术旨在训练各种模型来增强数据。例如,一些研究利用辅助分类生成对抗网络(ACGAN)来生成增强程序。另一些研究则训练了生成对抗网络,以同时提升代码生成和代码搜索的能力。这些方法主要是针对代码模型特别设计的,旨在通过不同方式增强代码的表示和上下文理解。

示例插值技术:这类数据增强技术源自 Mixup,它通过插值输入和两个或更多实际样本的标签来操作。例如,给定计算机视觉中的二分类任务和两张分别是狗和猫的图片,这些数据增强方法可以将这两张图片的输入和它们对应的标签根据随机选择的权重混合在一起。然而,在代码领域,这些方法的应用受到独特的程序语法和功能的限制。相比于表面层次的插值,大多数示例插值数据增强方法通过模型嵌入将多个真实样例融合为单一输入。例如,有研究将基于规则的技术与 Mixup 结合,混合原始代码片段及其转换后的表示。

深度学习中的代码数据增强:5年89篇研究综述

深度学习中的代码数据增强:5年89篇研究综述

策略与技术

在实际应用中,针对代码模型的数据增强技术的设计和有效性受到多种因素的影响,例如计算成本、样本多样性和模型的稳健性。本节重点介绍了这些因素,提供了设计和优化适合的数据增强方法的洞见和技巧。

方法堆叠:在之前的讨论中,许多数据增强策略在单一工作中被同时提出,目的是增强模型的性能。通常,这种组合包括两种类型:同类型数据增强或不同数据增强方法的混合。前者通常应用于基于规则的数据增强技术,其出发点在于单一代码转换无法完全代表现实世界中多样的代码风格和实现。一些工作展示了将多种类型的数据增强技术融合可以增强代码模型的性能。例如,结合基于规则的代码转换方案和基于模型的数据增强来创建增强的语料库,用于模型训练。而另一些研究则在编程语言上增强,包括两种数据增强技术:基于规则的非关键词提取和基于模型的非关键词替换。

优化:在某些场景中,如增强稳健性和最小化计算成本,选择特定增强样例候选者至关重要。作者将这种目标导向的候选选择在数据增强中称为优化。文章主要介绍三种策略:概率性选择、基于模型的选择和基于规则的选择。概率性选择是通过从概率分布中采样进行优化,而基于模型的选择则由模型指导选择最合适的例子。在基于规则的选择中,使用特定预定的规则或启发式来选择最合适的例子。

概率性选择:作者专门选择了三种代表性的概率性选择策略,包括 MHM、QMDP 和 BUGLAB-Aug。MHM 采用 Metropolis-Hastings 概率采样方法,这是一种马尔可夫链蒙特卡洛技术,用于通过标识符替换选择对抗性示例。QMDP 使用 Q-learning 方法来战略性地选择和执行基于规则的结构转换。

基于模型的选择:采用这种策略的一些数据增强技术利用模型的梯度信息来指导增强样例的选择。一个典型的方法是数据增强 MP 方法,它基于模型损失进行优化,选择并通过变量重命名生成对抗性示例。SPACE 通过梯度上升对代码标识符的嵌入进行选择和扰动,目标是在保持编程语言的语义和语法正确性的同时最大化模型的性能影响。

基于规则的选择:基于规则的选择是一种强大的方法,它使用预定的适应度函数或规则。这种方法通常依赖于决策指标。例如,IRGen 使用基于遗传算法的优化技术和基于 IR 相似性的适应度函数。而 ACCENT 和 RA 数据增强 R 分别使用 BLEU 和 CodeBLEU 等评估指标来指导选择和替换过程,以实现最大的对抗性影响。

应用场景

数据增强方法可直接应用于几种常见的代码场景中

对抗性示例用于稳健性:稳健性在软件工程中是一个关键且复杂的维度。设计有效的数据增强技术来生成对抗性示例,以识别和减轻代码模型中的漏洞,已成为近年来的一个研究热点。多个研究利用各种数据增强方法测试和增强模型的稳健性,进一步加强了代码模型的稳健性。

低资源领域:在软件工程领域,编程语言资源严重不平衡。流行的编程语言如 Python 和 Java 在开源仓库中扮演主要角色,而许多语言如 Rust 资源非常匮乏。代码模型通常基于开源仓库和论坛进行训练,编程语言资源的不平衡可能会对它们在资源匮乏的编程语言上的性能产生不利影响。在低资源领域内应用数据增强方法是一个反复出现的主题。

检索增强:在自然语言处理和代码领域,检索增强的数据增强应用越来越受到关注。这些针对代码模型的检索增强框架在预训练或微调代码模型时纳入来自训练集的检索增强示例,这种增强方法提高了模型的参数效率。

对比学习:对比学习是另一个代码场景中部署数据增强方法的应用领域。它使模型能够学习一个嵌入空间,在这个空间中,相似样本彼此接近,而不相似的样本则相距较远。数据增强方法被用于构造与正样本相似的样例,以提高模型在缺陷检测、克隆检测和代码搜索等任务中的性能。

接下来的文章讨论了几个常见的代码任务,以及数据增强工作在评估数据集上的应用,包括克隆检测、缺陷检测和修复、代码摘要、代码搜索、代码生成和代码翻译

挑战与机遇

在代码数据增强方面,作者认为面临着许多重大的挑战。然而,正是这些挑战为该领域带来了新的可能性和令人激动的机遇

理论探讨:目前,对代码中数据增强方法的深入探索和理论理解存在明显差距。大多数现有研究集中在图像处理和自然语言领域,将数据增强视为一种应用预先存在的关于数据或任务不变性的知识的方法。转向代码时,虽然以前的工作引入了新方法或演示了数据增强技术如何有效,但它们经常忽略了特别是从数学角度来看的原因和方式。代码的离散性质使得理论讨论变得更为重要。理论讨论使大家能够从更广阔的视角理解数据增强,而不仅仅是根据实验结果。

预训练模型的更多研究:近年来,预训练的代码模型在代码领域得到了广泛应用,通过大规模语料库的自我监督积累了丰富的知识。尽管许多研究利用预训练代码模型进行了数据增强,但大多数尝试仍局限于遮罩令牌替换或微调后的直接生成。在代码领域中,利用大规模语言模型的数据增强潜力是一个新兴的研究机会。

不同于以前在数据增强中使用预训练模型的方式,这些工作开启了「基于提示的数据增强」时代。然而,在代码领域中,基于提示的数据增强探索仍然是一个相对未被触及的研究领域。重写后的内容:不同于以前在数据增强中使用预训练模型的方式,这些工作开启了「基于提示的数据增强」时代。然而,在代码领域中,基于提示的数据增强的研究仍然相对较少

处理特定领域数据:作者重点调查了处理代码的常见下游任务的数据增强技术。然而,作者意识到在代码领域的其他特定任务数据方面仍有少量研究。例如,API 推荐和 API 序列生成可以被视为代码任务的一部分。作者观察到在这两个不同层次之间的数据增强技术存在差距,为未来工作探索提供了机会。

项目级别代码和低资源编程语言的更多探索:现有方法在函数级别代码片段和常见编程语言方面取得了足够的进展。同时,低资源语言的增强方法虽然需求更大,但却相对稀缺。在这两个方向的探索仍然有限,作者认为它们可能是有前景的方向。

缓解社会偏见:随着代码模型在软件开发中的进步,它们可能被用于开发以人为中心的应用程序,如人力资源和教育,其中偏见程序可能导致对代表性不足的人群做出不公正和不道德的决定。虽然 NLP 中的社会偏见已经得到了很好的研究并可以通过数据增强进行缓解,但代码中的社会偏见尚未受到关注。

小样本学习:在小样本场景中,模型需要实现与传统机器学习模型相媲美的性能,但训练数据极其有限。数据增强方法为这个问题提供了直接的解决方案。然而,在小样本场景中采用数据增强方法的工作还很有限。在少数样本场景中,如何通过生成高质量的增强数据为模型提供快速泛化和问题解决能力,作者觉得这是一个有趣的问题。

多模态应用:需要注意的是,仅关注函数级别的代码片段并不能准确地代表真实世界编程情况的复杂性和细微差别。在这种情况下,开发人员通常同时处理多个文件和文件夹。尽管这些多模态应用变得越来越流行,但尚未有研究对它们应用数据增强方法。挑战之一是在代码模型中有效地桥接每种模态的嵌入表示,这已在视觉 – 语言多模态任务中进行了研究。

缺乏统一:当前的代码数据增强文献呈现出一个具有挑战性的景观,其中最流行的方法通常被描绘为辅助性的。一些实证研究试图比较代码模型的数据增强方法。然而,这些工作没有利用大多数现有的先进数据增强方法。尽管存在针对计算机视觉(如 PyTorch 中的默认增强库)和 NLP(如 NL-Augmenter)的公认数据增强框架,但对于代码模型的通用数据增强技术相应库明显缺失。此外,由于现有数据增强方法通常使用各种数据集进行评估,因此很难确定其有效性。因此,作者认为通过建立标准化和统一的基准任务,以及用于比较和评估不同增强方法的有效性的数据集,将大大促进数据增强研究的进展。这将为更系统和比较性地理解这些方法的优势和局限性铺平道路。

以上就是深度学习中的代码数据增强:5年89篇研究综述的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/459498.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 02:52:54
下一篇 2025年11月8日 02:57:39

相关推荐

  • I.前景

    5月,美国劳动力市场展现出一定韧性,就业岗位持续增长,失业率维持在稳定水平。然而,劳动力参与率和就业人口比例有所下滑,职位增长速度放缓,部分行业甚至出现岗位减少,这些现象暗示着经济可能正在趋于疲软。 I. 展望 宏观经济回顾与未来展望 5月份,美国就业市场依旧保持活跃,新增岗位不断涌现,失业率未出现…

    2025年12月8日
    000
  • Gate Alpha积分狂欢节,全新Alpha Points玩法全解析

    目录 1. Gate Alpha积分活动概览2. Gate Alpha积分活动玩法详解2.1 活动1:指定币种交易达标2.2 活动2:累计交易量阶梯2.3 活动3: Alpha 首次交易2.4 活动4:邀请好友2.5 活动5:热币上线奖励3. 积分奖池分布4. 实操指南:新手如何快速累积分5. 风险…

    2025年12月8日
    000
  • LayerEdge(EDGEN币)是什么?2025年、2026 – 2030年价格预测

    随着区块链技术的发展,对于更快速、更安全且更具成本效益的验证方法的需求变得日益重要。layeredge 诞生于这样的背景,作为一项前景光明的解决方案,它利用比特币绝佳的安全性,透过零知识证明来验证复杂的计算。透过解决区块链可扩展性和信任方面的一些重大挑战,layeredge 提供了一种崭新的去中心化…

    2025年12月8日
    000
  • ETH 价值从何而来?以太坊为什么值得长期持有?

    最近,美股上市公司开始“重新认识”以太坊。sharplink gaming 计划通过出售股票,投入高达 10 亿美元购入 eth 作为战略储备;btcs 也已以约 842 万美元购入 3, 450 枚 eth。这些动向可能在释放一个明确的信号:eth 正在从“链上燃料”,转变为“企业级战略资产”。 …

    2025年12月8日 好文分享
    000
  • 什么是Resolv(RESOLV)币?Resolv代币经济学与未来前景分析

    目录 什么是Resolv(RESOLV)加密货币?RESOLV加密货币解决了什么问题?1. 传统稳定币的中心化与法币依赖2. 超抵押系统中的资本效率低下3. 收益生成与风险管理4. 治理对齐和长期可持续性Resolv Labs的故事Resolv USR协议的关键特性和优势1. Delta中性投资组合…

    2025年12月8日 好文分享
    000
  • SUI上排名前五的空投项目有哪些?SUI 上5大最佳空投项目

    目录 为什么要在SUI上进行空投?SUI上排名前五的空投项目GiveRepIka 协议Cro 聚合器NexaNodo结论 关键要点 Sui 凭借其独特的以对象为中心的模型、强大的社区以及不断增长的 DeFi/游戏吸引力,正在成为空投猎人的首选目的地。尽管最近遭到攻击,Sui 仍然保持着韧性,具有活跃…

    2025年12月8日 好文分享
    000
  • 2025年6月TAO币价格分析及价格预测

    目录 Bittensor 的现状Bittensor 生态系统TAO的技术分析情景 1:突破 490 美元情景 2:跌破 389.3 美元TAO价格预测:短期展望 关键要点 TAO 目前的交易价格在 410 美元至 420 美元之间,较 2024 年 4 月的历史高点下跌约 45%,但仍比 2023 …

    2025年12月8日 好文分享
    000
  • 一文了解欧盟MiCA目光转向DeFi的原因!但去中心化定义成难题

    正当市场参与者逐步调适MiCA所引发的变革之际,欧盟监管机构的目光已悄然投向更为复杂的去中心化金融(DeFi)领域,并计划于2026年将其明确纳入监管范畴,预示着加密监管的新阶段即将来临。 欧盟MiCA生效,DeFi监管定义成未解难题 MiCA的全面实施,标志着欧盟在加密资产监管方面迈出了重要一步,…

    2025年12月8日
    000
  • 山寨币持续疲软?或许正酝酿结构性转折

    市场正在做它最擅长的事:考验你的信念。 山寨币对 BTC 持续下跌,BTC 主导率接近周期高点。市场情绪分 裂,一部分人冷眼旁观,另一部分人在低市值币上激进做多。 这不是明天就喊「山寨季」的信号,别 FOMO。 1. 是的,我们仍在牛市,但你并未迟到 比特币仍是主角。从 ETF 资金流入到企业资金配…

    2025年12月8日
    000
  • Cudis合并可穿戴技术,AI教练和加密货币激励措施将健康跟踪变成长期习惯

    cudis是一家总部位于洛杉矶的初创企业,成立于2023年,正尝试将可穿戴设备、ai虚拟教练与加密货币激励机制结合在一起,旨在让用户长期坚持健康管理,并构建一个具有经济回报体系的系统。 这家公司在去年正式上线,其核心理念是通过整合健康追踪技术与财务激励机制来培养用户的持续参与习惯。为了实现这一目标,…

    2025年12月8日
    000
  • Skatechain(SKATE)是什么?SKATE代币经济学与空投介绍

    目录 Skatechain 是什么?项目背景基础架构代币经济学代币供应代币用途SKATE代币空投计划 skatechain 的推出,不仅为开发者提供了一个可以同时在数千条链上运行应用的平台,还通过引入通用应用范围的概念,使得基本应用能够在所有链都可访问的共享池中进行集体开发和维护,从而确保了开发者和…

    2025年12月8日 好文分享
    000
  • Truenorth由前CEFI/DEFI Exchange Woo和AI专家的前任负责人领导,他举起了战略性的天使巡回赛,以开创代理经济。

    loyezero、sei、selini capital、virtuals、plume 以及 presto labs 的创始人们联合支持了一项全新的 ai 平台,该平台利用自主代理和实时数据分析,致力于挖掘加密货币领域的潜在机会。 由前 Woo 副总裁 Willy Chuang 与前 Temasek …

    2025年12月8日
    000
  • 2025.6.5ARB币价格预测:值得长期持有吗?ARB币2025会涨到多少?

    arb币值得长期持有吗?arb币到2025年价格能涨到多少呢?2025年到2035年arb币价格预测能涨到哪? Arbitrum是以太坊区块链的二层扩展解决方案。它使用称为乐观卷叠的技术来离链处理交易,这使得它能够实现比以太坊主网更高的吞吐量和更低的费用。 下面,在本文中,我们将了解Arbitrum…

    2025年12月8日 好文分享
    000
  • 6月以太坊能涨到多少?2025年6月以太坊(ETH)价格预测

    目录 基础知识:升级、质押和代币经济学以太坊生态系统:DeFi、NFT 和 dApp市场趋势和宏观因素机构观点与监管技术分析 – 以太坊价格结构以太坊短期价格预测:2025年6月 关键要点 以太坊在 5 月下旬反弹约 45%,表现优于比特币和 DeFi 同行,标志着 2025 年 6 月的强劲开局。…

    2025年12月8日 好文分享
    000
  • 全球加密交易所Kucoin宣布了一个区块链基础设施项目的滑板(Skate)上市

    kucoin近日宣布,将在其现货交易平台上上线一个名为skate(skate)的区块链基础设施项目。此次上线将使交易者能够接触到该平台的原生代币,该项目旨在支持可在多个虚拟机(vm)上运行的去中心化应用程序(dapp)。 据交易所披露,加密资产交易平台Kucoin已在现货市场正式上线Skate项目的…

    2025年12月8日
    000
  • 什么是InfoFi?有哪些InfoFi项目值得关注?如何利用InfoFi赚钱

    目录 什么是 InfoFi?InfoFi带来的革命性影响:加密货币市场生态重塑资讯价值与行销模式被重新定义新的获利、变现机制:代币奖励与空投机会去中心化+AI 形成的超速情报网如何在InfoFi 赚钱:创作者跟散户双赢的赛道InfoFi项目有哪些:Kaito、Cookie、EthosKaito:In…

    2025年12月8日 好文分享
    000
  • GUN币上线了哪些交易所?GUN币价格预测与买币详细教学

    gunz是一个专门为aaa web3游戏设计的layer 1区块链,随着技术的发展,gunz已经成为一个功能齐全的平台,并且提供了现代游戏开发所需的区块链原生基础设施。gun则是gunz的代币,是gunz生态系统的重要组成部分,支持生态系统内所有的游戏内交易和交易。该项目吸引投资者关注不仅是独特的技…

    2025年12月8日
    000
  • Balzback打开了社区提交的平台,使坚固的模因硬币可以寻求赎回

    在一波新的 rugpull 事件席卷市场之际,全新项目 balzback 正式宣布其社区提交平台现已对外开放。 Balzback 今日正式开启其由社区主导的提交机制。该项目推出了一种创新的 DeFi 赎回协议,旨在将因欺诈性项目而蒙受损失的资金转化为新的流动性来源,为大量受影响投资者带来希望。 在模…

    2025年12月8日
    000
  • Cryptominingfirm:比特币采矿的未来在这里

    随着xrp etf获得高达98%的市场信心,精明的投资者已经开始积极布局这一数字资产领域的重要突破。 我们的新闻是如何制作的 我们坚持严格的编辑标准,确保内容的准确、相关与中立。 Ad Dibleiamer Morbi Pretium Leo et nisl aliquam Mollis。 quis…

    2025年12月8日
    000
  • 2025年山寨币季:专家称虽延迟但依然可期

    关于2025年山寨币季的讨论已经广泛展开,但尚未真正到来。今年以来,虽然各种预测层出不穷,但山寨币预期的爆发多次受挫或持续时间短暂。虽然部分投资者开始感到不耐烦或怀疑,许多专家仍认为山寨币季只是延迟了,而非取消。 山寨币季为何被延迟? 比特币今年依然主导着市场叙事,其占据的加密货币市场总市值比例达到…

    2025年12月8日
    000

发表回复

登录后才能评论
关注微信