← Nieuwste papers
💻 computer science

Data-driven Test Generation for Fuzzing AI Compiler

Dit artikel presenteert OPERA, een verenigd datagedreven testframework dat systematisch fase-specifieke uitdagingen in AI-compilers aanpakt via drie gespecialiseerde technieken (OPERA, OATest en HARMONY), waarbij succesvol 266 voorheen onbekende bugs in vier veelgebruikte compilers zijn gedetecteerd.

Oorspronkelijke auteurs: Qingchao Shen

Gepubliceerd 2026-01-27
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Qingchao Shen

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 een AI-compiler voor als een meesterkok in een high-tech keuken. Zijn taak is om een complex recept (een AI-model geschreven door data scientists) te transformeren naar een gerecht dat perfect bereid kan worden op elke specifieke kookplaat, oven of grill (verschillende hardware zoals GPU's of TPU's).

Echter, net als bij elke complexe keuken, kan deze chef fouten maken. Soms wordt het recept verkeerd vertaald, soms worden de kookstappen slecht geoptimaliseerd, en soms wordt het uiteindelijke gerecht aangebrand omdat de instellingen van de kookplaat verkeerd begrepen zijn. Deze fouten zijn "bugs", en als die optreden, kan het AI-model crasken of foute antwoorden geven.

Dit paper introduceert een nieuw, driedelig "proefteam" genaamd OPERA, OATest en HARMONY. In plaats van alleen maar te hopen dat de chef het goed doet, probeert dit team systematisch het proces van de chef op elke fase van het koken te breken om fouten te vinden en te herstellen voordat ze de klant bereiken.

Hier is hoe elk deel van het team werkt, met behulp van eenvoudige analogieën:

1. De Vertaler-check: OPERA (Model Loading Fase)

Het Probleem: De eerste stap is het vertalen van het recept van een specifieke taal (zoals PyTorch of Keras) naar een universele taal die de keuken begrijpt. Als de vertaler een specifiek ingrediënt verkeerd vertaalt (zoals "ReLU" of "Conv2D"), mislukt het hele gerecht.
De Oplossing (OPERA): Stel je voor dat je een bibliotheek hebt van duizenden "oefenrecepten" die professionele koks al hebben getest om te controleren of de ingrediënten correct werken. OPERA neemt deze bestaande, vertrouwde oefenrecepten en dwingt de compiler om deze te vertalen.

  • Hoe het werkt: Het verzint geen nieuwe recepten; het "migreert" (verplaatst) deze bekende, goede tests naar de vertalingsfase van de compiler.
  • Het Resultaat: Door elke mogelijke manier waarop een ingrediënt gebruikt kan worden te controleren, vond OPERA 170 bugs waarbij de compiler faalde om het recept correct te vertalen. Het is alsof je controleert of de chef weet hoe hij een ui op 50 verschillende manieren moet snijden, en niet slechts op één manier.

2. De Strategie-check: OATest (High-Level Optimalisatie)

Het Probleem: Zodra het recept is vertaald, probeert de chef het sneller te maken. Dit is de "High-Level Optimization" fase. De chef kan besluiten om twee stappen samen te voegen of de volgorde van handelingen te veranderen. Het lastige deel is dat de context ertoe doet. Het combineren van stappen werkt geweldig in de ene situatie, maar veroorzaakt een ramp in een andere.
De Oplossing (OATest): Denk hierbij aan een "Wat als"-spel. Het team kijkt naar de aantekeningen van de chef over hoe hij dingen bedoelt te optimaliseren. Vervolgens nemen ze deze optimalisatie-ideeën en plakken deze in willekeurige, complexe delen van het recept om te zien of de chef in de war raakt.

  • Hoe het werkt: Het extraheert de "regels" die de chef gebruikt om te optimaliseren en mengt deze vervolgens met willekeurige, rommelige scenario's om te zien of de logica breekt. Het is als vragen: "Als je deze twee stappen combineert, wat gebeurt er dan als de pan leeg is?"
  • Het Resultaat: Deze methode vond 56 bugs waarbij de strategie van de chef om dingen te versnellen, de logica van het gerecht daadwerkelijk verbrak.

3. De Hardware-check: HARMONY (Low-Level Optimalisatie)

Het Probleem: De laatste fase is het afstemmen van het recept op een specifieke kookplaat (zoals een high-end GPU). Dit is "Low-Level Optimization". Dit is zeer technisch en omvat zaken als geheugensnelheid en parallel koken. Het is moeilijk te testen omdat de regels strikt zijn en diep in de handleiding verborgen zitten.
De Oplossing (HARMONY): Dit team gebruikt een "Mutatie"-aanpak. Stel je voor dat je een perfect, werkend recept hebt. HARMONY maakt kleine, zorgvuldige wijzigingen aan dit recept (mutaties) om te zien of de specifieke kookplaat de nieuwe versie aankan.

  • Hoe het werkt: Het gebruikt een slimme AI-assistent (een Large Language Model) om de handleiding van de kookplaat te lezen en een divers pakket aan "seed"-recepten te genereren. Vervolgens maakt het kleine aanpassingen aan deze seeds om specifiek de speciale functies van de kookplaat te triggeren (zoals het verbergen van geheugenvertragingen).
  • Het Resultaat: Dit vond 40 bugs waarbij de compiler probeerde te optimaliseren voor de specifieke hardware, maar uiteindelijk code genereerde die de hardware niet correct kon uitvoeren.

Het Grotere Plaatje

Door deze drie benaderingen te combineren, creëerde het team een uniform testframework dat het hele kookproces van begin tot eind dekt.

  • OPERA controleert de vertaling.
  • OATest controleert de strategie.
  • HARMONY controleert de uitvoering op de hardware.

De Scorekaart:
Samen vonden deze drie benaderingen 266 voorheen onbekende bugs in vier grote AI-compilers (TVM, TensorRT, ONNXRuntime en OpenVINO). Veel hiervan werden bevestigd door de ontwikkelaars, wat bewijst dat dit "proefteam" essentieel is om AI-software betrouwbaar en veilig te houden.

Het paper concludeert dat zij van plan zijn dit team uit te breiden om zelfs nieuwere, opkomende AI-keukens in de toekomst te testen, om er zeker van te zijn dat, naarmate de AI-technologie evolueert, de tools om het te bouwen vrij blijven van bugs.

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 →