Wat is ONNX?

Gemeenschappelijk modelformaat om modellen uit te wisselen tussen verschillende frameworks en inferentieruntimes. Afkorting van Open Neural Network Exchange.

Japanse benaming: ONNX

“ONNX” komt voor in 2 oefenvragen uit 1 onderwerpen, bijv. AI-hardware en softwarestack.

Vakgebied: AI-hardware en softwarestack

Nu oefenen: vragen over ONNX

Welke uitspraak over ONNX is juist?

  1. ADe naam van een speciale halfgeleiderchip voor AI
  2. BEen methode om trainingsdata voor AI te comprimeren
  3. CEen gemeenschappelijk modelformaat voor het uitwisselen van modellen tussen verschillende frameworks en inferentie-runtimes
Antwoord en toelichting tonen

Antwoord: C. Een gemeenschappelijk modelformaat voor het uitwisselen van modellen tussen verschillende frameworks en inferentie-runtimes

ONNX (Open Neural Network Exchange) is een standaard om de rekengraaf en gewichten van een model in een gemeenschappelijk formaat weer te geven. Een model dat bijvoorbeeld met PyTorch is getraind kan naar ONNX worden geëxporteerd en door inferentie-runtimes van andere bedrijven en door tools voor uiteenlopende hardware worden ingelezen en uitgevoerd. Omdat de trainingsomgeving en de inferentieomgeving worden losgekoppeld, is het gemakkelijk per apparaat het optimale uitvoeringsmechanisme te kiezen.

Wat is de belangrijkste reden dat inferentie-runtimes zoals TensorRT en ONNX Runtime sneller kunnen zijn dan inferentie rechtstreeks met een trainingsframework?

  1. AOmdat de graaf wordt geoptimaliseerd tot een vorm die alleen voor inferentie nodig is, met onder meer operator fusion, kwantisatie en keuze van kernels die bij de hardware passen
  2. BOmdat de inferentie-runtime berekeningen weglaat en een bij benadering juist antwoord geeft
  3. COmdat de inferentie-runtime het aantal gewichten van het model vergroot
Antwoord en toelichting tonen

Antwoord: A. Omdat de graaf wordt geoptimaliseerd tot een vorm die alleen voor inferentie nodig is, met onder meer operator fusion, kwantisatie en keuze van kernels die bij de hardware passen

Trainingsframeworks leggen de nadruk op flexibel schrijven en op registratie voor backpropagation, wat bij uitsluitend inferentie verspilling oplevert. Een inferentie-runtime verwijdert na het inlezen van het model de voor inferentie onnodige delen, voegt bewerkingen samen, zet gewichten en activaties zo nodig om naar lagere precisie en kiest de snelste kernel voor de doel-GPU of -NPU. Zo kunnen voor hetzelfde model latency en geheugen sterk afnemen.

“ONNX” in de toelichting

Vragen met “ONNX” (2)

  1. Welke uitspraak over ONNX is juist?
  2. Wat is de belangrijkste reden dat inferentie-runtimes zoals TensorRT en ONNX Runtime sneller kunnen zijn dan inferentie rechtstreeks met een trainingsframework?

Verwante termen

Inferentie (inference) Rekengraaf (computational graph) Inferentie-runtime Numerieke apertuur (NA) GPU NPU (neural processing unit) AI-compiler All-reduce Attention Backpropagatie

Naar de woordenlijst