Изучаем ONNX для применения в трейдинге - страница 2

 

8. ONNX - ONNX Runtime, простой пример



В этом видео докладчик представляет ONNX - открытый формат для моделей машинного обучения, который может оптимизировать производительность в разных фреймворках. Приводятся примеры использования ONNX в разных сценариях, таких как анализ тональности новостных статей и преобразование числовых векторных классификаторов в нейронные сети. Подчеркивается важность использования установленных библиотек для функций и точного измерения времени выполнения кода. Кроме того, обсуждаются проблемы разработки на разных операционных системах и рекомендуется загружать только необходимые модули для улучшения времени выполнения. В целом, это видео дает ценные идеи о преимуществах и сложностях использования ONNX для моделей машинного обучения.

 

9. An Overview of the PyTorch-ONNX Converter



В этом обзоре Bowen Bao из Microsoft представляет конвертер PyTorch-ONNX, объясняя его архитектуру и процесс преобразования модели PyTorch в промежуточное представление torch, затем в промежуточное представление ONNX и, наконец, в файл Protobuf.

Конвертер обрабатывает экспорт моделей с динамическими формами, квантизированные модели и захватывает циклы, операторы if и другие операции через узлы ONNX loop и ONNX if. Кроме того, пользователи могут создавать собственные операторы или использовать существующие пользовательские операторы PyTorch для экспорта модели ONNX или зарегистрировать собственную символическую функцию, чтобы сообщить экспортеру, как ее экспортировать.

Bowen также объясняет локальную ONNX-функцию, решает проблему смешанной точности через автоматический выбор типа данных и анонсирует планы по продолжению поддержки более широкого спектра моделей при улучшении диагностики ошибок.
 

10. Introduction to ONNX | Tutorial-1 | Open Neural Network Exchange | ONNX



Этот учебный курс предоставляет введение в ONNX, который является посредником в машинном обучении и конвертирует существующие модели из одного фреймворка в другой. Курс охватывает проблемы, с которыми сталкиваются в глубоком обучении, обзор ONNX и обсуждение ONNX Runtime. Демонстрируются практические примеры конвертации моделей с помощью ONNX и рассказывается о реальном случае использования конвертации Python-модели в TensorFlow-модель. Для прохождения курса требуется знакомство с программированием на Python, основами машинного обучения и фреймворками, такими как PyTorch, TensorFlow и Scikit-learn.

 

11. Challenges in Deep Learning | Tutorial-2 | Open Neural Network Exchange | ONNX



В этом видео обсуждаются проблемы использования разных фреймворков и аппаратных ускорителей глубокого обучения для исполнения моделей. ONNX представлен как промежуточный тип модели, совместимый с различными фреймворками глубокого обучения и аппаратными ускорителями, что позволяет беспрепятственно переносить модели между ними.
Преобразование моделей ONNX в конкретные фреймворки при необходимости обеспечивает большую гибкость при использовании обученных моделей в разных системах. Понимание этих проблем и решений может помочь создать эффективный конвейер для использования моделей глубокого обучения.

  • 00:00:00 Обсуждаются проблемы в глубоком обучении. Различные популярные фреймворки, используемые в глубоком обучении, включают Cafe, TensorFlow, Keras и MXNet. Для высокой вычислительной мощности необходимы аппаратные ускорители, оптимизированные для решений в области глубокого обучения, такие как NVIDIA GPU, Intel GPU и Google TPU. Для эффективности также требуется оптимизированная модель для вывода, и доступны различные аппаратные средства вывода, такие как NVIDIA Tesla T4, CPU и S-устройства, такие как Google Coral, Raspberry Pi и Jetson VR. При выборе устройства для глубокого обучения важно учитывать факторы программного и аппаратного обеспечения. ONNX предпочтителен из-за его совместимости с различными фреймворками глубокого обучения и аппаратными ускорителями, облегчающими безупречный перенос моделей между ними.
  • 00:05:00 Объясняется проблема использования обученной модели на другой фреймворке или аппаратном обеспечении на этапе исполнения модели. Эту проблему можно решить с помощью промежуточного типа модели Open Neural Network Exchange (ONNX), который может использоваться с разными аппаратными средствами и фреймворками. Модель ONNX может быть сконвертирована в любой конкретный фреймворк, если это необходимо. Это решение обеспечивает большую гибкость при использовании обученных моделей на разных системах. Докладчик заключает, что понимание этих проблем и решений поможет создать эффективный конвейер и работать более эффективно с глубоким обучением.
 

12. All about ONNX | Tutorial-3 | Open Neural Network Exchange | ONNX




ONNX является промежуточным фреймворком машинного обучения, который помогает преобразовывать модели в различные типы моделей фреймворков и обеспечивает возможности оптимизации, такие как квантизация, для ускорения вывода модели. ONNX был впервые представлен на рынке в 2017 году AWS, Microsoft и Facebook и с тех пор стал популярным и получил вклад от других компаний, таких как IBM, Intel и Huawei. В настоящее время многие компании активно работают в экосистеме ONNX.

 

13. Design principles | Tutorial-4 | Open Neural Network Exchange | ONNX



В этом видео объясняются принципы проектирования стандарта Open Neural Network Exchange (ONNX). Изначально созданный для глубокого обучения, он был расширен и теперь поддерживает традиционное машинное обучение. Формат ONNX воплотил все лучшее от других фреймворков, в его стандарт были включены операции из практических приложений. Благодаря этому он способен легко экспортировать и импортировать модели. ONNX является подходящим выбором для пользователей, которые ищут гибкое и эффективное решение.

 

14. ONNX file format | Tutorial-5 | Open Neural Network Exchange | ONNX




В видео обсуждается формат файла ONNX и то, как его можно визуализировать. Модель ONNX не является чёрным ящиком и может быть представлена в виде графа. Файл ONNX получается после конвертации модели машинного обучения в формат ONNX. Формат содержит важные параметры, такие как входы и выходы, вычислительные узлы, название графа, операторы и их параметры, типы данных и метаданные. Граф модели состоит из вычислительных узлов, каждый из которых выполняет свои вычисления. Формат файла ONNX повторяет фактическую модель. Важные схемы операторов доступны на официальном ресурсе ONNX на Github, которые отображают операторы из фреймворков, таких как Keras, TensorFlow или PyTorch. Схемы содержат операторы, такие как ReLU, Batch Normalization, Max, Average pooling и многие другие. Формат файла ONNX позволяет обеспечить совместимость между различными фреймворками, упрощая использование моделей из разных источников.
 

15. ONNX Data Type | Tutorial-6 | Open Neural Network Exchange | ONNX




В этом видео рассказывается о типах данных ONNX. ONNX имеет два типа спецификаций: для глубокого обучения и традиционного машинного обучения. В глубоком обучении ONNX работает с тензорными типами данных из целых чисел, чисел с плавающей запятой, булевых значений, строк и комплексных чисел. Однако в традиционном машинном обучении тензорных типов данных и вместо них используются последовательности (sequences) и карты (maps).

 

16. Machine Learning Example | Tutorial-7 | Open Neural Network Exchange | ONNX




В этом видео я покажу вам простой пример того, как обучить и сохранить модель машинного обучения в формате ONNX с помощью Python. После обучения модели мы сохраним ее в файл pickle, что является общей практикой в машинном обучении. После сохранения модели мы будем использовать скрипт-конвертер для преобразования файла pickle в формат ONNX. ONNX - это популярный открытый фреймворк для представления моделей машинного обучения. Он позволяет легко перемещать ваши модели между различными инструментами и платформами, делая их более переносимыми и оптимизированными. Чтобы использовать ONNX, сначала вам нужно его настроить. Я создал файл requirements.txt, в котором перечислены все необходимые пакеты. Вы можете установить эти пакеты, используя pip install -r requirements.txt. После установки пакетов вы можете начать использовать ONNX. Для этого примера мы будем использовать пакеты scikit-learn и skl2onnx для обучения и сохранения нашей модели. Чтобы использовать skl2onnx, вам нужно импортировать функцию convert_sklearn и передать ей объект модели scikit-learn. После получения модели ONNX вы можете использовать ее для исполнения модели на другой платформе. Для запуска модели требуется ONNX runtime. Мы рассмотрим ONNX runtime более подробно в наших будущих видео.

pickle — Python object serialization
pickle — Python object serialization
  • docs.python.org
Source code: Lib/pickle.py The pickle module implements binary protocols for serializing and de-serializing a Python object structure. “Pickling” is the process whereby a Python object hierarchy is...
 

17. ONNX Runtime | Tutorial-8 | Open Neural Network Exchange | ONNX




ONNX Runtime - это модульный фреймворк с открытым исходным кодом для запуска моделей ONNX. Microsoft предпочитает использовать его в своих проектах из-за его скорости, расширяемости и модульности. Он решает все вопросы аппаратной и программной совместимости после того, как модель конвертирована в формат ONNX, и является языком среднего уровня, который преобразует все фреймворки в общий язык. Подробная информация об ONNX Runtime доступна на его официальной странице в GitHub.

GitHub - microsoft/onnxruntime: ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
GitHub - microsoft/onnxruntime: ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
  • microsoft
  • github.com
ONNX Runtime is a cross-platform inference and training machine-learning accelerator . ONNX Runtime inference can enable faster customer experiences and lower costs, supporting models from deep learning frameworks such as PyTorch and TensorFlow/Keras as well as classical machine learning libraries such as scikit-learn, LightGBM, XGBoost, etc...