网站首页 科技 > 正文
脸书人工智能发布了一个包含编码问题和代码片段答案的数据集,用于评估基于人工智能的自然语言代码搜索系统。该版本还包括脸书自己的几个代码搜索模型的基准测试结果,以及来自24,000个GitHub存储库的400多万个Java方法的训练语料库。
在arXiv发表的一篇论文中,研究人员描述了他们的数据收集技术。训练语料库是从最流行的GitHub安卓代码库中收集的,按照星星的数量排序。解析存储库中的每个Java文件,以识别每个方法。脸书将语料库用于训练码搜索系统的研究。为了创建评估数据集,他们从Stack Overflow的问答数据转储开始,只选择了既有“Java”又有“Android”的问题。研究人员说,“其中,他们只保留投票问题的答案,这些答案也与训练数据语料库中确定的方法相匹配。结果518个问题被人工过滤成最终的287个问题。研究人员说:
我们的数据集不仅是目前Java可用的最大数据集,也是唯一以自动化(一致)方式验证Stack Overflow真实答案的数据集。
脸书最近发表了几篇关于神经代码搜索的论文,神经代码搜索是一种机器学习技术,用于训练神经网络来回答“如何”编码的问题。软件开发人员通常使用Stack Overflow来学习如何解决特定的编码问题,例如,如何解决Android应用程序中的错误。但是,当处理使用专有API或不太常见的编程语言的代码时,这不是一个选项。在这种情况下,在程序员自己的组织之外很少有(或者没有)专家。相反,脸书和其他公司探索了使用源代码本身作为训练数据来产生能够回答编码问题的自然语言处理(NLP)系统的想法。
去年,脸书发表了一篇关于无监督学习方法的论文,名为神经代码搜索(NCS),该方法是通过从GitHub收集的数据进行训练的。这项技术从源代码中提取单词,并学习将每个单词映射到高维空间中向量的嵌入。嵌入通常具有向量的性质,向量在向量空间中彼此“接近”,表示意义相似的词,词与词之间的关系可以用向量算术来表示。一个例子是在维基百科上训练的word2vec模型,给出方向表达式“巴黎-法国西班牙”时会返回“马德里”。
学习嵌入后,利用“词包”模型将语料库中的每个Java方法转化为嵌入空间中的一个向量。代码中的每个单词通过嵌入被转换成一个向量,向量的加权和被分配给该方法作为它的索引。这将每个Java方法映射到嵌入空间中的一个点。为了回答编码问题,通过在查询中嵌入每个单词并生成加权和,问题可以类似地映射到嵌入空间中的某个点。这个问题的“答案”是Java方法,它的索引最接近这个点。关键思想是查询和代码都使用相同的嵌入,训练不需要输入数据有任何问题。它只从源代码中学习。
这种技术的一个缺点是它不能学习源代码中没有的单词的嵌入。脸书的研究人员发现,在堆栈溢出上,不到一半的有问题的单词包含在源代码中。这促使研究人员通过监督学习来扩展NCS,“以弥合自然语言单词和源代码单词之间的差距”。产生的系统称为嵌入式统一(embedded UniversitY,unif),它学习查询词的单独嵌入。在这次培训中,团队使用类似于收集基准数据集的过程,从堆栈溢出中提取了一组问题标题和代码段。训练数据集包含451k个问答对,但没有一个在基准测试中。在根据基准进行评估时,联合国系统培训这一数据的表现略好于国家信息中心。两个系统都以大约三分之一的时间作为最高结果返回“正确”答案,并以一半的时间返回“前五”结果的“正确”答案。
郑重声明:本文版权归原作者所有。转载文章只是为了传播更多的信息。如果作者信息标注有误,请第一时间联系我们修改或删除。谢谢你。
免责声明: 本文由用户上传,如有侵权请联系删除!
- 上一篇: 博斯艾伦-汉密尔顿获得五角大楼人工智能合同
- 下一篇: 早起的鸟儿用少10倍的能量来训练深层神经网络
猜你喜欢:
- 2023-07-05 酸梅四物饮怎么做(酸梅饮料怎么做的)
- 2023-07-05 英雄联盟手游光明哨兵活动任务怎么做(英雄联盟手游光明哨兵活动任务怎么做视频)
- 2023-07-04 叠杯子教程玩法(叠杯子教程玩法6个)
- 2023-07-04 微信怎么直接向手机号转账(微信怎么直接向手机号转账了)
- 2023-07-04 如何学习蹲踞式跳远:[1]助跑与起跳(蹲踞式跳远助跑的动作要领)
- 2023-07-04 360安全浏览器和极速浏览器哪个好(360安全浏览器和360极速浏览器哪个更好)
- 2023-07-04 mac地址怎么查(mac地址怎么查命令)
- 2023-07-04 怎么在去哪儿网上订酒店?(网上订酒店在哪里)
最新文章:
- 2023-07-05 易语言做qq强制聊天软件(Qq强制聊天软件)
- 2023-07-05 新倩女幽魂端游一条龙任务之大盗宝藏副本玩法(倩女大盗宝藏攻略)
- 2023-07-05 CDR怎么填充多种颜色渐变(cdr渐变色填充)
- 2023-07-05 页边距怎么设置(页边距怎么设置在哪里Word)
- 2023-07-05 win10兼容模式怎么设置在哪(win10兼容模式怎么设置在哪里)
- 2023-07-05 网易126邮箱如何设置黑名单?(网易邮箱126解除黑名单)
- 2023-07-05 英雄联盟手游凯南怎么出装(英雄联盟手游凯南怎么出装备)
- 2023-07-05 点点赚怎么答卷赚钱攻略(赚点答题技巧)
- 2023-07-05 自己做电脑系统最简单的方法!(自己做电脑系统最简单的方法是什么)
- 2023-07-05 快手放电影怎么放啊(快手放电影怎么放)
- 2023-07-05 QQ如何更换密保手机(qq如何更换密保手机号申诉不记得手机号了)
- 2023-07-05 win10默认安装路径在哪里设置如何修改安装路径(windows10修改默认安装路径)
- 2023-07-05 万网域名证书在哪里?怎么打印万网域名证书?(如何打印域名证书)
- 2023-07-05 原神神里绫人的圣遗物怎么获得(原神神里绫华平民圣遗物)
- 2023-07-05 微信转账0.01恶搞步骤(微信转账0.01恶搞文字)
- 2023-07-05 电子书营销技巧(电子书营销技巧与方法)