Root NationNoviceIT noviceIBM je ustvaril nabor podatkov Project CodeNet: 14 milijonov vzorcev kode bo umetno inteligenco naučilo programirati

IBM je ustvaril nabor podatkov Project CodeNet: 14 milijonov vzorcev kode bo umetno inteligenco naučilo programirati

-

Enota IBM raziskave umetne inteligence (AI) je predstavil nabor podatkov s 14 milijoni vzorcev za razvoj modelov strojnega učenja, ki lahko pomagajo pri programskih nalogah. Nabor podatkov z imenom Projekt CodeNet, je dobil ime po ImageNet, slavnem repozitoriju slik, ki je revolucioniral računalniški vid in globoko učenje.

Programerji odkrivajo nove probleme in raziskujejo različne rešitve, pri čemer uporabljajo številne mehanizme zavestnega in podzavestnega mišljenja. Večina algoritmov strojnega učenja zahteva dobro definirane naloge in velike količine označenih podatkov za razvoj modelov, ki lahko rešijo iste težave.

IBM Project CodeNet
Project CodeNet je ogromen nabor podatkov s ~ 14 milijoni primerov kode, razpršenih v več deset programskih jezikih.

Strokovna skupnost je vložila veliko truda v ustvarjanje naborov podatkov in meril uspešnosti za razvoj in vrednotenje sistemov AI-for-code. Toda glede na kreativno in odprto naravo razvoja programske opreme je zelo težko ustvariti popoln nabor podatkov za programiranje. S projektom CodeNet so IBM-ovi raziskovalci poskušali ustvariti večnamenski nabor podatkov, ki se lahko uporablja za usposabljanje modelov strojnega učenja za različne naloge. Ustvarjalci CodeNeta ga opisujejo kot "zelo obsežen, raznolik in visokokakovosten nabor podatkov za pospeševanje algoritemskega napredka v AI za kodo."

Nabor podatkov vsebuje 14 milijonov primerov 500 milijonov vrstic kode, napisanih v 55 različnih programskih jezikih. Vzorci kode so bili pridobljeni iz skoraj 4000 oddanih nalog, objavljenih na spletnih platformah za kodiranje AIZU in AtCoder. Primeri kode vsebujejo tako pravilne kot nepravilne odgovore na podane naloge.

Zanimivo tudi:

Ena od ključnih značilnosti CodeNeta je količina opomb, dodanih primerom. Vsako opravilo kodiranja, vključeno v nabor podatkov, ima besedilni opis ter omejitve časa procesorja in pomnilnika. Vsaka oddaja kode vsebuje ducat informacij, vključno z jezikom, datumom oddaje, velikostjo, časom izvajanja, sprejemljivostjo in vrstami napak. Raziskovalci IBM-a so se prav tako zelo potrudili, da so zagotovili, da je nabor podatkov uravnotežen glede na različne parametre, vključno s programskim jezikom, sprejemljivostjo in vrstami napak.

IBM Project CodeNet

CodeNet ni edini nabor podatkov za usposabljanje modelov strojnega učenja pri programskih nalogah. Vendar obstaja več značilnosti, ki ga ločujejo. Prvi je sama velikost nabora podatkov, vključno s številom vzorcev in raznolikostjo jezikov. Morda pa so pomembnejši metapodatki, ki so priloženi vzorcem kode. Zaradi bogatih opomb, dodanih v CodeNet, je primeren za raznolik nabor nalog, za razliko od drugih naborov podatkov o kodiranju, ki so specializirani za posebne naloge programiranja.

CodeNet lahko uporabite na več načinov. Eden od njih je jezikovni prevod. Ker vsaka naloga kodiranja v naboru podatkov vsebuje predstavitve različnih programskih jezikov, jo lahko podatkovni znanstveniki uporabijo za izdelavo modelov strojnega učenja, ki prevajajo kodo iz enega jezika v drugega. To je lahko priročno za organizacije, ki želijo prenesti staro kodo v nove jezike in jih narediti dostopne novim generacijam programerjev.

Preberite tudi:

Prijavite se
Obvesti o
gost

2 Komentarji
Novejše
Tisti starejši Najbolj priljubljene
Vdelana mnenja
Prikaži vse komentarje
Victor
Victor
pred 2 leti

Tradicija in dednost naj igrata skupaj z drugačnim razmišljanjem, z najmlajšimi generacijami nevronskih algoritmov in ML-metod zastavljanja problemov, ki se medsebojno izboljšujejo.

Aasd
Aasd
pred 2 leti

Sčasoma se bo raven programerjev še bolj znižala (v primerjavi z zdaj). To pomeni, da bo mogoče pisati poševno, ukrivljeno kodo v "sranem jeziku". In potem se bo stroj optimiziral in sčasoma boste lahko dobili optimizirano kodo profesionalnega programerja asemblerja (ali celo boljšega).