Ohjelmointikoodia, sinisen ja violetin värit

Esimerk­kejä neuro­verk­ko­poh­jai­sista asian­tun­ti­ja­jär­jes­tel­mistä: OpenAI Codex ja DALL-E 2 Outpainting

Muun muassa GPT-3 -neuro­verk­koa ja muita teko­ä­ly­jär­jes­tel­miä hyödyn­tä­vät sovel­luk­set kehit­ty­vät huimaa vauhtia. Uusia ominai­suuk­sia ja toimin­nal­li­suuk­sia otetaan käyt­töön jatkuvasti.

Aiem­massa artik­ke­lis­sani (Ojala 2022) pereh­dyin neuro­verk­ko­poh­jais­ten asian­tun­ti­ja­jär­jes­tel­mien histo­ri­aan sekä niiden nyky­ti­laan ja mahdol­li­suuk­siin. Tässä artik­ke­lissa esit­te­len kaksi viimei­sen puolen­toista vuoden aikana julkais­tua esimerk­kiä neuro­verk­ko­poh­jai­sesta asian­tun­ti­ja­jär­jes­tel­mästä: OpenAI Codexin sekä DALL-E 2 Outpaintingin.

OpenAI Codex

OpenAI Codex on GPT-3 -neuro­verk­koon pohjau­tuva sovel­lus, joka kääntää luon­nol­li­sella kielellä annetut komen­not ohjel­moin­ti­kie­li­seksi ohjel­ma­koo­diksi. Sen API-ohjel­moin­ti­ra­ja­pinta julkais­tiin 11. elokuuta 2021 rajoi­tet­tuun beta-testiin. (Zaremba 2021)

Codexin opetusai­neisto sisäl­tää sekä luon­nol­li­sen kielen aineis­ton että miljar­deja rivejä koodia. Se osaa tulkita ja kirjoit­taa lukui­sia eri ohjel­moin­ti­kie­liä kuten Pytho­nia, JavaSc­rip­tiä ja PHP:tä. Sitä voidaan käyttää paitsi koodin gene­roin­tiin, myös olemassa olevan ohjel­ma­koo­din selit­tä­mi­seen luon­nol­li­selle kielelle. (Zaremba 2021)

OpenAI Codexin päälle on raken­nettu lukui­sia eri sovel­luk­sia, jotka on integroitu olemas­sao­le­viin kehi­ty­sym­pä­ris­töi­hin kuten Visual Studio Codeen. Kymme­net­tu­han­net ohjel­moi­jat käyt­tä­vät apunaan esimer­kiksi GitHub Copilot -asian­tun­ti­ja­jär­jes­tel­mää. (OpenAI 5/2022)

Kokei­lin OpenAI Codexia OpenAI:n Playground -ympä­ris­tössä yksin­ker­tai­silla ohjelmointitehtävillä.

Testa­sin Codexia muun muassa tehtä­vän­an­noilla Helsin­gin yliopis­ton ohjel­moin­nin MOOCista. Vaikka tehtä­vän­anto olisi esimer­kiksi ainoas­taan tehtä­vän a-osa, saattaa Codex intou­tua tuot­ta­maan myös tehtä­vän b-osan vaati­muk­set täyt­tä­vän ohjel­ma­koo­din – ilman b-kohdan tehtä­vän­an­toa! Siten lienee luul­ta­vaa, että Codexin opetusai­neis­ton on täyty­nyt sisäl­tää ident­ti­nen tehtä­vän­anto a- ja b-osineen sekä toden­nä­köi­sesti myös malli­vas­tauk­sia tehtävään.

Yritin keksiä tehtä­vän­an­toja, joita ei olisi ident­ti­sessä muodos­saan Codexin opetusai­neis­tossa. Esimer­kiksi seuraava, tarkoi­tuk­sella hivenen epäselvä tehtä­vän­anto tuotti täysin toimi­van ohjel­ma­koo­din, joka teki pääosin sen mitä käskettiin.

Ohjelmistokoodi

Alla esimerkki Codexin tuot­ta­masta ohjel­ma­koo­dista edellä olevalla komennolla:

Ohjelmistokoodia

Codex ei ymmär­tä­nyt, että tehtä­vän­anto edel­lyt­tää päivä­mää­rien gene­roin­tia pelkän vuosi­lu­vun sijaan. Sen lisäksi se ei tiennyt Aleksis Kiven veljes­ten nimiä, joten se valitsi seit­se­män tyypil­listä suoma­lais­ni­meä. Siten voimme jo yksin­ker­tai­sesta esimer­kistä havaita, että Codex tekee ihmis­oh­jel­moi­jalle epätyy­pil­li­siä virheitä, eikä pärjää kaikilta osin tark­kuu­dessa edes aloit­te­le­valle ohjel­moi­jalle. Kuiten­kin tarkasti määri­tel­tyi­hin, luon­nol­li­sella kielellä esitet­tyi­hin ongel­miin se kykenee gene­roi­maan ratkai­sun erit­täin nopeasti.

Uskoi­sin, että yhdis­tet­tynä esimer­kiksi testausau­to­maa­tioon Codexin gene­roi­mat ohjel­ma­koo­dit saat­ta­vat tuottaa hämmen­tä­vän hyviä tulok­sia hämmen­tä­vän lyhyessä ajassa. Olem­me­kin toden­nä­köi­sesti siir­ty­mässä aikaan, jossa ihmis­oh­jel­moi­jan tekemää työtä voi yhä enemmän täyden­tää ja jopa korvata teko­ä­ly­avus­tei­sella ohjelmoinnilla.

Vastaa­vasti Codexia voi käyttää myös olemas­sao­le­van ohjel­ma­koo­din toimin­nal­li­suu­den kommen­toin­tiin luon­nol­li­sella kielellä. OpenAI Playground sisäl­tää Codexin lisäksi myös paljon muita GPT-3 -teko­ä­lyä hyödyn­tä­viä luon­nol­li­sen kielen palve­luja, joista osa tosin Codexin tavoin rajoi­te­tussa beta-testissä.

DALL-E 2 Outpainting

Uusinta uutta avoimen teko­ä­lyn kentällä on DALL-E 2 -sovel­lusta hyödyn­tävä Outpain­ting-mene­telmä, joka julkais­tiin 31.8.2022 (OpenAI 8/2022). Outpain­tin­gissa käyt­täjä syöttää teko­ä­lylle kuvan, ja tekoäly jatkaa kuvaa käyt­tä­jän sanal­li­sesti kuvai­le­malla tavalla.

Testa­sin Outpain­tin­gia syöt­tä­mällä palve­luun alla olevan kuvan, jossa ulkoi­lu­tan koiraa metsässä.

Mies kävelee metsässä, sylissä pieni koira

Pyysin DALL-E 2 -teko­ä­lyä jatka­maan kuvaa vasem­malle teemalla “Gateway to the Wonder­land”, oikealle teemalla “Finnish landscape” ja alas­päin komen­nolla “Conti­nue picture”. Tulok­sen näemme alla.

Mies kävelee metsässä pieni koira sylissään

Siir­tymä alku­pe­räi­sestä valo­ku­vasta teko­ä­lyn gene­roi­maan kuvaan ei ole täysin sauma­ton. Tark­ka­sil­mäi­nen katsoja huomaa eron, ja taitava editoija on kyennyt tuot­ta­maan esimer­kiksi kuvan­kä­sit­te­ly­oh­jel­malla parem­pia kuva­muok­kauk­sia jo kymme­niä vuosia. On kuiten­kin syytä huomata, ettei kuvan käsit­te­lyyn ole käytetty rajauk­sen lisäksi lain­kaan perin­teistä kuvan­kä­sit­te­ly­oh­jel­mis­toa tai ohjel­moin­tia, ainoas­taan luon­nol­li­sella kielellä annet­tuja komen­toja. Kuvan gene­roin­tiin meni vain muuta­mia minuutteja.

DALL-E 2 Outpain­ting on kaik­kien käyt­tä­jien testat­ta­vana, käyt­tä­jäksi pääsee odotus­lis­tan kautta.

Vastaa­via toimin­nal­li­suuk­sia on kehi­telty myös useissa muissa projek­teissa, joista osaan on täysin vapaa pääsy. Esimer­kiksi StabilityAI:n 22.8.2022 julkai­sema avoimen lähde­koo­din Stable Diffusion -työkalu tuottaa lähes saman­ta­soi­sia kuvia kuin DALL-E 2 (Edwards 2022).

Lopuksi

Esit­te­lin tässä artik­ke­lissa kaksi eri neuro­verk­koa­vus­teista asian­tun­ti­ja­jär­jes­tel­mää, OpenAI Codexia ja DALL-E 2 Outpain­tin­gin. Molem­mat järjes­tel­mät pohjau­tu­vat OpenAI:n GPT-3 -neuroverkkoon.

GPT-3 julkais­tiin jo pari vuotta sitten, keväällä 2020. Tämän jälkeen on kehi­tetty satoja, kenties tuhan­sia sitä hyödyn­tä­viä erilai­sia sovel­luk­sia. GPT-3 avustaa niin ohjel­moin­nissa, kuvan­kä­sit­te­lyssä, luon­nol­li­sen kielen kään­tä­mi­sessä kuin monessa muus­sa­kin tehtävässä.

Uuden GPT-version julkaisu lähenee. On esitetty arvioita, että GPT-4 saattaa sisäl­tää 100 biljoo­naa para­met­ria siinä missä GPT-3:n para­met­ri­määrä on 175 miljar­dia (Knight 2021). Toisaalta OpenAI:n toimi­tus­joh­taja on kiis­tä­nyt tämän tiedon ja esit­tä­nyt, ettei tulevan version para­met­ri­määrä poikkea merkit­tä­västi nykyversiosta.

OpenAI ei perin­tei­sesti ole järin avoin uusista GPT-versiois­taan ennen niiden julkai­sua, joten emme tiedä millä aika­tau­lulla seuraava GPT-versio julkais­taan emmekä sitä, millai­sia ominai­suuk­sia ja toimin­nal­li­suuk­sia se sisäl­tää. Joka tapauk­sessa lienee selvää, että myös tule­vai­suu­dessa näemme uusia ja jännit­tä­viä teko­ä­ly­so­vel­luk­sia. Jään mielen­kiin­nolla odot­ta­maan teko­ä­lyn uusia kehitysaskelia.


Kirjoit­taja:

Panu Ojala, projek­ti­asian­tun­tija, Karelia-ammattikorkeakoulu


Lähteet:

Edwards, B.: With Stable Diffusion, you may never believe what you see online again. ArsTech­nica. 6.9.2022.
https://arstechnica.com/information-technology/2022/09/with-stable-diffusion-you-may-never-believe-what-you-see-online-again/

Knight, W.: A New Chip Cluster Will Make Massive AI Models Possible. Wired. 24.8.2021.
https://www.wired.com/story/cerebras-chip-cluster-neural-networks-ai/

Ojala, P.: Neuro­verk­ko­poh­jai­set teko­ä­ly­so­vel­luk­set: kehi­tys­suun­tia ja tule­vai­suu­den mahdol­li­suuk­sia. Pulssi. 16.8.2022.
https://www.karelia.fi/2022/08/neuroverkkopohjaiset-tekoalysovellukset-kehityssuuntia-ja-tulevaisuuden-mahdollisuuksia/

OpenAI: Powe­ring Next Gene­ra­tion Applica­tions with OpenAI Codex. OpenAI Blog 24.5.2022.
https://openai.com/blog/codex-apps/

OpenAI: DALL-E: Intro­ducing Outpain­ting. OpenAI Blog 31.8.2022.
https://openai.com/blog/dall-e-introducing-outpainting/

Zaremba W., Brock­man G. & OpenAI: OpenAI Codex. OpenAI Blog. 10.8.2021.
https://openai.com/blog/openai-codex/

Artik­ke­li­kuva: Nega­tive Space