Categories
Pulssi Älykästä tuotantoa

Esimerkkejä 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­verkkoa ja muita tekoä­ly­jär­jes­telmiä hyödyn­tävät sovel­lukset kehit­tyvät huimaa vauhtia. Uusia ominai­suuksia ja toimin­nal­li­suuksia otetaan käyttöön jatkuvasti.

Aiemmassa artik­ke­lissani (Ojala 2022) perehdyin neuro­verk­ko­poh­jaisten asian­tun­ti­ja­jär­jes­telmien histo­riaan sekä niiden nykytilaan ja mahdol­li­suuksiin. Tässä artik­ke­lissa esittelen kaksi viimeisen puolen­toista vuoden aikana julkaistua esimerkkiä 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­verkkoon pohjautuva sovellus, joka kääntää luonnol­li­sella kielellä annetut komennot ohjel­moin­ti­kie­li­seksi ohjel­ma­koo­diksi. Sen API-ohjel­moin­ti­ra­ja­pinta julkaistiin 11. elokuuta 2021 rajoi­tettuun beta-testiin. (Zaremba 2021)

Codexin opetusai­neisto sisältää sekä luonnol­lisen kielen aineiston että miljardeja rivejä koodia. Se osaa tulkita ja kirjoittaa lukuisia eri ohjel­moin­ti­kieliä kuten Pythonia, JavaSc­riptiä ja PHP:tä. Sitä voidaan käyttää paitsi koodin generointiin, myös olemassa olevan ohjel­ma­koodin selit­tä­miseen luonnol­li­selle kielelle. (Zaremba 2021)

OpenAI Codexin päälle on raken­nettu lukuisia eri sovel­luksia, jotka on integroitu olemas­sao­leviin kehity­sym­pä­ris­töihin kuten Visual Studio Codeen. Kymme­net­tu­hannet ohjel­moijat käyttävät apunaan esimer­kiksi GitHub Copilot -asian­tun­ti­ja­jär­jes­telmää. (OpenAI 5/2022)

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

Testasin Codexia muun muassa tehtä­vän­an­noilla Helsingin yliopiston ohjel­moinnin MOOCista. Vaikka tehtä­vänanto olisi esimer­kiksi ainoastaan tehtävän a-osa, saattaa Codex intoutua tuottamaan myös tehtävän b-osan vaati­mukset täyttävän ohjel­ma­koodin – ilman b-kohdan tehtä­vän­antoa! Siten lienee luultavaa, että Codexin opetusai­neiston on täytynyt sisältää ident­tinen tehtä­vänanto a- ja b-osineen sekä toden­nä­köi­sesti myös malli­vas­tauksia tehtävään.

Yritin keksiä tehtä­vän­antoja, joita ei olisi ident­ti­sessä muodossaan Codexin opetusai­neis­tossa. Esimer­kiksi seuraava, tarkoi­tuk­sella hivenen epäselvä tehtä­vänanto tuotti täysin toimivan ohjel­ma­koodin, joka teki pääosin sen mitä käskettiin.

Ohjelmistokoodi

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

Ohjelmistokoodia

Codex ei ymmär­tänyt, että tehtä­vänanto edellyttää päivä­määrien generointia pelkän vuosi­luvun sijaan. Sen lisäksi se ei tiennyt Aleksis Kiven veljesten nimiä, joten se valitsi seitsemän tyypil­listä suoma­lais­nimeä. Siten voimme jo yksin­ker­tai­sesta esimer­kistä havaita, että Codex tekee ihmis­oh­jel­moi­jalle epätyy­pil­lisiä virheitä, eikä pärjää kaikilta osin tarkkuu­dessa edes aloit­te­le­valle ohjel­moi­jalle. Kuitenkin tarkasti määri­tel­tyihin, luonnol­li­sella kielellä esitet­tyihin ongelmiin se kykenee generoimaan ratkaisun erittäin nopeasti.

Uskoisin, että yhdis­tettynä esimer­kiksi testausau­to­maa­tioon Codexin generoimat ohjel­ma­koodit saattavat tuottaa hämmen­tävän hyviä tuloksia hämmen­tävän lyhyessä ajassa. Olemmekin toden­nä­köi­sesti siirty­mässä aikaan, jossa ihmis­oh­jel­moijan tekemää työtä voi yhä enemmän täydentää ja jopa korvata tekoä­ly­avus­tei­sella ohjelmoinnilla.

Vastaa­vasti Codexia voi käyttää myös olemas­sao­levan ohjel­ma­koodin toimin­nal­li­suuden kommen­tointiin luonnol­li­sella kielellä. OpenAI Playground sisältää Codexin lisäksi myös paljon muita GPT-3 -tekoälyä hyödyn­täviä luonnol­lisen kielen palveluja, 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ödyntävä Outpainting-menetelmä, joka julkaistiin 31.8.2022 (OpenAI 8/2022). Outpain­tin­gissa käyttäjä syöttää tekoä­lylle kuvan, ja tekoäly jatkaa kuvaa käyttäjän sanal­li­sesti kuvai­le­malla tavalla.

Testasin Outpain­tingia syöttä­mällä palveluun alla olevan kuvan, jossa ulkoi­lutan koiraa metsässä.

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

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

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

Siirtymä alkupe­räi­sestä valoku­vasta tekoälyn generoimaan kuvaan ei ole täysin saumaton. Tarkka­sil­mäinen katsoja huomaa eron, ja taitava editoija on kyennyt tuottamaan esimer­kiksi kuvan­kä­sit­te­ly­oh­jel­malla parempia kuvamuok­kauksia jo kymmeniä vuosia. On kuitenkin syytä huomata, ettei kuvan käsit­telyyn ole käytetty rajauksen lisäksi lainkaan perin­teistä kuvan­kä­sit­te­ly­oh­jel­mistoa tai ohjel­mointia, ainoastaan luonnol­li­sella kielellä annettuja komentoja. Kuvan generointiin meni vain muutamia minuutteja.

DALL-E 2 Outpainting on kaikkien käyttäjien testat­tavana, käyttä­jäksi pääsee odotus­listan kautta.

Vastaavia toimin­nal­li­suuksia on kehitelty myös useissa muissa projek­teissa, joista osaan on täysin vapaa pääsy. Esimer­kiksi StabilityAI:n 22.8.2022 julkaisema avoimen lähde­koodin Stable Diffusion -työkalu tuottaa lähes saman­ta­soisia kuvia kuin DALL-E 2 (Edwards 2022).

Lopuksi

Esittelin tässä artik­ke­lissa kaksi eri neuro­verk­koa­vus­teista asian­tun­ti­ja­jär­jes­telmää, OpenAI Codexia ja DALL-E 2 Outpain­tingin. Molemmat järjes­telmät pohjau­tuvat 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ödyn­täviä erilaisia sovel­luksia. GPT-3 avustaa niin ohjel­moin­nissa, kuvan­kä­sit­te­lyssä, luonnol­lisen kielen kääntä­mi­sessä 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 paramet­ri­määrä on 175 miljardia (Knight 2021). Toisaalta OpenAI:n toimi­tus­johtaja on kiistänyt tämän tiedon ja esittänyt, ettei tulevan version paramet­ri­määrä poikkea merkit­tä­västi nykyversiosta.

OpenAI ei perin­tei­sesti ole järin avoin uusista GPT-versioistaan ennen niiden julkaisua, joten emme tiedä millä aikatau­lulla seuraava GPT-versio julkaistaan emmekä sitä, millaisia ominai­suuksia ja toimin­nal­li­suuksia se sisältää. Joka tapauk­sessa lienee selvää, että myös tulevai­suu­dessa näemme uusia ja jännit­täviä tekoä­ly­so­vel­luksia. Jään mielen­kiin­nolla odottamaan tekoälyn uusia kehitysaskelia.


Kirjoittaja:

Panu Ojala, projek­ti­asian­tuntija, 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.: Neuro­verk­ko­poh­jaiset tekoä­ly­so­vel­lukset: kehitys­suuntia ja tulevai­suuden mahdol­li­suuksia. Pulssi. 16.8.2022.
https://karelia.fi/2022/08/neuroverkkopohjaiset-tekoalysovellukset-kehityssuuntia-ja-tulevaisuuden-mahdollisuuksia/

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

OpenAI: DALL-E: Intro­ducing 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/

Artik­ke­likuva: Negative Space