De best practice die het verkeerde geheugen bouwt

Het instinct van een engineer om alles netjes in laatjes op te bergen, bouwt precies het verkeerde geheugen. Kopieer de functie, los de noodgreep op.

Vraag een engineer om geheugen voor een machine te bouwen en kijk waar die als eerste naar grijpt. Nette categorieën. Een type voor elk record. Voor alles een eigen plek. Het is een goed instinct, er jarenlang ingesleten, en er zijn duizenden werkende systemen mee gebouwd.

Het is ook de reden waarom bijna elk AI-geheugen op dezelfde manier tekortschiet.

Wat elk geheugensysteem gemeen heeft

Kijk hoe deze systemen opslaan wat ze weten. Het ene stopt elk item onder een label. Het andere deelt alles in naar type. Een derde geeft alles tags zodat het later terug te vinden is. Aan de buitenkant verschillen ze. Daaronder gebeurt steeds hetzelfde: bepaal wat iets is en stop het daarna in het juiste laatje.

Dat voelt degelijk. Dingen netjes opbergen is wat een zorgvuldige engineer doet. En voor de meeste software klopt dat precies, omdat de meeste software werkt met dingen die daadwerkelijk een type hebben.

Een geheugen van hoe je denkt is niet zoiets. Eén gedachte gaat tegelijk over vier onderwerpen, hangt samen met een stuk of twaalf andere en betekent volgende week iets anders dan vandaag. Stop hem in een laatje en je knipt alle draden door die ermee verbonden waren. Het probleem is het laatje zelf, hoe zorgvuldig je de inhoud ook hebt opgeborgen.

Waar dat instinct vandaan komt

Dit is het deel waar je even bij stil moet staan, want het verklaart waarom dit steeds opnieuw gebeurt.

Een systeem dat is getraind op hoe software normaal gesproken wordt gebouwd, heeft de nette versie al een miljoen keer gezien. Statusvelden. Typed records. Service boundaries. Genormaliseerde tabellen. Dus als je het vraagt om te helpen een geheugen te bouwen, loopt de makkelijkste route rechtstreeks terug naar de patronen die het het vaakst heeft gezien. Het slaat het rommelige web over en grijpt vol vertrouwen naar een keurige hiërarchie, omdat een keurige hiërarchie altijd gold als hoe ‘goede engineering’ eruitziet.

Ik weet dat uit eigen ervaring, want een behoorlijk deel van mijn week ben ik bezig mijn eigen coding assistant ervan te weerhouden alles netjes op te ruimen. Hij komt steeds weer met nog een categorie, nog een keurig type om dingen in onder te brengen. Elke keer weet hij zeker dat hij helpt. En elke keer bouwt hij ongemerkt precies de archiefkast terug die het hele systeem juist moest vermijden. Het echte werk wordt daardoor discussiëren met een reflex. De code is bijna bijzaak.

Je herkent het altijd aan dezelfde vorm: er verschijnt een keurige hiërarchie waar eigenlijk een kluwen hoort te zitten. Als de structuur te netjes oogt voor de rommel die erin moet passen, is het oude instinct weer naar binnen geglipt.

Dus dan maar de biologie kopiëren? Niet blind

Het voor de hand liggende antwoord is om niet langer engineering te kopiëren, maar het brein. Het brein stopt herinneringen niet in laatjes. Het bewaart ze in een web waarin alles met alles in verbinding kan staan, en dat werkt veel beter dan alles wat wij hebben gebouwd.

Maar ‘kopieer gewoon het brein’ loopt in zijn eigen val. Het brein zit vol beperkingen die helemaal geen slim ontwerp zijn. Het zijn noodgrepen omdat het op cellen draait. Het kan maar een paar dingen tegelijk in gedachten houden. Het kan niet makkelijk vastleggen dat iets bewust afwezig is. Het herschrijft zijn eigen verleden en houdt niet netjes bij wat er is veranderd. Kopieer je dat allemaal trouw, dan haal je een stel problemen binnen waar de biologie nooit voor heeft gekozen en die ze meteen zou laten vallen als dat kon.

Geen van beide instincten is dus op zichzelf genoeg. De laatjes van de engineer slaan het web dat ze moeten bewaren plat. En als je de beperkingen van de biologie integraal kopieert, zit software ineens met beperkingen waar het allang vanaf was.

De scheidslijn die er echt toe doet

Er is een betere vraag dan ‘brein of machine’, en die maakt het echte onderscheid.

Als je iets in het brein tegenkomt, vraag dan wat het is. Soms is het functie: het brein werkt zo omdat het probleem daar werkelijk om vraagt. Herinneringen bewaren als een open web is functie. Dat wil je elke keer kopiëren.

Soms is het een noodgreep: het brein werkt zo omdat cellen traag zijn, ruimte schaars is en energie iets kost. De beperking dat we maar een paar dingen tegelijk kunnen vasthouden is zo’n noodgreep. Net als het onvermogen om een perfect verslag bij te houden. Die hoef je niet te kopiëren. En dat is precies het cadeau: ze oplossen kost bijna niks. De enige reden dat het brein genoegen nam met die noodgreep, was een beperking die software niet heeft. Software kan alles bewaren, echte afwezigheid vastleggen en een perfecte geschiedenis bijhouden. De fout zat nooit in de functie. Die zat in de wetware, en de wetware hebben we achter ons gelaten.

Kopieer de functie. Los de noodgreep op. Die ene regel vertelt je wanneer je de biologie moet volgen en wanneer je haar voorbij kunt. En hij snijdt dwars door de schijntegenstelling tussen de laatjes van de engineer en de beperkingen van het brein.

Wat dit van je vraagt

Best practice heeft zijn naam verdiend bij problemen waarin dingen een type hebben. Een geheugen van je eigen denken is niet zo’n probleem. De werkwijzen die voor archiefkasten zijn gemaakt, bouwen er ongemerkt weer een archiefkast in, wat je ook van plan was te maken.

Om daaraan te ontsnappen, moet je bereid zijn de rommel rommelig te laten waar die rommel precies het punt is, en de oude beperkingen van de biologie op te lossen waar die nooit het punt waren. Geen betere categorie brengt je daar. Het instinct dat alles wil opruimen is het instinct dat je in de gaten moet houden. Meestal klinkt het als de slimste stem in de kamer. Bij dit ene probleem zit die stem ernaast.

§  De lijst

Essays in je inbox

Nieuw werk als het patroon helder is. Geen ritme, geen opvulling.