ONNX

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Open Neural Network Exchange (ONNX)
Логотип программы Open Neural Network Exchange (ONNX)
Тип Для построения нейронных сетей
Разработчики Facebook, Microsoft
Написана на C++, Python
Операционные системы Windows, Linux
Первый выпуск сентябрь 2017; 7 лет назад (2017-09)
Аппаратная платформа кроссплатформенный
Последняя версия 1.7.0[1]. (28 мая 2020; 4 года назад (2020-05-28))
Репозиторий github.com/onnx/onnx
Состояние Активное
Лицензия Apache License 2.0
Сайт onnx.ai
Логотип Викисклада Медиафайлы на Викискладе

ONNX (Open Neural Network Exchange) — открытая библиотека программного обеспечения для построения нейронных сетей глубокого обучения. С помощью ONNX ИИ-разработчики могут обмениваться моделями между различными инструментами и выбирать наилучшую комбинацию этих инструментов. ONNX разрабатывается и поддерживается совместно компаниями Microsoft, Facebook, Amazon и другими партнерами как проект с открытым исходным кодом[2][3].

ONNX позволяет обучать модели в рамках одной среды, а затем переносить их в другую среду для распознавания лиц, распознавания жестов или объектов и т. д. Это позволяет разработчикам использовать правильную комбинацию инструментов. Модели ONNX в настоящее время поддерживаются в Caffe2, Microsoft Cognitive Toolkit, MXNet, PyTorch и OpenCV, и есть интерфейсы для многих других популярных фреймворков и библиотек.

ONNX Model Zoo — это коллекция моделей глубокого обучения с предварительным обучением, доступных в формате ONNX. Каждая модель поставляется с интерактивной оболочкой IPython для обучения модели и выработки соответствующей модели. Модели написаны на Python и содержат ссылки на набор обучающих данных, а также ссылки на оригинальный научный документ, описывающий архитектуру модели.

ONNX в «железе»

Первоначально ONNX назывался Toffee[4] и был разработан командой PyTorch в Facebook[5]. В сентябре 2017 года он был переименован в ONNX и анонсирован Facebook и Microsoft.[6] Позже IBM, Huawei, Intel, AMD, Arm и Qualcomm объявили о поддержке этой инициативы[7].

ONNX.js является JavaScript-библиотекой для запуска ONNX модели в браузерах и на Node.js. С ONNX.js веб-разработчики могут интегрировать и тестировать предварительно обученные модели ONNX непосредственно в веб-браузере. Это имеет следующие преимущества: сокращение взаимодействия сервер-клиент, защита пользовательских данных, кроссплатформенное машинное обучение без установки программного обеспечения на клиенте.

ONNX.js может быть запущен как на CPU, так и на GPU. Для работы на процессоре используется WebAssembly. Это позволит модели работать практически на родной скорости. Кроме того, ONNX.js использует Web worker[англ.] для обеспечения «многопоточной» вычислительной среды распараллеливания. Эмпирическая оценка показывает очень многообещающие улучшения производительности процессора, используя все преимущества WebAssembly и Web Workers. Для работы на графических процессорах WebGL является стандартом для доступа к функциям графического процессора[8][9][10].

Примечания

[править | править код]
  1. Release 1.7.0 (англ.) (28 мая 2020). Дата обращения: 3 июня 2020. Архивировано 19 августа 2021 года.
  2. Braddock Gaskill. ONNX: the Open Neural Network Exchange Format (англ.). Linux Journal (25 апреля 2018). Дата обращения: 17 января 2019. Архивировано 19 января 2019 года.
  3. heise online. Microsoft und Facebook machen gemeinsame KI-Sache (нем.). Дата обращения: 17 января 2019. Архивировано 19 января 2019 года.
  4. Codemod Toffee -> ONNX, toffee -> onnx. Change file names to match · pytorch/pytorch@6d8d5ba (англ.). GitHub. Дата обращения: 12 октября 2021. Архивировано 27 октября 2021 года.
  5. A model exporter for PyTorch by ezyang · Pull Request #2565 · pytorch/pytorch (англ.). GitHub. Дата обращения: 12 октября 2021. Архивировано 27 октября 2021 года.
  6. "Microsoft and Facebook create open ecosystem for AI model interoperability - Microsoft Cognitive Toolkit". Microsoft Cognitive Toolkit (англ.). 2017-09-07. Архивировано 30 марта 2019. Дата обращения: 11 октября 2017. {{cite news}}: Указан более чем один параметр |accessdate= and |access-date= (справка)
  7. "Microsoft and Facebook's open AI ecosystem gains more support". Engadget (англ.). Архивировано 9 мая 2019. Дата обращения: 11 октября 2017. {{cite news}}: Указан более чем один параметр |accessdate= and |access-date= (справка)
  8. Microsoft ONNX.js: run ONNX models using JavaScript. (англ.) (7 марта 2019). Дата обращения: 7 марта 2019. Архивная копия от 30 апреля 2019 на Wayback Machine Источник. Дата обращения: 16 апреля 2019. Архивировано 30 апреля 2019 года.
  9. Will Badr ONNX.js: Universal Deep Learning Models in The Browser (англ.) (8 января 2019). Дата обращения: 7 марта 2019. Архивная копия от 3 февраля 2022 на Wayback Machine Источник. Дата обращения: 16 апреля 2019. Архивировано 3 февраля 2022 года.
  10. ONNX.js - Run ONNX models in the browser (Demos) (англ.). Microsoft. Дата обращения: 7 марта 2019. Архивная копия от 8 марта 2019 на Wayback Machine Источник. Дата обращения: 16 апреля 2019. Архивировано 8 марта 2019 года.