Automaatio2 min luettavaa

Kone kirjoitti 1 891 solua, ja yksi luku riitti tarkistukseen

Automaattinen ajo ilmoittaa onnistuneensa, mutta se ei kerro, menikö lopputulos oikein. Näin etsit omasta toistuvasta ajostasi yhden luvun, joka tarkistaa sen puolestasi.

Kone kirjoitti 1 891 solua, ja yksi luku riitti tarkistukseen

"Mistä sä tiedät, että se meni oikein?"

Kysymys tuli kollegalta sen jälkeen, kun olin ajanut päivityksen isoon jaettuun taulukkoon. Kone ilmoitti kirjoittaneensa 31 saraketta ja 1 891 solua, ja ilmoitus näytti hyvältä. Mutta onnistunut ajo ei ole sama kuin oikea tulos, eikä kone tiedä niiden eroa.

Kaksi huonoa vaihtoehtoa

Tämä kohta toistuu melkein jokaisessa automaatiossa, joka kirjoittaa jonnekin. Painat ajoa, se kertoo tehneensä työn, ja sitten pitäisi jotenkin uskoa siihen. Tarjolla on yleensä kaksi tapaa, ja kumpikin on huono.

Ensimmäinen on lukea tulos läpi rivi riviltä. Se toimii, mutta silloin automaatiosta jäi jäljelle vain nopeampi kirjoitusvaihe. Tarkistus söi säästön.

Toinen on luottaa siihen, että ajo meni niin kuin piti. Sekin toimii, yleensä pitkään. Virhe löytyy vasta silloin, kun joku törmää siihen kuukautta myöhemmin, eikä kukaan enää muista, mikä ajo sen teki.

Yksi luku, kaksi reittiä

Kolmas tapa on halvempi kuin kumpikaan noista. Etsi ajosta yksi luku, joka on johdettavissa kahta toisistaan riippumatonta reittiä, ja vertaa niitä.

Siinä päivityksessä yksi kirjoitetuista sarakkeista koski vain osaa riveistä, ja kone raportoi osuneensa 31 riville. Täsmälleen sama luku oli jo kirjattuna projektin tilatiedostoon, jota ylläpidetään eri tarkoitusta varten ja joka täyttyy eri lähteestä. Kaksi reittiä, sama luku. Tarkistus kesti sekunnin.

Toinen samanlainen tarkistus tuli hinnoittelusta: Kokonaisuuden hinnan pitää olla sen osien summa. Jos se ei ole, jompikumpi luku on väärin. Tämä sääntö ei vaadi ulkopuolista lähdettä ollenkaan, koska molemmat luvut ovat jo omassa datassa. Juuri se nosti esiin kaksi riviä, joissa hinta oli määritetty väärin. Ne olisivat muuten menneet läpi.

Mitä täsmäävä luku todistaa ja mitä ei

Rehellisyyden nimissä: Se ei todista, että jokainen solu on oikein. Se todistaa, että ajo osui siihen joukkoon, johon sen piti osua, ja että kaksi erillistä laskentatapaa ovat samaa mieltä. Se on selvästi vähemmän kuin varmuus ja selvästi enemmän kuin pelkkä onnistumisilmoitus.

Ero näkyy siinä, mitä ajon jälkeen tekee. Ennen luin otoksen riveistä ja jännitin loppuja. Nyt katson kahta lukua.

Mitä tästä voi kokeilla omassa työssä

Ota se toistuva ajo, joka sinulla on jo olemassa, ja etsi siitä yksi luku, jonka saa kahdella tavalla. Rivimäärä, loppusumma, käsiteltyjen tiedostojen määrä, mikä tahansa. Paras ehdokas on luku, jota seurataan jo jossain muualla jotain muuta tarkoitusta varten, koska silloin reitit ovat aidosti erillisiä.

Laita sitten ajo tulostamaan molemmat luvut vierekkäin joka kerta ja huomauttamaan, jos ne eroavat. Se on muutaman rivin lisäys. Siinä on ero sen välillä, että automaatio kertoo tehneensä jotain, ja sen, että se kertoo tehneensä sen oikein.

Tämä on yksi niistä pienistä asioista, jotka ratkaisevat, jääkö automaatio käyttöön vai ei. Samaa kannattaa miettiä laajemminkin tekoälyn käyttöönotossa: Luottamus ei synny siitä, että kone sanoo onnistuneensa, vaan siitä, että onnistuminen on mitattavissa.