魚羊 發自 凹非寺量子位 報導 | 公眾號 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挑戰賽簡介:
https://github.blog/2019-09-26-introducing-the-codesearchnet-challenge/
GitHub地址:
https://github.blog/2019-09-26-introducing-the-codesearchnet-challenge/
論文地址:
https://arxiv.org/pdf/1909.09436.pdf
— 完 —