← Nieuwste papers
🤖 machine learning

GraphMend: Code Transformations for Fixing Graph Breaks in PyTorch 2

GraphMend is een compilertechniek die automatisch bronniveau-transformaties identificeert en semantisch behoudt om oplosbare FX-graph breaks in PyTorch 2 te elimineren, waardoor grotere ononderbroken grafen mogelijk worden gemaakt en significante prestatieverbeteringen worden opgeleverd zonder dat handmatige refactoring door de ontwikkelaar vereist is.

Oorspronkelijke auteurs: Savini Kashmira, Jayanaka Dantanarayana, Thamirawaran Sathiyalogeswaran, Krisztian Flautner, Lingjia Tang, Jason Mars

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

Oorspronkelijke auteurs: Savini Kashmira, Jayanaka Dantanarayana, Thamirawaran Sathiyalogeswaran, Krisztian Flautner, Lingjia Tang, Jason Mars

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 hogesnelheidstrein (jouw AI-model) probeert te bouwen om op een supersnel spoor (jouw krachtige GPU) te rijden. In de wereld van PyTorch 2 hebben de ingenieurs een systeem gebouwd genaamd TorchDynamo dat fungeert als een gids. Zijn taak is om naar de blauwdruk van je trein te kijken, alle stops samen te voegen en de hele route aan de spoorwegbeheerders te overhandigen om er één naadloze, supersnelle trein van te maken.

Soms bevat de blauwdruk echter verwarrende instructies. Misschien staat er: "Als het passagiersaantal hoog is, neem dan het linker spoor; anders, neem het rechter spciaar," maar de gids kan het passagiersaantal pas weten wanneer de trein daadwerkelijk begint te rijden. Omdat de gids de toekomst niet kan voorspellen, moet hij de trein laten stoppen, de controle teruggeven aan een menselijke bestuurder (de trage Python-interpreter), wachten tot deze een beslissing heeft genomen, en de trein dan weer opnieuw starten.

In de taal van het wetenschappelijke artikel worden deze stops "Graph Breaks" genoemd. Elke keer dat de trein stopt en opnieuw start, verliest hij momentum, verspilt hij brandstof (energie) en doet hij er veel langer over om de bestemming te bereiken.

Het Probleem: De "Stop-en-Go" Verkeersopstopping

De auteurs van dit artikel, Savini Kashmira en haar team, hebben 195 populaire AI-modellen onderzocht (zoals die gebruikt worden voor chatbots, beeldherkenning en vertaling). Ze ontdekten dat 13,8% van hen vastzat in deze "stop-en-go" verkeersopstopping.

Hoewel deze modellen zijn gebouwd door top AI-bedrijven, bevatten ze codepatronen die de gids in verwarring brachten. Dit zorgde ervoor dat de AI:

  1. Constant pauzeerde: De computer moest voortdurend schakelen tussen de snelle GPU en de trage CPU.
  2. Vaak opnieuw opstartte: In plaats van één lange, vloeiende rit, moest het model vele malen worden gecompileerd en gelanceerd in kleine stukjes.
  3. Trager liep: Dit zorgde ervoor dat de AI veel langer nodig had om op te starten (Cold Start) en zelfs wanneer hij al onderweg was, ook iets langzamer liep (Steady State).

De Oplossing: GraphMend (De "Blauwdruk-Fixer")

Het team creëerde een nieuwe tool genaamd GraphMend. Denk aan GraphMend als een slimme editor die naar de blauwdruk kijkt voordat de trein begint te rijden.

In plaats van te wachten tot de gids in verwarring raakt en de trein laat stoppen, herschrijft GraphMend de verwarrende instructies naar een formaat dat de gids direct begrijpt. Het gebruikt drie belangrijke trucs:

  1. De "Beide-Paden"-truc (Predicated Control Flow):

    • Het Probleem: "Als X groot is, doe A; als X klein is, doe B." De gids kan nog niet beslissen welke hij moet doen.
    • De Fix: GraphMend herschrijft dit naar: "Doe zowel A als B nu, maar houd alleen het resultaat aan dat bij de conditie past." Het is also'k twee broodjes tegelijk klaarmaken en de passagier het broodje geven dat hij uiteindelijk wil. De trein hoeft niet te stoppen om te beslissen; hij blijft gewoon doorrijden.
  2. De "Wacht Tot Later"-truc (Deferred Side Effects):

    • Het Probleem: De code zegt bijvoorbeeld: "Print een bericht op het scherm" of "Log een foutmelding." Deze acties vereisen contact met de menselijke operator, wat de trein doet stoppen.
    • De Fix: GraphMend zegt: "Houd dat even vast." Het schrijft de boodschap op een notitieblok en wacht tot de trein zijn snelle rit heeft voltooid voordat de boodschap hardop wordt voorgelezen. De trein stopt nooit.
  3. De "Veiligheidscontrole"-truc (Predicated Validation):

    • Het Problebel: De code zegt: "Als de data er vreemd uitziet, gooi dan een enorme foutmelding en stop alles."
    • De Fix: GraphMend verandert dit in een speciale "interne alarmbel" die binnenin de motor van de trein draait. Als er iets mis is, gaat het alarm af, maar de trein hoeft niet te stoppen en opnieuw te starten om dit te controleren.

De Resultaten: Een Veel Snellere Rit

Het team heeft GraphMend getest op de 27 modellen die deze verkeersopstoppingen hadden. Dit is wat er gebeurde:

  • De Opstoppingen Verhelpen: Ze hebben succesvol 73% van de "stops" (graph breaks) verwijderd. In 21 van de 27 modellen hebben ze elke enkele break opgelost.
  • Snellere Starts: Wanneer de AI vanaf nul opstartte, was het tot wel 26 keer sneller (gemiddeld 5 keer sneller). Dit is enorm belangrijk voor diensten waarbij je elke paar seconden een nieuwe AI-instantie moet opstarten.
  • Vloeiender Cruisen: Zelfs wanneer de AI al aan het rijden was, was het tot wel 1,39 keer sneller.
  • Meer Doorvoer: Het systeem kon meer verzoeken per seconde aanwerken (tot 15% meer), wat betekent dat meer mensen tegelijkertijd de AI kunnen gebruiken.

Waarom dit Belangrijk is

Het artikel benadrukt dat deze oplossingen automatisch zijn. Ontwikkelaars hoeven geen experts te zijn in compiler-theorie om hun modellen te repareren. GraphMend doet het zware werk van het analyseren van de code, het bewijzen dat de wijzigingen veilig zijn, en het herschrijven van de instructies zodat de AI als één vloeiende, ononderbroken reis op de GPU kan rijden.

Kortom, GraphMend verandert een hobbelige, stop-en-go rit in een hogesnelheidstrein door de blauwdruk te repareren voordat de reis begint.

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 →