CodeNet, et IBM-projekt til maskinlæringssystemer 

IBM logo

IBM afsløret for nylig hedder hans nye projekt "CodeNet" hvilken har til formål at give forskere et datasæt til at eksperimentere med at bruge maskinlæringsteknikker at skabe oversættere fra et programmeringssprog til et andet, samt kodegeneratorer og analysatorer.

CodeNet inkluderer en samling af 14 millioner kodeeksempler. der løser 4053 almindelige programmeringsproblemer. Samlingen indeholder i alt omkring en halv milliard linjer kode og dækker 500 programmeringssprog, både moderne sprog som C++, Java, Python og Go, såvel som ældre sprog, herunder COBOL, Pascal og FORTRAN.

"Software æder verden op," skrev den berømte amerikanske iværksætter Marc Andreessen i 2011. Spol frem til i dag: Software findes i finansielle tjenester og sundhedspleje, smartphones og smarte hjem. Selv biler har nu over 100 millioner linjer kode.

Projektudviklinger distribueres under Apache 2.0-licensen, og datasættene forventes at blive distribueret i det offentlige domæne.

Eksemplerne er kommenteret og implementerer identiske algoritmer i forskellige programmeringssprog.. Den foreslåede suite formodes at hjælpe med at træne maskinlæringssystemer og udvikle innovationer inden for automatisk kodeoversættelse og analyse, analogt med hvordan ImageNet-databasen med kommenterede billeder hjalp med udviklingen af ​​billedgenkendelse og kunstigt syn. Forskellige programmeringskonkurrencer er nævnt som en af ​​hovedkilderne til samlingsdannelse.

Project CodeNet kan specifikt drive algoritmisk innovation til at udtrække denne kontekst med strøm-for-strøm-modeller, ligesom det, vi har anvendt på menneskelige sprog, for at gøre et mere markant indhug i maskinforståelse af kode frem for behandling af information.

I modsætning til traditionelle oversættere baseret på oversættelsesregler, maskinlæringssystemer kan fange og tage højde for konteksten af ​​kodebrug. Når man konverterer fra et programmeringssprog til et andet, er konteksten lige så vigtig, som når man oversætter fra et menneskeligt sprog til et andet. Det er en mangel på kontekstuel bevidsthed, der forhindrer kode i at blive konverteret fra ældre sprog som COBOL.

Tilstedeværelsen af ​​en stor base af algoritmeimplementeringer på forskellige sprog vil hjælpe med at skabe universelle maskinlæringssystemer, der i stedet for live-oversættelse mellem specifikke sprog manipulerer en mere abstrakt repræsentation af koden, uafhængig af specifikke programmeringssprog.

Et sådant system kan bruges som en oversætter, der oversætter transmitteret kode på et hvilket som helst af de understøttede sprog til sin interne abstrakte repræsentation, hvorfra kode på mange sprog kan genereres.

Ved at inkludere systemet kan du udføre tovejstransformationer. For eksempel fortsætter banker og offentlige myndigheder med at bruge ældre COBOL-projekter. En maskinlæringsoversætter kan konvertere COBOL-kode til Java-repræsentationen og eventuelt oversætte et Java-uddrag tilbage til COBOL-kode.

Ud over intersprogoversættelse nævnes CodeNet applikationsområder såsom oprettelse af intelligente kodesøgningssystemer og automatisering af klondetektering, samt udvikling af optimering og systemer til automatisk kodekorrektion.

Især eksemplerne præsenteret på CodeNet er forsynet med metadata, der beskriver præstationstestresultaterne, størrelsen af ​​det resulterende program, hukommelsesforbruget og tilstanden, der gør det muligt at skelne den korrekte kode fra fejlkoden (for at skelne den korrekte kode fra den forkerte kode, er eksempler med fejl specielt inkluderet i samlingen, andelen hvoraf er 29,5, XNUMX%).

Et maskinlæringssystem kan tage hensyn til disse metadata for at generere den mest optimale kode eller for at detektere regressioner i den analyserede kode (systemet kan forstå, at algoritmen ikke er optimalt implementeret i den transmitterede kode eller indeholder fejl).

Endelig Hvis du er interesseret i at lære mere om CodeNet, du kan kontrollere detaljerne I det følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.