蓝色巨人希望为基于AI的编程工具创建含有丰富训练资源的ImageNet。
IBM已组建了一个庞大的源代码库,用于教机器学习程序学习编程。
这个数据集名为Project CodeNet,含有1400万个代码示例,共5亿行代码,涉及的编程语言超过55种:从Java、C和Go到COBOL、Pascal和FORTRAN,不一而足。老实讲,其中四分之三以上的代码是用C ++和Python编写的。
这些源代码不是从生产级应用程序或开发中的应用程序获取的,而是从参赛者向在日本组办的两大编程竞赛:Aizu和AtCoder提交的软件作品收集而来的。在这些竞赛中,参赛者需要编写必要的代码,以便将一组特定的输入转换成一组所需的输出。大约一半的代码示例按预期的那样运行,其余被标记为是错误的解决方案、非构建(non-building)或有缺陷。
比如说,理想情况下,您将训练一个AI工具,可以识别出好的程序、拒绝坏的程序。700万个代码示例包括了输入和所需的输出。
IBM希望CodeNet仿效ImageNet(用于训练计算机视觉应用程序的图片和标签数据库),并成为教软件明白软件开发蓝图的领先数据集——即代码实际上外观如何、与其他代码相比如何。IBM希望CodeNet可以用于训练诸如此类的开发工具:可以搜索应用程序和库来源以查找所需的例程,可以将一种语言转换成另一种语言,或者识别错误或正确的实现机制。
IBM在本周召开Think线上大会时宣布了该项目,称:“IBM相信CodeNet项目将充当颇有价值的基准数据集,用于源码到源码的转换,并将遗留代码库转换成现代代码语言,从而帮助公司企业加快AI的应用。”
IBM和MIT-IBM Watson AI实验室团队联合开发了该数据集,撰写了一篇论文介绍相关工作,并将所有整理后的材料放在了该项目在GitHub的页面(https://github.com/IBM/Project_CodeNet)上。
“该数据集不仅在规模上很独特,在它有助于基准测试的编程任务的多样性上也很独特:从代码相似性和分类以获得代码推荐算法方面的进步,到一大批编程语言之间的代码转换,再到代码性能改进技术方面的进步,”研究人员在报告中这样总结道。