Model wytrenowany w jednym środowisku trzeba uruchomić w dziesięciu innych — na serwerze, na telefonie, w przeglądarce, w układzie wbudowanym. Przepisywanie go za każdym razem nie wchodzi w grę.
Czym jest ONNX
ONNX to otwarty format zapisu modeli uczenia maszynowego, przechowujący w jednym pliku graf obliczeniowy wraz z wagami, w postaci niezależnej od środowiska, w którym model powstał. Powstał jako wspólna inicjatywa branżowa i pełni rolę warstwy pośredniej między trenowaniem a uruchamianiem.
Jak to działa
Model wytrenowany w dowolnym popularnym środowisku eksportuje się do ONNX, co zamraża jego graf i wagi. Plik trafia następnie do środowiska uruchomieniowego, które kompiluje graf pod konkretny sprzęt i wykonuje go.
To rozdzielenie jest całą wartością formatu: trenowanie i uruchamianie przestają być związane jednym narzędziem.
Zestaw operatorów
Format definiuje zestaw dozwolonych operacji, wersjonowany numerem zestawu. Nowsze architektury modeli wprowadzają operacje, których starsze zestawy nie znają — i to jest najczęstsza przyczyna niepowodzenia przy eksporcie albo uruchomieniu.
Dlaczego to ważne dla stron
Środowisko uruchomieniowe ONNX ma wersję działającą w przeglądarce, korzystającą z WebGPU albo z WASM. To ono stoi pod większością modeli uruchamianych po stronie klienta — także pod bibliotekami wyższego poziomu, które ukrywają je przed programistą.
Przy eksporcie zwykle jednocześnie kwantyzuje się model, bo dla urządzenia końcowego rozmiar pliku jest zwykle ważniejszy niż ostatnie procenty dokładności.