Olen ollut lukuisia kertoja tilanteessa, jossa (mahdollinen) asiakas kysyy “Paljonko tämä suunniteltu AI ratkaisu maksaa kokonaisuutena?”
Luonnollisesti kysymys on relevantti ja oikeutettu, kukapa ei haluaisi tietää kustannuksia ostopäätöksiä tehdessään. Järkevän vastauksen antaminen ei ole aina ihan yksinkertaista, ja tätä dilemmaa avaan tässä jutussa tarkemmin.
Aloitetaan siitä, että miten räätälöidyt AI projektit vaiheistuvat.
Yleensä aloitetaan AI työpajoilla tai vastaavilla määrittelyprojekteilla, jossa arvioidaan business case monesta eri näkökulmasta. Mitä paremmin tässä onnistuu, niin sitä todennäköisempää on, että ratkaisu päätyy myöhemmin tuotantoonkin.
Toinen vaihe on tyypillisesti POC-projekti, jonka keskeisin tavoite on testata toimiiko koneoppiminen käytettävissä olevalla datalla. Tässä samalla myös arvioidaan, että onko itse data riittävän laadukasta ja onko sitä tarpeeksi.
POC-projektin onnistuttua ratkaisua voidaan pilotoida, eli kokeillaan sitä oikeassa ja rajatussa kontekstissa. Esimerkiksi, pilotoidaan asiakaspoistumaennusteiden pohjalta tehtyjä toimenpiteitä rajatulle joukolle asiakkaita. Verrokkiryhmien avulla nähdään erikseen, että toimiiko ennustemalli ja tehty toimenpide.
Ja mikäli POC ja pilotti onnistuivat, niin sitten on valmiudet skaalata ratkaisu tuotantokäyttöön saakka. Muussa tapauksessa, prosessissa voidaan palata taaksepäin, ja tehdä muutoksia/korjauksia tai päättää projekti ylpeästi kokemusta rikkaampana.
Kustannuksiin vaikuttavat tekijät
Otetaan mukaan kolme esimerkkiä, jotka havainnollistavat mistä projektin kokonaiskustannukset muodostuvat.
- Case 1) yhden tuotteen menekin ennustaminen
- Case 2) asiakaspoistuman ennustaminen vakuutusyhtiössä
- Case 3) konenäkö tuotantolinjan laadunvalvonnassa
Kaikissa tapauksissa kahden ensimmäisen vaiheen kustannusten arviointi on suhteellisen helppoa, koska niiden sisältö, tehtävät ja vaiheistus on etukäteen yleensä hyvin selvillä. Eli määritellään business case, kerätään (staattinen) datasetti ja testataan koneoppimista ja datan validiteettia.
Kun arvioidaan pilotoinnin ja tuotantoratkaisun kustannuksia, niin asiat saattavat mutkistua olennaisesti. Miksikö? Seuraava kuva antaa tästä osviittaa.
Kuvan lähde (Google, Inc): “Hidden Technical Debt in Machine Learning Systems”, D. Sculley, Gary Holt, Daniel Golovin, Eugene Davydov, Todd Phillips, Dietmar Ebner, Vinay Chaudhary, Michael Young, Jean-Francois Crespo, Dan Dennison
Tuolla keskellä näkyvä punainen ympyrä kuvaa, mitä POC-projektissa yleensä koeponnistetaan – eli mennään minimillä. Tuotantoratkaisun toteuttamiseksi kaikki muutkin boxit saattavat olla välttämättömiä.
Pilotti/tuotantoratkaisun kustannukset case-esimerkkien osalta?
Case 1) yhden tuotteen menekin ennustaminen, esim. vihreiden omenien. Tämä on hypoteettinen esimerkki kaikkein yksinkertaisimmasta ja myös halvimmasta skenaariosta. Nimittäin tässä organisaatiossa tarvittava data on jo valmiiksi tietovarastossa, joka päivittyy joka vuorokausi. Lisäksi POC:issa todettiin, että ennustemallina perinteinen ARIMA toimi mitä parhaiten. Ei tarvita LSTM neuroverkkoja tai muuta hienoa.
Tässä tapauksessa tuotantoratkaisu voisi olla, että ko. ennustemalli ajetaan ETL ajojen mukana kerran vuorokaudessa ja ennusteet tallennetaan tietovarastoon, josta ne lisätään loppukäyttäjän PowerBI Dashboardille. Käytännössä ennustemalli saataisiin tuotantoon hyvin pienellä kustannuksella heti POC:in jälkeen, ja ilman uusia infra- tai ohjelmistokustannuksia.
On mahdollista, että POC-vaihe olisi kustannuksiltaan jopa suurempi kuin varsinainen tuotannollistaminen.
Case 2) asiakaspoistuman ennustaminen vakuutusyhtiössä. Tässä tapauksessa ennustemallin toteutukseen tarvittava data löytyy neljästä eri lähdejärjestelmästä, jotka eivät ole keskenään yhteensopivia, eli tarvitaan huomattava määrä ETL-koodia (~ manuaalista työtä) datan harmonisoinnin toteuttamiseksi.
Näistä järjestelmistä ei myöskään ole liityntää pilvesssä toimivaan tietovarastoon. Niinpä sinne on rakennettava dataputket, tietomallit, käyttäjäoikeudet, jne.
Myös AI ympäristö toteutetaan nyt ensimmäistä kertaa pilveen (esim. ottaen käyttöön Databricks ja Python). Ja uusien teknologioiden käyttöönotto voi hyvinkin johtaa tarpeeseen hankkia koulutuksia asian piirissä toimiville henkilöille.
Eikä tässä vielä välttämättä kaikki, nimittäin Servicedesk järjestelmään aiotaan tuoda poistumaennusteet asiakaspalvelijan tueksi.
Kaiken kaikkiaan kustannuksia generoituu monesta eri lähteestä, ja niiden arviointi alkuvaiheessa on aika haastavaa. Tärkeintä olisikin tunnistaa, että mitä erilaisia kulueriä syntyy ja mikä on niiden kokoluokka?
Tässä tapauksessa POC-vaihe saattaisi olla ehkä 10-20% kokonaiskustannuksista. Jos asiakastiedot jo olisivat harmonisoituna ja kattavasti tietovarastossa, niin tuotannollistaminen olisi merkittävästi edullisempaa. Silloin niistä datoista olisi toki hyötyä muussakin asiakasanalytiikassa.
Case 3) konenäkö tuotantolinjan laadunvalvonnassa. Oletetaan tämä case on toteutettu käyttäen valmista ja maksullista konenäkö API:a, jota on opetettu omilla kuvilla ja tulokset ovat erinomaisia. Eli konenäkö spottaa tuotantolinjalta erehtymättömästi virheelliset tuotteet – kunhan vaan saa kuvia. Tekniseksi ratkaisuksi aiotaan hankkia tehokas laskentapönttö tuotantolinjan välittömään läheisyyteen.
Tähän saakka kustannukset ovat melko hyvin ennakoitavia, mutta tarinaa on vielä jäljellä.
Nimittäin kuvien tuottaman informaation perusteella pitäisi ohjata tuotantolinjan toimintaa. Eikä tuotantolinjan konfiguraation muuttaminen ole välttämättä ihan pieni juttu. Ja mikäli tuotantontilinjalla ei ole vielä kameroita ollut, niin nekin pitää hankkia, asentaa, testata ja huomioida ylläpitoasiat.
Luultavasti POC-vaihe, jossa testattaisiin konenäön kyvykkyyttä tunnistaa virheelliset tuotteet, olisi vain pienehkö osa kokonaiskustannuksesta.
Kolme vinkkiä kustannusten pohdintaan
- Varmista aluksi, että sinulla on riittävän tärkeä business case ratkaistavaksi. Pitää tulla lisää tuloja, karsia menoja tai optimoida toimintoja.
- Mieti tarkkaan, että mitä kaikkia kulukohteita tulee eteen – aina alkuvaiheesta tuotantoon saakka. Arvioi kulukohteiden kokoluokka karkeasti ja plussaa yhteen. Sitten kerro tulos jollakin mielestäsi sopivalla riskikertoimella, sillä jotain jäi kuitenkin listalta pois tai tuli väärin arvioitua.
- Vedä yhteen kohdat 1 ja 2, laske uudelleen että onko business case riittävän tärkeä vs. siihen tarvittava investointi.
Mainittakoon vielä lopuksi, että nyt eletään AI ajan alkuvaihetta, jonka vuoksi tarvitaan alkuinvestointeja (esim. data- ja AI ympäristöt sekä osaamisen kehittäminen).
Uskon siis, että jatkossa räätälöityjen AI-projektien toteutus tehostuu ja tulee kustannusmielessä alaspäin.