Wetenschap
Rice University computerwetenschappers (van links) Vijay Murali, Chris Jermaine, Swarat Chaudhuri en Letao Qi hebben een software-coderingstoepassing gemaakt, Bayou genaamd, die menselijke programmeurs kan helpen door stukjes code te schrijven als reactie op trefwoorden. Krediet:Jeff Fitlow/Rice University
Computerwetenschappers van Rice University hebben een diepgaand leren, software-coderingsapplicatie die menselijke programmeurs kan helpen bij het navigeren door de groeiende veelheid van vaak ongedocumenteerde applicatie-programmeerinterfaces, of API's.
Bekend als Bayou, de Rice-applicatie is gemaakt door een initiatief gefinancierd door het Defense Advanced Research Projects Agency, gericht op het extraheren van kennis uit online broncodebronnen zoals GitHub. Een paper over Bayou wordt op 1 mei gepresenteerd in Vancouver, Brits Colombia, op de zesde internationale conferentie over leerrepresentaties, een eersteklas uitlaatklep voor deep learning-onderzoek. Gebruikers kunnen het uitproberen op askbayou.com.
Het ontwerpen van applicaties die computers kunnen programmeren is een lang gezochte graal van de tak van de informatica die kunstmatige intelligentie (AI) wordt genoemd.
"Mensen hebben 60 jaar geprobeerd systemen te bouwen die code kunnen schrijven, maar het probleem is dat deze methoden niet zo goed zijn in dubbelzinnigheid, " zei Bayou mede-bedenker Swarat Chaudhuri, universitair hoofddocent computerwetenschappen bij Rice. "Je moet meestal veel details geven over wat het doelprogramma doet, en het opschrijven van deze details kan net zoveel werk zijn als het schrijven van de code.
"Bayou is een aanzienlijke verbetering, " zei hij. "Een ontwikkelaar kan Bayou een zeer kleine hoeveelheid informatie geven - slechts een paar trefwoorden of prompts, echt - en Bayou zal proberen de gedachten van de programmeur te lezen en het programma te voorspellen dat ze willen."
Chaudhuri zei dat Bayou zichzelf heeft getraind door miljoenen regels door mensen geschreven Java-code te bestuderen. "Het heeft eigenlijk alles op GitHub bestudeerd, en het put daaruit om zijn eigen code te schrijven."
Bayou-medebedenker Chris Jermaine, een professor in de computerwetenschappen die samen met Chaudhuri het Intelligent Software Systems Laboratory van Rice leidt, genoemde Bayou is met name handig voor het synthetiseren van voorbeelden van code voor specifieke software-API's.
"Het programmeren van vandaag is heel anders dan 30 of 40 jaar geleden, "Zei Jermaine. "Computers zitten tegenwoordig in onze zakken, om onze polsen en in miljarden huishoudelijke apparaten, voertuigen en andere apparaten. De tijd dat een programmeur helemaal opnieuw code kon schrijven, is allang voorbij."
Bayou-architect Vijay Murali, een onderzoeker in het laboratorium, zei, "Bij moderne softwareontwikkeling draait alles om APL's. Dit zijn systeemspecifieke regels, gereedschap, definities en protocollen waarmee een stukje code kan communiceren met een specifiek besturingssysteem, databank, hardwareplatform of een ander softwaresysteem. Er zijn honderden API's, en het navigeren erin is erg moeilijk voor ontwikkelaars. Ze brengen veel tijd door op vraag-antwoordsites zoals Stack Overflow om andere ontwikkelaars om hulp te vragen."
Murali zei dat ontwikkelaars nu een aantal van die vragen kunnen stellen bij Bayou, die direct antwoord geeft.
"Die onmiddellijke feedback zou het probleem meteen kunnen oplossen, en als dat niet zo is, Bayou's voorbeeldcode zou moeten leiden tot een beter geïnformeerde vraag voor hun menselijke collega's, ' zei Murali.
Jermaine zei dat het primaire doel van het team is om ontwikkelaars zover te krijgen om Bayou uit te breiden. die is vrijgegeven onder een permissieve open-sourcelicentie.
"Hoe meer informatie we hebben over wat mensen willen van een systeem als Bayou, hoe beter we het kunnen maken, zei hij. "We willen dat zoveel mogelijk mensen het gebruiken." Bayou is gebaseerd op een methode die neurale schetsleren wordt genoemd. die een kunstmatig neuraal netwerk traint om patronen op hoog niveau te herkennen in honderdduizenden Java-programma's. Het doet dit door een "schets" te maken voor elk programma dat het leest en deze schets vervolgens te associëren met de "intentie" die achter het programma ligt.
Wanneer een gebruiker Bayou vragen stelt, het systeem beoordeelt welk programma het moet schrijven. Vervolgens maakt het schetsen voor verschillende van de meest waarschijnlijke kandidaat-programma's die de gebruiker zou willen hebben.
"Op basis van die schatting een apart deel van Bayou, een module die de details van Java op laag niveau begrijpt en automatisch logisch kan redeneren, vier of vijf verschillende stukjes code gaat genereren, " Zei Jermaine. "Het zal die aan de gebruiker presenteren als hits op een zoekopdracht op internet. 'Dit is waarschijnlijk het juiste antwoord, maar hier zijn er nog drie die zouden kunnen zijn wat u zoekt.'"
Wetenschap © https://nl.scienceaq.com