您现在的位置是:热点 >>正文
成熟的AI应该自己写代码,IBM发布5亿行代码数据集,包含55种语言|开源
热点203人已围观
简介...
本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。
在ImageNet频频出现在计算机视觉研究的今天,IBM也为智能编码(AI for Code)带来了它的专属数据集——CodeNet。
1400万个编成熟程项目,5亿行代码,超过55种的不同编码语言。研究人员希望这一数据集能为编码自动化领域(比如大型项目代码的调试、维护和迁移)带来便利。
△下载链接见文末
独一无二的数据基础
CodeNet的数据基础来自两个OJ(Online Ju的Adge)平台AIZU和AtCoder所提交的实例。
△大声告诉我世界上最好的语言是什么?
在这种在线编程平台上提交的解决方案,除了大规模的代码数据之外,还有许多高质量的元数据(Metadata)和注释。
比如对于OJ平台的问题I应,就有如问题描述、内存限制、问题难度等信息。
用户提交的案例也一样:
而在平台自动审查机制下,提交的解决方案的不同状态同样也可以作为重要参考数据。
CodeNet能做什么?
基准测试
当在CodeNet-1K(C++ 1000基准)该自与最大的公开数据集之一GCJ-297上训练相同的MISIM模型,并在第三个独立的数据集POJ-104上测试这两个训练好的模型时:
△模型在CodeNet-1K上训练时的POJ-104测试分数比在GCJ-297上的高12%
这表明了C己写odeNet-1K拥有更好的泛化能力。
而分别使用MLP、CNN、C-BERT、GNN在CodeNet的几个基准上进行了代码分类、代码相似性评估和代码完成等实验后,大多数任务都获得了90%以上的准确率。
实际应用
基于不同编程代码语言间的规则,将几段代码转换成其他语言,对AI来说并非难事。
但如果是上千上万行,甚至是一个大型项目,其代码语义就会涉及到上下文,而上下文又可能牵扯到多个代码库。在这样的复杂语境下的语言翻译可是个不小的挑战。
在以前,通常先,I由机器完成程序50%~60%的迁移,涉及复杂规则的部分再由人力负责,非常棘手且费事费力。
可就在不久前,IBM通过基于CodeNet的AI for Code成功将一位大型汽车客户的持续代码迁移过程(多代Java技术开发的3500BM个Java文件,超一百万行代码),从一年缩短到了四星期。
因为在CodeNet的数据基础中,90%以上的问题的描述、输入格式说明、输出格式说明,以及50%以上的提交代码的输入和输出样本,就是确定不同语言间的代码等价与否的关键。
这发布就极大地推动了代码翻译的强化学习技术。
而大量于内存限制、执行时间、错误类型的元数据,也可以用来标记源代码中的潜在缺陷,并进一步训练开发代码优化系统。
CodeNet数据集提供了一套利于理解和使用的技术,在协助广大开发者和研究者开5亿发算法,推进AI编码的同时,也为企业开启IT现代化带来了持续不断的商业价值。
技术上如何实现
在统计数据时,研究者们组织所有数据成为一个严格的目录结构:最上层是Project CodeNet目录,下方的子目录分别为:
*数据
细分为每个问题行代中源码、脚本语言。
*元数据
存放所有问题的problem_list.csv文件和提交案例的csv文件。
*问题描述
存放问题的HTML文件,包含文本的广泛描述。
然后使用命令行工具或像ls和grep这样的应用程序来提取,对csv文件可码数使用csvkit组件(如csvstat)。
对于数据集则采用bash脚本进行访问选择:
△脚本已给出。
最后通过标记器产生标记流、AST生成解析到抽象语法树、构建数据流图以分析代码,最终将代码样本转换为可被AI算法识别和使用的表据集现形式:
△处理过程所用到的工具。
编程自动化的未来
IBM的研究者们还在不断地改进和开发CodeNet,期望它能够加速AI编程的算法进步。
而随着机器学习领域的不断发展,不仅是代码的“实现”,连“设计”也开始向计算机一侧倾靠(,包比如GAN通过对抗学习寻找最优解)。
未来真的可以像DNA的自我编辑那样,实现完全的自动编程吗?
建议先封装几个人类程序员,来帮计算机完成算法第一步的“精确描述问题需求”。
Tags:
相关文章
数据中心冷却的人工智能:不只是白日梦
热点如今,人工智能遍布数据中心——帮助管理和保护网络、过滤警报和移动工作负载。然而,在将人工智能应用于运营技术问题上,而不是应用于IT方面,该行业一直进展缓慢。具体来说,在冷却领域,有时负责多达三分之一的...
【热点】
阅读更多标签: AirTag 2 iPhone Air 尚界 H5 春节不打烊
热点Hello,大家早上好,又是元气满满的一天,先来浏览新鲜的早报吧~ 【苹果 AirTag 2 发布】 新款搭载第二代超宽带芯片,查找范围扩大最高 50%,扬声器音量提升 50%,可更精准、更远距离找到...
【热点】
阅读更多云计算开发:Python3随机数函数seed()方法详解
热点描述 seed() 方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数。 语法 以下是 seed() 方法的语法: import random random.seed ( [x] )...
【热点】
阅读更多
热门文章
最新文章
友情链接
- 标签: 康师傅
- https://www.scivee.tv/?s=谷歌快排操作流程【tg:seogoogle987】,IQ0
- https://www.world-architects.com/en/search?term=谷歌快排操作流程【tg:seogoogle987】,0lY
- https://www.u-bourgogne.fr/?cat=117&s=谷歌快排操作流程【tg:seogoogle987】,yCp
- https://www.partilerdunyasi.com/index.php?route=product/search&tag=谷歌快排操作流程【tg:seogoogle987】,1N7
- https://www.sic-info.org/?s=谷歌快排操作流程【tg:seogoogle987】,ILV
- https://www.sebson.de/en/search?query=谷歌快排操作流程【tg:seogoogle987】,Dn0
- https://www.pearson.com/en-us/search.html?aq=谷歌快排操作流程【tg:seogoogle987】,L5d
- https://www.yidian51.com/taobao/谷歌快排操作流程【tg:seogoogle987】,dTR
- https://www.navymwr.org/search/?query=谷歌快排操作流程【tg:seogoogle987】,y6D
- https://www.dba.dk/soeg/?soeg=谷歌快排操作流程【tg:seogoogle987】Sdy
- https://www.quarterjacksurgery.co.uk/?AT=3rBy&s=谷歌快排操作流程【tg:seogoogle987】,nON
- https://www.vietnamconsulate-sf.org/?action=CHECK&s=谷歌快排操作流程【tg:seogoogle987】,CHR
- https://www.safetv.go.kr/base/search/view?searchWord=谷歌快排操作流程【tg:seogoogle987】Hkr
- https://www.abbreviations.com/谷歌快排操作流程【tg:seogoogle987】6cc
- https://www.mexperience.com/?T=1686132112324&s=谷歌快排操作流程【tg:seogoogle987】,vRm
- https://www.rea.govt.nz/search?searchterm=谷歌快排操作流程【tg:seogoogle987】,sun
- https://www.wmfe.org/?s=谷歌快排操作流程【tg:seogoogle987】,iJI
- https://www.selfsufficientish.com/main/?s=谷歌快排操作流程【tg:seogoogle987】,UQC
- https://www.searcychamber.com/list/search?AsfnA=DtkTQzs&q=谷歌快排操作流程【tg:seogoogle987】,zJE
- https://www.scq.ubc.ca/?page=2&s=谷歌快排操作流程【tg:seogoogle987】,e1I
- https://www.londontheatredirect.com/search/谷歌快排操作流程【tg:seogoogle987】,62s
- https://www.jusoen.com/addreng.asp?p1=谷歌快排操作流程【tg:seogoogle987】AF7
- https://www.mintos.org/?s=谷歌快排操作流程【tg:seogoogle987】,XiM
- https://www.tullygroup.us/?ID=hbkq8jFjrQlVRrwzEmvoUJJAY4e1Lfo5&s=谷歌快排操作流程【tg:seogoogle987】,rz2
- https://www.parriscues.com/catalogsearch/result/?q=谷歌快排操作流程【tg:seogoogle987】,ec6
- https://www.remit.co.jp/vi/?s=谷歌快排操作流程【tg:seogoogle987】t7a
- https://www.smarty.net/search?q=谷歌快排操作流程【tg:seogoogle987】,kqs
- https://www.uctronics.com/catalogsearch/result/?q=谷歌快排操作流程【tg:seogoogle987】,MK0
- https://www.thealexandrian.net/?s=谷歌快排操作流程【tg:seogoogle987】,xnl
- https://blvdseafood.com/?s=谷歌快排操作流程【tg:seogoogle987】ifT
- https://www.sic-info.org/en/?s=谷歌快排操作流程【tg:seogoogle987】,lzz
- https://www.stormberg.com/no/search?q=谷歌快排操作流程【tg:seogoogle987】,sl0
- https://www.vocabulary.com/dictionary/谷歌快排操作流程【tg:seogoogle987】,KuG
- https://www.jusoen.com/addreng.asp?p1=谷歌快排操作流程【tg:seogoogle987】L6l
- https://www.sdcard.org/ja/?s=谷歌快排操作流程【tg:seogoogle987】,2dF
- https://www.so.com/s?ie=utf-8&src=360sou_home&_re=0&q=谷歌快排操作流程【tg:seogoogle987】,GvE
- https://www.televes.com/es/catalogsearch/result/?q=谷歌快排操作流程【tg:seogoogle987】,Q1k
- https://www.urmc.rochester.edu/news/search?q=谷歌快排操作流程【tg:seogoogle987】,pgl
- https://www.lezhin.com/ko/tags/谷歌快排操作流程【tg:seogoogle987】,gbo
- https://blvdseafood.com/?s=谷歌快排操作流程【tg:seogoogle987】QvA
- https://www.prattlibrary.org/search?q=谷歌快排操作流程【tg:seogoogle987】,TiJ
- https://www.springfieldlibrary.org/library/?s=谷歌快排操作流程【tg:seogoogle987】,Rji
- https://www.ushmm.org/search/results/?ID=8s0587Oi8UTv74zPPM4fuhwjNpe2hsEE&q=谷歌快排操作流程【tg:seogoogle987】,sen
- https://www.soccerbible.com/search?q=谷歌快排操作流程【tg:seogoogle987】,qce
- https://www.youm7.com/Home/Search?allwords=谷歌快排操作流程【tg:seogoogle987】,4ge
- https://www.umc.edu/search.aspx?ID=I4gnDKRS991MFcIDDzoYze4aWSAszAm7&q=谷歌快排操作流程【tg:seogoogle987】,NGz
- https://www.vivaraise.fr/catalogsearch/result/?q=谷歌快排操作流程【tg:seogoogle987】,wZv
- https://www.merchbar.com/search?q=谷歌快排操作流程【tg:seogoogle987】,zdG
- https://www.ons.gov.uk/search?q=谷歌快排操作流程【tg:seogoogle987】,VhP
- https://www.resilienz-akademie.com/?cat=71&s=谷歌快排操作流程【tg:seogoogle987】,bI1