← Neueste Arbeiten
💻 computer science

Testing Deep Learning Libraries via Neurosymbolic Constraint Learning

Dieses Paper präsentiert Centaur, eine neuartige neurosymbolische Technik, die mithilfe von Large Language Models und SMT-Solvern formale API-Constraints aus Seed-Inputs lernt, um valide, diverse Testfälle für Deep-Learning-Bibliotheken zu generieren und dadurch die Fehlererkennung sowie die Code-Abdeckung im Vergleich zu bestehenden Methoden signifikant zu verbessern.

Ursprüngliche Autoren: M M Abid Naziri, Shinhae Kim, Feiran Qin, Marcelo d'Amorim, Saikat Dutta

Veröffentlicht 2026-01-23
📖 6 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: M M Abid Naziri, Shinhae Kim, Feiran Qin, Marcelo d'Amorim, Saikat Dutta

Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

Stellen Sie sich vor, Sie versuchen, einem Roboter beizubringen, einen sehr komplexen Kuchen nach einem neuen, geheimnisvollen Rezeptbuch zu backen. Dieses Buch (die Deep-Learning-Bibliothek) ist riesig, aber die Anweisungen sind vage. Es heißt zum Beispiel „Mehl hinzufügen“, aber es verrät Ihnen nicht genau, wie viel Mehl mit wie viel Zucker harmoniert, oder was passiert, wenn Sie versuchen, eine riesige Schüssel Teig mit einem winzigen Löffel zu mischen. Wenn Sie falsch raten, könnte der Roboter die Küche ruinieren oder, noch schlimmer, einen Kuchen backen, der zwar gut aussieht, aber schrecklich schmeckt.

Genau das ist das Problem, mit dem Forscher bei Deep-Learning-Bibliotheken (wie PyTorch und TensorFlow) konfrontiert waren. Dies sind die „Rezeptbücher“, die moderne KI antreiben. Sie sind leistungsstark, aber voller versteckter Fallen (Bugs). Das Problem ist, dass die Handbücher für diese Bibliotheken oft unvollständig, verstreut oder in einer verwirrenden Sprache verfasst sind.

Hier kommt Centaur ins Spiel, ein neues Werkzeug, das von Forschern entwickelt wurde, um diese Bibliotheken zu testen. Betrachten Sie Centaur als einen superintelligenten Detektiv, der zwei verschiedene Arten des Denkens kombiniert: die kreative Intuition eines Menschen und die strikte Logik eines Computers.

Die zwei Gehirne von Centaur

Centaur ist „neurosymbolisch“, was eine schicke Art zu sagen ist, dass es zwei Gehirne hat, die zusammenarbeiten:

  1. Das „neuronale“ Gehirn (Der kreative Detektiv): Dieser Teil nutzt ein Large Language Model (LLM). Stellen Sie sich dies als einen sehr belesenen Chefkoch vor, der Millionen von Kochblogs und Rezeptbüchern gelesen hat. Wenn Centaur auf eine bestimmte Funktion blickt (wie „addiere zwei Zahlen“), nutzt das LLM sein Wissen, um die Regeln zu erraten. „Hey“, könnte das LLM sagen, „normalerweise müssen, wenn man zwei Listen addiert, beide die gleiche Größe haben, oder eine von ihnen muss nur eine einzelne Zahl sein, die kopiert werden kann.“

    • Der Haken: Das LLM ist kreativ, kann aber Fehler machen. Es könnte eine Regel erraten, die gut klingt, aber eigentlich gar nicht wahr ist.
  2. Das „symbolische“ Gehirn (Der strenge Mathematiklehrer): Dieser Teil nutzt einen SMT-Solver (eine Art Logik-Engine). Stellen Sie sich dies als einen strengen Mathematiklehrer vor, der jede einzelne Vermutung des Chefs überprüft. Wenn der Chef sagt: „Du kannst 5 Tassen Mehl mit 2 Tassen Zucker mischen“, führt der Mathematiklehrer eine Berechnung durch, um zu sehen, ob das tatsächlich funktioniert, ohne die Gesetze der Physik (oder in diesem Fall die Gesetze der Software) zu verletzen.

    • Die Stärke: Der Mathematiklehrer sagt nicht nur „Ja“ oder „Nein“. Er kann tausende spezifische, gültige Beispiele generieren (wie „3 Tassen Mehl, 1 Tasse Zucker“), die beweisen, dass die Regel funktioniert.

Wie Centaur funktioniert (Das Rezept)

Hier ist der schrittweise Prozess, den Centaur verwendet, einfach erklärt:

Schritt 1: Das Ratespiel (Regelgenerierung)
Centaur fragt den „Chef“ (das LLM), die Regeln aufzuschreiben, wie eine bestimmte Funktion funktionieren sollte. Um den Chef davon abzuhalten, wild zu werden, gibt Centaur ihm eine spezielle Vorlage (eine Grammatik), die ihn dazu zwingt, die Regeln in einem bestimmten, logischen Format zu schreiben. Der Chef könnte erraten: „Die beiden Tensoren müssen dieselbe Form haben.“

Schritt 2: Der Faktencheck (Constraint Learning)
Centaur nimmt diese Vermutungen dann und testet sie gegen einen kleinen Satz bekannter „guter“ Eingaben (gültige Daten).

  • Wenn die Regel für alle guten Eingaben gilt, behält Centaur sie.
  • Wenn die Regel fehlschlägt, wirft Centaur sie raus.
  • Die Verfeinerung: Manchmal rät der Chef zwei Regeln, die exakt dasselbe bedeuten. Centaur hat einen speziellen Trick, um diese Duplikate aufzusporen und die überflüssigen zu entfernen, damit es nicht verwirrt wird.

Schritt 3: Die Massenproduktion (Fuzzing)
Nun, da Centaur eine Liste verifizierter Regeln hat, nutzt es den „Mathematiklehrer“ (den SMT-Solver), um Millionen von neuen Testfällen zu generieren. Da die Regeln mathematisch bewiesen sind, weiß Centaur, dass fast jede einzelne Eingabe, die es erstellt, gültig sein wird. Es ist wie eine Maschine, die nur perfekten Kuchenteig produziert, niemals einen verbrannten oder rohen.

Schritt 4: Der Crashtest
Centaur speist diese Millionen von perfekten Eingaben in die Deep-Learning-Bibliothek ein. Wenn die Bibliothek abstürzt, einfriert oder ein seltsames Ergebnis liefert, markiert Centaur dies als Bug.

Warum ist das eine große Sache?

Frühere Werkzeuge versuchten, Bugs auf zwei Arten zu finden:

  • Der „Zufallswerfer“: Sie warfen zufällige Daten auf die Bibliothek. Das ist so, als würde man mit verbundenen Augen Dartpfeile werfen. Die meisten Pfeile verfehlen die Zielscheibe (ungültige Eingaben), sodass viel Zeit verschwendet wird.
  • Der „Code-Leser“: Sie versuchten, den Quellcode der Bibliothek zu lesen, um die Regeln zu verstehen. Das ist so, als würde man versuchen, den Bauplan eines Hauses zu lesen, während es gerade gebaut wird. Es ist langsam, und wenn der Bauplan unordentlich ist, verliert man sich darin.

Centaur ist anders. Es lernt die Regeln, indem es beobachtet, wie die Bibliothek sich verhält (unter Verwendung des LLM), und nutzt dann Mathematik, um perfekte Testfälle zu generieren.

Die Ergebnisse (Was das Paper behauptet)

Die Forscher haben Centaur auf PyTorch und TensorFlow getestet, den beiden populärsten KI-Bibliotheken. Hier ist, was sie herausgefunden haben:

  • Genauigkeit: Die Regeln von Centaur waren zu 94 % genau. Es rät selten falsch und übersieht selten eine Regel, die tatsächlich vorhanden ist.
  • Effizienz: Während andere Werkzeuge hauptsächlich ungültige Eingaben erzeugten (die nutzlos für Tests sind), generierte Centaur Eingaben, die zu 98 % gültig waren. Das bedeutet, es hat fast seine gesamte Zeit mit dem Testen echter Szenarien verbracht und nicht mit verschwendeter Zeit für unmögliche Szenarien.
  • Abdeckung: Centaur untersuchte mehr Teile des Codes als die bisher besten Werkzeuge. Es fand „tiefe“ Bugs – Probleme in der Kernlogik der Software – anstatt nur oberflächliche Fehler.
  • Fehlersuche: Mit Centaur fand das Team 26 neue Bugs in diesen Bibliotheken. 18 davon wurden von den Entwicklern bestätigt. Einer davon wurde sogar behoben, bevor das Paper veröffentlicht wurde!

Eine einfache Analogie für die „Deep Bugs“

Stellen Sie sich eine Brücke vor.

  • Flache Bugs (Shallow Bugs) sind wie ein Schlagloch am Straßenrand. Leicht zu sehen, leicht zu reparieren.
  • Tiefe Bugs (Deep Bugs) sind wie ein Riss im Hauptstützbalken. Man kann sie von außen nicht sehen, aber wenn ein schwerer LKW darüberfährt, könnte die ganze Brücke einstürzen.

Frühere Werkzeuge fanden meist nur Schlaglöcher. Centaur, das die komplexen Regeln versteht, nach denen die Brücke gebaut ist, war in der Lage, die Risse in den Stützbalken zu finden.

Zusammenfassung

Centaur ist ein neues Testwerkzeug, das eine kreative KI nutzt, um die Regeln von Deep-Learning-Bibliotheken zu erraten, und dann eine logische Mathematik-Engine nutzt, um diese Regeln zu verifizieren und Millionen von perfekten Testfällen zu generieren. Diese Kombination ermöglicht es, verborgene, gefährliche Bugs zu finden, die andere Werkzeuge übersehen, und macht die KI-Systeme, auf die wir uns verlassen, sicherer und zuverlässiger.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →