Het RAG-prototype van een ontwikkelaar weigerde elke query te beantwoorden met een cosinusgelijkenis onder de 0,50. Het werkte vlekkeloos — totdat het embedding-model werd vervangen. De guard liet vervolgens stilletjes foute antwoorden door. Het incident bewijst dat een hard-coded drempelwaarde voor gelijkenis kan instorten bij het wisselen van modellen, een risico dat elk systeem bedreigt dat afhankelijk is van embedding-gelijkenis voor veiligheidscontroles.
Waarom de drempelwaarde ertoe deed
Retrieval-augmented generation (RAG)-pipelines maken vaak gebruik van een similarity guard: als de cosinusgelijkenis tussen een query en het dichtstbijzijnde document onder een vooraf ingesteld getal valt, stopt het systeem met het geven van een antwoord. De guard voorkomt dat het model gaat hallucineren wanneer de opgehaalde context zwak is. In de oorspronkelijke opstelling hield een drempelwaarde van 0,50 het systeem eerlijk — onbeantwoordbare queries scoorden onder de lijn, beantwoordbare queries erboven.
Toen de embedding-backend veranderde, scheidde dezelfde afkapwaarde van 0,50 de twee groepen niet langer. De pipeline begon zelfverzekerde, maar incorrecte antwoorden te geven zonder dat er een crash of expliciete foutmelding optrad. De fout bleef buiten het zicht van standaard rankingmetrieken en werd pas opgemerkt toen een mens de drift opmerkte.
Geometrie is niet universeel
Elk embedding-model brengt taal in kaart in een hoogdimensionale ruimte met een eigen geometrie. Cosinusgelijkeniswaarden betekenen daarom iets anders van het ene model naar het andere. Een score van 0,50 kan voor het ene model op de rand van een duidelijke kloof liggen, terwijl het voor een ander model diep in de overlap zit.
- Voyage-3 – de 0,50-lijn ligt tussen laag scorende, onbeantwoordbare queries en hoog scorende, beantwoordbare queries in. De guard werkt zoals bedoeld.
- BGE-Small – veel onbeantwoordbare queries scoren boven de 0,50, waardoor de guard nooit afgaat. Het verhogen van de afkapwaarde naar 0,70 herstelt de veiligheidsmarge.
- Hashing-64 – de scores voor beantwoordbare en onbeantwoordbare queries lopen zo nauw door elkaar dat geen enkele drempelwaarde ze kan scheiden; het model is te zwak om überhaupt een similarity guard te ondersteunen.
Deze gevallen illustreren een bredere waarheid: een drempelwaarde hoort bij een specifieke model-datacombinatie, het is geen universele regel.
De verborgen kosten van een constante
Drempelwaarden voor gelijkenis komen voor in veel downstream-taken:
- semantische caching
- detectie van duplicaten
- controles op documentrelevantie
- entiteitskoppeling
Het gebruik van een constante waarde gaat ervan uit dat alle embedding-modellen dezelfde scoreverdeling delen — een gevaarlijke aanname. Wanneer deze aanname niet klopt, produceert het systeem stilletjes output die onterecht zelfverzekerd overkomt, wat het vertrouwen van de gebruiker schaadt en downstream-beslissingen voedt met onjuiste gegevens.
Het kalibreren van guards per model
De oplossing is eenvoudig: lever nooit een hard-coded constante op. Behandel de drempelwaarde als een hyperparameter die voor elk nieuw embedding-model moet worden afgestemd.
- Stel een bescheiden, gelabelde validatieset samen die zowel beantwoordbare als onbeantwoordbare queries bevat.
- Bereken de cosinusgelijkenissen voor elk query-documentpaar met behulp van het doelmodel.
- Plot de twee verdelingen of bereken de false-confident rate — het aandeel onbeantwoordbare queries dat de kandidaat-drempelwaarde overschrijdt.
- Kies de kleinste gelijkeniswaarde die de false-confident rate onder een acceptabel risiconiveau houdt.
Omdat het doel is om overmoed te voorkomen, zijn traditionele rankingmetrieken zoals mean reciprocal rank (MRR) onvoldoende. De false-confident rate meet direct de foutmodus van de guard.
Tegenargument: "Sommige modellen werken direct uit de doos"
Het is waar dat bepaalde goed functionerende modellen, zoals Voyage-3 in het voorbeeld, toevallig overeenkomen met de 0,50-guard. Dat garandeert geen toekomstige stabiliteit. Modelupdates, fine-tuning of zelfs verschuivingen in de onderliggende corpus kunnen de gelijkenisverdeling veranderen, waardoor de guard opnieuw faalt. Vertrouwen op één enkele gelukkige afstemming nodigt uit tot nalatigheid.
Waar u op moet letten
-
-
-
Kernpunt
Een drempelwaarde voor gelijkenis is geen universele veiligheidsschakelaar; het is een modelspecifieke guard die telkens opnieuw moet worden gekalibreerd wanneer u de embedding-backend of de data verandert. Het negeren van dit feit zorgt ervoor dat RAG-systemen wegglijden in stille hallucinaties, wat het eigenlijke doel van de guard ondermijnt. De enige betrouwbare weg voorwaarts is systematische kalibratie per model en voortdurende monitoring van de false-confident rate.
