CodeNet, een IBM-project voor machine learning-systemen 

IBM-logo

IBM onthuld onlangs belde zijn nieuwe project "CodeNet" die is bedoeld om onderzoekers een dataset te bieden om te experimenteren met het gebruik van machine learning-technieken om vertalers van de ene programmeertaal naar de andere te maken, evenals generatoren en code-analysers.

CodeNet bevat een verzameling van 14 miljoen codevoorbeelden die 4053 veelvoorkomende programmeerproblemen oplossen. In totaal bevat de collectie ongeveer 500 miljoen regels code en omvat 55 programmeertalen, zowel moderne talen zoals C ++, Java, Python en Go, als oudere talen, waaronder COBOL, Pascal en FORTRAN.

"Software eet de wereld op", schreef de beroemde Amerikaanse zakenman Marc Andreessen in 2011. Snel vooruit naar vandaag: software wordt gevonden in financiële diensten en gezondheidszorg, smartphones en slimme huizen. Zelfs auto's hebben nu meer dan 100 miljoen regels code.

De projectontwikkelingen worden vrijgegeven onder de Apache 2.0-licentie en de datasets zullen naar verwachting in het publieke domein worden vrijgegeven.

De voorbeelden zijn geannoteerd en implementeren identieke algoritmen in verschillende programmeertalen. De voorgestelde set moet helpen bij het trainen van machine learning-systemen en het ontwikkelen van innovaties op het gebied van automatische codevertaling en -analyse, naar analogie met de manier waarop de ImageNet-database met geannoteerde afbeeldingen hielp bij de ontwikkeling van systemen voor beeldherkenning en kunstmatige visie. Diverse programmeerwedstrijden worden genoemd als een van de belangrijkste bronnen van collectievorming.

Project CodeNet kan specifiek algoritmische innovatie aansturen om deze context te extraheren met sequentie-voor-sequentie-modellen, net als wat we hebben toegepast in menselijke talen, om een ​​grotere deuk te maken in het machinebegrip van code in plaats van het verwerken van de code. .

In tegenstelling tot traditionele vertalers op basis van vertaalregels, Machine learning-systemen kunnen de context van codegebruik vastleggen en er rekening mee houden. Bij het converteren van de ene programmeertaal naar de andere is context net zo belangrijk als bij het vertalen van de ene menselijke taal naar de andere. Het is het gebrek aan contextueel bewustzijn dat verhindert dat de code converteert vanuit legacy-talen zoals COBOL.

De aanwezigheid van een groot aantal algoritme-implementaties in verschillende talen zal helpen om universele machine learning-systemen te creëren die, in plaats van live vertaling tussen specifieke talen, een meer abstracte weergave van de code manipuleren, onafhankelijk van specifieke programmeertalen.

Zo'n systeem kan worden gebruikt als een vertaler die de verzonden code in een van de ondersteunde talen vertaalt naar zijn interne abstracte weergave, van waaruit code in vele talen kan worden gegenereerd.

Met inbegrip van het systeem kunt u bidirectionele transformaties uitvoeren. Banken en overheidsinstanties blijven bijvoorbeeld oude COBOL-projecten gebruiken. Een machine learning-vertaler kan COBOL-code converteren naar Java-weergave en optioneel een Java-fragment terugvertalen naar COBOL-code.

Naast vertaling tussen talen worden de toepassingsgebieden van CodeNet genoemd zoals het creëren van intelligente code-zoeksystemen en de automatisering van kloonopsporing, evenals de ontwikkeling van optimizers en systemen voor automatische codecorrectie.

En in het bijzonder, De voorbeelden die in CodeNet worden gepresenteerd, zijn voorzien van metadata die de resultaten van de prestatietests beschrijven, de grootte van het resulterende programma, het geheugengebruik en de staat die het mogelijk maakt om de juiste code te onderscheiden van de code met fouten (om de juiste code te onderscheiden van de onjuiste code, voorbeelden met fouten zijn speciaal opgenomen in de verzameling, waarvan het aandeel is 29,5, XNUMX%).

Een machine learning-systeem kan met deze metadata rekening houden om de meest optimale code te genereren of regressies in de geanalyseerde code te detecteren (het systeem kan begrijpen dat het algoritme niet optimaal is geïmplementeerd in de verzonden code of fouten bevat).

Eindelijk Als u meer wilt weten over CodeNet, u kunt de details controleren In de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.