Erottajankatu 19 B 7 00130 HKI
0405968382
info@oodles.fi

Bob the HR guy-projekti, osa 2: Itsenäisesti oppiva tekoäly

Johdanto

Tässä osassa käydään läpi tekoälytyöntekijä Bob the HR guyn keskusmuistin toimintaa ja tarkoitusta. Lisäksi kerron, kuinka tekoälytyöntekijästä voi tehdä myös opiskelijan, joka osaa itsenäisesti opiskella paremmaksi työssään.

Näissä ensimmäisissä osissa projektin esittelyä käyn läpi tekoälytyöntekijän toimintaa ylätasolla, eli mitä on hyvä ottaa huomioon suunnittelussa yms. Myöhemmässä vaiheessa yritän ehtiä tekemään pari kirjoitusta siitä, miltä asiat näyttävät syvemmällä pellin alla.

Mikäli klikkasit itsesi tähän blogiin etkä tiedä yhtään mistä projektista on kyse, voit lukea ensimmäisen osan projektin esittelystä täältä.

Mihin keskusmuistia käytetään?

Tekoälytyöntekijän keskusmuistin tärkein tarkoitus on antaa tekoälytyöntekijälle paikka, josta tarkistaa, onko sen tekemä päätös oikea vai onko kyseessä ns. hallusinaatio, joka näyttää tekoälytyöntekijälle itselleen hyvältä vastaukselta mutta oikeasti mentiin metsään ja lujaa.

Miksi tekoäly tuottaa virheellisiä vastauksia eikä huomaa isojakaan virheitä, eikö sen pitänyt olla älykäs? Kun kyseessä on chatGPT:n kaltainen LLM (large language model) tekoäly, emme valitettavasti puhu sellaisista tekoälyistä, kuin mitä elokuvissa näkee. LLM-algoritmit eivät tee periaatteessa mitään muuta, kuin korkeatasoista ennustavaa tekstintuotantoa. Ovat siis eräänlaisia premium puppugeneraattoreita. ChatGPT:n kaltaiset puppugeneraattorit käyttävät suurta määrää dataa, esimerkiksi tekstikirjastoja, kouluttaakseen itseään tuottamaan laadukkaan näköistä tekstiä eri kielillä. Niiden sisäiset algoritmit analysoivat sanat paitsi yksilöllisesti myös kontekstissaan lauseen tai lauseiden sisällä. Tämä tarkoittaa, että ne eivät katso vain yksittäistä sanaa, vaan myös sitä, miten se liittyy muihin sanoihin ympärillään.


Bobin vastaus näyttää siltä, kuin se vastaisi juuri minulle. Oikeasti taustalla pyörivä chatGPT ei yhtään tiedä, mistä tuossa vastauksessa on kysymys. Sen mielestä se vain näytti kivalta, joten palautti sen.

Kun LLM-malli on koulutettu suurella määrällä tekstiä, se oppii ennustamaan, mikä sana tai lauseen osa todennäköisimmin seuraa tiettyä tekstiketjua. Käytännössä kun annat LLM:lle syötteen, se käyttää koulutuksensa aikana oppimaansa tietoa luodakseen johdonmukaisen ja luonnollisen kuulostavan vastauksen. Tämä vastaus voi olla juuri se mitä haettiin, ei se mitä haettiin mutta periaatteessa kuitenkin oikea vastaus, tai sitten se voi olla aikaisemmin mainittu hallusinaatio. Hallusinaatioiksi kutsutaan LLM-mallien tuottamia vastauksia, joissa on näkyvä tai näkymätön virhe, joka kumpuaa LLM-mallista itsestään ja sen harjoitteludatasta.

LLM-mallien hallusinaatioissa ei ole kyseessä virhe samalla tavalla kuin koodissa. Ennustava tekstintuottaja ei yritä tehdä mitään muuta, kuin kivan näköistä tekstiä, joka näyttää siltä, että se voisi sopia vastaukseksi. Jos siltä esim. kysyy ”Minä vuonna Suomesta tuli itsenäinen?”, se kaivelee opetusdataansa, mikäli sieltä löytyy sopivaa dataa niin kiva, saat todennäköisesti (mutta et varmasti) oikean vastauksen. Jos sopivaa dataa ei löydy, puppugeneraattori kehittelee kivan oloisen vastauksen jostain muusta datasta. Koska se ei oikeasti tajunnut koko kysymystä. Se vain yrittää vastata parhaansa mukaan eikä se anna faktojen puutteen häiritä.

Alkoiko pelottamaan, että LLM tekoälyt saattavat olla käyttökelvottomia, koska niissä on niin iso riski täysin vääristä vastauksista? Ei hätää, ne eivät missään nimessä ole käyttökelvottomia. Kun tietää niiden heikkoudet, pystyy myös tekemään paljon sen eteen, että käyttää niitä juuri oikeissa paikoissa ja minimoi riskit virheistä käyttämällä keskusmuistia apunaan. Tekoälyjä voi myös opettaa tuottamaan paremmin juuri tietynlaisia vastauksia mutta tässä projektissa käytämme tässä vaiheessa täysin muokkaamatonta chatGPT-rajapintaa. Isokaan määrä LLM-mallien opettamista ei korvaa keskusmuistin tarvetta, jos haluaa korkean varmuuden vastausten oikeellisuudesta. Keskusmuistissa tieto pysyy eriteltynä, LLM-mallin sisällä se hukkuu ja sekoittuu massaan. Seuraavaksi käyn läpi, mitä Bobilla on muistiinsa tallennettuna ja miten muisti auttaa tekoälyä pysymään totuuksien polulla.

Miten keskusmuistia käytetään

Koska Bob tekee Oodlesilla HR henkilön hommia, sen muistiin on tallennettu muun muassa asiakkaiden yhteystietoja, satojen ihmisten CV-tiedot, tietoa IT-alasta (softia, koodikieliä, koodauskäytäntöjä, hintatietoja jne.) ja tietoja rekryhauista. Bob käyttää näitä tietoja arvioidakseen muun muassa kandien sopivuutta eri hakuihin ja hoitaakseen hintaneuvotteluja.

Käydään läpi Bobin tyypillinen työpäivä ja kuinka ja milloin se käyttää keskusmuistiaan eri tehtävissä:

Bobin aamut alkavat sillä, että se katsoo sähköpostinsa läpi ja merkkaa itselleen muistiin saapuneet rekryhaut. Tämän jälkeen se menee nettiin ja katsoo läpi alan palveluista mitä hakuja niistä löytyy. Löytäessään uusia hakuja, se merkkaa ne muistiinsa. Mikäli se huomaa, että vanha haku on hävinnyt, se merkkaa muistiinsa haun loppuneen. Näiden hakujen tarkistuksen aikana se käyttää keskusmuistiin merkittyjä tietoja it-alan hakujen sisällöistä, hinnoista ja yrityksistä. Keskusmuistissa olevien tietojen ja hakutekstin perusteella se luokittelee haut joko jatkoon meneviksi, tai sitten se hylkää ne esimerkiksi siksi, että niissä on huono hinta.

Bobin huomatessa hauissa itselleen uutta tietoa (esimerkiksi softan nimen jota se ei tunnista), se tekee itselleen opiskelumerkinnän, eli että aiheeseen pitää tutustua tarkemmin. Käytyään kaikki haut läpi se siirtyy opiskelutilaan ja lähtee nettiin tutkimaan, mitä opiskelulistalla olevat asiat tarkoittavat. Ensin se etsii tiedon siitä, mihin kategoriaan jokin asia todennäköisesti liittyy (kategoria voi olla esimerkiksi ’ohjelmointikieli’, ’pilvipalvelu’, ’ohjelmisto’ jne.). Tämä tapahtuu yksinkertaistetusti kysymyksen muodossa, jonka se esittää itselleen: ”Mihin kategoriaan asia X kuuluu?” ja johon sen tulee löytää netistä vastaus. Kun vastaus on löytynyt, se tekee tarkistuskierroksen, jossa se kysyy itseltään ”Kuuluuko asia X kategoriaan Y” ja menee sen jälkeen uudestaan nettiin etsimään vastausta. Jos netti kertoo, että vastaus on yli 80% todennäköisyydellä oikein, Bobilla on lupa tallentaa uusi tieto keskusmuistiinsa.

Koska Bob hakee vastauksia kysymyksiinsä netistä eikä yritä vain kehitellä niihin kivanoloisia vastauksia ChatGPT:n omista datoista (jonka uusimmat tiedot ovat syyskuulta 2021), sillä on erittäin hyvät mahdollisuudet tuottaa vastaus, joka sisältää juuri oikeaa tietoa. Mikäli se käyttäisi vain chatGPT:n tietomassoja, se vastaisi väärin varmaan vähintään 50% ajasta, koska tietoa on niin paljon ja se on osittain vanhaa. Käyttäessään netistä löytyvää tietoa päätietolähteenään, se käyttää hyvin pientä ohjeteksimassaa lopullisen vastauksen tuottamiseen ja siksi sen mahdollisuudet vastata ”oikein” (eli generoida vastaus, joka sisältää oikeaa tietoa vaikka se ei oikeasti ymmärrä mistä on edes kysymys) nousevat kymmenillä prosenteilla.

Arvioni on, että tämmöisen lähestymistavan käyttö tiedon opiskelussa tuottaa tässä vaiheessa oikeita vastauksia oppimiseen noin 90-95% tarkkuudella. Parempiinkin prosentteihin pääsee heti vaan, kun ehdin rakentamaan Bobille lisää työkaluja auttamaan sitä hakemaan tietoa netistä. Mitä enemmän Bob oppii, sitä harvemmin se tarvitsee enää uutta tietoa netistä (koska se voi netin sijaan käyttää omaa keskusmuistiaan) ja riski vääristä kategorisoimisista pienenee. Kun kyseessä on sanavaraston parantaminen, ei muutama virheellisesti kategorisoitu sana myöskään pääse aiheuttamaan mitään sen suurempaa vahinkoa. Yksittäisten sanojen arvo eri päätöksissä joita Bob tekee on alle promillen luokkaa.

Jatketaan Bobin työpäivällä. Opiskelun jälkeen Bob on valmis vertailemaan rekryhakuja vapaiden kandien tietoihin. Ennen vertailua Bobin sisäinen Bob-moduuli Bob the Parser on parsinut läpi ehdokkaiden tiedoista kaiken mahdollisen mistä on hyötyä valinnoissa. Tämmöistä tietoa on muun muassa milloin he ovat tulleet alalle, minkä alan firmoissa he ovat olleet töissä (tämänkin tiedon Bob pystyy tarkistamaan netistä CV tietojen pohjalta), mitä he osaavat ja milloin heihin on viimeksi oltu yhteyksissä. Koska Bob on käynyt välissä opiskelemassa, sen voi tehdä tämän osuuden ilman pelkoa suurista virheistä, sillä sen täytyy tehdä päätöksensä vain niiden tietojen perusteella, jotka sillä on vahvistettuna keskusmuistissa. Tämä valintaprosessi on Bobin tärkeimpiä töitä, siksi se tehdään ennalta vahvistetun tiedon pohjalta. Lopputuloksena on top 10-lista parhaista ehdokkaista per haku.

Ehdokkaiden valinnan jälkeen Bob voi joko itse laittaa näille viestiä ja kysyä ovatko vapaita ja kiinnostuneita uusista projekteista (Bob uudelleenkirjoittaa ja anonymisoi haut ennen näitä tiedusteluja, jotta asiakastiedot pysyisivät salassa), tai sitten se voi laittaa minulle samat tiedot sähköpostilla tai Discordiin ja minä hoidan yhteydenpidon.

Odotellessaan vastauksia kandeilta, Bob käy läpi muistissaan olevia asioita ja yrittää löytää lisää asioita, joista sillä ei ole varmaan tietoa. Kun sellaista löytyy, se ryhtyy jälleen opiskelemaan. Mikäli joku kandeista ilmoittaa olevansa kiinnostunut jostain projektista, Bob voi jälleen kerran ammentaa muistiaan ja ryhtyä neuvottelemaan heidän kanssaan esimerkiksi hinnoista.


Pieni pätkä hintanevuotteluharjoituksista, joita käymme Bobin kanssa tasaisin väliajoin. Kokonaisuus on yhdistelmä lukittua dataa ja pinnalle kuorrutettua puppugeneraattoria. Näyttää hyvältä ja vapaalta keskustelulta, todellisuudessa on taustalta tarkkaan ohjattu kokonaisuus. Bob osaa vaihtaa äänensävyä ja kirjoitustapaa sen mukaan, onko kyseessä vapaa-ajan keskustelu vai työhön liittyvät asiat.

Loppusanat

Oppivan teköälytyöntekijän suurimpia hyötyjä on se, että se on jatkuvasti erittäin ajan tasalla kaikesta. Toisin kuin perinteiset alaan liittyvät softat tai palvelut. Se tietää kandien työhistoriasta ja alakohtaisesta osaamisesta enemmän kuin mitä normaali HR-henkilö ikinä ehtisi oppimaan. Se muistaa tarkistaa ihmisten uusimmat sähköpostit ja puhelinnumerot. Se jaksaa pistää mieleensä vanhat ja uudet softat, koodikielet, verkkopalvelut ja paljon muuta mistä on hyötyä rekryvalinnoissa. Se osaa valita sopivia kandeja top-10 listaan paljon tarkemman kokonaiskuvan perusteella, kuin mitä yksittäinen HR-henkilö ehtisi tekemään, jos ehdokkaita on useita satoja tai tuhansia.

Onko ihminen sitten turha osa prosessia, jos kone on noin tehokas ja tarkka? Vastaus on, että ihminen ei missään nimessä ole turha osa prosessia. Hänelle jää edelleen se kaikista tärkein osuus kokonaisuutta, johon hänellä on vihdoinkin aikaa, koska kone hoiti alkukarsinnan.

Ihmisen tehtäväksi jää arvioida, ketkä top-10 listan ehdokkaista ovat henkilönä sellaisia, että he sopisivat hakijaorganisaatioon. Tämä arvio on HR-henkilön työn tärkeintä ydintä mutta monesti sille ei jää tarpeeksi aikaa, jonka seurauksena osaamisen puolesta pätevät mutta luonteen puolesta epäsopivat kandit saattavat vahingossa päästä eteenpäin asiakkaiden haastatteluihin asti. Josta voi pahimmillaan seurata menetetty asiakkuus, mikäli haastattelijalla ja kandilla menee kunnolla sukset ristiin.

Seuraavassa osassa käydään läpi Bobin verkko-opiskelun ytimessä toimivia Bob the Scraperia ja Bob the Browseria.

Mikäli tämän projektin eri vaiheet kiinnostavat, pistä Linkkariprofiilini tästä seurantaan, niin eiköhän sieltä tule jotain notifikaatiota aina sitä mukaan, kun saan uusia osia projektiesittelystä julkaistua.

Tommi Bäckgren | 21.7.2023

Kirjoittaja on sarjayrittäjä, joka tykkää myynnin ohessa istua yöt testailemassa uusimpien teknologisten innovaatioiden soveltuvuutta käytännön ratkaisuihin.


Tein Midjourneyllä Bobille Discord-hahmon.