CodeNet, projekt IBM pro systémy strojového učení 

Logo IBM

IBM představeno nedávno jeho nový projekt s názvem "CodeNet" který si klade za cíl poskytnout vědcům soubor dat, který bude experimentovat s použitím technik strojového učení vytvářet překladače z jednoho programovacího jazyka do druhého, stejně jako generátory a analyzátory kódu.

CodeNet obsahuje kolekci 14 milionů ukázek kódu které řeší 4053 běžných programovacích problémů. Celkově kolekce obsahuje přibližně 500 milionů řádků kódu a pokrývá 55 programovacích jazyků, a to jak moderních jazyků, jako jsou C ++, Java, Python a Go, tak i starších jazyků, včetně COBOL, Pascal a FORTRAN.

„Software žere svět,“ napsal slavný americký podnikatel Marc Andreessen v roce 2011. Rychle vpřed do dnešního dne: software se nachází ve finančních službách a zdravotnictví, smartphonech a inteligentních domácnostech. Dokonce i auta mají nyní více než 100 milionů řádků kódu.

Vývoj projektu je vydáván pod licencí Apache 2.0 a očekává se, že datové sady budou zveřejněny ve veřejné doméně.

Příklady jsou anotovány a implementují identické algoritmy v různých programovacích jazycích. Navrhovaná sada má pomoci trénovat systémy strojového učení a rozvíjet inovace v oblasti automatického překladu a analýzy kódu, analogicky se způsobem, jakým databáze ImageNet s anotovanými obrázky pomáhala při vývoji systémů rozpoznávání obrazu a umělého vidění. Jako jeden z hlavních zdrojů budování sbírky jsou zmiňovány různé programovací soutěže.

Project CodeNet může konkrétně řídit algoritmické inovace k extrakci tohoto kontextu s modely sekvence po sekvenci, stejně jako to, co jsme aplikovali v lidských jazycích, aby významněji narušily strojové porozumění kódu než zpracování kódu. .

Na rozdíl od tradičních překladatelů založených na pravidlech překladu systémy strojového učení mohou zachytit a vzít v úvahu kontext použití kódu. Při převodu z jednoho programovacího jazyka do druhého je kontext stejně důležitý jako při překladu z jednoho lidského jazyka do druhého. Je to nedostatek kontextového povědomí, který brání převodu kódu ze starších jazyků, jako je COBOL.

Přítomnost velké základny implementací algoritmů v různých jazycích pomůže vytvořit univerzální systémy strojového učení, které místo živého překladu mezi konkrétními jazyky manipulují s abstraktnější reprezentací kódu, nezávisle na konkrétních programovacích jazycích.

Takový systém lze použít jako překladač, který převádí přenášený kód v kterémkoli z podporovaných jazyků do své interní abstraktní reprezentace, ze které lze generovat kód v mnoha jazycích.

Včetně systému můžete provádět obousměrné transformace. Například banky a vládní agentury nadále používají zastaralé projekty COBOL. Překladač strojového učení může převést kód COBOL na reprezentaci Java a volitelně přeložit úryvek Java zpět do kódu COBOL.

Kromě překladu mezi jazyky jsou zmíněny aplikační oblasti CodeNet jako je vytvoření inteligentních systémů pro vyhledávání kódu a automatizace detekce klonů, jakož i vývoj optimalizátorů a systémů pro automatickou korekci kódu.

Zejména Příklady uvedené v CodeNet jsou poskytovány s metadaty popisujícími výsledky testů výkonu, velikost výsledného programu, spotřeba paměti a stav, který umožňuje odlišit správný kód od kódu s chybami (pro rozlišení správného kódu od nesprávného kódu jsou do kolekce speciálně zahrnuty příklady s chybami, jejichž podíl je 29,5, XNUMX%).

Systém strojového učení může tato metadata vzít v úvahu ke generování nejoptimálnějšího kódu nebo k detekci regresí v analyzovaném kódu (systém může pochopit, že algoritmus není v přenášeném kódu optimálně implementován nebo obsahuje chyby).

Konečně Pokud máte zájem dozvědět se více o CodeNet, můžete zkontrolovat podrobnosti Na následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.