Mae IBM yn agor CodeNet ar gyfer systemau dysgu peirianyddol sy'n cyfieithu ac yn gwirio cod

Mae IBM wedi datgelu ei fenter CodeNet, sydd â’r nod o ddarparu set ddata i ymchwilwyr sy’n caniatáu iddynt arbrofi â’r defnydd o dechnegau dysgu peirianyddol i greu cyfieithwyr iaith raglennu, generaduron codau a dadansoddwyr. Mae CodeNet yn cynnwys casgliad o 14 miliwn o enghreifftiau cod sy'n datrys 4053 o broblemau rhaglennu cyffredin. Yn gyfan gwbl, mae’r casgliad yn cynnwys tua 500 miliwn o linellau o god ac yn cwmpasu 55 o ieithoedd rhaglennu, y ddwy yn ieithoedd modern fel C++, Java, Python a Go, ac ieithoedd etifeddol gan gynnwys COBOL, Pascal a FORTRAN. Mae datblygiadau'r prosiect yn cael eu dosbarthu o dan drwydded Apache 2.0, a bwriedir dosbarthu'r setiau data ar ffurf parth cyhoeddus.

Mae'r enghreifftiau wedi'u hanodi ac yn gweithredu algorithmau unfath mewn gwahanol ieithoedd rhaglennu. Disgwylir y bydd y set arfaethedig yn helpu i hyfforddi systemau dysgu peirianyddol a datblygu arloesiadau ym maes cyfieithu a dosrannu cod peirianyddol, yn debyg i sut y bu i gronfa ddata delweddau anodedig ImageNet helpu i ddatblygu systemau adnabod patrymau a gweledigaeth gyfrifiadurol. Cyfeirir at amrywiaeth o gystadlaethau rhaglennu fel un o'r prif ffynonellau ar gyfer ffurfio casgliadau.

Yn wahanol i gyfieithwyr traddodiadol, sy'n cael eu gweithredu yn seiliedig ar reolau trawsnewid, gall systemau dysgu peirianyddol ddal ac ystyried cyd-destun defnyddio cod. Wrth drosi o un iaith raglennu i'r llall, mae cyd-destun yr un mor bwysig ag wrth gyfieithu o un iaith ddynol i'r llall. Y diffyg ystyriaeth cyd-destun hwn yw'r hyn sy'n atal cod rhag cael ei drosi o ieithoedd etifeddol fel COBOL.

Bydd cael cronfa ddata fawr o weithrediadau algorithm mewn gwahanol ieithoedd yn helpu i greu systemau dysgu peirianyddol cyffredinol sydd, yn lle cyfieithu uniongyrchol rhwng ieithoedd penodol, yn trin cynrychiolaeth fwy haniaethol o'r cod, yn annibynnol ar ieithoedd rhaglennu penodol. Gellir defnyddio system o'r fath fel cyfieithydd, gan gyfieithu'r cod a drosglwyddir yn unrhyw un o'r ieithoedd a gefnogir i'w gynrychiolaeth haniaethol fewnol, ac o hynny gellir cynhyrchu cod mewn sawl iaith.

Bydd y system hefyd yn gallu perfformio trawsnewidiadau deugyfeiriadol. Er enghraifft, mae banciau ac asiantaethau'r llywodraeth yn parhau i ddefnyddio prosiectau yn yr iaith COBOL hen ffasiwn. Bydd cyfieithydd sy'n seiliedig ar ddysgu peirianyddol yn gallu trosi cod COBOL yn gynrychiolaeth Java, ac, os oes angen, trosi'r darn Java yn ôl i god COBOL.

Yn ogystal â chyfieithu rhwng ieithoedd, sonnir am feysydd o'r fath o gymhwyso CodeNet fel creu systemau chwilio cod smart ac awtomeiddio canfod clonau, yn ogystal â datblygu optimizers a systemau cywiro cod awtomatig. Yn benodol, mae'r enghreifftiau a gyflwynir yn CodeNet yn cynnwys metadata sy'n disgrifio canlyniadau profion perfformiad, maint y rhaglen o ganlyniad, defnydd cof a chyflwr, sy'n ein galluogi i wahaniaethu rhwng y cod cywir a'r cod â gwallau (i wahaniaethu rhwng y cod cywir a'r cod anghywir, y casgliad yn benodol yn cynnwys enghreifftiau o wallau, y gyfran ohonynt yw 29.5%). Gall system dysgu peirianyddol gymryd y metadata hwn i ystyriaeth i gynhyrchu'r cod mwyaf optimaidd neu i nodi atchweliadau yn y cod a ddadansoddwyd (gall y system ddeall nad yw'r algorithm yn y cod a gyflwynwyd yn cael ei weithredu'n optimaidd neu'n cynnwys gwallau).

Ffynhonnell: opennet.ru

Ychwanegu sylw