专栏名称: 深度学习工坊
一个专注深度学习方向的公众号,专注分享实战干货,涉及机器学习、CV、NLP、C/C++、Python等方向。
目录
相关文章推荐
开发者全社区  ·  南航这是裁员裁到了大动脉了? ·  18 小时前  
开发者全社区  ·  某司年会真High ·  21 小时前  
中国保利  ·  揭秘!保利春节大数据 ·  2 天前  
开发者全社区  ·  春节约炮被骗,聊天记录曝光 ·  2 天前  
51好读  ›  专栏  ›  深度学习工坊

成熟的AI应该自己写代码!IBM发布5亿行代码数据集,包含55种语言|开源

深度学习工坊  · 公众号  ·  · 2021-05-23 23:59

正文

点这里 👇 关注我,记得标星,么么哒~
博雯 发自 凹非寺
来源:量子位(QbitAI)

在ImageNet频频出现在计算机视觉研究的今天,IBM也为智能编码(AI for Code)带来了它的专属数据集—— CodeNet

1400万 个编程项目, 5亿 行代码,超过 55 种的不同编码语言。研究人员希望这一数据集能为编码自动化领域(比如大型项目代码的调试、维护和迁移)带来便利。

下载链接见文末

独一无二的数据基础

CodeNet的数据基础来自两个OJ (Online Judge) 平台 AIZU AtCoder 所提交的实例。

大声告诉我世界上最好的语言是什么?

在这种在线编程平台上提交的解决方案,除了大规模的代码数据之外,还有许多高质量的元数据 (Metadata) 和注释。

比如对于OJ平台的 问题 ,就有如问题描述、内存限制、问题难度等信息。

用户提交的案例也一样:

而在平台自动审查机制下,提交的解决方案的不同状态同样也可以作为重要参考数据。

CodeNet能做什么?

基准测试

当在CodeNet-1K(C++ 1000基准)与最大的公开数据集之一GCJ-297上训练相同的MISIM模型,并在第三个独立的数据集POJ-104上测试这两个训练好的模型时:

模型在CodeNet-1K上训练时的POJ-104测试分数比在GCJ-297上的高12%

这表明了CodeNet-1K拥有更好的泛化能力。

而分别使用MLP、CNN、C-BERT、GNN在CodeNet的几个基准上进行了代码分类、代码相似性评估和代码完成等实验后,大多数任务都获得了90%以上的准确率。

实际应用

基于不同编程语言间的规则,将几段代码转换成其他语言,对AI来说并非难事。

但如果是上千上万行,甚至是一个大型项目,其代码语义就会涉及到上下文,而上下文又可能牵扯到多个代码库。在这样的复杂语境下的 语言翻译 可是个不小的挑战。

在以前,通常先由机器完成程序50%~60%的迁移,涉及复杂规则的部分再由人力负责,非常棘手且费事费力。

可就在不久前,IBM通过基于CodeNet的AI for Code成功将一位大型汽车客户的持续代码迁移过程(多代Java技术开发的3500个Java文件,超一百万行代码),从一年缩短到了 四星期

因为在CodeNet的数据基础中,90%以上的问题的描述、输入格式说明、输出格式说明,以及50%以上的提交代码的输入和输出样本,就是确定不同语言间的代码等价与否的关键。

这就极大地推动了代码翻译的强化学习技术。

而大量于内存限制、执行时间、错误类型的元数据,也可以用来标记源代码中的潜在缺陷,并进一步训练开发代码 优化系统

CodeNet数据集提供了一套利于理解和使用的技术,在协助广大开发者和研究者开发算法,推进AI编码的同时,也为企业开启IT现代化带来了持续不断的商业价值。

技术上如何实现

统计数据 时,研究者们组织所有数据成为一个严格的目录结构:最上层是Project CodeNet目录,下方的子目录分别为:

*数据
细分为每个问题中源码、脚本语言。

*元数据
存放所有问题的problem_list.csv文件和提交案例的csv文件。

*问题描述
存放问题的HTML文件,包含文本的广泛描述。

然后使用命令行工具或像ls和grep这样的应用程序来提取,对csv文件可使用csvkit组件(如csvstat)。

对于数据集则采用bash脚本进行 访问选择

脚本已给出。

最后通过标记器产生标记流、AST生成解析到抽象语法树、构建数据流图以分析代码,最终将代码样本 转换 为可被AI算法识别和使用的表现形式:

处理过程所用到的工具。

编程自动化的未来

IBM的研究者们还在不断地改进和开发CodeNet,期望它能够加速AI编程的算法进步。

而随着机器学习领域的不断发展,不仅是代码的“实现”,连“设计”也开始向计算机一侧倾靠(比如GAN通过对抗学习寻找最优解)。

未来真的可以像DNA的自我编辑那样,实现完全的自动编程吗?

建议先封装几个人类程序员,来帮计算机完成算法第一步的“精确描述问题需求”。

参考链接:
[1]https://bdtechtalks.com/2021/05/17/ibms-codenet-machine-learning-programming/
[2]https://github.com/IBM/Project_CodeNet#tools-to-process-source-files
[3]https://developer.ibm.com/technologies/artificial-intelligence/data/project-codenet/
[4]https://research.ibm.com/blog/codenet-ai-for-code

TensorFlow 学习资料下载


深度学习工坊 公众号后台回复: TensorFlow资料 ,即可下载访问最全最好的TensorFlow入门和实战资料!


论文写作与投稿 微信 交流 群已成立


扫码添加小助手微信, 可申请加入 论文写作与投稿 微信交流 群,目前已满2000+人,旨在交流AI顶会、AI顶刊、SCI、EI等写作与投稿事宜。


同时也 可申请加入大群和细分方向技术群,细分方向已涵盖: 目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流 等群。


一定要备注: 研究方向+地点+学校/公司+昵称







请到「今天看啥」查看全文


推荐文章
开发者全社区  ·  南航这是裁员裁到了大动脉了?
18 小时前
开发者全社区  ·  某司年会真High
21 小时前
中国保利  ·  揭秘!保利春节大数据
2 天前
开发者全社区  ·  春节约炮被骗,聊天记录曝光
2 天前
苏米的星座馆  ·  日运0526 | 金牛相处和谐,双鱼得到支持
7 年前
心理语录  ·  千万不要太爱一个人,否则...
7 年前
哎咆科技  ·  iOS 11.3 正式版:新增3大功能
7 年前