没有合适的资源?快使用搜索试试~ 我知道了~
软件影响14(2022)100432原始软件出版物MatriureExtractor:一个用于提取代码智能模型关键输入特征的工具Md Rafiqul Islam RabinRabi,Mohammad Amin Alipour美国德克萨斯州休斯顿市休斯顿大学A R T I C L E I N F O保留字:程序约简特征工程透明性可解释性可解释性代码A B标准尽管在对源代码建模方面取得了成功,但深度神经模型在解释方面仍具有挑战性。这种不透明性可能会导致对它们 的预测 的不信任 ,并 阻碍它们 在安全 关键应 用中的 广泛采用 。因 此,我 们提出 了一个 工具, 称为FEATUREExT rA cT or,旨在提高不透明模型的透明度和可解释性。给定一个输入程序和一个代码智能模型,该工具应用程序缩减技术来减少输入程序的大小,同时保留模型的预测。我们的目标是从简化的程序中识别关键的输入特征,以解释模型代码元数据当前代码版本v1用于此代码版本的代码/存储库的永久链接https://github.com/SoftwareImpacts/SIMPAC-2022-230Reproducible Capsule的永久链接https://codeocean.com/capsule/7985340/tree/v1法律代码许可证MIT许可证使用Git/GitHub的代码版本控制系统软件代码语言、工具和服务使用Delta Edge(DD)、Perses、Python、Bash编译要求,操作环境依赖Python 3.7.7,Perses(v1.0),DD(py 3),openjdk 1.8.0_222,scikit-learn 0.21.2,javalang 0.13.0如果可用,链接到开发人员文档/手册https://github.com/mdrafiqulrabin/CI-DD-Perses/blob/main/code/README.md问题支持电子邮件mrabin@uh.edu1. 介绍随着深度神经网络的快速发展,代码智能(CI)模型越来越多地用于各种下游任务,例如代码摘要,错误检测,程序修复等[1]。尽管模型能迅速有效,但解释为什么模型能做出某种预测的问题是非常具有挑战性的。我们对它们学习哪些相关特征来进行正确分类的理解在很大程度上是未知的,因为这些模型是不透明的黑盒,对它们的预测几乎没有什么洞察力。最近的研究还表明,最先进的代码智能模型通常不具有可推广性[2如果我们不理解为什么一个模型会产生预测,我们不能相信模型,可能无法认真对待预测,这可能导致安全关键系统中不可避免的情况。在这方面,我们提出了FEATUREExT rA cT或工具来识别模型预测中的关键输入特征,以了解来自输入程序的哪些特征与目标预测高度相关。 我们采用基于程序缩减算法[12,13]的工具来减少输入程序,同时保留预测模型。通过减少目标标签的一些输入程序,我们的目标是解释代码智能模型从该标签的训练集中学习到哪些关键输入特征。从简化程序中识别出关键的输入特征可以帮助我们找到一个更好的解释本文中的代码(和数据)已由Code Ocean认证为可复制:(https://codeocean.com/)。更多关于生殖器的信息徽章倡议可在https://www.elsevier.com/physical-sciences-and-engineering/computer-science/journals上查阅。∗通讯作者。电子邮件地址:mrabin@uh.edu(M.R.I. Rabin),maalipou@central.uh.edu(M.A.Alipour)。https://doi.org/10.1016/j.simpa.2022.100432接收日期:2022年10月12日;接受日期:2022年10月13日2665-9638/©2022作者。由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表软件影响杂志 首页:www.journals.elsevier.com/software-impacts核磁共振 Rabin和M.A. 阿利普尔软件影响14(2022)1004322因此,模型2. 功能和主要特点FEATUREExT rA cT或工具使用Python 3编程语言实现,依赖于程序简化算法:Delta Ring(DD)[12]和Perses [13]。该工具使用DD或Perses算法减少输入程序,同时保留代码智能模型的预测。源代码分为两部分;它们是:(1)CI-DD,使用DD算法的ddmin变体减少输入程序[12]。DD是一种语法未知的程序缩减算法,它通过删除输入程序的某些部分来迭代地将输入程序分成多个候选程序。如果一个有效的候选程序保留了模型的预测,它将继续使用该候选程序进行进一步处理。(2)CI-使用Perses算法的定点模式减少输入程序的Perses [13]。Perses是一种语法引导的程序约简算法,它遍历输入程序的树,并根据输出标准确定树节点是否可删除。如果一个节点是可删除的,它会从该节点中删除子树,并生成一个有效的简化程序用于进一步处理。FEATURRE ExT rA cTor的工作原理如下:• 给定一个输入程序P和一个代码智能模型M,它首先对程序P进行模型M给出的预测y,例如,y=(P)。• 然后,它通过使用DD或Perses算法去除程序P的某些部分来生成候选约简程序r,例如,r=DD scinP(P)。如果候选简化程序r不保持模型M的相同预测y,例如y如果它是一个候选约简程序,则它拒绝这个候选约简程序,并通过删除程序的一些其他部分来创建另一个候选约简程序• 如果候选约简程序r保持相同的预测,y,则它继续约简并迭代地搜索保留相同预测y的最终约简程序R。������最后的简化程序包含模型做出正确预测所需的最小代码片段,任何进一步简化程序的尝试都会改变预测。请注意,我们的FEATURE EX T R A C T或工具是与模型无关的,可以通过修改“www.example.com”文件进行加载和预测,将其应用于任何代码智能模型helper.py。为了简单起见,我们在手工制作的特征上使用预训练的SVM模型[6]来进行该工具的实验。3. 影响和用途FEATURE EXT RA CT OR工具的目标是提高代码智能模型的透明性和可解释性。该工具主要用于通过删除不相关的代码片段来减少输入程序,同时保留模型的预测。这些简化的程序包含模型从训练集中学习的相关输入特征,用于进行目标预测。有几个不同的用途减少的程序,可以潜在地提高模型的透明度和可解释性。• 关键输入功能:在约简一组输入程序之后,我们可以从代码片段中提取标记,或者从每个约简程序的抽象语法树中提取节点类型。从简化程序中提取的代码元素是模型用于进行预测的潜在输入特征。通过观察目标标签的这些提取的代码元素,我们可以更好地理解模型从训练集中学习到的关键输入特征[7,8,14,15]。• 模型预测的解释:程序减少可能是显著的,因为它不要求减少的程序保持自然。这种实质性的减少通常允许它生成非常简单的简化程序,并有助于确定重要的线索,以解释模型预测背后的推理此外,预测错误的输入程序的简化程序可以解释诊断模型预测错误的方法[16]。此外,不同的程序缩减技术可以为特定的预测提供额外的解释[8,15]。• 对模型的对抗性攻击:简化的程序突出了模型对很少的令牌进行预测的依赖,因此,这种模型很容易受到对抗性攻击[4,8]。由于很少有令牌在可信预测和错误预测之间起作用,因此基于关键令牌的对抗程序可以用更少的生成候选触发更多的错误预测。• 模型的信号感知:简化程序可用于测量模型的信号感知[17,18]。如果来自原始程序的漏洞信号存在于简化程序中,则表明模型正在学习正确的信号;否则,模型正在捕获与实际漏洞信号无关的噪声或特征。• 计算效率:删除代码元素,例如输入程序中的标记或语句可以根据这些元素对模型输出的影响来揭示这些元素的重要性[14]。从输入程序中删除不重要的标记和语句也可以降低预训练模型在微调中的计算复杂度[19]。我们使用FEATUREExT rA cT或工具进行实验,以了解神经代码智能模型[7,8]。我们在两个流行任务的四种神经架构上评估了我们的方法:方法名称预测(在Java数据集上使用Code2Vec和Code2Seq模型)和变量误用检测(在Python数据集上使用RNN和Transformers模型),正如我们在以下两个科学出版物中所报道的那样:1. MdRafiqulIslamRabin , VincentJ.Hellendoorn , andMohammad Amin Alipour.通过程序简化理解神经代码智能。在第 29 届 ACM 欧 洲 软 件 工 程 会 议 和 软 件 工 程 基 础 研 讨 会(ESEC/FSE 2021)的会议记录中。计算机协会,2021年,pp。441- 452. [7、20]2. Md Rafiqul Islam Rabin,Aftab Hussain,and Mohammad AminAlipour.用于理解神经代码智能模型的语法引导程序简化。第六届ACM SIGPLAN机器编程国际研讨会(MAPS 2022)计算机协会,2022年,pp。70-79. [8、21]此外,来自各个大学和行业的研究人员在他们的研究工作中一直在使用和引用我们的预测保持程序约简方法[16 例如,来自IBM Research的Suneja等人[17,18]和来自Facebook Research的Cito等人[16]认识到我们的方法在提高模型可解释性方面的潜力。 此外,Zhang等人[19]和Wang 等人[15]分别直接使用我们的工件来评估其轻量级微调和解释模型预测的方法。4. 结论和进一步发展我们开放源代码的FEATUREExT rA cT或工具,用于减少输入程序和识别代码智能模型的关键输入功能。我们已经看到,简化的程序和关键输入特征可以用于解释模型核磁共振 Rabin和M.A. 阿利普尔软件影响14(2022)1004323研究人员和开发人员可以利用该工具更好地目前,该工具一次检查一个输入程序。在未来,我们计划通过同时在多个输入程序上并行运行该工具来加快其执行速度。此外,使用不同的归约技术,该工具可以为同一输入程序找到不同的解释。我们还计划从多种解释中总结潜在的线索。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢我们的FEATURE Ex T r A c T或工具依赖于程序简化算法(例如,,Delta [12]和Perses [13]),我们将其改编为代码智能模型。我们也感谢我们的原始论文的(共同)作者[7,8]。引用[1]作 者 : Miltiadis Allamanis , Earl T Barr , Premkumar Devanbu , CharlesSutton,A survey机器学习的大代码和自然,ACM计算。监视器(2018)http://dx.doi.org/10.1145/3212695。[2]Hong Jin Kang,Tegawendé F. Bissyandé,David Lo,评估code 2 vec令牌嵌入的普 遍 性 , 在 : IEEE/ACM 自 动 化 软 件 工 程 国 际 会 议 , ASE , 2019 ,http://dx.doi.org/10.1109/ASE。2019.00011。[3]Md Rafiqul Islam Rabin,Ke Wang,Mohammad Amin Alipour,测试神经程序分析器,在:IEEE/ACM自动化软件工程国际会议:后期突破结果,ASE-LBR,2019,http://dx.doi.org/10。48550/arXiv.1908.10711。[4]Md Rafiqul Islam Rabin,Nghi D.Q. Bui,Ke Wang,Yijun Yu,Lingxiao Jiang,Mohammad Amin Alipour,关于语义保持程序转换的神经程序模型的泛化性,Inform。软件。Technol.(IST)(2021)http://dx.doi.org/10.1016/j.infsof.2021.106552.[5]Rhys Compton , Eibe Frank , Panos Patros , Abigail Koay , Embedding javaclasses with code2vec : Improvements from variable obfuscation , in :International Conference on Mining Software Repositories , MSR , 2020 ,http://dx.doi.org/10.1145/3379597.3387445。[6]Md Rafiqul Islam Rabin,Arjun Mukherjee,Omprakash 格纳瓦利, 莫汉 madAmin Alipour,Towards demystifying dimensions of source code embeddings,in : ACM SIGSOFT International Workshop on Representation Learning forSoftware Engineering and ProgramLanguages , RL+SE&PL , 2020 ,http://dx.doi。org/10.1145/3416506.3423580。[7]Md Rafiqul Islam Rabin,Vincent J. Hellendoorn,Mohammad Amin Alipour,通过程序简化理解神经代码智能,在:ACM欧洲软件工程会议联合会议和软件工程基础研讨会,ESEC/FSE,2021,http://dx.doi.org/10。1145/3468264.3468539。[8]Md Rafiqul Islam Rabin,Aftab Hussain,Mohammad Amin Alipour,用于理解神经代码智能模型的神经元引导程序简化,在:ACM SIGPLAN机器编程国际研讨会,MAPS,2022,http://dx.doi.org/10.1145/3520312.3534869。[9]Miltiadis Allamanis,The Adverse Effects of Code Duplication in Machine LearningModels of Code, in: ACM SIGPLAN International Symposium on New Ideas,New Paradigms,and Reflections on Programming and Software(Onward!),2019年,http://dx.doi.org/10.1145/3359591.3359735。[10] Md Rafiqul Islam Rabin , Mohammad Amin Alipour , Code2Snapshot : UsingCode Snapshots for Learning Representations of Source Code , 2021 ,http://dx.doi.org/10.48550/arXiv.2111.01097,arXiv.[11] Md Rafiqul Islam Rabin, Aftab Hussain,Mohammad Amin Alipour,VincentJ.Hellendoorn , 神 经 代 码 智 能 模 型 的 泛 化 和 泛 化 , Inform 。 软 件 。 Technol.(IST)(2022)http://dx.doi.org/10.1016/j.infsof.2022. 107066[12] 李文,等.故障诱导输入的简化与隔离.北京:计算机科学出版社,2000,24(3):117 - 118.(TSE)(2002)http://dx.doi.org/10.1109/32.988498。[13] 孙承年,李远波,张启润,顾天晓,苏振东,Perses:语法引导的程序缩减,在:国际软件工程会议,ICSE,2018,http://dx.doi.org/10.1145/3180155.3180236。[14] 义和县Bui,Yijun Yu,Lingxiao Jiang,AutoFocus:通过代码扰动解释基于注意力 的 神 经 网 络 , 在 : IEEE/ACM 自 动 化 软 件 工 程 国 际 会 议 , ASE , 2019,http://dx.doi.org/10.1109/ASE。2019.00014。[15] 王宇,王可,王林章, WheaCha:一种解释代码模型预测的方法,2022,http://dx.doi.org/10.48550/arXiv.2102。04625,arXiv.[16] Jürgen Cito,Isil Dillig,Vijayaraghavan Murali,Satish Chandra,Counterfactualexplanations for models of code , in : IEEE/ACM International Conference onSoftware Engineering : Software Engineering in Practice , ICSE-SEIP, 2022,http://dx.doi.org/10.1109/ICSE-SEIP55303.2022.9794112网站。[17] 作者:Sahil Suneja,Yunhui Zheng,Yufan Zhuang,Jim A. Laredo,AlessandroMorari,通过预测保持输入最小化探测模型信号感知,在:欧洲软件工程会议ACM联席会议和软件工程基础研讨会,ESEC/FSE,2021,http://dx.doi.org/10.1145/3468264.3468545网站。[18] 作者:Sahil Suneja,Yunhui Zheng,Yufan Zhuang,Jim A. Laredo,AlessandroMorari , Towards reliable AI for source code understanding , in : ACMSymposiumonCloudComputing,SoCC,2021,http://dx.doi.org/10.1145/3472883.3486995。[19] Zhaowei Zhang , Hongyu Zhang , Beijun Shen , Xiaodong Gu , Diet code ishealthy:Simplifying programs for pre-trained models of code, in:ACM JointMeeting on European Software Engineering Conference and Symposium on theFoundationsofSoftwareEngineering,ESEC/FSE,2022,http://dx.doi.org/10.1145/3540250. 3549094。[20] Md Rafiqul Islam Rabin,VincentJ. Hellendoorn,Mohammad Amin Alipour,文章作者(SIVAND):通过程序简化理解神经代码智能,Assoc。马赫(2021)URLhttps://dl.acm.org/do/10.1145/3462296.[21] Md Rafiqul Islam Rabin,Aftab Hussain,Mohammad Amin Alipour,参见文章(CI-DD-PERSES):Syntax-guided program reduction for understanding neuralcode intelligence models , Assoc. Comput. 马 赫 ( 2022 ) URL https : //dl.acm.org/do/10.5281/zenodo.6630188网站。
下载后可阅读完整内容,剩余1页未读,立即下载
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)