Retrieval is geen geheugen
Waarom een systeem dat elk feit kan terughalen toch redeneert vanuit aannames die het niet kan bevragen.
Ik zag een systeem dat ik zelf had gebouwd een vraag beantwoorden met volle overtuiging, en het zat ernaast. Het had het juiste feit. Het had het record uit z’n store gehaald en er feilloos vanuit geredeneerd. Het probleem was dat dat feit maanden eerder stilletjes was verouderd, en niets in de store wist dat. De redenering klopte. De aanname eronder niet. Dus wat betekent het eigenlijk om een machine een geheugen te geven?
Het gangbare antwoord is netjes. Een model vergeet alles tussen sessies door, dus geef je het een store met feiten en laat je het opzoeken wat het nodig heeft. Geheugen wordt retrieval. Vind het feit, geef het feit terug, ga door. Het is een opgeruimd idee, en het verbergt precies de fout die ik net had zien gebeuren.
Stel je iemand voor die feilloos redeneert maar geen langetermijngeheugen meer kan vormen of ophalen. Sommige hersenletsels doen dit. Leg een probleem voor diegene neer met alles erbij wat nodig is, en het wordt opgelost. De logica is intact. De intelligentie is onveranderd. Vraag iets dat afhangt van een herinnering die niet meer bereikbaar is, en het antwoord gaat op een bepaalde manier mis. Diegene valt niet stil. Diegene redeneert. Diegene redeneert vanuit feiten die ter plekke verzonnen zijn om het gat te vullen waar de herinnering ooit zat.
Bij dit stuk is het de moeite waard om af te remmen. De redenering is prima. De aannames zijn het probleem: ze voelen stevig en ze zijn het niet.
Een language model met een store vol feiten, maar zonder geheugen van z’n eigen redenering, zit hier dichterbij dan ik graag toegeef.
Een feit is de as, niet het vuur
Kijk naar wat er gebeurt als je een feit opslaat.
“Parijs is de hoofdstad van Frankrijk” kwam je hoofd niet binnen als feit. Het kwam binnen als ervaring: een klaslokaal, een kaart aan de muur, een regel in een boek, een reis. Het feit is wat overbleef nadat de ervaring was opgebrand. Het is de as, ontdaan van de context die het maakte. Je houdt de as en laat het vuur gaan, want as is licht om te dragen en meestal genoeg.
Meestal. Maar de context die opbrandde is juist het deel dat je vertelt wanneer het feit nog opgaat: de voorwaarden die het waar maakten, de antwoorden die zijn afgewogen en verworpen, de redenering die het verdiende.
Een fact store houdt de as en noemt het kennis, zonder enig spoor dat er ooit een vuur is geweest.
Dus als je zo’n systeem vraagt te redeneren, doet het wat de patiënt zonder geheugen doet. Het haalt heldere, overtuigde uitspraken op zonder context en redeneert er feilloos vanuit. De output leest goed. Het klopt vaak. En als het misgaat, gaat het op de ergste manier mis: overtuigd, nooit voorzichtig, nooit aarzelend, want elke aanname kwam binnen met de stempel feit.
Het gevaar is niet vergeten
De angst is altijd dat een model vergeet. Het lastigere probleem is wat het onthoudt zonder te onthouden waarom.
Een leeg geheugen geeft tenminste toe dat het leeg is. Het model heeft niets, en op z’n best zegt het dat ook. Een volle fact store doet het tegenovergestelde. Het levert aannames aan die stevig lijken omdat ze uit het geheugen komen. Maar een feit dat er betrouwbaar uitziet, waarschuwt je niet dat het verouderd is, of alleen in bepaalde situaties klopt, of stilletjes wordt tegengesproken door iets anders dat het systeem ook weet.
Dit is de omkering die de meeste geheugensystemen missen. Meer feiten toevoegen verplaatst het probleem van verzonnen aannames alleen maar naar een plek waar het lastiger te zien is. De patiënt zonder geheugen verzint in de openbaarheid, en vult een gat dat je kunt zien. Een goed gevuld retrieval-systeem doet het buiten beeld, en redeneert soepel over aannames die het op geen enkele manier kan bevragen. Die is moeilijker te betrappen, want het lijkt te werken.
Zo bekeken kan betere retrieval een systeem juist overtuigder fout maken, niet minder.
Wat “genoeg” zou vragen
Als een feit is wat redenering achterlaat, dan verandert er niets als je meer feiten opstapelt. Wat je moet bewaren, is de redenering waar het feit uit voortkwam.
Bewaar de hele ervaring, niet alleen wat er aan het eind van overblijft. Houd het pad: de vraag die de conclusie aandreef, wat er werd afgewogen, wat opzij werd gezet, de voorwaarden waaronder het opging. Laat de feiten daaruit voortkomen, zoals ze dat in een brein doen. Ze worden snelle, korte ingangen die je altijd kunt terugleiden naar de redenering die ze verdiende.
Doe dat en de verhouding kantelt. Het feit is niet langer een vervanging voor de redenering, maar een weg er weer in. “Je weet X” betekent niet meer “hier is X”, maar “hier is de snelle weg terug naar waar X vandaan kwam, en wat het kostte.” Een nieuwe bewering die botst met wat je wist, zit niet langer rustig naast de oude. Het komt boven als een tegenspraak, want het systeem ziet nog steeds de grond waar het oude feit op stond.
Dat is het verschil tussen een geheugen en een lookup table. Een lookup table geeft antwoorden. Een geheugen kun je bevragen, door jou en door zichzelf.
Niets hiervan is een argument tegen retrieval. Retrieval is nodig. Het punt is smaller: retrieval is geen geheugen. Behandel ze als hetzelfde en je bouwt systemen die alles terughalen en niets begrijpen, die prachtig naar de verkeerde plek redeneren en nooit merken dat de grond eronder er nooit was.
Het feit was altijd alleen de as. Wat de moeite waard is om te bewaren, is het vuur dat het achterliet: de redenering waar je nog steeds in terug kunt lopen en die je kunt bevragen. Houd dat vast, en een feit wordt een deur in plaats van een doodlopende weg. Verlies het, en het meest complete geheugen dat je kunt bouwen doet nog steeds wat ik het mijne zag doen: antwoorden met volle overtuiging, en ernaast zitten.