Improving type information inferred by decompilers with supervised machine learning
University of Oviedo(奥维耶多大学);Cork Institute of Technology(科克理工学院)
在软件逆向工程中,反编译是从二进制文件恢复源代码的过程。当需要理解或分析源代码不可用的软件时,使用反编译器。尽管现有的反编译器通常获得与二进制文件具有相同行为的源代码,但源代码通常很难解释,并且肯定与程序员编写的原始代码不同。大规模的代码库可以用来构建有监督的机器学习模型,以改进现有的反编译器。在本文中,我们构建了不同的分类模型,这些模型能够推断函数返回的高级类型,其准确性明显高于现有的反编译器。我们自动检测C源代码,以允许二进制模式与其相应的高级构造相关联。一个数据集是由一系列真正的开源应用程序加上大量的合成程序创建的。我们的系统能够以79.1%的F1度量预测函数返回类型,而最好的反编译器获得30%的F1度量。此外,我们记录的二进制模式,我们的分类器,允许他们除了在现有的反编译器的实现。
2021-02-24 cs.LG cs.PL cs.SE
Combinatorial Regularity for Relatively Perfect Discrete Morse Gradient Vector Fields of ReLU Neural Networks
本文提出一种构造性方法,将ReLU神经网络的逐段线性Morse函数转换为兼容的相对完美离散Morse函数,并给出判定临界点及构造离散Morse配对的算法,同时提供浅层网络子水平集拓扑的可实现性结果。
2025-01-22 cs.CG cs.LG math.AT
Morse Neural Networks for Uncertainty Quantification
Google(谷歌);Google DeepMind(谷歌DeepMind)
提出Morse neural network,一种新型深度生成模型,通过KL散度损失拟合,统一了OOD检测、异常检测和连续学习等多种技术,并提供生成密度、OOD检测器、校准温度、生成采样器和距离感知分类器。
2023-07-02 cs.AI cs.LG stat.ML
Learning a Code: Machine Learning for Approximate Non-Linear Coded Computation
Carnegie Mellon University(卡内基梅隆大学);Microsoft Research(微软研究院)
机器学习算法通常在大规模分布式计算基础设施上运行,这些基础设施经常面临许多不可用性,例如故障和临时减速。使用称为“码”的编码理论工具添加冗余计算是一种新兴的技术,以减轻这种不可用性的不利影响。一个代码由一个编码函数和一个解码函数组成,编码函数主动引入冗余计算,解码函数使用可用的输出重建不可用的输出。过去的工作主要集中在使用代码提供弹性的线性计算和特定的迭代优化算法。然而,为各种应用程序执行的计算,包括对最先进的机器学习算法(例如神经网络)的推理,通常不属于这个领域。在本文中,我们提出了一种基于学习的方法来设计可以处理非线性计算的代码。我们提出了精心设计的神经网络架构和学习编码和解码功能,产生不可用的计算结果的近似重建的训练方法。我们提出了广泛的实验结果表明,所提出的方法的有效性:我们表明,我们学习的代码可以准确地重建$64 - 98\%$的不可用的预测,从基于神经网络的图像分类器的MNIST,时尚MNIST,和CIFAR-10数据集。据我们所知,这项工作提出了第一个基于学习的方法来设计代码,并提出了第一个编码理论解决方案,可以为任何非线性(可微)计算提供弹性。我们的研究结果表明,学习可以是一种有效的技术设计的代码,学习代码是一个非常有前途的方法,使编码的好处,非线性计算。
2018-06-04 cs.IT cs.LG math.IT
Clonability of anti-counterfeiting printable graphical codes: a machine learning approach
University of Geneva(日内瓦大学)
近年来,可打印的图形代码引起了人们的广泛关注,使物理世界和数字世界之间的联系成为可能,这对物联网和品牌保护应用非常重要。可打印代码的安全性在很大程度上是未被探索的,即它们的可复制性或可克隆性。在本文中,我们试图从机器学习的角度来研究可打印图形代码的可克隆性。所提出的框架是基于一个简单的系统组成的完全连接的神经网络层。几个打印机打印的真实代码上获得的结果表明,在某些情况下,从他们的印刷对应物准确地估计数字代码的可能性。这提供了一个新的见解的情况下,可打印的图形代码可以准确地克隆。
2019-03-18 cs.CR cs.LG stat.ML
Classifying medical notes into standard disease codes using Machine Learning
University of California(加利福尼亚大学);Berkeley, CA(伯克利(加利福尼亚州)(注:此处仅保留原文机构相关部分,严格按要求处理))
我们研究了自动分类的病人出院笔记到标准的疾病标签。我们发现,卷积神经网络与注意力优于以前的算法在这项任务中使用,并建议进一步改进的领域。
2018-02-01 cs.CL cs.LG stat.AP
Encoders and Decoders for Quantum Expander Codes Using Machine Learning
IIT Madras(马德拉斯印度理工学院);Purdue University(普渡大学)
量子密钥分发(QKD)允许两个远程方共享加密密钥,其安全性基于量子力学定律。为了共享密钥,量子比特必须通过噪声量子信道从发送方传输到接收方。为了传输这些信息,需要设计高效的编码器和解码器。然而,量子编码器和解码器的大规模设计必须取决于信道特性,并且需要查找表,查找表需要量子比特数量呈指数级的存储器。为了缓解这一问题,本文旨在通过将强化学习和神经网络等机器学习技术应用于量子领域来设计扩展码的量子编码器和解码器。所提出的量子解码器训练一个神经网络,该神经网络是使用最大后验误差训练的,消除了使用大型查找表。量子编码器使用基于深度Q学习的技术来优化量子Calderbank-Shor-Steane(CSS)码中的生成器矩阵。评估结果表明,与量子扩展器码相比,所提出的量子编码器和解码器设计的性能有所改善。
2019-09-06 cs.IT cs.LG math.IT
Semantic Code Classification for Automated Machine Learning
HSE University(高等经济大学)
自动机器学习的一系列应用需要生成过程是可控的。在这项工作中,我们提出了一种通过一系列简单的动作来控制输出的方法,这些动作被称为语义代码类。最后,我们提出了一个语义代码分类任务,并讨论了解决这个问题的自然语言到机器学习(NL2ML)数据集的方法。
2022-01-25 cs.AI cs.LG
The CodRep Machine Learning on Source Code Competition
KTH Royal Institute of Technology(KTH皇家理工学院)
CodRep是一个关于源代码数据的机器学习竞赛。它经过精心设计,任何人都可以参加比赛,无论是专业研究人员,学生还是独立学者,没有机器学习或程序分析的具体知识。特别是,它旨在成为一个共同的游乐场,机器学习和软件工程研究社区可以互动。比赛于2018年4月14日开始,并于2018年10月14日结束。CodRep数据托管在https://github.com/KTH/CodRep-competition/。
2018-11-14 cs.LG cs.SE
The PHOTON Wizard -- Towards Educational Machine Learning Code Generators
University of Münster(明斯特大学)
尽管人们做出了巨大的努力来使机器学习民主化,特别是在应用科学领域,但由于缺乏编码技能,应用仍然经常受到阻碍。当我们考虑编程理解的关键,建立有效和高效的机器学习解决方案,我们主张一种新的教育方法,建立在图形用户界面的可访问性和接受,以传达编程技能的应用科学的目标群体。我们概述了一个概念验证的开源Web应用程序,光子向导,它动态地将GUI交互转换为Python机器学习框架光子的有效源代码。因此,拥有理论机器学习知识的用户可以获得对模型开发工作流程的关键见解,以及对自定义实现的直观理解。具体来说,PHOTON Wizard集成了教育机器学习代码生成器的概念,教用户如何编写代码,用于设计、训练、优化和评估自定义机器学习管道。
2020-02-13 cs.LG cs.SE
Low-resource Machine Translation for Code-switched Kazakh-Russian Language Pair
ITMO University(ITMO大学);Nazarbayev University(纳扎尔巴耶夫大学)
针对低资源哈萨克语-俄语代码切换语言对,提出基于合成数据生成的无标注机器翻译方法,构建了首个平行语料库,模型BLEU达16.48,接近并人工评估超越商业系统。
2025-03-25 cs.CL cs.LG
Automatic Source Code Summarization with Extended Tree-LSTM
Kyoto University(京都大学);Hitachi, Ltd.(日立有限公司)
神经机器翻译模型用于从给定源代码自动生成文档,因为这可以被视为机器翻译任务。源代码摘要是自动文档生成的一个组成部分,它从给定的源代码中生成自然语言的摘要。这表明神经机器翻译中使用的技术,如长短期记忆(LSTM),可以用于源代码摘要。然而,在源代码和自然语言之间存在相当大的差异:源代码本质上是{ \em结构}的,具有循环和条件分支等。因此,将已知的机器翻译模型应用于源代码存在一些障碍。抽象语法树(AST)捕捉这些结构特性,并在最近的机器学习研究的源代码中发挥了重要作用。Tree-LSTM是LSTM对树结构数据的推广。然而,在将其应用于AST时存在一个关键问题:它不能同时处理包含具有任意数量的子节点及其顺序的节点的树,而AST通常具有这样的节点。为了解决这个问题,我们提出了Tree-LSTM的扩展,我们称之为\emph{Multi-way Tree-LSTM},并将其应用于源代码摘要。作为计算实验的结果,我们的建议取得了更好的结果时,与几个国家的最先进的技术相比。
2019-06-20 cs.LG cs.SE stat.ML
Lessons learned developing and using a machine learning model to automatically transcribe 2.3 million handwritten occupation codes
Norwegian Historical Data Centre, UiT The Arctic University of Norway(挪威历史数据中心,挪威北极大学);Department of Computer Science, UiT The Arctic University of Norway(挪威北极大学计算机科学系);Medsensio AS(Medsensio AS公司)
机器学习方法实现了文本识别的高精度,因此越来越多地用于手写历史源的转录。然而,在生产中使用机器学习需要一个精简的端到端管道,可以扩展到数据集大小,以及一个模型,可以在很少的手动传输的情况下实现高精度。还必须验证模型结果的正确性。本文介绍了我们在开发、调整和使用Occode端到端机器学习管道来转录挪威1950年人口普查中的230万个手写职业代码时所吸取的经验教训。我们实现了97%的自动转录代码的准确性,我们发送3%的代码进行人工验证。我们验证结果中发现的职业代码分布与我们的训练数据中发现的分布相匹配,这应该代表整个人口普查。我们相信我们的方法和经验教训可能对计划在生产中使用机器学习的其他转录项目有用。源代码可在https://github.com/uit-hdl/rhd-codes上获得
2021-12-01 cs.LG
Designing Low-Correlation GPS Spreading Codes with a Natural Evolution Strategy Machine Learning Algorithm
Stanford University(斯坦福大学)
随着下一代GPS III星座的诞生,以及即将发射的导航技术卫星-3(NTS-3)测试平台,以探索未来的GPS技术,我们确实正在进入卫星导航的新时代。相应地,是时候重新审视GPS扩频码族的设计方法了。在这项工作中,我们开发了一个自然进化策略(NES)机器学习算法与高斯建议分布,构建高质量的扩频码序列的家庭。我们最大限度地减少最大的均方自相关和均方互相关之间,并证明我们的算法的能力,以实现更好的性能比精心挑选的家庭的等长的黄金码和韦伊码,序列的长度为1023和长度为1031位和家庭大小高达31码。此外,我们比较我们的算法与类似的遗传算法实现分配相同的代码评估指标。据作者所知,这是第一个探索使用机器学习方法设计导航扩频码序列的工作。
2021-12-28 cs.LG eess.SP
Generation of Optimized Solidity Code for Machine Learning Models using LLMs
Indian Institute of Technology Kharagpur(印度理工学院卡拉格普尔分校)
本文提出LMST方法,利用LLM将ML模型推理路径和链下权重自动转换为优化gas成本的Solidity代码,并通过概念验证DApp和实验证明在区块链上部署ML模型的可行性。
2025-03-08 cs.ET cs.LG
Data-aware Static Analysis: Improving Detection of Semantic Faults in Machine Learning Code Using Data Characteristics
Knut and Alice Wallenberg Foundation(Knut和Alice沃尔贝格基金会);Software Center Project 61(软件中心项目61);Vinnova CoDig competence center(Vinnova CoDig专业中心)
提出一种数据感知静态分析方法,结合数据流与控制流分析及API契约,在编写代码时而非训练后检测机器学习代码中的语义故障,如误用未缩放数据训练尺度敏感模型。
2026-06-08 cs.LG cs.SE
Medical Codes Prediction from Clinical Notes: From Human Coders to Machines
AKASA, Inc.(AKASA公司)
从临床笔记中预测医疗代码是当前医疗系统中每个医疗保健提供组织的实际和基本需求。自动化注释将节省人类编码人员今天花费的大量时间和过多的精力。然而,最大的挑战是从来自非结构化自由文本临床笔记的数千个高维代码中直接识别适当的医疗代码。这个来自临床笔记的复杂医疗代码预测问题已经引起了NLP社区的极大兴趣,最近的几项研究已经显示了成熟的基于深度学习的方法的最先进的代码预测结果。这一进展提出了一个基本问题,即自动化机器学习系统与人类编码人员的工作性能有多远,以及当前可解释性方法在多大程度上适用于Transformers等高级神经网络模型。这是为了预测正确的代码,并在支持代码预测的临床笔记中提供参考,因为这种水平的预测结果的可解释性和准确性对于获得专业医疗编码人员的信任至关重要。
2022-10-30 cs.CL cs.LG
Deep Learning-based Binary Analysis for Vulnerability Detection in x86-64 Machine Code
Department of Computer Science and Mathematics(计算机科学与数学系);Algoma University(阿尔戈马大学)
本文提出利用深度学习模型直接分析x86-64机器代码以检测漏洞,发现基于图的模型在漏洞检测中表现更优。
2026-01-14 cs.CR cs.LG
Read, Attend, and Code: Pushing the Limits of Medical Codes Prediction from Clinical Notes by Machines
AKASA(AKASA公司)
从临床笔记中预测医疗代码对于当前医疗系统中的每个医疗保健提供组织来说都是实际的和必要的需求。自动化注释将节省当今人类编码人员花费的大量时间和过多的精力。然而,最大的挑战是从非结构化的自由文本临床笔记中直接识别出数千个高维代码中的适当医疗代码。在过去的三年里,卷积神经网络(CNN)和长短期记忆(LTSM)网络在解决MIMIC-III全标签住院患者临床记录数据集的最具挑战性的基准方面取得了巨大的进步。这一进展提出了一个基本问题,即自动化机器学习(ML)系统与人类编码员的工作性能有多远。我们评估了人类程序员在相同子采样测试集上的表现基线。我们还提出了我们的读,参加,和代码(RAC)模型学习的医疗代码分配映射。通过将卷积嵌入与自我注意力和代码标题引导注意力模块相连接,结合基于句子置换的数据增强和随机权重平均训练,RAC建立了一个新的最新技术水平(SOTA),比当前最好的Macro-F1高出18.7%,并超过了人类水平的编码基线。这一新的里程碑标志着机器在完全自主医疗编码(AMC)方面迈出了有意义的一步,达到了与人类编码人员在医疗代码预测方面的性能相当的水平。
2021-07-10 cs.CL cs.LG
Neural Machine Translation for Code Generation
University of Arizona(亚利桑那大学)
本文综述了用于代码生成的神经机器翻译(NMT)文献,根据输入输出表示、模型架构、优化技术、数据集和评估方法对各种方法进行分类,并讨论了现有局限与未来方向。
2023-05-22 cs.CL cs.LG
mcdok at SemEval-2026 Task 13: Finetuning LLMs for Detection of Machine-Generated Code
Faculty of Information Technology, Brno University of Technology(布拉格技术学院);Kempelen Institute of Intelligent Technologies(智能技术研究所)
本文通过微调大语言模型,针对多领域机器生成代码检测问题,提出了改进的mcdok方法,提升了对不同编程语言代码片段的检测能力,但在部分子任务上仍有提升空间。
2026-04-23 cs.AI cs.CL cs.LG
ktrain: A Low-Code Library for Augmented Machine Learning
Institute for Defense Analyses(美国国防分析研究所)
我们介绍了ktrain,一个低代码的Python库,它使机器学习更容易访问和应用。作为TensorFlow和许多其他库的包装器(例如,Transformers,scikit-learn,stellargraph),它旨在使复杂的,最先进的机器学习模型易于构建,训练,检查和初学者和经验丰富的从业者应用。具有支持文本数据的模块(例如,文本分类、序列标记、开放域问答),视觉数据(例如,图像分类),图形数据(例如,节点分类、链接预测)和表格数据,Ktrain提供了一个简单的统一接口,使得人们能够在少至三个或四个“命令”或代码行中快速解决各种各样的任务。
2022-04-05 cs.CL cs.CV cs.LG
Instead of Rewriting Foreign Code for Machine Learning, Automatically Synthesize Fast Gradients
MIT CSAIL(麻省理工学院计算机科学与人工智能实验室)
将可微分编程技术和机器学习算法应用于外来程序需要开发人员在机器学习框架中重写他们的代码,或者以其他方式提供外来代码的衍生物。本文介绍了酶,一个高性能的自动微分(AD)编译器插件的LLVM编译器框架能够合成梯度的静态分析程序表示的LLVM中间表示(IR)。酶合成梯度的任何语言编写的程序,其编译器的目标LLVM IR包括C,C++,Fortran,Julia,Rust,Swift,MLIR等,从而以这些语言提供本机AD能力。与传统的源到源和操作符重载工具不同,酶在优化的IR上执行AD。在包括Microsoft ADBench在内的机器学习重点基准测试套件中,优化IR上的AD实现了比优化前IR上的AD高4.5倍的几何平均加速,使酶实现了最先进的性能。Packaging Enzyme for PyTorch和TensorFlow提供了对具有最先进性能的外来代码梯度的方便访问,使外来代码能够直接纳入现有的机器学习工作流程。
2020-10-04 cs.AI cs.LG cs.MS
A Survey on Machine Learning Techniques for Source Code Analysis
Dalhousie University(达尔豪斯大学);University College London(伦敦大学学院);Queen’s University(女王大学);DevOn;J.S.S. Academy of Technical Education(J.S.S.技术教育学院)
机器学习技术的进步鼓励研究人员将这些技术应用于使用源代码分析的无数软件工程任务,例如测试和漏洞检测。如此大量的研究阻碍了社区了解当前的研究景观。本文旨在总结当前应用机器学习进行源代码分析的知识。我们回顾了属于12类软件工程任务的研究,以及相应的机器学习技术,工具和数据集,已被应用于解决这些问题。为此,我们进行了广泛的文献检索,并确定了2011年至2021年间发表的479项主要研究。我们总结了我们的观察和发现的帮助下,确定的研究。我们的研究结果表明,机器学习技术在源代码分析任务中的使用正在不断增加。我们综合了每个任务的常用步骤和整体工作流程,并总结了所采用的机器学习技术。我们确定了一个全面的可用数据集和工具列表,可用于此背景下。最后,本文讨论了在这一领域所面临的挑战,包括标准数据集的可用性,再现性和可复制性,以及硬件资源。
2022-09-13 cs.LG cs.SE
Linguacodus: A Synergistic Framework for Transformative Code Generation in Machine Learning Pipelines
HSE University(高等经济大学);Constructor University(康斯特大学);Institute for Functional Intelligent Materials, National University of Singapore(新加坡国立大学功能智能材料研究所)
本文提出Linguacodus框架,通过微调大语言模型和动态流水线,以最少人工交互将自然语言任务描述自动转换为可执行机器学习代码,并在Kaggle大规模数据集上验证了其有效性。
2024-11-21 cs.AI cs.CL cs.LG
Technical Report: Towards a Universal Code Formatter through Machine Learning
University of San Francisco(旧金山大学);Centrum Wiskunde & Informatica(荷兰数学与计算机科学研究中心)
有许多声明性框架允许我们相对容易地为任何特定语言实现代码格式化程序,但是构造它们很麻烦。第一个问题是,“每个人”都希望以不同的方式格式化他们的代码,这导致了许多格式化程序变体或荒谬的配置选项。第二,每个实现的大小与语言的语法大小成比例,导致数百条规则。在本文中,我们使用一种新的方法来解决格式化程序的构造问题,该方法可以自动导出任何给定语言的格式化程序,而无需语言专家的干预。我们介绍了一个代码格式称为CodeBuff,使用机器学习抽象的格式规则,从一个代表性的语料库,使用精心设计的功能集。我们在Java,SQL和ANTLR语法上的实验表明,CodeBuff是高效的,具有出色的准确性,并且对于给定的语言是语法不变的。它还推广到在手稿准备期间测试的第四语言。
2016-06-28 cs.AI cs.LG cs.PL
apsis - Framework for Automated Optimization of Machine Learning Hyper Parameters
Technische Universität München(慕尼黑工业大学)
本文提出的apsis工具包为超参数优化提供了一个灵活的框架,包括随机搜索和baidu优化器。它是用Python实现的,其架构具有对任何所需机器学习代码的适应性。它可以很容易地与常见的Python ML框架(如scikit-learn)一起使用。在MIT许可证下发布,强烈鼓励其他研究人员查看代码,贡献或提出任何建议。代码可以在github.com/FrederikDiehl/apsis上找到。
2015-03-15 cs.LG
Machine Learning Based Source Code Classification Using Syntax Oriented Features
Computer Industry(计算机行业);Victoria University of Wellington(惠灵顿维多利亚大学)
到目前为止,绝大多数已发布源代码的程序设计语言都是手动指定的,或者基于唯一的文件扩展名以编程方式分配的。在本文中,我们表明,源代码程序设计语言识别任务可以完全自动化使用机器学习技术。我们首先定义生产级自动程序设计语言识别解决方案应满足的标准。我们的标准包括准确性、程序设计语言覆盖率、可扩展性和性能。然后,我们描述我们的方法:如何对训练文件进行预处理,以提取模仿语法生成的特征,然后如何将这些提取的语法生成用于我们的分类器的训练和测试。我们实现了99%的准确率,同时分类29个最流行的程序设计语言与最大熵分类。
2017-03-04 cs.LG cs.PL
Investigating Code-Mixed Modern Standard Arabic-Egyptian to English Machine Translation
The University of British Columbia(不列颠哥伦比亚大学)
神经机器翻译(NMT)的最新进展使得在存在大量并行数据的单语语言对之间成功翻译成为可能,预训练的模型进一步提高了性能。虽然有关于在代码混合环境中进行翻译的工作(其中一对包括来自两种或多种语言的文本),但目前还不清楚NMT和语言建模的最新成功对于翻译代码混合文本的意义。我们调查这样的背景下,即MT从代码混合现代标准阿拉伯语和埃及阿拉伯语(MSAEA)到英语。我们在不同的条件下开发模型,采用(i)从头开始训练的标准端到端序列到序列(S2 S)Transformers和(ii)预先训练的S2 S语言模型(LM)。我们能够仅使用MSA-EN并行数据和从头开始训练的S2 S模型来获得合理的性能。我们还发现LM对各种阿拉伯方言的数据进行了微调,以帮助MSAEA-EN任务。我们的工作是在代码转换中的机器翻译共享任务的背景下进行的。我们的最佳模型实现了$\bf25.72$ BLEU,使我们在MSAEA-EN的官方共享任务评估中排名第一。
2021-05-28 cs.CL cs.LG
A Survey of Machine Learning for Big Code and Naturalness
Microsoft Research(微软研究院);University College London(伦敦大学学院);University of California, Davis(加州大学戴维斯分校);University of Edinburgh(爱丁堡大学);The Alan Turing Institute(艾伦·图灵研究所)
在机器学习、程序设计语言和软件工程的交叉点上的研究最近在提出利用代码丰富模式的源代码的可学习概率模型方面迈出了重要的一步。在这篇文章中,我们调查这项工作。我们对比程序设计语言和自然语言,并讨论这些相似性和差异如何驱动概率模型的设计。我们提出了一个分类的基础上,每个模型的基本设计原则,并使用它来浏览文献。然后,我们回顾了研究人员如何将这些模型应用于应用领域,并讨论了跨领域和特定应用的挑战和机遇。
2018-05-05 cs.LG cs.PL cs.SE
A Comprehensive Guide to Combining R and Python code for Data Science, Machine Learning and Reinforcement Learning
Universidad Carlos III de Madrid(马德里卡洛斯三世大学)
本文介绍如何通过R的reticulate包结合R与Python,利用Python的机器学习库和R的统计功能,提升数据科学、机器学习和强化学习项目的开发效率。
2024-07-19 cs.LG cs.PL
The Prevalence of Code Smells in Machine Learning projects
Delft University of Technology(代尔夫特理工大学);ING(ING集团)
人工智能(AI)和机器学习(ML)在当前的计算机科学领域中无处不在。然而,在这一领域仍然缺乏软件工程经验和最佳实践。静态代码分析是这样一种最佳实践,可以用来发现代码气味,即,源代码中的(潜在)缺陷、重构机会以及违反通用编码标准。我们的研究旨在发现ML项目中最普遍的代码气味。我们收集了74个开源机器学习项目的数据集,安装了它们的依赖项,并在上面运行了Pylint。这导致了每个类别中所有检测到的代码气味的前20个。对这些气味的手动分析主要表明代码重复是普遍存在的,并且由于其与数学符号的相似性,用于标识符命名风格的PEP 8约定可能并不总是适用于ML代码。然而,更有趣的是,我们发现了ML项目的可维护性和可重复性的几个主要障碍,主要与Python项目的依赖管理有关。我们还发现Pylint无法可靠地检查导入依赖项的正确使用,包括PyTorch等突出的ML库。
2021-03-06 cs.AI cs.LG cs.SE
CURE: Code-Aware Neural Machine Translation for Automatic Program Repair
Purdue University(普渡大学);University of Waterloo(滑铁卢大学)
自动程序修复(APR)是提高软件可靠性的关键.最近,神经机器翻译(NMT)技术已被用于自动修复软件错误。虽然这些方法很有前途,但有两个主要的局限性。它们的搜索空间通常不包含正确的修复,并且它们的搜索策略忽略了软件知识,例如严格的代码语法。由于这些限制,现有的基于NMT的技术表现不如最好的基于模板的方法。我们提出了CURE,一种新的基于NMT的APR技术,具有三个主要的新颖性。首先,CURE在大型软件代码库上预训练程序设计语言(PL)模型,以便在APR任务之前学习类似于开发人员的源代码。其次,CURE设计了一个新的代码感知搜索策略,通过关注可编译的补丁和长度接近错误代码的补丁来找到更多正确的修复。最后,CURE使用子字标记化技术来生成包含更多正确修复的较小搜索空间。我们对两个广泛使用的基准测试的评估表明,CURE正确地修复了57个Defects4J错误和26个菜错误,在这两个基准测试上优于所有现有的APR技术。
2021-09-02 cs.AI cs.LG cs.SE
Can humans teach machines to code?
University of Southampton(南安普顿大学);University of Bamberg(班贝格大学);University of Oxford(牛津大学)
本文通过让人类为六个编程概念提供示例,并比较五个程序综合系统在非专家、专家和随机示例上的泛化表现,发现非专家通常难以提供足以让系统学会准确程序的示例。
2025-02-17 cs.HC cs.LG
Are Machine Programming Systems using Right Source-Code Measures to Select Code Repositories?
Intel(英特尔)
机器编程(MP)是确定性和概率计算交叉的新兴领域,它旨在帮助软件和硬件工程师以及其他应用程序。随着强大的计算资源,MP系统往往依赖于大量的开源代码来学习有趣的属性代码和编程和解决问题的调试,代码推荐,自动完成等领域的不幸的是,现有的MP系统中的几个要么不考虑质量的代码库或使用非典型的质量措施比那些通常用于软件工程社区选择他们。因此,需要研究代码库质量对这些系统性能的影响。在这篇初步论文中,我们评估了候选MP系统的性能不同的质量库的影响。为了实现这一目标,我们开发了一个名为GitRank的框架,通过利用现有的研究,对开源存储库的质量,可维护性和受欢迎程度进行排名。然后,我们应用GitRank来评估候选MP系统使用的质量度量与我们框架使用的质量度量之间的相关性。我们的初步结果揭示了GitRank中使用的质量度量与ControlFlag的性能之间的一些相关性,这表明GitRank中使用的一些度量适用于ControlFlag。但它也提出了关于MP系统中使用的代码存储库的正确质量度量的问题。我们相信,我们的研究结果也产生有趣的见解代码质量的措施,影响MP系统的性能。
2022-09-24 cs.AI cs.LG cs.SE
A Text Classification-Based Approach for Evaluating and Enhancing the Machine Interpretability of Building Codes
Tsinghua University(清华大学)
本研究针对建筑规范机器可解释性评估难题,提出基于预训练领域语言模型和迁移学习的文本分类方法,构建数据集与定量评估体系,提升了分类性能与下游ARI方法效果,并分析了中国建筑规范的可解释性现状。
2023-09-24 cs.AI cs.CL cs.LG