Binuksan ng GitHub ang mga pag-unlad sa paggamit ng machine learning para sa paghahanap at pagsusuri ng code

GitHub ipinakilala proyekto CodeSearchNet, na naghanda ng mga modelo ng machine learning at data set na kinakailangan para sa pag-parse, pag-uuri at pagsusuri ng code sa iba't ibang programming language. CodeSearchNet, katulad ng ImageNet, ay may kasamang malaking koleksyon ng mga snippet ng code na may mga anotasyon na nagpapapormal sa ginagawa ng code. Ang mga bahagi para sa mga modelo ng pagsasanay at mga halimbawa ng paggamit ng CodeSearchNet ay nakasulat sa Python gamit ang Tensorflow framework at ipinamahagi ni sa ilalim ng lisensya ng MIT.

Kapag lumilikha ng CodeSearchNet, ginamit ang mga natural na teknolohiya sa pag-parse ng text ng wika, na nagbibigay-daan sa mga machine learning system na isaalang-alang hindi lamang ang mga syntactic na feature, kundi pati na rin ang kahulugan ng mga aksyon na ginawa ng code. Ang GitHub system inilapat sa mga eksperimento sa pag-aayos ng semantic code search gamit ang mga query sa natural na wika (halimbawa, kapag humihiling ng "pag-uuri ng isang listahan ng mga string", ipinapakita ang code na may pagpapatupad ng kaukulang mga algorithm).

Kasama sa iminungkahing dataset ang higit sa 2 milyong link ng code-comment, na inihanda batay sa mga source text ng mga kasalukuyang bukas na aklatan. Sinasaklaw ng code ang kumpletong source text ng mga indibidwal na function o pamamaraan, at ang komento ay naglalarawan ng mga aksyon na ginawa ng function (detalyadong dokumentasyon ay ibinigay). Sa kasalukuyan, ang mga dataset ay inihanda para sa Python, JavaScript, Ruby, Go, Java at PHP. Ang mga halimbawa ay ibinigay sa paggamit ng mga iminungkahing dataset para sa pagsasanay ng iba't ibang uri ng mga neural network, kabilang ang Neural-Bag-Of-Words, RNN, Pansin sa sarili (BERT) at 1D-CNN+Self-Attention Hybrid.

Upang bumuo ng mga natural na mekanismo sa paghahanap ng wika, isang set ng CodeSearchNet Challenge ay karagdagang inihanda, kasama ang
99 karaniwang mga query na may humigit-kumulang 4 na libong ekspertong annotation na naglalarawan sa mga pinaka-malamang na pag-binding ng code sa dataset ng CodeSearchNet Corpus, na sumasaklaw sa humigit-kumulang 6 na milyong pamamaraan at function (itakda ang laki humigit-kumulang 20 GB). Ang CodeSearchNet Challenge ay maaaring magsilbi bilang isang benchmark para sa pagsusuri sa pagiging epektibo ng ilang mga pamamaraan para sa paghahanap ng natural na code ng wika. Paggamit ng mga kasangkapan KubeFlow nakahanda
halimbawa search engine ng code.

Pinagmulan: opennet.ru

Magdagdag ng komento