Vienetas IBM Dirbtinio intelekto (AI) tyrimo metu buvo pateiktas 14 milijonų pavyzdžių duomenų rinkinys, skirtas sukurti mašininio mokymosi modelius, kurie gali padėti programavimo užduotims atlikti. Duomenų rinkinys pavadintas Projektas CodeNet, pavadintas iš „ImageNet“ – garsiosios vaizdų saugyklos, sukėlusios revoliuciją kompiuterinėje vizijoje ir giluminiame mokyme.
Programuotojai atranda naujų problemų ir tiria skirtingus sprendimus, naudodamiesi daugybe sąmoningo ir pasąmoningo mąstymo mechanizmų. Daugumai mašininio mokymosi algoritmų reikia tiksliai apibrėžtų užduočių ir didelio anotuotų duomenų kiekio, kad būtų sukurti modeliai, galintys išspręsti tas pačias problemas.
Įdėjo daug pastangų kuriant duomenų rinkinius ir etalonus, skirtus ekspertų bendruomenei kurti ir įvertinti AI-for-code sistemas. Tačiau, atsižvelgiant į kūrybišką ir neribotą programinės įrangos kūrimo pobūdį, labai sunku sukurti tobulą duomenų rinkinį programavimui. Naudodami Project CodeNet, IBM mokslininkai bandė sukurti daugiafunkcį duomenų rinkinį, kuris gali būti naudojamas mašininio mokymosi modeliams mokyti atliekant įvairias užduotis. „CodeNet“ kūrėjai jį apibūdina kaip „labai didelio masto, įvairų ir aukštos kokybės duomenų rinkinį, skirtą pagreitinti kodo AI algoritmų pažangą“.
Duomenų rinkinyje yra 14 milijonų 500 milijonų kodo eilučių pavyzdžių, parašytų 55 skirtingomis programavimo kalbomis. Kodo pavyzdžiai buvo gauti iš beveik 4000 pateiktų užduočių, paskelbtų AIZU ir AtCoder internetinėse kodavimo platformose. Kodo pavyzdžiuose pateikiami ir teisingi, ir neteisingi atsakymai į pateiktas užduotis.
Taip pat įdomu:
- Hablas įjungė saugųjį režimą dėl borto kompiuterio programinės įrangos klaidos
- Kita CD Projekt bėda: įsilaužėliai grasina nutekėti žaidimų šaltinio kodus į tinklą
Viena iš pagrindinių CodeNet ypatybių yra prie pavyzdžių pridėtų komentarų kiekis. Kiekviena kodavimo užduotis, įtraukta į duomenų rinkinį, turi tekstinį aprašymą, taip pat procesoriaus laiko ir atminties apribojimus. Kiekviename kodo pateikime yra keliolika informacijos dalių, įskaitant kalbą, pateikimo datą, dydį, vykdymo laiką, priėmimą ir klaidų tipus. IBM mokslininkai taip pat labai stengėsi užtikrinti, kad duomenų rinkinys būtų subalansuotas pagal įvairius parametrus, įskaitant programavimo kalbą, priimtinumą ir klaidų tipus.
„CodeNet“ nėra vienintelis duomenų rinkinys, skirtas mokyti mašininio mokymosi modelius atliekant programavimo užduotis. Tačiau yra keletas savybių, kurios jį išskiria. Pirmasis yra didžiulis duomenų rinkinio dydis, įskaitant pavyzdžių skaičių ir kalbų įvairovę. Tačiau galbūt svarbesni yra metaduomenys, pateikiami su kodo pavyzdžiais. Dėl „CodeNet“ pridėtų gausių komentarų jis tinka įvairioms užduotims, skirtingai nuo kitų kodavimo duomenų rinkinių, kurie specializuojasi konkrečiose programavimo užduotyse.
Tai proto pūtimas.
Naudodamas GPT-3, aš sukūriau išdėstymo generatorių, kuriame jūs tiesiog apibūdinate bet kokį norimą išdėstymą ir jis sugeneruoja JSX kodą jums.
- Sharifas Shameemas (@sharifshameem) Liepa 13, 2020
Yra keli CodeNet naudojimo būdai. Vienas iš jų – kalbos vertimas. Kadangi kiekvienoje duomenų rinkinio kodavimo užduotyje yra skirtingų programavimo kalbų atvaizdų, duomenų mokslininkai gali ją naudoti kurdami mašininio mokymosi modelius, kurie verčia kodą iš vienos kalbos į kitą. Tai gali būti patogu organizacijoms, norinčioms perkelti seną kodą į naujas kalbas ir padaryti juos prieinamus naujos kartos programuotojams.
Taip pat skaitykite:
- IBM pristatė pirmąją pasaulyje 2 nm lustų gamybos technologiją
- IBM kuria dirbtinį intelektą, kad išrastų naujus antibiotikus
Tradicijos ir paveldimumas turėtų žaisti kartu su skirtingu mąstymu, su jauniausios kartos neuroniniais algoritmais ir ML metodais, keliančiais problemas, vienas kitą tobulindami.
Laikui bėgant programuotojų lygis dar labiau sumažės (palyginti su dabar). Tai yra, bus galima rašyti įstrižą, kreivą kodą „šūdų kalba“. Ir tada mašina optimizuos, ir bus galima gauti optimizuotą profesionalaus surinkėjo programuotojo kodą (ar dar geresnį).