← Nieuwste papers
💻 computer science

Testing Deep Learning Libraries via Neurosymbolic Constraint Learning

Dit artikel presenteert Centaur, een nieuwe neurosymbolische techniek die formele API-beperkingen leert van seed-inputs met behulp van Large Language Models en SMT-solvers om geldige, diverse testgevallen te genereren voor Deep Learning-bibliotheken, waardoor de detectie van bugs en de code-dekking aanzienlijk worden verbeterd in vergelijking met bestaande methoden.

Oorspronkelijke auteurs: M M Abid Naziri, Shinhae Kim, Feiran Qin, Marcelo d'Amorim, Saikat Dutta

Gepubliceerd 2026-01-23
📖 6 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: M M Abid Naziri, Shinhae Kim, Feiran Qin, Marcelo d'Amorim, Saikat Dutta

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Stel je voor dat je een robot probeert te leren hoe hij een zeer complexe taart moet bakken met behulp van een nieuw, mysterieus receptenboek. Het boek (de Deep Learning-bibliotheek) is enorm groot, maar de instructies zijn vaag. Er staat bijvoorbeeld: "voeg bloem toe," maar het vertelt je niet precies hoeveel bloem er werkt met hoeveel suiker, of wat er gebeurt als je probeert een gigantische kom beslag te mengen met een piepklein lepeltje. Als je het fout raadt, kan de robot de keuken laten crashen, of erger nog, een taart bakken die er goed uitziet maar verschrikkelijk smaakt.

Dit is precies het probleem waar onderzoekers te kampen hadden met Deep Learning-bibliotheken (zoals PyTorch en TensorFlow). Dit zijn de "receptenboeken" die moderne AI aandrijven. Ze zijn krachtig, maar zitten vol verborgen vallen (bugs). Het probleem is dat de handleidingen voor deze bibliotheken vaak incompleet, versnipperd of geschreven zijn in een verwarrende taal.

Maak kennis met Centaur, een nieuwe tool die door onderzoekers is ontwikkeld om deze bibliotheken te testen. Zie Centaur als een super-slimme detective die twee verschillende manieren van denken combineert: de creatieve intuïtie van een mens en de strikte logica van een computer.

De Twee Breinen van Centaur

Centaur is "neurosymbolisch", wat een chique manier is om te zeggen dat het twee breinen heeft die samenwerken:

  1. Het "Neurale" Brein (De Creatieve Detective): Dit deel gebruikt een Large Language Model (LLM). Denk aan dit als een zeer goed onderlegde chef-kok die miljoenen kookblogs en receptenboeken heeft gelezen. Wanneer Centaur naar een specifieke functie kijkt (zoals "tel twee getallen op"), gebruikt het LLM zijn kennis om de regels te raden. "Hé," zegt het LLM dan misschien, "meestal, als je twee lijsten bij elkaar optelt, moeten ze dezelfde grootte hebben, of een van de twee moet slechts een enkel getal zijn dat gekopieerd kan worden."

    • De adder onder het gras: Het LLM is creatief, maar kan fouten maken. Het kan een regel raden die goed klinkt, maar die in werkelijkheid niet waar is.
  2. Het "Symbolische" Brein (De Strikte Wiskundeleraar): Dit deel gebruikt een SMT Solver (een type logische motor). Denk aan dit als een strikte wiskundeleraar die elke gok van de chef controleert. Als de chef zegt: "Je kunt 5 kopjes bloem mengen met 2 kopjes suiker," voert de Wiskundeleraar een berekening uit om te zien of dat daadwerkelijk werkt zonder de wetten van de natuurkunde te schenden (of in dit geval, de wetten van de software).

    • De Kracht: De Wiskundeleraar zegt niet alleen "ja" of "nee". Het kan duizenden specifieke, geldige voorbeelden genereren (zoals "3 kopjes bloem, 1 kopje suiker") die bewijzen dat de regel werkt.

Hoe Centaur Werkt (Het Recept)

Hier is het stapsgewijze proces dat Centaur gebruikt, eenvoudig uitgelegd:

Stap 1: Het Raadspelletje (Regelgeneratie)
Centaur vraagt de "Chef" (het LLM) om regels op te schrijven voor hoe een specifieke functie zou moeten werken. Om de Chef ervan weer te houden doelloos rond te dwalen, geeft Centaur het een speciale mal (een grammatica) die de Chef dwingt de regels in een specifief, logisch formaat te schrijven. De Chef kan raden: "De twee tensoren moeten dezelfde vorm hebben."

Stap 2: De Feitencontrole (Constraint Learning)
Centaur neemt deze gokken vervolgens en test ze tegen een kleine set bekende "goede" inputs (geldige data).

  • Als de regel standhoudt voor alle goede inputs, houdt Centaur deze aan.
  • Als de regel faalt, gooit Centaur deze weg.
  • De Verfijning: Soms raadt de Chef twee regels die precies hetzelfde betekenen. Centaur heeft een speciale truc om deze duplicaten op te sporen en de overtollige te verwijderen, zodat het niet in de war raakt.

Stap 3: De Massaproductie (Fuzzing)
Nu heeft Centaur een lijst met geverifieerde regels, gebruikt het de "Wiskundeleraar" (de SMT Solver) om miljoenen nieuwe testgevallen te genereren. Omdat de regels wiskundig bewezen zijn, weet Centaur dat bijna elke input die het creëert geldig zal zijn. Het is alsof je een machine hebt die alleen maar perfect beslag produceert, nooit een verbrand of rauw beslag.

Stap 4: De Crash-test
Centaur voert deze miljoenen perfecte inputs in een Deep Learning-bibliotheek. Als de bibliotheek crasht, bevriest of een vreemd antwoord geeft, markeert Centaur dit als een bug.

Waarom is dit een Groot Ding?

Eerdere tools probeerden fouten in bibliotheken op twee manieren te vinden:

  • De "Willekeurige Werper": Zij gooiden willekeurige data naar de bibliotheek. Dit is als blindelings pijlen gooien. De meeste pijlen missen het bord (ongeldige inputs), waardoor ze veel tijd verspillen.
  • De "Code Lezer": Zij probeerden de broncode van de bibliotheek te lezen om de regels te begrijpen. Dit is als proberen de blauwdruk van een huis te lezen terwijl het gebouwd wordt. Het is traag, en als de blauwdruk slordig is, raken ze de weg kwijt.

Centaur is anders. Het leert de regels door te kijken naar hoe de bibliotheek zich gedraagt (met behulp van het LLM) en gebruikt vervolgens wiskunde om perfecte testgevallen te genereren.

De Resultaten (Wat het Papier Beweert)

De onderzoekers hebben Centaur getest op PyTorch en TensorFlow, de twee populairste AI-bibliotheken. Dit is wat ze ontdekten:

  • Nauwkeurigheid: De regels van Centaur waren 94% accuraat. Het raadde zelden fout en miste zelden een regel die er daadwerkelijk was.
  • Efficiëntie: Terwijl andere tools voornamelijk ongeldige inputs genereerden (die nutteloos zijn voor het testen), genereerde Centaur inputs die voor 98% geldig waren. Dit betekent dat het bijna al zijn tijd besteedde aan het testen van echte scenario's, in plaats van verspilde tijd aan onmogelijke scenario's.
  • Dekking: Centaur verkende meer delen van de code dan de vorige beste tools. Het vond "diepe" bugs—problemen in de kernlogica van de software—in plaats van alleen oppervlakkige fouten.
  • Bug Hunting: Met behulp van Centaur vond het team 26 nieuwe bugs in deze bibliotheken. 18 hiervan werden bevestigd door de ontwikkelaars. Eén van de bugs werd zelfs al gerepareerd voordat het artikel werd gepubliceerd!

Een Simpele Analogie voor de "Diepe Bugs"

Stel je een brug voor.

  • Oppervlakkige bugs zijn als een kuil in het wegdek. Makkelijk te zien, makkelijk te repareren.
  • Diepe bugs zijn als een barst in de hoofddraagbalk. Je kunt ze niet van de buitenkant zien, maar als er een zware vrachtwagen overheen rijdt, kan de hele brug instorten.

Vorige tools vonden voornamelijk kuilen. Centaur, door de complexe regels van hoe de brug gebouwd is te begrijpen, was in staat om de barsten in de draagbalken te vinden.

Samenvatting

Centaur is een nieuwe testing-tool die een creatieve AI gebruikt om de regels van Deep Learning-bibliotheken te raden en vervolgens een logische wiskundige motor gebruikt om die regels te verifiëren en miljoenen perfecte testgevallen te generen. Deze combinatie stelt het in staat om verborgen, gevaarlijke bugs te vinden die andere tools missen, waardoor de AI-systemen waarop we vertrouwen veiliger en betrouwbaarder worden.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →