Ga naar inhoud

Alle artikelenEngineering

Een confidencescore is geen kans dat het antwoord klopt

Het getal dat een model naast zijn antwoord zet, is niet de kans dat dat antwoord klopt. En juist in de segmenten waar het model het betrouwbaarst lijkt, zitten de ergste fouten verstopt. Wij hebben confidencedrempels vervangen door een licentie per segment, die wordt verdiend met gecontroleerde gevallen en automatisch vervalt.

11 februari 20256 min leestijdGeschreven door David Grayhurst

Een financial controller legde een factuur op tafel. Het systeem had de factuur op de verkeerde kostenplaats gecodeerd en zonder beoordeling geboekt. Naast de beslissing stond in de log een confidence van 0,97. "Als het 97% zeker was," vroeg ze, "waarom zat het dan fout?"

Het systeem was nergens 97% zeker van. Het getal was een score die het model aan zijn eigen uitvoer gaf. Over veel facturen genomen hing die score wel samen met de juistheid, ongeveer zoals het gevoel van zekerheid bij een mens. Maar het was geen gemeten kans, en voor deze leverancier, na de herindeling van de kostenplaatsen vorige maand, zei het getal zelfs helemaal niets.

Na dat gesprek zijn we gestopt met confidencedrempels voor straight-through processing. Wat ervoor in de plaats kwam, is minder elegant en veel makkelijker te controleren.

Een systeem dat vloeiend formuleert, klinkt zeker

Het probleem is goed gedocumenteerd. In "On Calibration of Modern Neural Networks" (ICML 2017) lieten Guo en collega's zien dat moderne deep networks de neiging hebben te zelfverzekerd te zijn: de gerapporteerde confidence loopt voor op de nauwkeurigheid. Onderzoek naar taalmodellen wijst dezelfde kant op. Xiong en collega's vonden op ICLR 2024 dat modellen die hun zekerheid moeten benoemen, die meestal overschatten. De antwoorden clusteren rond hoge waarden, of ze nu kloppen of niet.

In de bedrijfsvoering is het effect sterker, om een structurele reden. De gevallen waarin een model de fout ingaat, zien er meestal normaal uit: een bekende leverancier met een nieuwe productlijn, een keurige factuur op een kostenplaats die vorige maand is heringedeeld. Niets in de invoer verraadt dat er iets is veranderd, dus verandert er ook niets aan hoe het model zichzelf beoordeelt. Zelfverzekerde fouten zijn geen zeldzame uitschieters. Zo gaat een vloeiend formulerend systeem mis als het bedrijf er ongemerkt omheen verandert.

Straight-through is een licentie per segment

We geven een systeem geen drempel. We geven elk segment een licentie. Een segment is een leverancier, of een groep kleine leveranciers, gecombineerd met documenttype en entiteit. Een segment krijgt pas een licentie voor straight-through processing als op de eigen beoordeelde gevallen van de klant aan drie voorwaarden is voldaan: een minimale reeks opeenvolgende gevallen die door een mens zijn gecontroleerd, nul fouten daarin in elk veld dat geld verplaatst, en elke onafhankelijke controle geslaagd bij elk geval. De finance lead legt die minimale reeks voor de livegang vast. De licentie wordt in het dossier vastgelegd, met de datum, de gevallen waarop ze is verdiend en de versies van het model en de regels die toen in gebruik waren.

Een leverancier die voor het eerst factureert, heeft geen licentie. Zijn eerste facturen worden dus altijd beoordeeld, hoe netjes ze er ook uitzien. Alleen al daardoor verdwijnt een groot deel van de zelfverzekerde fouten die we vroeger zagen, want juist bij nieuwe leveranciers en nieuwe factuurindelingen stapelen onopgemerkte leesfouten zich op.

Zo wordt een statistische discussie die niemand in finance wil voeren een regel die een controller kan controleren. Laat de licentie zien. Laat de gevallen zien waarop ze is verdiend. Laat zien wat haar zou intrekken.

Bewijs komt van controles die hadden kunnen falen

Het sterkste bewijs dat een antwoord klopt, komt zelden van het model dat het antwoord gaf. Het komt van controles die zelfstandig hadden kunnen falen.

Bij een inkoopfactuur zijn die controles concreet. De leverancier komt overeen met de crediteurenstamgegevens op btw-nummer, niet op naam. De regels tellen op tot het totaal, en het totaal past binnen de afgesproken tolerantie bij de inkooporder. Er is een goederenontvangst die de hoeveelheid dekt. De voorgestelde kostenplaats is geldig voor de entiteit en is eerder gebruikt voor deze leverancier en materiaalgroep. Elke controle is deterministisch en goedkoop, en wordt bij het geval vastgelegd.

Een antwoord in een segment met licentie dat door elke controle komt, gaat door, wat de score ook is. Een antwoord dat één controle niet haalt, gaat naar een mens, hoe hoog de score ook is. De score blijft alleen over als manier om de beoordelingswachtrij te ordenen.

Gevolgen wegen zwaarder dan nauwkeurigheid

Een licentie zegt hoe vaak een segment gelijk heeft. Ze zegt niets over wat een fout kost. Een verkeerde kostenplaats op een kleine factuur wordt bij de maandafsluiting met een memoriaalboeking hersteld. Een gewijzigd bankrekeningnummer in een leveranciersrecord kan een betaling naar een fraudeur sturen.

Sommige beslissingen gaan daarom nooit straight-through, wat de licentie ook zegt: wijzigingen in bankgegevens, bedragen boven een limiet die de controller vaststelt, leveranciers op een watchlist, en alles wat intercompanysaldi raakt vlak voor de afsluiting. Het systeem bereidt die gevallen volledig voor. Een mens geeft ze vrij.

De beste segmenten vragen het scherpste toezicht

De fouten die in het grootboek terechtkomen, komen zelden uit rommelige segmenten. Rommelige leveranciers vallen door de controles en belanden in de beoordeling, waar mensen ze opvangen. De schadelijke fouten komen uit segmenten die al maanden betrouwbaar zijn. Die hebben een licentie, beoordelaars zien ze niet meer, en als de leverancier zijn factuurindeling verandert of het bedrijf kostenplaatsen herindeelt, verandert er niets aan hoe het model zichzelf beoordeelt. Juist de betrouwbaarheid neemt het menselijke oog weg dat de verandering had opgemerkt.

Daarom gaat uit elk segment met een licentie altijd een kleine willekeurige steekproef naar een beoordelaar. Daarnaast vervalt een licentie automatisch in drie situaties: bij een bevestigde fout in een geval dat zonder beoordeling is verwerkt, bij elke wijziging in het model of de matchingregels, en bij een nieuwe factuurindeling van de leverancier. Die herkent het systeem door de opbouw van elk document te vergelijken met eerdere indelingen. Een vervallen licentie betekent niet dat er iets mis is gegaan. Het systeem merkt dan simpelweg dat zijn bewijs verouderd is.

Een licentie wordt verdiend en behouden op recente productiegevallen, niet op de acceptatieset, want die geeft alleen een beeld van het verleden. En de controller krijgt nooit één nauwkeurigheidscijfer voor het hele systeem. Zo'n cijfer wordt bepaald door de grootste leveranciers en verbergt juist de segmenten waar de fouten zich ophopen. Zij ziet welke segmenten een licentie hebben, op welke gevallen elke licentie is gebaseerd en elke zelfverzekerde fout sinds het vorige rapport.

Eén vraag geeft de doorslag

Laat iemand ons een systeem zien dat gevallen doorzet op basis van de confidence van het model, dan vragen we: hoeveel van de gevallen die vorige maand zonder beoordeling zijn verwerkt, bleken later fout, en in welke segmenten? Kan niemand dat beantwoorden, dan weet niemand hoe nauwkeurig het systeem is. Men weet alleen hoe zeker het klinkt.

Bespreek uw operatie met onze engineers.

Beschrijf één proces en de systemen waarop het steunt. Een senior engineer reageert binnen twee werkdagen met een eerste beoordeling: wat we zouden bouwen, wat niet, en waarom.

Een senior engineer leest elke aanvraag en reageert binnen twee werkdagen.

Of boek direct: agenda voor een kennismakingsgesprek