Taitoja työelämään – Practical AI

Ohjelmistokehityksessä osaamisen kehittäminen on tärkeää ja siihen löytyy Internetistä paljon hyviä materiaaleja ja ilmaisia kursseja, sekä avoimen yliopiston tai ammattikorkeakoulujen kursseja, joista voi kerätä opintopisteitä. Yksi tällainen kokonaisuus on Microsoft Skills for Jobs, joka tarjoaa opintopolkuja kaikille osaamisensa kehittämisestä kiinnostuneille. Kävin ”Practical AI” -kurssin, joka opettaa mitä jokaisen tulisi tietää tekoälystä.

Practical AI -kurssi: perusteet tuottavasta tekoälystä

Practical AI -kurssi perehtyy (tuottavaan) tekoälyyn yleistasolla ja käytännönläheisesti. Kurssi käy läpi tärkeimmät käsitteet, tutustuu tuottavaan tekoälyyn ja opettaa käyttämään kieli- ja kuvamalleja. Kurssi on tarkoitettu kaikille aiheesta kiinnostuneille, eikä sen suorittaminen edellytä teknistä osaamista, tutkintoa tai sanakirjaa.

Kurssin laajuus on kaksi opintopistettä (2 op / ECTS) ja arviointi perustuu hyväksytty/hylätty-asteikkoon. Edetä voi omaan tahtiin. Itsellä kurssin läpikäymiseen taisi mennä pari iltaa, eli aika paljon vähemmän kuin tuo opintoviikkojen 2 * 27 tuntia.

Kurssin on kehittänyt Microsoft Skills for Jobs, Kajaanin ammattikorkeakoulu ja yrityskumppanit. Oppimisalustana toimii Edukamu, joka on Kajaanin ammattikorkeakoulun käsialaa.

Materiaali on jaettu kuuteen osa-alueesen:

  • Tekoälyn tausta ja määritelmä
  • Johdatus tuottavaan tekoälyyn
  • Tekoäly arjen apurina
  • Kieltä tuottava tekoäly
  • Kuvia tuottava tekoäly
  • Eettiset kysymykset

Osa-alueet kattavat pääpiirteittäin sen, mitä asiasta tarvitsee ylätasolla tietää ja helpon lähestymisen tekoälyn konkreettiseen käyttöön kielimallien kautta.

Kurssin kehittäjän panos näkyi materiaalissa, sillä tuottavissa tehtävissä ja esimerkeissä käytettiin ”Copilot with Bing -hakukonetta (OpenAI ChatGPT 4) ja ”Copilot Designer” -kuvanluontia (OpenAI DALL-E 3). Palveluiden nimet olivat ehtineet muuttumaan siitä, kun kurssimateriaali oli julkaistu 2023 keväällä, joka kuvastaa hyvin aihealueen ja palveluiden kehitystahtia. Palveluiden käyttöön ei tarvinnut Edge-selainta, vaikka materiaalissa niin kerrottiin. Positiivisena puolena muitakin tunnettuja tuottavia tekoälypalveluita esiteltiin. Microsoftin palveluiden etuna on, että ne ovat ilmaisia käyttää ja tarjoavat uusinta kielimallia.

Kokonaisuutena Practial AI -kurssi antaa yleiskäsityksen tekoälystä ja sen eri tyypeistä, menemättä kuitenkaan liikaa niiden yksityiskohtiin. Toisaalta asiaa olisi voinut käydä tarkemminkin läpi tekoälyn kehityksen osalta ja etenkin eettisten kysymysten puolesta. Tehtävät jokaisen osion lopussa olivat helppoja, joten kurssin läpikäyminen ei vaadi suurta panostusta. Lopuksi saa kivan sertifikaatin ja 2 opintopistettä Opintopolkuun.

Artikkelin kuvaa varten käytin Copilot Designeria sekä suomeksi että englanniksi, ja lopputulosta joutui hieman hakemaan. Kielimallien käyttö on oma taiteenlajinsa, että saa mitä ajattelee haluavansa. Tai sitten saa jotain parempaa, ainakin ideoita jatkokehittää.

Mario AI Competition 2009: tekoälyn ohjaama Mario

Pelaamista voi harrastaa myös hieman erikoisemmalla tavalla, opettamalla tekoälylle keinot selvitä pelissä. Tekoälyihin liittyen onkin erilaisia kilpailuita ja yksi tällainen on Mario AI Competition 2009, jossa pitää kehittää ”ohjain”, joka selviää Super Mario Bros -tyylisessä pelissä mahdollisimman monta asteittain vaikeutuvaa kenttää läpi.

Kilpailu pohjaa muokattuun Markus Perssonin Infinite Mario Bros -peliin (Java), joka on Javalla toteutettu versio Nintendon Super Mario Bros -pelistä, lisättynä loppumattomilla satunnaisesti luoduilla kentillä. ”Ohjaimen” on tietyissä ajanjaksossa päätettävä minkä toiminnon suorittaa, vastatakseen peliympäristön haasteisiin. Kilpailua varten kehittäjillä on saatavilla pelin lähdekoodit, joiden pohjalta tekoälyn toimintaa voi kehittää.

Asiaa voi lähestyä varmasti monella tapaa ja Robin Baumgarten visualisoi Youtube-videoissa omaa ratkaisuaan muutamalla videolla: Infinite Mario AI – Long Level ja Infinite Mario AI: Mario follows Mouse, jossa Mario seuraa hiiren kursoria. Robin kertoo redditin ketjussa, että hyödyntää pelikehyksen tekniikkaa muun muassa fysiikkamoottorin osalta luoden vastaavan tilan ja suunnittelemaan sekunnin tai pari eteenpäin.

Pelimoottori on sinällään armollinen kehittäjille, sillä ilmeisesti se ei tarjoa mahdollisuutta Super Marioista löytyvien piilotettujen tiilien ja jekkujen toteuttamiseen. Siinä vasta olisikin haastetta. Mario AI Competition 2009 -kilpailu alkoi toukokuussa ja päättyy kaksivaiheisesti elokuun puolivälissä ja syyskuun alussa. Toivottavasti kilpailutöistä tulee samanlaisia video-otoksia, kuin Robinin tuotoksista.

Jos pelaaminen on liian helppoa, rakenna Guitar Hero -botti

Pelien pelaaminen on usein kovin mekaanista ja loppujen lopuksi kohtalaisen yksinkertaista, mutta viihdyttävää ajanvietettä. Jos pelaaminen kuitenkin tarjoaa liian vähän haasteita, kannattaa esimerkiksi opettaa tietokone pelaamaan. Eräänä päivänä Xbox 360:lla Guitar Hero 2:sta pelatessaan Kevin Herron päätti toteuttaa ainakin yhden jänskän projektin sinä kesänä ja lopputuloksena oli Tom Hannu -Guitar Hero botti. Tietokoneohjelma, joka ensin opettelee Guitar Hero -pelin kappaleen ja tämän jälkeen soittaa sen.

Tom Hannun rakenne on selkeä ja toteutuskin kohtalaisen selkeä. Kokonaisuus jakautuu kahteen osaan: kitaraohjaimeen liitettyyn rautapuoleen ja kappaleiden opetteluun ja soittamiseen liittyvään ohjelmistopuoleen. Kitaraohjaimeen liittyvä puoli on toteutettu käyttämällä Parallax BASIC Stamp 1 Project -mikrokontrolleria, jossa on 4 MHz prosessori, 16 tavua muistia ja 8 I/O liitintä. Käytännössä mikrokontrolleri siis liitetään peliohjaimen nappeihin, jonka jälkeen voidaan välittää komentoja tietokoneelta sarjaliitäntää käyttäen ja painella soittimen nappeja.

Soittavan botin ohjelmistopuoli koostuu kolmesta erillisestä ohjelmasta: silmät, aivot ja sormet. ”Tomin silmät” -ohjelma toimii konenäkönä, jolla analysoidaan harjoitusmoodissa pelin soittovideo ja kerätään talteen kappaleen nuottikartta. ”Tomin aivot” -ohjelmalla tarkastellaan kerätty nuottikartta kappaleesta ja samalla voidaan tarvittaessa muokata nuotteja. Itse soittaminen tapahtuu ”Tomin sormet” -ohjelmalla, jolla voidaan lähettää napin painallus Xbox 360:n kitarasoittimelle ja soittaa kappaleen nuottikartta.

Tom Hannun projektisivuilta löytyy kuvia Tom Hannu -botista ja videoita ohjelmien toiminnasta. Lopputulos näyttää hyvältä, joskin onko pelaaminen enää hauskaa, jos tietokone tekee sen puolestasi. Sivuilta on lisäksi saatavilla lähdekoodit Tomin silmille ja aivoille, mutta Tomin sormia ei ole saatavilla. Ohjelmat on toteutettu käyttämällä Mac OS X:n frameworkkeja ja Xcodea.

Oivaltavaa ja varmasti erittäin opettavaista harrastelua pelaamisen sivutuotteena.