熱榜第四:GitHub開源代碼數(shù)據(jù)集界ImageNet,推出代碼搜索挑戰(zhàn)賽
代碼搜索哪家強(qiáng)
魚羊 發(fā)自 凹非寺
量子位 報(bào)道 | 公眾號(hào) QbitAI
用別人的輪子,開自己的路。
在這個(gè)產(chǎn)品快速迭代的時(shí)代,搜索、調(diào)用別人的代碼避免重復(fù)造輪子,已是開發(fā)常態(tài)。
但是搜索代碼這件事,并不是百度一下就能解決的。
搜索引擎?zhèn)兺鸱撬鶈枺y以理解程序猿們的需求。
現(xiàn)在,GitHub覺得,機(jī)器學(xué)習(xí)可以改善這個(gè)問題。不僅要讓AI搜代碼,還要搞出一套評(píng)估標(biāo)準(zhǔn)。
于是,CodeSearchNet挑戰(zhàn)賽上線了。
這一上線,就是日入200星的節(jié)奏,目前已經(jīng)登上了趨勢(shì)榜第四的位置。
CodeSearchNet挑戰(zhàn)賽
CodeSearchNet挑戰(zhàn)賽是GitHub和Weights&Biases攜手推出的一項(xiàng)新賽事,旨在推動(dòng)語義代碼搜索的相關(guān)研究。
雖然與其他的信息檢索任務(wù)相關(guān)聯(lián),但代碼中使用的語言通常是縮寫,并且具有高度技術(shù)性,也就是說,在這項(xiàng)任務(wù)中,代碼語言和自然語言之間存在鴻溝。
所以,像GLUE這樣的基準(zhǔn)測試顯然不太適合用來評(píng)估這一任務(wù)。
CodeSearchNet為NLP社區(qū)提供了一個(gè)新的平臺(tái),包含:
- 大量的相關(guān)數(shù)據(jù)說明
- 一系列基線模型的開源代碼,以及預(yù)訓(xùn)練權(quán)重
- 基線評(píng)估指標(biāo)和實(shí)用程序
- 一個(gè)新的排行榜
挑戰(zhàn)賽包括99種自然語言查詢(query),以及大約4000個(gè)專家注釋,這些注釋,來自GitHub為挑戰(zhàn)賽發(fā)布的CodeSearchNet語料庫。
語料庫 + 模型
CodeSearchNet語料庫的數(shù)據(jù)取自GitHub上的開源項(xiàng)目,經(jīng)過了充分的預(yù)處理。
其中包含了約600萬種函數(shù),取自Go,Java,JavaScript,PHP,Python和Ruby這六種編程語言的開源代碼。
還包含了通過機(jī)械抓取、預(yù)處理相關(guān)函數(shù)文檔,自動(dòng)生成的類似查詢的自然語言,適用于200萬種函數(shù)。
數(shù)據(jù)集已經(jīng)開放下載,大小約20GB。
GitHub還計(jì)劃在未來幾個(gè)月繼續(xù)擴(kuò)展評(píng)估數(shù)據(jù)集,容納進(jìn)更多編程語言,查詢和注釋。并且,他們也希望這一數(shù)據(jù)集能在其他NLP任務(wù)中得到應(yīng)用。
GitHub的目標(biāo),是將其打造成代碼數(shù)據(jù)集界的ImageNet。
同時(shí)開源的,還有基準(zhǔn)模型。
為了評(píng)估代碼搜索模型,GitHub從bing上收集了高點(diǎn)擊率的搜索查詢文字,將其與StaQC(數(shù)據(jù)集:StackOverflow-Question-Code-Dataset)查詢相結(jié)合,生成了99個(gè)與代碼相關(guān)的查詢。
而后,使用標(biāo)準(zhǔn)的Elasticsearch(開源搜索引擎)安裝,并用基線模型從CodeSearchNet語料庫中為每個(gè)查詢搜索10個(gè)可能的結(jié)果。
最后,GitHub要求程序員,數(shù)據(jù)科學(xué)家和機(jī)器學(xué)習(xí)研究人員以 [0,3] 的評(píng)價(jià)標(biāo)準(zhǔn)來注釋搜索結(jié)果與查詢的相關(guān)性,0表示完全不相關(guān),3表示完全符合。
精心制作,必屬良品。GitHub也指出,在他們的新數(shù)據(jù)集中訓(xùn)練搜索方法,能顯著提高特定項(xiàng)目搜索查詢的性能。
現(xiàn)在,排行榜上還只有GitHub“自己人”,那么,來挑戰(zhàn)一下嗎?
傳送門
CodeSearchNet挑戰(zhàn)賽簡介:
GitHub地址:
論文地址:
https://arxiv.org/pdf/1909.09436.pdf
— 完 —



