不再重复造轮子,AI 给你推荐更好的代码,还没bug( 二 )
将代码的结构与CASS集成在一起后 , 算法就会根据代码要执行的工作计算相似性分数 。 即使两段代码表面上不同 , 如果执行相同的功能 , 模型就会将它们评估为相似 。
CASS可以配置特定的上下文 , 从而能够捕获描述代码的更高级别信息 。 而且CASS可以在不使用编译器的情况下对代码进行评级(编译器将人类可读的源代码转换为计算机可执行的机器代码) , 甚至可以对不完整的代码片段进行评估 。
MISIM-GNN的架构如下图所示 。 对于这种方法 , 输入代码的CASS表征被转换为图 。 然后 , 将图中的每个节点嵌入一个可训练的向量 , 作为该节点的初始状态 。 接下来 , 使用GNN迭代更新每个节点的状态 。 最后 , 应用全局读取函数从节点的最终状态提取整个图的向量表征 。
本文插图
MISIM-GNN 架构
2
不再重复造轮子
研究人员仍然在扩展MISIM的特征集 , 目的是创建一个代码推荐引擎 , 它能够识别算法背后的意图 , 并提供语义上相似但性能有所提高的候选代码 。 系统可以指示程序员使用库函数 , 而不用再重复造轮子 。
像MISIM这样的以AI为动力的代码建议和审查工具有望大幅削减开发成本 , 同时使编码人员能够专注于更具创造性、减少重复性的任务 。
英特尔实验室首席科学家兼机器编程研究总监Justin Gottschlich表示:“如果该系统能取得成功 , 我们的最终目标之一就是实现全民编程 。 ”
或许有一天 , 代码相似性检测可以扩展到自然语言中 , 到时候要实现全民编程 , 就不再是难事 。
3 相关论文
本文插图
论文地址:https://arxiv.org/pdf/2006.05265.pdf
本文插图
代码相似检测系统的准确率比较 , 结果是运行3次的平均值和相对于平均值的最小/最大值 。
本文插图
code2vec、NCC、Aroma、MISIM在POJ-104测试集上的准确率结果 。 条形高度表示运行3次测量值的平均值 , 误差条由测量值的最小值和最大值确定 。
【不再重复造轮子,AI 给你推荐更好的代码,还没bug】 参考资料:
https://venturebeat.com/2020/07/29/intel-researchers-create-ai-system-that-rates-similarity-of-two-pieces-of-code/
https://www.theregister.com/2020/07/31/intel_wants_to_build_an/
本文插图
更多交流
推荐阅读
- 买车家|永远在降价的宝马果真有料,跌幅将近6万的五系不再看得上买不起
- 药品|9月起,这8类药不再纳入医保报销!
- 药品|9月起,这8类药医保不再报销!
- 穿搭:曾经是全球最美童星 26岁神颜不再随意穿搭失星味?
- 中新经纬|国家医保局:9月起,这八类药不再报销
- 采埃孚|变速箱巨头采埃孚不再研发内燃机部件:将聚焦于插混和纯电驱动单元
- 环球时报|被指防护效果不好,安倍出席活动时不再戴"安倍口罩"
- 天空迷彩|五角大楼不再强硬,下令航母火速撤离南海,清一色核潜艇载弹出港
- 核潜艇|清一色核潜艇载弹出港,五角大楼不再强硬,下令航母火速撤离南海
- 美国|中国宣布:任人欺凌的日子将不再有,要求美相关人士立即“撤离”