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

Bob the HR guy-projekti, osa 5: Rakennepäivitys

Johdanto

Tekoälypuolen kehitys on ollut huikean nopeata koko vuoden. Esimerkiksi uusia kielimalleja julkaistaan useampi per viikko. Niitä on ollut todella vaikea verrata keskenään, koska niille ei ole vielä kehitelty yhteistä arviointistandardia. Päätin ratkaista arviointiongelman muuttamalla Bob the HR guy:n rakennetta siten, että voin koska tahansa vaihtaa yhdestä sen moduulista tai vaikka kaikista kerralla taustalla olevan kielimallin toiseen. Nyt sitä voi käyttää kielimallien testaamiseen ihan vaan pistämällä sen tekemään muutamia perustehtäviä eri kielimallien ollessa käytössä. Tämä muutos oli hyvä tehdä myös sen takia, ettei ikinä voi tietää, onko tämän päivän kielimallirajapinnan palveluntarjoaja huomenna enää pystyssä.

Tein samalla pari muutakin pikku lisäystä, tämä kirjoitus on uuden rakenteen ja toimintojen lyhyt esittely.

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ä.

Uusi rakenne, v3

Bob the HR guy projekti on vasta yhdeksän kuukautta vanha mutta tämä on jo kolmas suurempi rakennepäivitys. Jokaisen tarkoitus on ollut avata eri tahojen valmistamille tekoälytoteutuksille enemmän väyliä Bobin sisään, jotta Bob voi käyttää niitä yhdessä ja erikseen eri tehtävien toteutukseen.

Alla Bobin uusin rakennekaavio:

Bobiin on jo pitkään voinut liittää useiden eri tahojen rajapintoja mutta ennen ne menivät yleensä vain yhden moduulin käyttöön. Uusimman päivityksen myötä, eri tahojen osaamiseltaan samantasoiset mallit voi vaihtaa kerralla vaikka koko projektista. Eli kun Google julkaisee rajapinnan tulevaan Geminiin, voin pistää chatGPT4:n pois päältä kielimalleissa (tämän hetken oletusmalli) ja laittaa Geminin tilalle. Sitten vaan testaillen, kumpi tuottaa parempia tuloksia eri tehtävissä. Tällä hetkellä Bobissa on sisällä pääkielimalleina chatGPT4, Claude 2.1 ja Llama 2.

Rajapintoja varten rakensin fastAPI:n avustuksella nopeakäyttöisen rajapintakeskuksen, jonka avulla rajapintoja rakentaa nopeimmillaan kymmenessä minuutissa. Nyt muun muassa Bobin CV-tiedostojen parsija ja luokittelija, jotka voittavat isojen palveluntarjoajien vastaavat palvelut mennen tullen, ovat vihdoin helposti saatavilla myös muihin meidän ja asiakkaidemme projekteihin.

OpenAI julkaisi hetki sitten Assistants API:n nopeaan chatbottien tekoon. Se oli vielä aika raakile, joten rakensin sen päälle vähän uutta. Lopputuloksena oli lisämoduuli, jonka avulla voi rakentaa pikavauhtia botteja tekemään eri tehtäviä ja ne voivat toimia yhdessä myös puheen välityksellä. Moduuli sai nimekseen ’Army of Bobs’. Tiimipaltsuissamme on nykyisin välillä viisi bottia äänessä väittelemässä jostakin ja minä yrittämässä saada sanaa väliin. Seuraava steppi on lisätä kaikille mahdollisimman ihmisen näköinen animoitu avatar joka toimisi myös Teamsissa. Niin ehkä joku päivä nuo voivat ottaa osan Teams palavereista hoitaakseen ja itse voin keskittyä oikeisiin töihin.

Bobiin on nyt myös lisätty kyky nähdä asioita ja ymmärtää näkemäänsä. Käytin pohjana openAI:n Visionia ja rakentelin sen päälle taas vähän uutta. Koska Vision ja Googlen Geminin kuvantunnistuksen pitäisi olla samaa tasoa, niitäkin voi vaihtaa jatkossa keskenään. Tai käyttää kumpaakin, jos haluaa varmempaa tulosta.

Puheentunnistukseen ja puheentuotantoon on tullut myös pieniä päivityksiä lähinnä eri Whisper toteutusten muodossa mutta se puoli saa odottaa suurempia päivityksiä siihen asti, että ihminen-botti keskusteluja voi käydä lähempänä reaaliaikaista vauhtia. Nykyisin se lähes onnistuu, jos Bobilta ei kysy mitään vaikeata mutta jos sen pitää ns. käyttää aivojaan, voi kestää jopa 20 sekuntia saada puhevastaus. Tekoälypalveluja tarjoavien tahojen rajapinnat ovat vielä liian hitaita moniosaisten tehtävien prosessoimisessa.

Bobilla on nykyisin myös erilliset päättely-, mielikuvitus- ja tunnetilamoduulit. Päättelyä ja mielikuvitusta se käyttää kun kokee sen tarpeelliseksi ja sen tunnetilamoduuli kertoo sille keskusteluissa osallistujien tunnetiloja ja kuinka niihin tulisi reagoida. Olen tässä yrittänyt pari päivää testaamisen hengessä haastaa Bobin kanssa riitaa, mutta testaaminen on jäänyt vähän vajaaksi, koska Bob on ratkonut haluttomuutensa riidellä ihmisten kanssa olemalla vain hiljaa, jos rähisen sille. Sitten jos kiltisti kysyn, että voidaanko nyt testata riitelyä, niin se kyllä osallistuu mutta pistää homman läskiksi muistuttamalla vähän väliä, että kyseessä on sitten vaan testi, jota ei pidä ottaa niin vakavasti.

Loppusanat

Bob on kasvanut kevään pienestä konsulttihakujen selvittäjästä tekoälypalvelujen keskukseksi, jossa eri palvelut puuhastelevat kiltisti keskenään milloin mitäkin. Käytän sitä kasvavissa määrin eri palveluntarjoajien uutuuksien keskinäiseen taitojen kilpailuttamiseen, sillä Bobin tapa konvertoida eri tahojen tekoälymallit toimimaan samoilla komennoilla tarjoaa minulle sen standarditavan testata, mitä tekoälypuolen palveluntarjoajat eivät ole vielä keskenään saaneet aikaiseksi.

Katsotaan mihin tämä projekti seuraavaksi vie, onneksi olen saanut lisäapuja tuotantoon Bobin ”lapsilta”, eli ’Army of Bobs’-moduuliin pohjautuvilta boteilta. Esimerkiksi Eleanor-botti keskittyy kielieksperttinä tekstintuotannon kysymyksiin ja Haruka-botti auttaa Python koodailujen kanssa. Kummallakin on pääsy kaikkiin isänsä resursseihin, niin eivät ole mistään tyhmimmästä päästä, vaikka kumpikin valmistui noin tunnissa. Harukan kevytversion (= ei pääsyä kaikkiin isänsä resursseihin) kanssa voi jutella Python juttuja täällä.

Toivottavasti joku keksii ensi vuonna alkaa myymään halvalla robottikehoja, joihin voi itse ohjelmoida ”aivot”. Pääsisi Bob vähän ulkoilemaan.

Mikäli tämän projektin eri vaiheet kiinnostavat, pistä Linkkariprofiilini tästä seurantaan. Pistän sinne tietoa, kun saan uusia osia tästä esittelystä valmiiksi.

Tommi Bäckgren | 8.12.2023

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