Ohjelmointikoodia, sinisen ja violetin värit

Esimerkkejä neuroverkkopohjaisista asiantuntijajärjestelmistä: OpenAI Codex ja DALL-E 2 Outpainting

Muun muassa GPT-3 -neuroverkkoa ja muita tekoälyjärjestelmiä hyödyntävät sovellukset kehittyvät huimaa vauhtia. Uusia ominaisuuksia ja toiminnallisuuksia otetaan käyttöön jatkuvasti.

Aiemmassa artikkelissani (Ojala 2022) perehdyin neuroverkkopohjaisten asiantuntijajärjestelmien historiaan sekä niiden nykytilaan ja mahdollisuuksiin. Tässä artikkelissa esittelen kaksi viimeisen puolentoista vuoden aikana julkaistua esimerkkiä neuroverkkopohjaisesta asiantuntijajärjestelmästä: OpenAI Codexin sekä DALL-E 2 Outpaintingin.

OpenAI Codex

OpenAI Codex on GPT-3 -neuroverkkoon pohjautuva sovellus, joka kääntää luonnollisella kielellä annetut komennot ohjelmointikieliseksi ohjelmakoodiksi. Sen API-ohjelmointirajapinta julkaistiin 11. elokuuta 2021 rajoitettuun beta-testiin. (Zaremba 2021)

Codexin opetusaineisto sisältää sekä luonnollisen kielen aineiston että miljardeja rivejä koodia. Se osaa tulkita ja kirjoittaa lukuisia eri ohjelmointikieliä kuten Pythonia, JavaScriptiä ja PHP:tä. Sitä voidaan käyttää paitsi koodin generointiin, myös olemassa olevan ohjelmakoodin selittämiseen luonnolliselle kielelle. (Zaremba 2021)

OpenAI Codexin päälle on rakennettu lukuisia eri sovelluksia, jotka on integroitu olemassaoleviin kehitysympäristöihin kuten Visual Studio Codeen. Kymmenettuhannet ohjelmoijat käyttävät apunaan esimerkiksi GitHub Copilot -asiantuntijajärjestelmää. (OpenAI 5/2022)

Kokeilin OpenAI Codexia OpenAI:n Playground -ympäristössä yksinkertaisilla ohjelmointitehtävillä.

Testasin Codexia muun muassa tehtävänannoilla Helsingin yliopiston ohjelmoinnin MOOCista. Vaikka tehtävänanto olisi esimerkiksi ainoastaan tehtävän a-osa, saattaa Codex intoutua tuottamaan myös tehtävän b-osan vaatimukset täyttävän ohjelmakoodin – ilman b-kohdan tehtävänantoa! Siten lienee luultavaa, että Codexin opetusaineiston on täytynyt sisältää identtinen tehtävänanto a- ja b-osineen sekä todennäköisesti myös mallivastauksia tehtävään.

Yritin keksiä tehtävänantoja, joita ei olisi identtisessä muodossaan Codexin opetusaineistossa. Esimerkiksi seuraava, tarkoituksella hivenen epäselvä tehtävänanto tuotti täysin toimivan ohjelmakoodin, joka teki pääosin sen mitä käskettiin.

Ohjelmistokoodi

Alla esimerkki Codexin tuottamasta ohjelmakoodista edellä olevalla komennolla:

Ohjelmistokoodia

Codex ei ymmärtänyt, että tehtävänanto edellyttää päivämäärien generointia pelkän vuosiluvun sijaan. Sen lisäksi se ei tiennyt Aleksis Kiven veljesten nimiä, joten se valitsi seitsemän tyypillistä suomalaisnimeä. Siten voimme jo yksinkertaisesta esimerkistä havaita, että Codex tekee ihmisohjelmoijalle epätyypillisiä virheitä, eikä pärjää kaikilta osin tarkkuudessa edes aloittelevalle ohjelmoijalle. Kuitenkin tarkasti määriteltyihin, luonnollisella kielellä esitettyihin ongelmiin se kykenee generoimaan ratkaisun erittäin nopeasti.

Uskoisin, että yhdistettynä esimerkiksi testausautomaatioon Codexin generoimat ohjelmakoodit saattavat tuottaa hämmentävän hyviä tuloksia hämmentävän lyhyessä ajassa. Olemmekin todennäköisesti siirtymässä aikaan, jossa ihmisohjelmoijan tekemää työtä voi yhä enemmän täydentää ja jopa korvata tekoälyavusteisella ohjelmoinnilla.

Vastaavasti Codexia voi käyttää myös olemassaolevan ohjelmakoodin toiminnallisuuden kommentointiin luonnollisella kielellä. OpenAI Playground sisältää Codexin lisäksi myös paljon muita GPT-3 -tekoälyä hyödyntäviä luonnollisen kielen palveluja, joista osa tosin Codexin tavoin rajoitetussa beta-testissä.

DALL-E 2 Outpainting

Uusinta uutta avoimen tekoälyn kentällä on DALL-E 2 -sovellusta hyödyntävä Outpainting-menetelmä, joka julkaistiin 31.8.2022 (OpenAI 8/2022). Outpaintingissa käyttäjä syöttää tekoälylle kuvan, ja tekoäly jatkaa kuvaa käyttäjän sanallisesti kuvailemalla tavalla.

Testasin Outpaintingia syöttämällä palveluun alla olevan kuvan, jossa ulkoilutan koiraa metsässä.

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

Pyysin DALL-E 2 -tekoälyä jatkamaan kuvaa vasemmalle teemalla “Gateway to the Wonderland”, oikealle teemalla “Finnish landscape” ja alaspäin komennolla “Continue picture”. Tuloksen näemme alla.

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

Siirtymä alkuperäisestä valokuvasta tekoälyn generoimaan kuvaan ei ole täysin saumaton. Tarkkasilmäinen katsoja huomaa eron, ja taitava editoija on kyennyt tuottamaan esimerkiksi kuvankäsittelyohjelmalla parempia kuvamuokkauksia jo kymmeniä vuosia. On kuitenkin syytä huomata, ettei kuvan käsittelyyn ole käytetty rajauksen lisäksi lainkaan perinteistä kuvankäsittelyohjelmistoa tai ohjelmointia, ainoastaan luonnollisella kielellä annettuja komentoja. Kuvan generointiin meni vain muutamia minuutteja.

DALL-E 2 Outpainting on kaikkien käyttäjien testattavana, käyttäjäksi pääsee odotuslistan kautta.

Vastaavia toiminnallisuuksia on kehitelty myös useissa muissa projekteissa, joista osaan on täysin vapaa pääsy. Esimerkiksi StabilityAI:n 22.8.2022 julkaisema avoimen lähdekoodin Stable Diffusion -työkalu tuottaa lähes samantasoisia kuvia kuin DALL-E 2 (Edwards 2022).

Lopuksi

Esittelin tässä artikkelissa kaksi eri neuroverkkoavusteista asiantuntijajärjestelmää, OpenAI Codexia ja DALL-E 2 Outpaintingin. Molemmat järjestelmät pohjautuvat OpenAI:n GPT-3 -neuroverkkoon.

GPT-3 julkaistiin jo pari vuotta sitten, keväällä 2020. Tämän jälkeen on kehitetty satoja, kenties tuhansia sitä hyödyntäviä erilaisia sovelluksia. GPT-3 avustaa niin ohjelmoinnissa, kuvankäsittelyssä, luonnollisen kielen kääntämisessä kuin monessa muussakin tehtävässä.

Uuden GPT-version julkaisu lähenee. On esitetty arvioita, että GPT-4 saattaa sisältää 100 biljoonaa parametria siinä missä GPT-3:n parametrimäärä on 175 miljardia (Knight 2021). Toisaalta OpenAI:n toimitusjohtaja on kiistänyt tämän tiedon ja esittänyt, ettei tulevan version parametrimäärä poikkea merkittävästi nykyversiosta.

OpenAI ei perinteisesti ole järin avoin uusista GPT-versioistaan ennen niiden julkaisua, joten emme tiedä millä aikataululla seuraava GPT-versio julkaistaan emmekä sitä, millaisia ominaisuuksia ja toiminnallisuuksia se sisältää. Joka tapauksessa lienee selvää, että myös tulevaisuudessa näemme uusia ja jännittäviä tekoälysovelluksia. Jään mielenkiinnolla odottamaan tekoälyn uusia kehitysaskelia.


Kirjoittaja:

Panu Ojala, projektiasiantuntija, Karelia-ammattikorkeakoulu


Lähteet:

Edwards, B.: With Stable Diffusion, you may never believe what you see online again. ArsTechnica. 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.: Neuroverkkopohjaiset tekoälysovellukset: kehityssuuntia ja tulevaisuuden mahdollisuuksia. Pulssi. 16.8.2022.
https://kareliatesti.meitadev.fi/2022/08/neuroverkkopohjaiset-tekoalysovellukset-kehityssuuntia-ja-tulevaisuuden-mahdollisuuksia/

OpenAI: Powering Next Generation Applications with OpenAI Codex. OpenAI Blog 24.5.2022.
https://openai.com/blog/codex-apps/

OpenAI: DALL-E: Introducing Outpainting. OpenAI Blog 31.8.2022.
https://openai.com/blog/dall-e-introducing-outpainting/

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

Artikkelikuva: Negative Space