Petteri Pyyny
30. kesäkuuta, 2021 17:31
Maailman suurin avoimen lähdekoodin varasto, GitHub, on julkaissut tekoälyyn pohjautuvan ohjelmointityökalun, joka käytännössä hoitaa ohjlemoinnin itsenäisesti.
GitHub Copilot pohjautuu koneoppimiseen ja tekoälyyn. Copilotille voidaan käytönnäss ulkoistaa iso osa ohjelmoinnista: kun ohjelman tietyn tasoisen rungon kirjoittaa pohjaksi, Copilot osaa täydentää koodin kokonaisilla itse kirjoittamillaan funktioilla ja algoritmeilla.
Copilotin pohjana käytetään avoimen lähdekoodin varastoja, kuten Githubista löytyviä lähdekoodeja sekä mm. StackOverflow'n ja muiden vastaavien palveluiden tietoja. Ne on syötetty OpenAI:n yhdessä GitHubin kehittämään OpenAI Codex -tekoälyyn sen pohjatiedoiksi. Eli siinä missä tavallinen koodieditori osaa korkeintaan ehdottaa funktionimien oikeinkirjoitusta tai täydennystä, Copilot oikeasti ymmärtää ohjelmakoodia ja osaa kirjoittaa sitä itse.
Copilot osaa myös ehdottaa kokonaisten pidempien koodipätkien uudelleenkirjoitusta, jos sen mielestä kirjoitettu ohjelmapätkä pystyttäisiin tekemään fiksummalla ja tehokkaammalla tavalla. Copilot myös oppii sen, miten ohjelmoija kirjoittaa omaa koodiaan ja osaa mukautua kirjoittamaan koodia samalla tavalla - näin luettavuus tekoälyn tuottamalle koodille pysyy hyvällä tasolla.
Copilotin voi hurjimmillaan laittaa kirjoittamaan koodia hyvinkin lyhyillä kuvauksilla - tekoäly yksinkertaisesti päättelee ohjelmoinnin seassa olevista kommenteista sen, mitä ajetaan takaa - ja luo koodin paikoilleen sen mukaan. Luonnollisesti ihminen voi vapaasti muokata myös Copilotin luomaa ohjelmakoodia - ja antaa muokkausten jälkeen tekoälyn parantaa sitä entisestään. Lisäksi Copilot ei ole sidoksissa mihinkään yksittäiseen ohjelmointikieleen, vaan se osaa käytännössä kaikkia ohjelmointikieliä - ohjelmoinnin logiikka on kuitenkin lopulta pitkälti sama, kielestä riippumatta.
Copilot on tällä hetkellä suljetussa betatestausvaiheessa ja on saatavilla ainoastaan Visual Studio Code -ympäristölle. GitHub kuitenkin aikoo avata Copilotin kaikkien käyttöön, kun betavaihe on saatu onnistuneesti loppuun.
Käytännössä toistaiseksi keskitasoinen ohjelmoinnin ymmärrys vaaditaan Copilotin käyttöön, mutta sen lupaus on hurja. Tekoälyn ja koneoppimisen avulla Copilot pystyy oppimaan jatkuvasti paremmin ja paremmin kirjoittamaan omaa koodia ja jos muutaman vuoden päähän uskaltaa kurkata, lienee itsestään selvää, että Copilotin kaltaiset työkalut kirjoittavat tulevaisuudessa ison osan ohjelmakoodista, ihmisten toimiessa vain koodin "arkkitehteinä".