IBM开源CodeNet项目会替代人类程序员吗? – TechTalks


在2010年代初,机器学习取得了令人瞩目的进步,引发了人们对人工智能的兴奋(和恐惧),这种人工智能很快使许多任务(包括编程)自动化。但是AI在软件开发中的渗透受到了极大的限制。
人类程序员使用大量的有意识的和潜意识的思维机制发现新的问题并探索不同的解决方案。相反,大多数机器学习算法需要定义明确的问题和大量带注释的数据来开发可以解决相同问题的模型。
业界已经做出了很多努力来创建数据集和基准,以开发和评估“用于编程的AI”系统。但是,鉴于软件开发的创造性和开放性,很难为编程创建完美的数据集。
借助Project CodeNet,IBM的研究人员试图创建一个多用途的数据集,该数据集可用于训练各种任务的机器学习模型。CodeNet的创建者将其描述为“非常大规模,多样且高质量的数据集,可加速Code AI的算法进步。”
数据集包含1400万个代码样本,其中5亿行代码用55种不同的编程语言编写。代码示例是从提交给在线编码平台AIZU和AtCoder上的近4,000个挑战的提交中获得的。代码示例包括对挑战的正确答案和错误答案。
CodeNet的主要功能之一是已添加到示例中的批注数量。数据集中包含的每个编码挑战都有一个文本说明以及CPU时间和内存限制。每个代码提交都包含十几条信息,包括语言,提交日期,大小,执行时间,接受和错误类型。
IBM的研究人员也付出了巨大的努力,以确保数据集在不同维度上保持平衡,包括编程语言,接受程度和错误类型。
CodeNet还可以帮助开发用于编码时代码推荐的机器学习模型。推荐工具可以像自动完成样式的模型一样简单,该模型将当前代码行完成到编写完整功能或代码块的更复杂的系统。