
Nekje v vašem mestu deluje programska oprema, ki odloča o življenjih ljudi. Odloča, kdo je upravičen do stanovanjske pomoči. Določa, kateri učenci pridejo v katere šole. Izračunava, ali je družina upravičena do prehranske podpore. Usmerja nujne službe. Razdeljuje javna sredstva.
Te programske opreme nihče ni izvolil. Nihče ni glasoval o njenih pravilih. V večini primerov nihče zunaj razvojne ekipe sploh ne more prebrati, kako odloča. Pravila so skrita v kodi, pišejo jih inženirji, ki morda nikoli niso srečali ljudi, na katere vpliva njihovo delo, vzdržujejo pa jih podjetja, katerih glavna obveznost je do delničarjev.
Pa vendar ti sistemi vladajo. V vsakem pomembnem pomenu so nevidna birokracija sodobnega življenja.
Gradil sem takšne sisteme. Pisal sem kodo, ki politike pretvarja v logiko, ki človeško presojo spreminja v avtomatizirane odločitve. To sem počel več kot dvajset let, v več državah, v obsegu od majhnih podjetij do platform na državni ravni. Prišel sem do prepričanja: način, kako gradimo te sisteme, je v osnovi pokvarjen. Ne zato, ker bi bila tehnologija slaba, temveč zato, ker naredi znanje nevidno.
Naj razložim.
Ko državna agencija odloči, da imajo družine z otroki, mlajšimi od petih let, prednost pri stanovanjski pomoči, je to pravilo. V starem svetu je to pravilo živelo v dokumentu o politiki. Vsakdo ga je lahko prebral. Vsakdo ga je lahko izpodbijal. Vsakdo je lahko predlagal spremembo. Pravilo je bilo vidno.
V novem svetu to pravilo živi v pogojnem stavku znotraj kodne baze. Morda je v funkciji z imenom calculateEligibility, morda pa je razpršeno po treh mikrostoritvah in modelu strojnega učenja. Da bi pravilo razumeli, morate prebrati kodo. Da bi ga spremenili, potrebujete razvijalca. Da bi preverili, ali se pravilo uporablja pravilno, potrebujete revizijo, ki si jo večina organizacij ne more privoščiti.
Pravilo se ni spremenilo. Postalo pa je nevidno za ljudi, na katere vpliva. Nevidna pravila so nevarna, ne zato, ker bi bila zlonamerna, temveč ker jih ni mogoče vprašati, zakaj so takšna.
Z umetno inteligenco je še huje. Tradicionalni sistem, ki temelji na pravilih, je vsaj teoretično mogoče revidirati. Logiko lahko izsledite. Pri strojnem učenju pa odločitve izhajajo iz vzorcev v učnih podatkih, ki jih noben človek ne razume povsem. Model je lahko pristranski. Lahko vsebuje predpostavke iz drugačnega konteksta. Lahko naredi izjeme, ki jih nihče ni nameraval. Ljudje, ki jih te odločitve zadenejo, pa nimajo nobenega mehanizma, da bi razumeli, zakaj, kaj šele da bi se uprli.
Ustvarili smo svet, v katerem so sistemi, ki urejajo življenja ljudi, vse bolj nepregledni za ljudi, ki jih urejajo. In to smo normalizirali. Imenujemo to »digitalna preobrazba«. Imenujemo to »učinkovitost«. Imenujemo to »inovacija«. Redko pa temu rečemo, kar to je: prenos moči s skupnosti na platforme.
Mislim, da obstaja drugačna pot. Pravzaprav več različnih poti.
Najbolj očitna je regulacija preglednosti. Uredba EU o umetni inteligenci je začetek, saj zahteva, da sistemi umetne inteligence z visokim tveganjem svoje odločitve utemeljijo. Toda zakonodaja sama ne bo rešila strukturnega problema. Podjetje lahko zavežete, da razloži svoj algoritem, a če za razumevanje razlage potrebujete doktorat iz strojnega učenja, to ni prava preglednost. Prava preglednost pomeni, da ljudje, ki jih odločitev zadeva, razumejo pravilo, ki jo je povzročilo, v jeziku, ki ga govorijo, in s tako podrobnostjo, da jo lahko smiselno izpodbijajo.
Druga pot je tisto, čemur bi lahko rekli strukturirana berljivost. Namesto da pravila napišemo v kodi in jih nato poskušamo razložiti naknadno, jih napišemo v obliki, ki je že sama po sebi berljiva: dovolj formalni, da jih stroj izvede, in dovolj jasni, da jih lahko preveri strokovnjak za področje. To ni nova zamisel. Pravni sistemi nekaj podobnega počnejo že stoletja: zakoni so napisani v natančnem jeziku, ki ga lahko razlagajo tako sodišča kot državljani. Programska oprema takšne ustreznice nima. Lahko bi jo imela.
Predstavljajte si, da bi moral vsak sistem, ki sprejema odločitve, objaviti svoja pravila v strukturirani obliki, berljivi za ljudi. Ne izvorne kode, ki je preveč tehnična. Ne tržnega povzetka, ki je preveč nejasen. Temveč dejansko logiko odločanja, izraženo v specifikaciji, ki jo lahko preberejo in ocenijo strokovnjak za politike, zagovornik skupnosti ali novinar. Ko je logika razdeljevanja v banki hrane izražena z berljivimi pravili, lahko skupnost preveri, ali je določanje prednosti pošteno. Ko sistem za vpis v šolo odkrito razglasi svojo logiko, lahko starši razumejo, zakaj je bil njihov otrok razporejen tja, kamor je bil.
Odprta koda kaže v to smer, a je ne doseže povsem. Koda je tehnično na voljo, vendar sta berljivost in dostopnost dve različni stvari. Funkcija v Pythonu je »berljiva« samo, če znate brati Python. Potrebujemo plast nad kodo: predstavitev logike, ki je dostopna ljudem, na katere ta logika vpliva, ne glede na njihovo tehnično ozadje.
Tu je tudi vprašanje prenosljivosti. Ko so pravila skupnosti zaklenjena v dobaviteljevem sistemu, je skupnost ujetnica. Če želi zamenjati ponudnika, izgubi institucionalno znanje, zapisano v starem sistemu. Zakoni o prenosljivosti podatkov pomagajo pri informacijah, ne rešujejo pa logike. Podatke lahko izvozite iz platforme. Pravil, ki urejajo, kako se ti podatki uporabljajo, pa redko lahko izvozite.
V tem kontekstu razmišljam tudi o zaposlovanju. Pogovor o umetni inteligenci in delovnih mestih se običajno osredotoča na avtomatizacijo: katere naloge bodo namesto ljudi opravljali stroji? Dogaja pa se globlje razseljevanje. Ko se znanje skupnosti vsrka v nepregledne sisteme, ljudje, ki so to znanje imeli, izgubijo svojo vlogo. Ne zato, ker bi jim delo vzel robot, temveč ker je njihovo strokovno znanje postalo nevidno. Sistem deluje, nihče ne ve, zakaj, ljudje, ki so področje nekoč razumeli, pa postanejo operaterji namesto strokovnjakov.
Rešitev ni v tem, da upočasnimo tehnologijo. Rešitev je v tem, da gradimo tehnologijo, ki ohranja človeško znanje vidno in človeško strokovnost pomembno. Tehnologijo, v kateri lahko človek, ki zares razume, kako nekaj deluje, vidi svoje razumevanje odraženo v sistemu, ki to izvaja. Kjer je strokovnost zapisana, ne izbrisana.
Poznam protiargument. Preglednost je draga. Berljiva pravila je počasneje uvesti kot preprosto napisati kodo. Razlagati se je težje kot delovati v tišini. Vse to drži. Toda cena neprozornosti je višja. Cena neprozornosti so skupnosti, ki ne razumejo sistemov, od katerih so odvisne. Državljani, ki ne morejo izpodbijati odločitev, sprejetih o njih. Organizacije, ki ne morejo prilagoditi svojih orodij, ko se resničnost spremeni, ker je logika zaklenjena v lastniški kodni bazi dobavitelja.
Cena neprozornosti je svet, v katerem moč teče k tistim, ki znajo brati kodo, in stran od vseh drugih.
Pravica do razumevanja sistemov, ki urejajo vaše življenje, ni želja po novi funkciji. Je temeljni pogoj pravične družbe. Tehnologija bi to pravico morala razširjati, ne odpravljati.
Osamah Alghanmi je soustanovitelj podjetja Almadar, studia za programsko opremo s sedežem v Ljubljani v Sloveniji. Več kot dvajset let je gradil poslovne sisteme, med drugim platforme državnega obsega v Savdski Arabiji, nato pa se je odločil, da najpomembnejši problem programske opreme ni, kako jo zgraditi hitreje, temveč kako jo narediti odgovorno.