CodeNet, IBM projekts mašīnmācīšanās sistēmām 

IBM logotips

IBM atklāja nesen tika saukts viņa jaunais projekts "CodeNet" kas mērķis ir sniegt pētniekiem datu kopu, lai eksperimentētu ar mašīnmācīšanās paņēmienu izmantošanu izveidot tulkotājus no vienas programmēšanas valodas uz citu, kā arī ģeneratorus un kodu analizatorus.

CodeNet ietver 14 miljonu kodu paraugu kolekciju kas atrisina 4053 bieži sastopamas programmēšanas problēmas. Kopumā kolekcijā ir aptuveni 500 miljoni koda rindiņu un tā aptver 55 programmēšanas valodas, gan mūsdienu valodas, piemēram, C ++, Java, Python un Go, gan arī mantoto, tostarp COBOL, Pascal un FORTRAN.

"Programmatūra apēd pasauli," 2011. gadā rakstīja slavens amerikāņu uzņēmējs Marks Andreesens. Ātra virzība uz šodienu: programmatūra ir atrodama finanšu pakalpojumos un veselības aprūpē, viedtālruņos un viedajās mājās. Pat automašīnām tagad ir vairāk nekā 100 miljoni koda rindiņu.

Projekta izstrāde tiek izlaista ar Apache 2.0 licenci, un paredzams, ka datu kopas tiks publiskotas.

Piemēri ir anotēti un tajos tiek ieviesti identiski algoritmi dažādās programmēšanas valodās. Piedāvātajam komplektam vajadzētu palīdzēt apmācīt mašīnmācīšanās sistēmas un attīstīt jauninājumus kodu automātiskās tulkošanas un analīzes jomā pēc analoģijas ar veidu, kā ImageNet anotēto attēlu datubāze palīdzēja attēla atpazīšanas un mākslīgās redzamības sistēmu attīstībai. Kā vieni no galvenajiem kolekciju veidošanas avotiem tiek minēti dažādi programmēšanas konkursi.

Projekts CodeNet var īpaši veicināt algoritmiskus jauninājumus, lai šo kontekstu izvilktu ar secīgu modeļu palīdzību, līdzīgi kā mēs esam lietojuši cilvēku valodās, lai padarītu daudz nozīmīgāku koda mašīnu izpratni, nevis koda apstrādi. .

Atšķirībā no tradicionālajiem tulkotājiem, kuru pamatā ir tulkošanas noteikumi, mašīnmācīšanās sistēmas var uztvert un ņemt vērā koda izmantošanas kontekstu. Pārejot no vienas programmēšanas valodas uz citu, konteksts ir tikpat svarīgs kā tulkošanas laikā no vienas cilvēku valodas uz citu. Tieši kontekstuālās izpratnes trūkums neļauj kodam pārveidot no mantotajām valodām, piemēram, COBOL.

Lielas algoritmu ieviešanas bāzes klātbūtne dažādās valodās palīdzēs izveidot universālas mašīnmācīšanās sistēmas, kas tiešraides tulkošanas starp konkrētām valodām vietā manipulē ar abstraktāku koda attēlojumu neatkarīgi no konkrētām programmēšanas valodām.

Šādu sistēmu var izmantot kā tulku, kas pārveido pārsūtīto kodu jebkurā no atbalstītajām valodām tā iekšējā abstraktā attēlojumā, no kura var ģenerēt kodu daudzās valodās.

Ieskaitot sistēmu, jūs varat veikt divvirzienu transformācijas. Piemēram, bankas un valdības aģentūras turpina izmantot mantotos COBOL projektus. Mašīnmācības tulks var pārveidot COBOL kodu Java attēlojumā un pēc izvēles Java fragmentu tulkot atpakaļ COBOL kodā.

Papildus tulkošanai starp valodām tiek pieminētas CodeNet lietojumprogrammas piemēram, viedo kodu meklēšanas sistēmu izveide un klonu noteikšanas automatizēšana, kā arī optimizētāju un sistēmu izstrāde automātiskai koda korekcijai.

Jo īpaši CodeNet sniegtie piemēri ir pievienoti metadatiem, kas apraksta veiktspējas testu rezultātus, iegūtās programmas lielums, atmiņas patēriņš un stāvoklis, kas ļauj atšķirt pareizo kodu no koda ar kļūdām (lai atšķirtu pareizo kodu no nepareizā koda, piemēri ar kļūdām ir īpaši iekļauti kolekcijā, kuras daļa ir 29,5, XNUMX%).

Mašīnmācīšanās sistēma var ņemt vērā šos metadatus, lai ģenerētu optimālāko kodu vai noteiktu regresijas analizētajā kodā (sistēma var saprast, ka algoritms nav optimāli ieviests nosūtītajā kodā vai satur kļūdas).

Beidzot Ja vēlaties uzzināt vairāk par CodeNet, jūs varat pārbaudīt informāciju Šajā saitē.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.