CodeNet,IBM的机器学习系统项目 

IBM徽标

IBM揭幕 最近他的新项目叫做 “ CodeNet” 旨在为研究人员提供数据集,以使用机器学习技术进行实验 创建从一种编程语言到另一种编程语言的翻译器,以及生成器和代码分析器。

CodeNet包括14万个代码样本的集合 解决了4053个常见的编程问题。 该集合总共包含约500亿行代码,涵盖55种编程语言,包括C ++,Java,Python和Go等现代语言以及遗留的COBOL,Pascal和FORTRAN。

美国著名商人马克·安德森(Marc Andreessen)在2011年写道:“软件正在吞噬整个世界。”时至今日:在金融服务,医疗保健,智能手机和智能家居中都可以找到软件。 现在,甚至汽车也拥有超过100亿行代码。

项目开发是根据Apache 2.0许可发布的,数据集预计将在公共领域发布。

这些示例带有注释,并以不同的编程语言实现相同的算法。 拟议的集合应该被用来帮助训练机器学习系统,并通过类似于带注释图像的ImageNet数据库协助图像识别和人工视觉系统开发的方式,开发自动代码转换和分析领域的创新。 提及各种编程竞赛是馆藏建设的主要来源之一。

Project CodeNet可以专门推动算法创新,以逐序列模型提取上下文,这与我们在人类语言中所应用的模型非常相似,从而可以使机器对代码的理解更为重要,而不是对代码机器进行处理。

与基于翻译规则的传统翻译不同, 机器学习系统可以捕获并考虑代码使用的上下文。 从一种编程语言转换为另一种编程语言时,上下文与从一种人类语言转换为另一种语言一样重要。 缺乏上下文意识使代码无法从传统语言如COBOL转换。

各种语言中大量算法实现的存在将有助于创建通用的机器学习系统,而不是在特定语言之间进行实时翻译,而是独立于特定编程语言来操纵更抽象的代码表示形式。

这样的系统可用作将任何受支持语言传输的代码转换为其内部抽象表示的转换器,从中可以生成多种语言的代码。

包括系统在内,您可以执行双向转换。 例如,银行和政府机构继续使用旧版COBOL项目。 机器学习翻译器可以将COBOL代码转换为Java表示形式,还可以选择将Java代码段转换回COBOL代码。

除了语言之间的翻译外,还提到了CodeNet应用程序领域 例如,创建智能代码搜索系统和克隆检测自动化,以及开发用于自动代码校正的优化器和系统。

特别是, CodeNet中提供的示例随附了描述性能测试结果的元数据,结果程序的大小,内存消耗以及允许将正确的代码与错误的代码区分开的状态(从错误的代码中区分正确的代码,带有错误的示例特别包含在集合中,其共有29,5个,则为XNUMX%)。

机器学习系统可以将此元数据考虑在内,以生成最佳代码或检测分析后的代码中的回归(系统可以理解,算法在传输的代码中未实现最佳算法或包含错误)。

最后 如果您有兴趣了解有关CodeNet的更多信息, 您可以查看详细信息 在下面的链接.


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。