Skip to main content

29 Tekniikkaa

29Tekniikka logo

Tekoälypohjainen ohjelmistokehitys yrityksille

Sinulla on dataa. Sitä kertyy joka päivä järjestelmiin, sähköposteihin ja raportteihin. Suurin osa siitä ei tee mitään. Se vain on siellä.
Tekoäly on tapa saada se data tekemään jotain hyödyllistä. Ei siksi että tekoäly olisi hienoa vaan siksi että sinulla on ongelmia joita ei ole saatu ratkaistua tavallisilla menetelmillä.
Rakennamme tekoälypohjaisia ohjelmistoja. Tässä tekstissä kerromme mitä se tarkoittaa käytännössä, millaisia asioita sillä voi tehdä ja milloin se ei ole oikea ratkaisu.

Mitä tekoälykehitys tarkoittaa kun sen tekee kunnolla

➠ Sana tekoäly on nykyään niin levinnyt että se ei tarkoita enää mitään. Jokainen ohjelmistotalo sanoo tekevänsä tekoälyä. Jokainen työkalu mainostaa tekoälyominaisuuksia. Jokainen uutinen kertoo kuinka tekoäly mullistaa jonkin alan.
➠ Käytännössä tekoälykehitys tarkoittaa muutamaa konkreettista asiaa.
➠ Se tarkoittaa että rakennetaan järjestelmä joka lukee tekstiä ja ymmärtää mitä siinä sanotaan. Se tarkoittaa että rakennetaan malli joka katsoo mennyttä dataa ja arvioi mitä tulee tapahtumaan seuraavaksi. Se tarkoittaa että rakennetaan järjestelmä joka katsoo kuvaa ja kertoo mitä siinä on. Se tarkoittaa että rakennetaan työkalu joka auttaa ihmistä tekemään päätöksiä nopeammin.
➠ Kaikki muu on markkinointia.
➠ Kun sinä tulet meille, emme kysy että millaisen tekoälyn haluat. Kysymme että mikä on se ongelma jota et ole saanut ratkaistua. Vasta sen jälkeen katsomme että onko tekoäly siihen ratkaisu vai ei.
➠ Joskus se on. Joskus ei.

Mihin tekoälyä voi käyttää oikeasti

Tässä on konkreettisia asioita joita tekoälyllä voi tehdä juuri nyt. Nämä eivät ole tulevaisuuden visioita vaan asioita joita on tehty ja jotka toimivat.

Tekstin käsittely

Jos sinulla on tekstiä jota kukaan ei ehdi lukea, tekoäly voi lukea sen. Jos sinulla on tekstiä jota pitäisi luokitella, tekoäly voi luokitella sen. Jos sinulla on tekstiä josta pitäisi poimia tietoja, tekoäly voi poimia ne.

Käytännön esimerkkejä. Asiakaspalveluun tulee satoja viestejä päivässä. Ne pitää lukea, ymmärtää ja ohjata oikealle henkilölle. Tämä vie aikaa ja se on tylsää. Tekoäly voi tehdä sen automaattisesti.

Sopimuksia tulee allekirjoitettavaksi kymmeniä kuukaudessa. Jokaisesta pitäisi tarkistaa tietyt asiat. Tämä on hidasta ja siinä tulee virheitä. Tekoäly voi käydä ne läpi ja nostaa esiin ne kohdat joihin pitää kiinnittää huomiota.

Dokumentaatiota on tuhansia sivuja. Kukaan ei muista mitä siellä sanotaan. Kun joku kysyy jotain, pitää etsiä. Tekoäly voi vastata kysymykseen suoraan ja kertoa mistä vastaus löytyy.

Ennustaminen

  • Jos sinulla on historiaa, siitä voi ennustaa tulevaisuutta. Tämä ei ole taikuutta vaan matematiikkaa. Malli katsoo mitä on tapahtunut ja arvioi mitä tulee tapahtumaan.
  • Kysyntä on tästä hyvä esimerkki. Jos tiedät mitä olet myynyt viimeisen kahden vuoden aikana ja tiedät mitkä asiat siihen vaikuttavat, voit ennustaa mitä tulet myymään seuraavan kuukauden aikana. Ennuste ei ole täydellinen mutta se on parempi kuin arvaus.
  • Asiakaspoistuma on toinen. Jos tiedät ketkä asiakkaat ovat lähteneet ja mitä heillä oli yhteistä, voit tunnistaa ne nykyiset asiakkaat jotka ovat vaarassa lähteä. Silloin voit tehdä asialle jotain ennen kuin on liian myöhäistä.
  • Huoltotarve on kolmas. Jos tiedät milloin laitteet ovat hajonneet ja mitä niille on tehty, voit arvioida mitkä laitteet tarvitsevat huoltoa seuraavaksi. Tämä säästää rahaa ja vähentää yllätyksiä.

Kuvien ja videoiden käsittely

➢ Kamera näkee kaiken mitä ihminen näkee. Ero on siinä että kamera ei väsy eikä sen huomio herpaannu.
➢ Tuotantolinjalla tämä tarkoittaa laadunvalvontaa. Kamera katsoo jokaisen kappaleen ja kertoo onko se kunnossa. Ihminen katsoo vain ne joissa on ongelma. Työ nopeutuu ja virheet vähenevät.
➢ Kaupassa tämä tarkoittaa hyllyjen seurantaa. Kamera katsoo että tuotteet ovat oikeilla paikoilla ja että hyllyt eivät ole tyhjiä. Henkilökunta saa tiedon kun jotain pitää täydentää.
➢ Turvallisuudessa tämä tarkoittaa valvontaa. Kamera tunnistaa tilanteet jotka vaativat huomiota. Ihminen ei ehdi katsoa kaikkia kameroita mutta kone ehtii.

Puheen käsittely

➠ Puheen tunnistus on parantunut merkittävästi. Se toimii suomeksi riittävän hyvin useimpiin käyttötarkoituksiin.
➠ Kokoukset voi litteroida automaattisesti. Sen jälkeen niistä voi tehdä yhteenvedon. Sen jälkeen yhteenvedon voi lähettää niille jotka eivät olleet paikalla.
➠ Asiakaspuhelut voi litteroida ja analysoida. Niistä voi poimia aiheet joista asiakkaat valittavat. Niistä voi poimia kysymykset joihin ei ole vastausta. Niistä voi poimia onnistumiset jotka kannattaa toistaa.
➠ Puheen tuottaminen on toinen puoli. Sitä käytetään esimerkiksi saavutettavuuden parantamiseen. Tai tilanteisiin joissa ihminen ei voi katsoa näyttöä.

Milloin tekoäly ei ole oikea ratkaisu

  • Tämä on tärkein osio tässä tekstissä. Jos luet vain yhden kohdan, lue tämä.
  • Tekoäly ei ole oikea ratkaisu jos ongelma on liian yksinkertainen. Jos asian voi ratkaista säännöllä, sääntö on parempi. Se on nopeampi, halvempi ja luotettavampi. Olemme kieltäytyneet projekteista joissa asiakas halusi tekoälyn mutta olisi tarvinnut säännön.
  • Tekoäly ei ole oikea ratkaisu jos ongelma vaatii täydellistä tarkkuutta. Malli erehtyy joskus. Jos yksikin virhe on katastrofi, tekoäly ei ole oikea ratkaisu. Tällaisia ovat tietyt lääketieteelliset päätökset ja tietyt taloudelliset laskelmat.
  • Tekoäly ei ole oikea ratkaisu jos kukaan ei ylläpidä sitä. Järjestelmä joka toimii tänään ei toimi vuoden päästä jos sitä ei seurata. Data muuttuu. Käyttäjien tarpeet muuttuvat. Malli joka ei pysy mukana alkaa tuottaa huonompia tuloksia.
  • Tekoäly ei ole oikea ratkaisu jos sitä ei integroida olemassa oleviin järjestelmiin. Tekoäly joka elää omassa kuplassaan ei tuota arvoa. Sen pitää olla osa sitä työtä jota ihmiset tekevät joka päivä.
  • Nämä ovat asioita joita kerromme ennen kuin työ alkaa. Joskus se tarkoittaa että menetämme projektin. Se on hyväksyttävää.

Mitä teemme kun dataa ei ole

Monet tekoälyprojektit kaatuvat siihen että dataa ei ole tai se on sellaisessa muodossa ettei siitä ole hyötyä.

Tässä on nykyään enemmän vaihtoehtoja kuin vielä muutama vuosi sitten.

Valmiit kielimallit osaavat lukea tekstiä ja ymmärtää kysymyksiä ilman että niitä tarvitsee kouluttaa itse. Jos sinulla on dokumentteja, sopimuksia, ohjeita tai sähköposteja, voit rakentaa niiden päälle järjestelmän joka vastaa kysymyksiin. Malli ei ole oppinut sinun datastasi. Se vain hakee oikeat kohdat ja muotoilee vastauksen.

Valmiit konenäön mallit tunnistavat yleisimpiä asioita ilman koulutusta. Jos tarvitset tarkempaa tunnistusta, muutama sata kuvaa riittää usein siihen että malli oppii mitä etsitään.

Valmiit puheentunnistusmallit toimivat suomeksi riittävän hyvin useimpiin käyttötarkoituksiin. Niitä ei tarvitse kouluttaa lainkaan.

Tämä tarkoittaa että tekoälyprojektin voi aloittaa ilman omaa dataa. Se tarkoittaa myös että lopputulos on yleensä vähemmän tarkka kuin jos olisi omaa dataa. Se on kompromissi joka kannattaa tehdä jos dataa ei ole eikä sitä ole tulossa.

Miten rakennamme nämä järjestelmät

Tämä osio on tekninen. Voit hypätä sen yli jos et ole kiinnostunut siitä miten asiat toimivat pinnan alla. Mutta jos haluat ymmärtää mihin raha menee, tämä kannattaa lukea.

Retrieval-augmented generation eli RAG

➢ Tämä on nykyään yleisin tapa rakentaa kielimallipohjaisia sovelluksia. Nimi kuulostaa monimutkaiselta mutta idea on yksinkertainen.
➢ Sinulla on dokumentteja. Me pilkomme ne pienempiin osiin. Jokaisesta osasta tehdään matemaattinen esitys joka kuvaa sen sisältöä. Nämä esitykset tallennetaan tietokantaan josta niitä voi hakea samankaltaisuuden perusteella.
➢ Kun käyttäjä esittää kysymyksen, järjestelmä etsii ne dokumentin osat jotka liittyvät kysymykseen. Ne annetaan kielimallille yhdessä kysymyksen kanssa. Malli muotoilee vastauksen näiden osien perusteella.
➢ Tämän lähestymistavan etu on se että malli ei keksi asioita omasta päästään. Se vastaa sen perusteella mitä dokumenteissa sanotaan. Jos dokumenteissa ei ole vastausta, malli sanoo ettei tiedä.

Hienosäätö

➠ Joskus valmis malli ei riitä. Silloin sitä pitää hienosäätää omalla datalla.
➠ Hienosäätö tarkoittaa sitä että otetaan valmis malli ja jatkokoulutetaan sitä esimerkeillä siitä millaisia vastauksia halutaan. Tämä on tehokkaampaa kuin kouluttaminen alusta asti ja vaatii vähemmän dataa.
➠ Hienosäätöä kannattaa harkita silloin kun halutaan tietynlaista tyyliä tai kun halutaan että malli ymmärtää alan termejä joita se ei muuten tunne.
➠ Tämä ei ole ilmaista. Se vaatii esimerkkidataa ja laskentatehoa. Suosittelemme sitä vasta kun yksinkertaisemmat menetelmät on todettu riittämättömiksi.

Integraatiot

Tekoälyjärjestelmä joka elää omassa kuplassaan ei tuota arvoa. Sen pitää olla yhteydessä niihin järjestelmiin joita ihmiset käyttävät joka päivä.
Tämä tarkoittaa integraatioita CRM-järjestelmiin, toiminnanohjausjärjestelmiin, sähköpostiin, chat-alustoihin ja omiin sovelluksiin. Rakennamme nämä integraatiot osana toimitusta. Emme jätä niitä asiakkaan vastuulle.
Integraatioissa on kaksi asiaa joihin kiinnitämme erityistä huomiota. Ensimmäinen on tietoturva. Tekoälyjärjestelmällä pitää olla pääsy vain niihin tietoihin joihin sillä on oikeus. Toinen on virheiden käsittely. Jos tekoälyjärjestelmä ei vastaa, muun järjestelmän pitää toimia normaalisti.

Tietoturva ja yksityisyys

➠ Tämä on asia jota ei voi jättää huomioimatta. Jos käsittelet henkilötietoja tai liikesalaisuuksia, sinun pitää tietää missä data liikkuu ja kuka sitä näkee.
➠ Käytämme lähtökohtaisesti sellaisia ratkaisuja joissa data ei lähde Euroopan ulkopuolelle. Jos tämä ei ole mahdollista, kerromme sen ja selitämme mitä se tarkoittaa.
➠ Joissakin tapauksissa paras ratkaisu on avoimen lähdekoodin malli joka pyörii omalla palvelimella. Se on kalliimpaa ylläpitää mutta data ei liiku mihinkään. Kerromme sekä hyödyt että haitat ja annamme sinun päättää.

Millaisia projekteja olemme tehneet

Tässä on esimerkkejä siitä millaisia projekteja olemme toteuttaneet. Nämä ovat muunneltuja mutta suuntaa-antavia.

Dokumenttihaku joka ymmärtää kysymyksiä

➢ Eräällä asiakkaalla oli kymmeniä tuhansia sivuja teknisiä dokumentteja. Uusi työntekijä käytti viikkoja siihen että oppi löytämään sieltä oikeat asiat. Konkarit käyttivät tunteja päivässä siihen että vastasivat muiden kysymyksiin.
➢ Rakensimme järjestelmän joka indeksoi kaikki dokumentit ja vastaa kysymyksiin luonnollisella kielellä. Kysyt että miten tämä komponentti asennetaan ja saat vastauksen suoraan oikeasta kohdasta. Kysyt että mitä eroa näillä kahdella mallilla on ja saat vertailun.
➢ Järjestelmä ei korvannut dokumentaatiota. Se teki siitä käytettävän.

Sähköpostien luokittelu ja ohjaus

  • Eräällä asiakkaalla tuli tuhat sähköpostia päivässä ja niiden ohjaaminen oikealle henkilölle vei yhden ihmisen koko työajan. Hän luki jokaisen ja päätti mihin se kuului.
  • Rakensimme järjestelmän joka lukee sähköpostin, tunnistaa mistä asiasta on kyse ja ohjaa sen oikealle henkilölle. Se tunnistaa myös kiireelliset tapaukset ja nostaa ne esiin.
  • Ihminen tarkistaa edelleen päätökset mutta ei enää tee niitä alusta asti. Aikaa säästyi noin kuusi tuntia päivässä.

Kysynnän ennustaminen

➠ Eräs asiakas tilasi tavaraa varastoon arvioiden perusteella. Joskus tavaraa oli liikaa ja se vanheni. Joskus sitä oli liian vähän ja asiakkaat lähtivät.
➠ Rakensimme mallin joka katsoo mennyttä myyntiä, kausivaihtelua ja ulkoisia tekijöitä ja ennustaa mitä tullaan myymään seuraavan kuukauden aikana. Ennuste ei ole täydellinen mutta se on parempi kuin arvio.
➠ Varaston arvo laski ja toimitusvarmuus parani. Molemmat yhtä aikaa.

Konenäkö laadunvalvonnassa

➢ Eräällä asiakkaalla oli tuotantolinja jossa ihminen katsoi kappaleita ja päätti ovatko ne kunnossa. Työ oli yksitoikkoista ja virheitä tuli väsymyksen takia.
➢ Rakensimme kamerajärjestelmän joka katsoo saman asian. Se ei väsy eikä sen huomio herpaannu. Se tunnistaa samat virheet kuin ihminen mutta nopeammin ja tasaisemmin.
➢ Ihminen valvoo edelleen järjestelmää ja tekee päätökset rajatapauksissa. Rutiinityö on poissa.

Asiakaspalvelun apuväline

  • Eräällä asiakkaalla oli asiakaspalvelijoita jotka vastasivat samoihin kysymyksiin päivästä toiseen. Vastaukset olivat olemassa mutta niiden löytäminen vei aikaa.
  • Rakensimme työkalun joka ehdottaa vastausta kun asiakaspalvelija avaa uuden tiketin. Ehdotus perustuu aiempiin samankaltaisiin tiketteihin ja niiden ratkaisuihin.
  • Asiakaspalvelija voi hyväksyä ehdotuksen, muokata sitä tai kirjoittaa oman vastauksen. Työkalu ei korvaa ihmistä. Se nopeuttaa häntä.

Miten työ etenee

Aloitamme palaverilla. Kerrot ongelmasta ja me kysymme kysymyksiä. Tämä ei maksa mitään.

Sen jälkeen katsomme mitä dataa sinulla on käytettävissä. Tämä on ratkaiseva vaihe. Jos dataa ei ole eikä sitä voi hankkia, projekti ei etene. Sanomme sen heti emmekä vasta puolen vuoden päästä.

Jos dataa on, teemme suunnitelman. Suunnitelmassa lukee mitä tehdään, mitä se maksaa ja milloin se on valmis. Se on realistinen eikä lupaa enempää kuin pystymme tekemään.

Sitten rakennamme prototyypin. Tämä on nopea versio joka osoittaa toimiiko idea. Se ei ole valmis tuote eikä sitä ole tarkoitus julkaista. Sen tarkoitus on vastata kysymykseen että kannattaako tätä jatkaa.

Prototyyppi valmistuu yleensä kahdesta kuuteen viikkoon. Se maksaa muutaman tuhannen euron. Se on paljon halvempaa kuin koko järjestelmän rakentaminen ja se antaa vastauksen samoihin kysymyksiin.

Jos prototyyppi toimii, rakennamme tuotantoversion. Siinä kiinnitämme huomiota siihen että järjestelmä on luotettava, nopea ja edullinen käyttää. Mallin kutsuminen maksaa jokaisella kerralla ja se pitää pitää kurissa.

Jos prototyyppi ei toimi, kerromme sen. Se on mahdollista ja sitä tapahtuu. Se on paljon halvempaa todeta kolmen viikon jälkeen kuin kuuden kuukauden jälkeen.

Mitä tämä maksaa

➠ Prototyyppi maksaa yleensä muutaman tuhannen euron. Tuotantoversio maksaa kymmeniä tuhansia riippuen siitä mitä tehdään. Iso järjestelmä joka integroidaan useaan paikkaan voi maksaa enemmän.
➠ Jatkuva käyttö maksaa sen verran mitä mallien kutsuminen maksaa. Tämä on yleensä satoja euroja kuukaudessa pienissä sovelluksissa ja tuhansia suuremmissa. Kustannus riippuu siitä kuinka paljon järjestelmää käytetään ja kuinka pitkiä tekstejä se käsittelee.
➠ Ylläpito ja kehitys on erikseen. Mallit vanhenevat ja data muuttuu. Järjestelmää pitää seurata ja päivittää. Tämä on jatkuva kustannus joka pitää budjetoida.
➠ Emme anna tarkkoja hintoja tässä koska ne riippuvat liikaa yksityiskohdista. Annamme aina tarjouksen ennen kuin työ alkaa. Tarjouksessa lukee mitä tehdään ja mitä se maksaa. Jos jotain muuttuu kesken projektin, siitä sovitaan erikseen.

Yleisimmät virheet jotka näemme

Olemme nähneet monenlaisia projekteja. Osa onnistuu, osa ei. Tässä on yleisimmät virheet jotka johtavat epäonnistumiseen.

Aloitetaan liian isosta

Halutaan rakentaa koko järjestelmä kerralla. Sitten huomataan puolen vuoden päästä että perusoletus oli väärä. Parempi tapa on rakentaa pieni pala, katsoa toimiiko se ja laajentaa vasta sitten.

Ei tiedetä mitä halutaan

Asiakas sanoo että haluaa tekoälyn mutta ei osaa sanoa mihin sitä käytettäisiin. Tämä ei ole asiakkaan vika. Se on merkki siitä että tarvitaan enemmän keskustelua ennen kuin koodia kirjoitetaan.

Ei mitata mitään

Järjestelmä otetaan käyttöön eikä kukaan seuraa toimiiko se. Sitten ihmetellään miksi kukaan ei käytä sitä. Mittarit pitää miettiä etukäteen.

Oletetaan että malli on aina oikeassa

Malli erehtyy. Järjestelmä pitää suunnitella niin että virheet huomataan ja ne voidaan korjata. Käyttäjän pitää tietää milloin malli ei ole varma.

Unohdetaan käyttäjät

Järjestelmä rakennetaan teknisesti oikein mutta kukaan ei halua käyttää sitä. Tämä on yleisempää kuin uskoisit. Käyttäjät pitää ottaa mukaan suunnitteluun alusta asti.

Mitä tapahtuu julkaisun jälkeen

➢ Tekoälyjärjestelmä ei ole valmis kun se julkaistaan. Se on valmis kun se on toiminut tuotannossa kuukausia ja tiedetään miten se käyttäytyy oikeiden käyttäjien kanssa.
➢ Seuraamme julkaisun jälkeen kolmea asiaa. Ensimmäinen on tarkkuus. Antaako järjestelmä oikeita vastauksia. Toinen on nopeus. Kuinka kauan vastaus kestää. Kolmas on kustannus. Paljonko jokainen kysely maksaa.
➢ Näiden perusteella teemme korjauksia. Joskus korjaus on tekninen. Joskus se on se että muutetaan sitä miten käyttäjät ohjataan järjestelmän pariin. Joskus se on se että todetaan ettei järjestelmä toimi tässä käyttötarkoituksessa.
➢ Tämä vaihe kestää yleensä kuukausia. Se on osa projektia eikä erillinen asia.

Miksi tehdä tämä meidän kanssa

  • Emme alihanki töitä eteenpäin. Se kuka myy on se joka tekee. Tämä kuulostaa itsestäänselvältä mutta ei ole sitä tällä alalla.
  • Kerromme jos emme osaa. Jos jokin asia on sellainen jota emme hallitse, sanomme sen. Mieluummin suosittelemme jotakuta toista kuin otamme työn jota emme pysty tekemään kunnolla.
  • Emme myy sinulle tekoälyä jos et tarvitse sitä. Tämä on meille tärkeää. Tekoäly on työkalu, ei maali. Jos ongelma ratkeaa yksinkertaisemmin, kerromme sen.