SpotIt: Evaluating Text-to-SQL Evaluation with Formal Verification

Dit paper introduceert SpotIt, een nieuwe evaluatiepipeline die formele verificatie gebruikt om onbetrouwbare testgebaseerde Text-to-SQL-evaluaties te verbeteren door actief databases te zoeken die gegenereerde en grondwaarheid SQL-query's onderscheiden.

Rocky Klopfenstein, Yang He, Andrew Tremante, Yuepeng Wang, Nina Narodytska, Haoze Wu

Gepubliceerd 2026-03-05
📖 4 min leestijd☕ Koffiepauze-leesvoer

Each language version is independently generated for its own context, not a direct translation.

SPOTIT: De "Waarheidszoeker" voor Database-Vragen

Stel je voor dat je een zeer slimme butler hebt die jouw vragen in gewone taal (Nederlands, Engels, etc.) omzet in een complexe instructie voor een gigantische bibliotheek. Die instructie is een SQL-query (een database-vraag). Je vraagt bijvoorbeeld: "Wie is de jongste patiënt met een abnormale bloedwaarde?" en de butler schrijft een code op die de bibliotheek moet doorzoeken.

Nu komt het probleem: Hoe weet je of de butler het goed heeft gedaan?

Het oude probleem: De "Vaste Test"

Tot nu toe keken we naar de butler door een statische test te doen. We gaven de butler een specifieke, vaste lijst met patiënten (een test-database) en zagen of het antwoord klopte.

  • Het gevaar: Stel, de butler schrijft een verkeerde code, maar op die specifieke lijst met patiënten geeft hij per ongeluk het juiste antwoord. Het is alsof je een sleutel hebt die per toeval in een vergrendelde deur past, alleen omdat de deur op dat moment open stond. De test zegt: "Goed gedaan!", maar de butler heeft eigenlijk niet geleerd hoe de deur werkt. Hij heeft alleen geluk gehad met die ene situatie.

De nieuwe oplossing: SPOTIT (De "Tweestrijd")

De auteurs van dit paper hebben SPOTIT bedacht. In plaats van te wachten op een vaste lijst, sturen ze een formele "detective" (een wiskundig bewijsprogramma) de wereld in om actief te zoeken naar een situatie waarin de butler het fout doet.

Hier is hoe het werkt, met een paar creatieve vergelijkingen:

1. De "Waarheidszoeker" (Formele verificatie)

SPOTIT is als een super-intelligente detective die niet kijkt naar één foto, maar naar alle mogelijke werelden.

  • De oude manier: Kijkt naar één foto van een feestje. Als iedereen lacht, is het feest geslaagd.
  • SPOTIT: Vraagt zich af: "Zou dit feestje ook mislukken als we de muziek harder zetten? Of als we een andere groep mensen uitnodigen?"
  • De detective probeert een tegenvoorbeeld te vinden: een specifieke situatie (een database) waarin de butler's antwoord verschilt van het juiste antwoord. Als hij zo'n situatie vindt, is de butler onbetrouwbaar, zelfs als hij op de oude test goed zat.

2. De "Taal-Vertaler" (SQL en Wiskunde)

SQL is een taal die databases begrijpen, maar voor wiskundige computers is het soms als Chinees.

  • De auteurs hebben de detective (een programma genaamd VERIEQL) getraind om niet alleen cijfers te begrijpen, maar ook data (zoals geboortedata) en woorden (zoals namen of adressen).
  • Ze hebben een nieuwe "woordenboek" gemaakt voor de detective, zodat hij precies weet hoe een computer omgaat met dingen als "Is 2023-01-01 groter dan 2022?" of "Begint deze naam met 'A'?". Zonder dit zou de detective denken dat "10" groter is dan "2" (want 1 is groter dan 2 in de eerste letter), wat in de echte wereld fout is.

3. De Verassende Bevinding: De Meester is ook fout!

Dit is het meest interessante deel van het verhaal.
Toen ze SPOTIT gebruikten om de beste butlers (AI-modellen) te testen, ontdekten ze iets verrassends:

  • Vaak dachten we dat de butler het fout had omdat zijn antwoord anders was dan het "gouden antwoord" (het antwoord van de menselijke expert).
  • Maar SPOTIT toonde aan dat soms het "gouden antwoord" zelf fout was!
  • De metafoor: Stel je voor dat je een quiz doet. De leraar (de expert) heeft een antwoord in zijn antwoordmodel staan. Jij geeft een ander antwoord. De leraar zegt: "Fout!". Maar SPOTIT (de detective) komt binnen en zegt: "Wacht even, als we de regels van de quiz precies bekijken, heeft de leraar het mis. Jij had gelijk, of de vraag was zo vaag dat beide antwoorden kunnen kloppen."

Wat betekent dit voor de wereld?

  1. Betrouwbaardere AI: We kunnen nu veel beter zien of een AI echt slim is, of dat hij alleen maar geluk had met de testvragen.
  2. Betere Examens: Het blijkt dat veel "examenvragen" (de test-databases) zelf fouten bevatten of dubbelzinnig zijn. SPOTIT helpt ons die fouten op te sporen en de examens te verbeteren.
  3. Veiligheid: In de echte wereld (zoals in ziekenhuizen of banken) kunnen fouten in database-vragen leiden tot grote problemen. SPOTIT zorgt ervoor dat we geen "gelukkige fouten" accepteren als waarheid.

Kortom: SPOTIT is niet zomaar een nieuwe test; het is een waarheidszoeker die actief op zoek gaat naar de zwakke plekken in zowel de AI als de examens zelf, zodat we zeker weten dat de antwoorden echt kloppen, niet alleen op papier, maar in elke mogelijke situatie.