CodeNet, projekt IBM pre systémy strojového učenia 

Logo IBM

IBM predstavené nedávno jeho nový projekt s názvom „CodeNet“ ktorý si kladie za cieľ poskytnúť výskumníkom súbor údajov, ktorý bude experimentovať s použitím techník strojového učenia vytvárať prekladateľov z jedného programovacieho jazyka do druhého, ako aj generátory a analyzátory kódu.

CodeNet obsahuje kolekciu 14 miliónov vzoriek kódu ktoré riešia 4053 bežných problémov s programovaním. Celkovo kolekcia obsahuje asi 500 miliónov riadkov kódu a pokrýva 55 programovacích jazykov, a to moderných jazykov ako C ++, Java, Python a Go, ako aj starších jazykov vrátane COBOL, Pascal a FORTRAN.

„Softvér žerie svet,“ napísal slávny americký podnikateľ Marc Andreessen v roku 2011. Rýchlo dopredu: softvér sa nachádza vo finančných službách a zdravotníctve, smartfónoch a inteligentných domácnostiach. Aj autá majú v súčasnosti viac ako 100 miliónov riadkov kódu.

Vývoj projektu je vydávaný na základe licencie Apache 2.0 a očakáva sa, že súbory údajov budú zverejnené ako voľné dielo.

Príklady sú anotované a implementujú identické algoritmy v rôznych programovacích jazykoch. Navrhovaná sada má pomôcť trénovať systémy strojového učenia a rozvíjať inovácie v oblasti automatického prekladu a analýzy kódu, analogicky so spôsobom, akým pomohla databáza anotovaných obrázkov ImageNet pri vývoji systémov rozpoznávania obrazu a umelého videnia. Ako jeden z hlavných zdrojov budovania zbierok sa spomínajú rôzne programátorské súťaže.

Project CodeNet môže konkrétne riadiť algoritmické inovácie na extrakciu tohto kontextu modelmi sekvencie za sekvenciou, rovnako ako to, čo sme aplikovali v ľudských jazykoch, aby významnejšie narušili strojové porozumenie kódu ako jeho spracovanie. .

Na rozdiel od tradičných prekladateľov založených na pravidlách prekladu, systémy strojového učenia dokážu zachytiť a zohľadniť kontext použitia kódu. Pri prevode z jedného programovacieho jazyka do druhého je kontext rovnako dôležitý ako pri preklade z jedného ľudského jazyka do druhého. Práve nedostatok kontextového povedomia bráni kódu v konverzii zo starších jazykov, ako je COBOL.

Prítomnosť veľkej základne implementácií algoritmov v rôznych jazykoch pomôže vytvoriť univerzálne systémy strojového učenia, ktoré namiesto živého prekladu medzi konkrétnymi jazykmi manipulujú s abstraktnejšou reprezentáciou kódu, nezávisle od konkrétnych programovacích jazykov.

Takýto systém je možné použiť ako prekladač, ktorý prekladá kód v ktoromkoľvek z podporovaných jazykov do jeho internej abstraktnej reprezentácie, z ktorej je možné generovať kód v mnohých jazykoch.

Vrátane systému môžete vykonávať obojsmerné transformácie. Napríklad banky a vládne agentúry naďalej využívajú staršie projekty COBOL. Prekladač strojového učenia dokáže previesť kód COBOL na reprezentáciu jazyka Java a voliteľne preložiť útržok Java späť do kódu COBOL.

Okrem prekladov medzi jazykmi sa spomínajú oblasti aplikácií CodeNet ako je vytváranie inteligentných systémov na hľadanie kódu a automatizácia detekcie klonov, ako aj vývoj optimalizátorov a systémov na automatickú korekciu kódu.

Najmä Príklady uvedené v CodeNet sú poskytované s metaúdajmi popisujúcimi výsledky testov výkonnosti, veľkosť výsledného programu, spotreba pamäte a stav, ktorý umožňuje odlíšiť správny kód od kódu s chybami (na odlíšenie správneho kódu od nesprávneho kódu sú do zbierky špeciálne zahrnuté príklady s chybami, ktorých podiel je 29,5%).

Systém strojového učenia môže brať tieto metadáta do úvahy pri generovaní najoptimálnejšieho kódu alebo pri zisťovaní regresií v analyzovanom kóde (systém dokáže pochopiť, že algoritmus nie je optimálne implementovaný v prenášanom kóde alebo obsahuje chyby).

Konečne Ak máte záujem dozvedieť sa viac o CodeNet, môžete skontrolovať podrobnosti Na nasledujúcom odkaze.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.