DeepMindin AlphaCode: Onko tekoäly valmis korvaamaan ohjelmoijat? KIITOS

Googlen brittiläinen tekoälytytäryhtiö DeepMind julkaisi "uuden virstanpylvään kilpailullisessa ohjelmointissa" aiemmin tässä kuussa, kun se julkisti AlphaCoden, järjestelmän, jonka se väittää pystyvän kirjoittamaan täysimittaisia ​​tietokoneohjelmia, jotka ovat suotuisia ihmisten työhön verrattuna. Ohjelmistokehitys on pitkään pidetty alueena, jolla tekoälyllä voi olla merkittävä vaikutus, ja onko AlphaCoden ja muiden järjestelmien tarjoamien edistysaskelten ansiosta todennäköistä, että koneet korvaavat ihmiskooderit?


DeepMindin AlphaCode-järjestelmä on voittanut 54 % ihmisiin osallistuneista koodauskilpailussa. (Kuva Daniel Acker/Bloomberg Getty Imagesin kautta)

DeepMind sanoo, että AlphaCode pystyy ymmärtämään ongelman ja kirjoittamaan sitten ohjelman, joka ratkaisee ongelman. Se sanoo, että se on testannut järjestelmää koodauskilpailuihin osallistuneisiin ihmisiin ja todennut, että sen tulokset sijoittuvat ihmisiin osallistuneiden 54 prosentin joukkoon.

"Kilpailuohjelmointiongelmien ratkaiseminen on todella vaikeaa, ja se vaatii ihmisiltä sekä hyviä koodaustaitoja että ongelmanratkaisuluovuutta", sanoi Googlen ohjelmistoinsinööri Petr Mitrichev, joka osallistuu koodauskilpailuihin. "Olin erittäin vaikuttunut siitä, että AlphaCode voisi edistyä tällä alueella, ja innoissani nähdessäni, kuinka malli käyttää lauseen ymmärtämistä koodin tuottamiseen ja satunnaisen tutkimisen ohjaamiseen ratkaisujen luomiseen."

Kun AlphaCode on edistynyt niin vaikuttavasti, Mitrichev ja hänen kollegansa voisivat saada anteeksi, kun he katsoivat olkapäinsä yli.

Aiheeseen liittyvä

Tekoäly ja automaatio
Pandemiasta toipuminen antaa riskialttiille työpaikoille "väliaikaisen tauon" automaatiosta

Kuinka merkittävä DeepMindin AlphaCode on?

DeepMind käytti yhdistelmää valvomatonta ja valvottua koneoppimista. kouluttaa AlphaCoden perustana olevia tekoälymalleja. Ensin järjestelmä imee 715 gigatavua dataa koodausvarasto GitHubista, ennen kuin DeepMind-tiimi hienosääti sitä käyttämällä tietokantaa, jonka se oli luonut ongelmalausekkeista, testitapauksista ja koodauskilpailujen lähetyksistä – oikeista ja virheellisistä.

Tiedot, näkemykset ja analyysit toimitettu sinulleTarkastele kaikkia uutiskirjeitä Tech Monitor -tiimin toimesta Tilaa uutiskirjeemme

Kun AlphaCode saa uuden ongelman, se jäljittää saamansa tiedot, keksii tuhansia tai joissakin tapauksissa miljoonia ratkaisuja ja suodattaa ne sitten kymmeneen parhaaseen, jotka se lähettää kilpailuun. Jos jokin näistä osoittautuu oikeaksi, tiimi pitää sitä onnistuneena.

Sisältö kumppaneiltamme
Vakiintuneiden pankkien on muututtava nopeasti, tai avoimen pankkitoiminnan edut jäävät paitsi.
Hyödynnä pilvipalvelua ja asiantuntemusta sitoutumisen optimointiin aloittamisesta päätökseen
Miten yritykset voivat parhaiten valmistautua rahoituksen digitalisaatioon

Tämä prosessi erottaa AlphaCode-koodin muista tekoälyn koodaustyökaluista, kuten OpenAI Codexista, jotka pystyvät luomaan tiettyjä koodinpätkiä käskystä. "Tämä on läpimurto siinä mielessä, että ne ratkaisevat ohjelmointiongelmia paljon monimutkaisempia kuin aikaisemmat järjestelmät", sanoo professori Ernest Davis New Yorkin yliopiston tietojenkäsittelytieteen osastolta.

Mutta, professori Davis sanoo, se ei ole ilman rajoituksiaan. Koska sen menetelmään kuuluu niin monien mahdollisten ratkaisujen keksiminen ongelmaan (ennen kuin ne suodatetaan parhaiden löytämiseksi), monimutkaisempien ohjelmien kirjoittamiseen tarvittava koulutusdatan määrä on todennäköisesti valtava. "On kohtuullista odottaa, että tarvittavien näytteiden määrä kasvaa eksponentiaalisesti ohjelman pituuden myötä", professori Davis sanoo. Se on myös riippuvainen koulutustietojensa merkityksellisyydestä, jotta se tarjoaa tarkkoja ratkaisuja, minkä ihmisohjelmoija voisi kiertää, vaikka heillä ei olisi tietoa aiheesta.

AlphaCode on hyödyllinen panos tekoälytutkimukseen, mutta tekoälykoodaus taitavan ihmisen tasolla on vielä valovuosien päässä.
Dzmitry Bahdanau, ServiceNow

Ja verrattuna DeepMindin muihin tekoälysaavutuksiin AlphaCode on suhteellisen vähäinen menestys, väittää Dzmitry Bahdanau, työnkulkuohjelmistotoimittajan ServiceNow'n tutkija, joka on tutkinut AlphaCoden toimintaa. "Tällä hetkellä AlphaCode on hyödyllinen panos tekoälytutkimukseen, mutta tekoälykoodaus taitavan ihmisen tasolla on vielä valovuosien päässä", hän sanoo. "Tämä ei ole AlphaGo ihmisten lyömisen kannalta, eikä AlphaFold koko tieteenalan mullistamisen kannalta."

Korvaako tekoäly ihmisohjelmoijat?

Vaikka AlphaCoden kaltainen tekoäly voi voittaa nämä rajoitukset, sen testausolosuhteet poikkeavat merkittävästi ammattimaisen ohjelmistokehityksen maailmasta, sanoo tohtori Peter. Schrammel, tietojenkäsittelytieteen luennoitsija Sussexin yliopistossa ja teknologiajohtaja ja ohjelmistoyhtiö Diffbluen perustaja. "Koodaushaasteet ovat suhteellisen spesifisiä, sillä toimeksiantojen tulee olla mahdollisimman yksiselitteisiä, jotta ratkaisuja voidaan verrata tasapuolisesti", hän selittää. "Kuvaus on melko hyvin jäsennelty ja esimerkit annetaan johdonmukaisella tavalla."

Reaalimaailman kehitys on "eri peto", hän väittää. "Vaatimukset ovat epämääräisiä ja määräytyvät inkrementaalisissa iteraatioissa", hän sanoo. "Ohjelmistokehittäjät neuvottelevat vaatimuksista keskusteluissa sidosryhmien kanssa, ottavat käyttöön ensimmäisen version, esittelevät sen ja keskustelevat sidosryhmien kanssa, mitä pitäisi parantaa seuraavaa iteraatiota varten." Kun taas koodaushaasteessa "on täysin tiedossa, mitkä vaatimukset ovat", tohtori Schrammel sanoo, "todellisessa ohjelmistokehityksessä vaatimusten poimiminen sidosryhmien päästä on ensisijainen haaste."

Bahdanau on samaa mieltä ja sanoo, että hän ei usko, että monet alan ihmiset "näkevät [ihmisohjelmoijat korvaavan tekoälyn] vakavasti tavoitetta". "Ihmiset ymmärtävät laajemman kontekstin, todellisen todellisen tarkoituksen sille, miksi koodi pitää kirjoittaa", hän sanoo. "AlphaCode, Codex ja muut ovat vain erittäin edistyneitä tilastollisia menetelmiä, joihin on tislattu miljardeja gigatavuja koodia. Tekoälyllä on kuitenkin potentiaalia auttaa ihmisten ohjelmistokehittäjiä suorittamaan työnsä nopeammin."

Miten tekoäly auttaa ohjelmistokehitystä?

Mutta koska jatkuva teknisten taitojen pula uhkaa hidastaa digitaalisen muutoksen vauhtia, tekälyllä on merkittävä rooli ohjelmistokehityksessä , joka auttaa yhä venyvämpiä IT-tiimejä. Tech Monitor on raportoinut matalan koodin ja ilman koodia sisältävien järjestelmien kasvavasta suosiosta. Niiden avulla ei-tekninen henkilökunta voi rakentaa digitaalisia toimintoja työnsä avuksi. Ei-koodin odotetaan olevan 65 %. Gartnerin mukaan sovelluskehitys vuoteen 2024 mennessä.

Ammattilaisille työkalut, kuten GitHub CoPilot, jotka ehdottavat koodirivejä tai toimintoja kehitystä auttamaan, ovat todennäköisesti tehokkain tekoälyn käyttötapa lyhyellä ja keskipitkällä aikavälillä, tohtori Schrammel väittää. "Ohjelmistokehitys itsessään on hyötynyt suurelta osin automaatiosta sen alusta lähtien", hän sanoo. "Kukaan ei enää luo konekoodia manuaalisesti. Automatisoidut työkalut, kuten kääntäjät ja koodigeneraattorit, muuttavat sovelluksen korkean tason muodolliset spesifikaatiot koneella suoritettavaksi koodiksi."

Ohjelmistokehitys itsessään on hyötynyt suurelta osin automaatiosta sen alusta lähtien.
Tohtori Peter Schrammel, Sussexin yliopisto

Näiden kääntäjien nousu on automatisoinut "ikäviä tehtäviä", mutta se ei johtanut ihmisten kehittäjien määrän vähenemiseen, tohtori Schrammel lisää. "Yksi syy voi olla se, että monet ohjelmistokehitystoiminnot, kuten vaatimussuunnittelu, perustuvat laajaan aluetietoon ja joutuvat käsittelemään suuria epäselvyyksiä", hän sanoo. "Näitä toimintoja on paljon vaikeampi automatisoida pois kuin säännöllisempiä toimintoja, kuten koodaus tarkasti määriteltyjen spesifikaatioiden perusteella ja testaus."

Testausjärjestelmien automatisoinnin jatkaminen onkin todennäköisesti tekoälyn seuraava raja ohjelmoinnin alalla, tohtori Schrammel sanoo. Kun automaatio lisääntyy, Bahdanau uskoo, että ihmisten kehittäjien yhä tärkeämpi rooli on varmistaa, että tekoälyn koodin luontitapa ymmärretään. "Ammattimaisten kehittäjien on ymmärrettävä ja tarkistettava tekoälyn ehdottama algoritmi", hän sanoo. "Matalakoodia tai ei-koodia ohjelmointirajapintoja käyttäville kansalaiskehittäjille tekoälyn luotettavuuden rima on vielä korkeampi, ja he tarvitsevat kehittäjäkokemuksen, joka selittää tekoälyn ehdottaman logiikan."

Tämän artikkelin aiheet: Ohjelmistokehittäjät
Popular Articles