Műszaki ÚTMUTATÓ

Az ONNX és a modellek interoperabilitása

Az ONNX (Open Neural Network Exchange) egy nyílt szabványú formátum a gépi tanulási modellek megjelenítésére, így azok szabadon mozoghatnak a keretrendszerek és a futási környezetek között.

2 perc olvasásUtoljára frissítve

Áttekintés

It lets you train a model in one tool, like PyTorch, and deploy it in another environment without rewriting it.

Mély merülés

A különböző keretrendszerek (PyTorch, TensorFlow, scikit-learn) nem kompatibilis formátumban tárolják a modelleket, ami fájdalmassá teszi a telepítést. A Microsoft és a Facebook által 2017-ben elindított, jelenleg a Linux Foundation irányítása alatt álló ONNX ezt egy közös fájlformátum és egy szabványos operátorkészlet (például Conv, MatMul, Relu) meghatározásával oldja meg, amelyek a modellt számítási gráfként írják le. A betanított modellt .onnx fájlba exportálja, és bármely kompatibilis futási környezet betöltheti. Az ONNX Runtime ezután hatékonyan végrehajtja a grafikont a különféle hardvereken, olyan optimalizálásokat alkalmazva, mint az operátor-fúzió és kvantálás, valamint az útválasztási számítások olyan háttérrendszerekhez, mint a CPU-k, NVIDIA GPU-k (a TensorRT-n keresztül) vagy speciális gyorsítók. Ez elválasztja a modellképzést a telepítéstől.

Technikai betekintés

Az ONNX modell egy soros számítási gráf: a csomópontok egy verziózott operátorkészletből (opset) húzott operátorok, az élek pedig meghatározott alakú és típusú tenzorokat hordoznak. Az exportőrök nyomon követik vagy leírják a modellt a grafikon rögzítéséhez. Következtetésképpen az ONNX Runtime felosztja a grafikont „végrehajtási szolgáltatók” (CPU, CUDA, TensorRT stb.) között, mindegyik az általa legjobban támogatott operátorokat kezeli, és gráfszintű optimalizálásokat alkalmaz, mint például az állandó hajtogatást és a csomópont-fúziót a folyamat felgyorsítása érdekében.

Stratégiai hatás

Költség és költségvetés

Az építészeti döntések évekig növelik a teljesítményt és a működési költségeket.

Tisztább döntések

A technikai oktatás segít a csapatoknak a megfelelő verem kiválasztásában, nem csak a legújabb készletben.

Minőségellenőrzés

A jobb mérnöki döntések csökkentik a termelés megbízhatósági incidenseit.

Az ONNX és a modell-együttműködés jövője

Az ONNX a lingua franca szerepét tölti be a modellek bevezetésében, különösen a széleken és a platformok közötti kiszolgálásban. A nagy nyelvi modellek és transzformátorok szélesebb kezelői lefedettsége, a kvantált és alacsony bites következtetések szorosabb támogatása, valamint a hardvergyártók futási környezetével való mélyebb integráció várható. Ahogy a speciális mesterséges intelligencia chipek ökoszisztémája növekszik, az olyan gyártó-semleges formátum, mint az ONNX, felértékelődik, lehetővé téve a csapatok számára, hogy a modellek újratervezése nélkül cseréljenek hardvert, az ONNX Runtime pedig tovább terjeszkedik a mobil és webes célpontok felé (a WebAssembly segítségével).

Valós megvalósítás

PyTorch képosztályozó exportálása ONNX-be, és futtatása az ONNX Runtime segítségével C++ éles kiszolgálón Python-függőség nélkül.

Modell telepítése mobilra vagy böngészőre az ONNX Runtime Web (WebAssembly) segítségével az eszközön történő következtetések érdekében.

Exportált transzformátor felgyorsítása az NVIDIA TensorRT segítségével, mint ONNX futásidejű végrehajtási szolgáltatóval az alacsonyabb késleltetés érdekében.

Egy ONNX modell kvantálása int8-ra, hogy csökkentse a méretét és felgyorsítsa a következtetések levonását az él CPU-kon.

Kockázatok és védőkorlátok

Egy benchmark optimalizálása elrejtheti a rendszer általános hiányosságait.

Az infrastrukturális és karbantartási költségeket gyakran alábecsülik.

A biztonsági és megfigyelhetőségi hiányosságok a rendszerek bonyolultabbá válásával nőhetnek.

Végrehajtási ütemterv

1

Határozza meg a késleltetési, minőségi és költségcélokat a megvalósítás előtt.

2

Benchmark reális terhelési és adatviszonyok mellett.

3

Műszerfigyelés a hibák, az eltolódás és a felhasználói hatások szempontjából.

4

A méretezés előtt készítse elő a visszagörgetési és az incidensre adott válaszútvonalakat.

Folytassa a felfedezést

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the ONNX and Model Interoperability quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Kezdő kvíz

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Gyakran ismételt kérdések

What is ONNX and Model Interoperability?

Az ONNX (Open Neural Network Exchange) egy nyílt szabványú formátum a gépi tanulási modellek megjelenítésére, így azok szabadon mozoghatnak a keretrendszerek és a futási környezetek között. Lehetővé teszi a modell betanítását egy eszközben, például a PyTorchban, és egy másik környezetben üzembe helyezését anélkül, hogy át kellene írnia.

Milyen alapvető problémát old meg elsősorban az ONNX?

Az ONNX megosztott formátumot határoz meg, így az egyik keretrendszerben betanított modell átírás nélkül telepíthető egy másik környezetben.

Hogyan ábrázol egy ONNX fájl egy modellt?

Az ONNX modell egy számítási gráf, amelynek csomópontjai szabványos operátorok (például Conv, MatMul, Relu), amelyeket tenzorok kapcsolnak össze.

Mely cégek indították el eredetileg az ONNX-et 2017-ben?

Az ONNX-et az Microsoft és a Facebook közösen vezette be 2017-ben, és jelenleg a Linux Foundation üzemelteti.

Az ONNX Runtime-ban mi az a „végrehajtási szolgáltató”?

A végrehajtási szolgáltatók csatlakoztatható háttérrendszerek (CPU, CUDA, TensorRT és egyebek), amelyeket az ONNX Runtime a legjobban támogatott operátorok futtatására használ.

Mit definiál az „opset” (operátorkészlet) verzió egy ONNX modellben?

Az opset verzió meghatározza, hogy a modell melyik szabványosított halmazra és operátorverzióra támaszkodik, biztosítva, hogy a kompatibilis futási környezetek megfelelően értelmezzék.