庞大的数据集带来了人工智能在语言处理和图像分析和方面的巨大进步。IBM现在希望将AI的进步带入编程领域,这可能会彻底改变软件开发。

“ImageNet时刻”和超越开发者计划的GPT-3

2012年,AlexNet神经网络在ImageNet竞赛中以明显优势击败了所有其他图像分析系统。这要归功于ImageNet数据集,该数据集拥有2万个类别的1400万张图像这在当时相当大的,用此数据集训练的卷积神经网络学会了以前所未有的准确度识别物体。

这项成功后来被称为“ImageNet时刻”,因为图像分析深度学习自此延伸到了其他领域。

2018年,人工智能研究人员塞巴斯蒂安·鲁德(Sebastian Ruder)宣布将ImageNet用于自然语言机器处理。ULMFiT、ELMo和OpenAI-GPT等语言模型表明,即使在语言处理中,大型模型使用大数据集也是获得新技能的途径。

从那时起,开发一直在稳步进行:OpenAI现在已通过GPT-3成功地将语言AI产品投放市场。新的转换器架构使GPT-3等大型语言AI可以处理更多上下文并因此更好地运行,甚至改善了AI图像分析。

GPT-2已经表明,转换器模型可以发展出对代码的基本理解。GPT-2已作为自动完成功能集成到代码编辑器Deep TabNine中。尽管此功能起初并不在开发人员的计划中,但GPT-3可以按需生成简单的HTML代码。

IBM的CodeNet将推动编程AI研究

事实上,GPT-3等语言模型尚未显示任何真正全面的编程能力。一个可能的原因是:大多数训练数据是常规文本,偶尔生成的代码行只是Internet上的数据收集的附带作用。

但是,如果有一个高质量的数据集,其中充满了专门用于AI训练的代码示例,会怎么样?Deep TabNine的开发人员通过代码示例对GPT-2进行了明确的培训,结果在代码自动完成方面取得了显著改进。

这一领域的研究被称为“编码AI”研究,并且很快也会带来“CodeNet时刻”:IBM已经发布了庞大的CodeNet数据集,研究人员认为,该数据集中的代码集可用于编码AI的研发。CodeNet数据集于十年前开始用于图像分析。

CodeNet有5亿行代码

根据IBM的说法,CodeNet包含超过55种不同编程语言的1400万个代码示例,总共有5亿行代码。该数据集由网站AIZU和AtCoder的代码解决方案组成,众多的编码人员在上面上传编程竞赛的解决方案。示例包括现代编程语言(例如C ++、Java和Python)以及旧语言(例如COBOL、Pascal或FORTRAN)的解决方案。

由于网页面临许多不同的挑战,因此CodeNet包括用于代码相似性和分类任务、代码推荐算法、各种编程语言之间的代码翻译或运行时间和内存优化的技术。根据IBM的说法,除了庞大的规模之外,这种多样的任务和示例也是CodeNet用于AI培训的最大优势之一。

编程“CodeNet时刻”将彻底改软件开发

超过90%的示例包含问题描述,几乎一半的示例提供了输入和输出示例。研究人员写道,这使得确定不同语言的两个代码示例的等效性成为可能,例如,强化学习算法可以帮助学习代码翻译。

研究人员表示,经过CodeNet训练的AI模型可以学会智能地搜索代码,查找功能上重复的代码,将有问题的代码与正确的代码区分开,自动改进代码,在编程语言之间翻译代码,甚至独立编写代码。【编译自mixed.de】