
ONNX Runtime to otwarty, wieloplatformowy silnik akceleracji inferencji i treningu modeli uczenia maszynowego zapisanych w formacie ONNX (Open Neural Network Exchange). Projekt jest rozwijany i utrzymywany przez Microsoft, udostępniany na licencji MIT.
Rdzeń napisany jest w C++, a oficjalne API są dostępne m.in. dla Pythona, C#/.NET, Javy i JavaScript. Silnik działa na systemach Linux, Windows, macOS, iOS i Android oraz w przeglądarce, w środowiskach od chmury po urządzenia brzegowe i mobilne.
Wydajność uzyskiwana jest dzięki wymiennym backendom wykonawczym (execution providers), które wykorzystują akcelerację sprzętową: CPU, NVIDIA CUDA i TensorRT, DirectML (Windows), Apple CoreML, Intel OpenVINO, Qualcomm QNN i inne. ONNX Runtime jest wykorzystywany w produktach Microsoftu, w tym w systemie Windows, pakiecie Office, usługach Azure oraz w wyszukiwarce Bing.
Silnik inferencji ładuje wcześniej wytrenowany model i uruchamia jego przebiegi w przód (predykcje) na danych wejściowych. Zwykle wspiera akcelerację sprzętową (CPU, GPU, NPU) przez wymienne backendy wykonawcze.
Biblioteka programistyczna udostępniająca API do budowy, wdrażania lub wykonywania modeli uczenia maszynowego w aplikacjach.
Wykorzystywany w Windows, Microsoft Office, usługach Azure oraz w wyszukiwarce Bing.
Ponad 21 000 gwiazdek i ok. 4,2 tys. forków na GitHub (microsoft/onnxruntime).
Kompilowany, wysokowydajny język programowania ogólnego przeznaczenia. Główny język implementacji rdzenia ONNX Runtime.
Interpretowany język wysokiego poziomu, dominujący w uczeniu maszynowym. ONNX Runtime udostępnia oficjalne API dla Pythona.
Obiektowy język programowania firmy Microsoft na platformę .NET. ONNX Runtime udostępnia oficjalne API dla C#/.NET.
Rodzina otwartych systemów operacyjnych opartych na jądrze Linux, powszechna na serwerach, w chmurze i w robotyce.
Rodzina systemów operacyjnych firmy Microsoft dla komputerów osobistych i serwerów.
System operacyjny firmy Apple dla komputerów Mac.
Mobilny system operacyjny firmy Apple dla urządzeń iPhone i iPad.
Mobilny system operacyjny oparty na jądrze Linux, rozwijany przez Google.
Menedżer pakietów Pythona. Pakiet onnxruntime dystrybuowany jest przez PyPI.
Menedżer pakietów dla platformy .NET. ONNX Runtime dystrybuowany jest jako pakiety Microsoft.ML.OnnxRuntime.
Menedżer pakietów dla ekosystemu JavaScript/Node.js. Pakiety onnxruntime-web i onnxruntime-node dystrybuowane są przez npm.
Menedżer zależności i budowania dla ekosystemu Java. ONNX Runtime dystrybuowany jest jako com.microsoft.onnxruntime.
64-bitowa architektura procesorów zgodna z zestawem instrukcji x86, dominująca w komputerach i serwerach.
64-bitowa architektura procesorów ARM, powszechna w urządzeniach mobilnych, wbudowanych i coraz częściej w serwerach.
Wdrożenie w środowisku chmurowym (serwery, kontenery, usługi zarządzane).
Wdrożenie lokalne na urządzeniu brzegowym lub wbudowanym, bez zależności od chmury.
Wdrożenie na urządzeniach mobilnych (iOS, Android).
Wykonywanie w przeglądarce internetowej (np. przez WebAssembly / WebGPU).
Permisywna licencja wolnego oprogramowania opracowana na Massachusetts Institute of Technology. Zezwala na dowolne użycie, kopiowanie, modyfikację, łączenie, publikowanie, dystrybucję, sublicencjonowanie i sprzedaż oprogramowania, pod warunkiem zachowania informacji o prawach autorskich i treści licencji. Nie zawiera copyleft.
Licencja permisywna, w pełni kompatybilna z ekosystemem ROS/ROS 2 oraz z zamkniętymi produktami komercyjnymi.
Najnowsze stabilne wydanie z serii 1.x.
Pierwsze stabilne wydanie 1.0 (general availability).
Pierwsze publiczne wydanie ONNX Runtime jako projektu open source.