Migdia. Estic dinant amb companys de feina. No sé com, la conversa arriba a l'estima que li podem tenir a una màquina creada per nosaltres enfront la que li podem tenir a altres humans o éssers vius. Amb la meva dèria de qüestionar el que tots donem per veritable, li plantejo al meu contertulià / company d'àpat que li sabria més greu, si veure com un cotxe atropellava a algú totalment desconegut o com destrossava un robot fet amb les seves pròpies mans. D'acord. És una trampa. Segurament el lligam sentimental que tens amb una creació pròpia és més gran que el que tens amb un desconegut, però això no impedirà a la gran majoria de gent triar salvar a la persona desconeguda abans que a la màquina. Espero.
Llavors ve la llavor d'aquesta entrada. Ell em diu un robot no farà mai res per sí sol, només el que se li hagi programat. "Tu ho hauries de saber, que treballes en informàtica", va reblar. Aquí ja no recordo si van portar un nou plat, si no vaig ser prou ràpid per respondre-li o què va passar, el cas és que vam canviar de tema. Però la rèplica se'm va quedar enquistada i l'exorcitzaré ara, amb el vostre permís. En primer lloc, el "Tu ho hauries de saber" es contradiu amb l'experiència que tenim els que ens dediquem a la informàtica. Sí que és cert que les raons de molts dels funcionaments inesperats (oi que ha sonat bonic?) s'acaben descobrint. Però hi ha molts casos en el que no es poden reproduir els errors, o no es poden monitoritzar. Alguns cops ens sembla que n'hem trobat la causa i fem una correcció però, si l'error era més o menys aleatori o si no n'hem trobat el patró, el fet que no es reprodueixi durant un temps no ens garanteix que no torni a passar. La prova definitiva d'això que dic és que aquell remei tant bregat de "apagar i tornar a engegar" funciona en massa casos per considerar la informàtica una activitat controlada. Apa, ja he respost en diferit!!!
Què és el que pot provocar una falla? En primer lloc el software. Cada cop és més complex, té més capes i, tot i que els sistemes de monitorització han millorat molt, és més difícil tenir una perspectiva global d'on es pot provocar una errada. O potser parlem millor d'un comportament incontrolat. Un processador dels actuals està manegant una quantitat enorme d'informació en molt poc temps. Aquests processadors tenen diversos nuclis treballant en paral·lel. Els grans ordinadors tenen col·leccions d'aquest multiprocessadors treballant també en paral·lel. Cap persona és capaç de seguir l'evolució de tota aquesta informació. Tan sols podem anar-nos fixant en cada una de les capes, comprovant que facin el que esperem i anar muntant noves capes sota el supòsit que les anteriors funcionen com cal. També pot tenir errades el hardware. La memòria pot tenir errares. O el disc. O el processador. Potser que la temperatura no sigui l'adequada. O la humitat. Al cap i a la fi, tot depèn de que uns milions de transistors impresos en uns microcircuits funcionin com s'espera d'ells. I que ho segueixin fent al llarg del temps.
Per a mi, el concepte teòric dels ordinadors com aparells virtuals que executen unes instruccions determinades d'una manera fiable i repetida, no té en compte ni la base física sobre la que operen, ni la impossibilitat de realitzar unes proves totalment exhaustives dels codis tant complexos que composen les diferents capes de software. Aquests efectes es van fent més incontrolables com més es complica el sistema que anem muntant.
L'especulació que ve a continuació ja l'ha tractada abastament la ciència-ficció, però crec que correm el perill de atorgar-li només aquesta categoria, pensant que és només l'obra d'unes imaginacions febrils. Crec que tenim una sensació injustificada de control sobre les nostres pròpies obres, fruit de la idea d'una infal·libilitat de la enginyeria. I d'aquest excés de confiança no se n'escapa pas la informàtica.
I és que els ordinadors són cada cop més sofisticats. Ells mateixos són necessaris per crear-ne altres de nous, més potents. A l'hora, els anem equipant amb sensors i elements mecànics que els permeten interactuar amb l'entorn. Les lectures dels seus sensors els poden advertir de possibles falles dels seus components. Seria una cosa semblant a que els "faci mal" un component quan es dispari una alarma que el monitoritza. D'alguna manera, ells mateixos tenen cura del seu propi funcionament.
Són artefactes que prenen decisions. En la major part dels casos, aquestes decisions estan planificades per un programa humà que fixa el patró del que cal fer en cada cas, en funció de la informació que rep i processa l'ordinador. Però alguns d'ells estan preparats per aprendre, per programar-se a sí
mateixos a partir de les lectures que van fent dels seus sensors, de
l'anàlisi dels resultats provocats per les accions dels seus elements
mecànics (ja siguin els braços d'un robot o les rodes d'un cotxe). Aquest aprenentatge pot fer que les decisions preses ja no es basin en unes normes dissenyades per un humà sinó en la "seva pròpia experiència". Segurament, aquesta experiència serà revisable i corregible pels humans, però pot ser una tasca cada cop més difícil, a mesura que vagi augmentant la complexitat de l'aprenentatge.
Segurament tots aquests nous ginys introduiran redundància (si no la introdueixen ja) de manera que l'error en un dels seus circuits pugui ser corregit per la resta que funciona bé. Aquesta redundància és la que dóna versatilitat als éssers vius, la que, per exemple, permet reconnectar circuits del nostre cervell per tornar a aprendre a caminar o a parlar després d'una embòlia. Aquesta redundància és també la que permet que un sistema amb una "anomalia" segueixi funcionant, no s'aturi. Pot ser que fins i tot funcioni millor.
En un ordinador complex, aquestes errades aleatòries que ja ara no controlem totalment poden esdevenir mutacions quan els sistemes siguin prou sofisticats per aprendre d'ells mateixos. Mutacions en el sentit evolutiu de la paraula. Mutacions capaces de crear programes dels quals nosaltres ja no en tinguem el control, per com de sofisticats poden arribar a ser. Llavors, a veure qui serà el guapo que es posarà a debugar un robot per esbrinar què ha fallat. El que vull dir amb tot això és que el nivell de complexitat de les màquines que estem creant se'ns escapa com a humans. Ens calen les pròpies màquines per seguir-les sofisticant, però també per entendre-les.
I ja posats a imaginar, tindran sentiments? sabran què és bo i què és dolent? Són coses que els humans valorem molt, que sovint ens fan sentir diferents de la resta d'animals, sobre tot quan ens aferrem a l'especisme que tant arrelat està en la nostra cultura. La meva resposta és una altra pregunta. Què són els sentiments humans? Per què sabem que certes coses són bones i altres dolentes? Penso que la resposta a aquestes dues preguntes és a la part no debugable de nosaltres mateixos, que som uns robots extremament complexos. I, en tot cas, caldria esbrinar què som "nosaltres mateixos". Però això ja va en una altra entrada, si sóc capaç d'escriure-la...
Nota: debugar és un verb habitual entre els que treballem en informàtica. És derivat del debug anglès que ve significant "eliminar bitxos". El terme formal seria "depuració de codi" i és un sistema que permet executar un programa informàtic pas a pas i anar veient com evoluciona, per tal d'esbrinar perquè no està fent el que s'espera d'ell.