热榜第四:GitHub开源代码数据集界ImageNet,推出代码搜索挑战赛

代码搜索哪家强

鱼羊 发自 凹非寺

量子位 报道 | 公众号 QbitAI

用别人的轮子,开自己的路。

在这个产品快速迭代的时代,搜索、调用别人的代码避免重复造轮子,已是开发常态。

但是搜索代码这件事,并不是百度一下就能解决的。

搜索引擎们往往答非所问,难以理解程序猿们的需求。

现在,GitHub觉得,机器学习可以改善这个问题。不仅要让AI搜代码,还要搞出一套评估标准。

于是,CodeSearchNet挑战赛上线了。

这一上线,就是日入200星的节奏,目前已经登上了趋势榜第四的位置。

CodeSearchNet挑战赛

CodeSearchNet挑战赛是GitHub和Weights&Biases携手推出的一项新赛事,旨在推动语义代码搜索的相关研究。

虽然与其他的信息检索任务相关联,但代码中使用的语言通常是缩写,并且具有高度技术性,也就是说,在这项任务中,代码语言和自然语言之间存在鸿沟

所以,像GLUE这样的基准测试显然不太适合用来评估这一任务。

CodeSearchNet为NLP社区提供了一个新的平台,包含:

  • 大量的相关数据说明
  • 一系列基线模型的开源代码,以及预训练权重
  • 基线评估指标和实用程序
  • 一个新的排行榜

挑战赛包括99种自然语言查询(query),以及大约4000个专家注释,这些注释,来自GitHub为挑战赛发布的CodeSearchNet语料库。

语料库 + 模型

CodeSearchNet语料库的数据取自GitHub上的开源项目,经过了充分的预处理。

其中包含了约600万种函数,取自Go,Java,JavaScript,PHP,Python和Ruby这六种编程语言的开源代码。

还包含了通过机械抓取、预处理相关函数文档,自动生成的类似查询的自然语言,适用于200万种函数。

数据集已经开放下载,大小约20GB。

GitHub还计划在未来几个月继续扩展评估数据集,容纳进更多编程语言,查询和注释。并且,他们也希望这一数据集能在其他NLP任务中得到应用。

GitHub的目标,是将其打造成代码数据集界的ImageNet。

同时开源的,还有基准模型。

为了评估代码搜索模型,GitHub从bing上收集了高点击率的搜索查询文字,将其与StaQC(数据集:StackOverflow-Question-Code-Dataset)查询相结合,生成了99个与代码相关的查询。

而后,使用标准的Elasticsearch(开源搜索引擎)安装,并用基线模型从CodeSearchNet语料库中为每个查询搜索10个可能的结果。

最后,GitHub要求程序员,数据科学家和机器学习研究人员以 [0,3] 的评价标准来注释搜索结果与查询的相关性,0表示完全不相关,3表示完全符合。

精心制作,必属良品。GitHub也指出,在他们的新数据集中训练搜索方法,能显著提高特定项目搜索查询的性能。

现在,排行榜上还只有GitHub“自己人”,那么,来挑战一下吗?

传送门

CodeSearchNet挑战赛简介:

Introducing the CodeSearchNet challenge

GitHub地址:

Introducing the CodeSearchNet challenge

论文地址:

https://arxiv.org/pdf/1909.09436.pdf

— 完 —

版权所有,未经授权不得以任何形式转载及使用,违者必究。