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

 

Развертывайте машинное обучение где угодно с ONNX. Модель Python SKLearn, работающая в функции Azure ml.net



Развертывайте машинное обучение где угодно с ONNX. Модель Python SKLearn, работающая в функции Azure ml.net

В видео показано, как среда выполнения ONNX упрощает и стандартизирует развертывание моделей машинного обучения, созданных на разных языках и платформах. Он демонстрирует процесс упаковки модели Python scikit-learn в модель ONNX и ее развертывания в функции Azure ML .NET. В видео подчеркивается, что функцию Azure можно легко запустить с помощью HTTP-запроса POST, что упрощает вызов из любого приложения или веб-сайта, и независимо от языка, используемого для построения модели машинного обучения, ее можно преобразовать в модель ONNX и развертывается через ML.NET для согласованной работы.

  • 00:00:00 В этом разделе видео знакомит со средой выполнения ONNX и тем, как она упрощает процесс развертывания моделей машинного обучения, созданных на различных языках и платформах. Среда выполнения ONNX позволяет инкапсулировать модели таким образом, чтобы их можно было легко развернуть в другой среде. Он заменяет процесс травления и предоставляет стандартную среду выполнения, которая работает на Python, R, .NET, Java и других языках. Далее в видео демонстрируется сквозной пример построения простой модели на Python, упаковки ее в модель ONNX и запуска в функции ML .NET. Код, используемый в этом примере, доступен на общедоступном GitHub канала Advancing LLS YouTube.

  • 00:05:00 В этом разделе спикер демонстрирует, как развернуть модель машинного обучения с помощью ONNX в функции Azure. Демонстрация начинается с демонстрации базовой модели Python, которая использует scikit-learn для обучения модели линейной регрессии с использованием данных о ценах на жилье в Сан-Франциско. Модель обучается с использованием обучающего набора, состоящего из числовых и категориальных значений, и после обучения модель выбирается для сохранения и развертывания в контейнере. Наконец, спикер тестирует модель, вызывая прогноз на обучающем наборе, и возвращает некоторые значения. Этот процесс можно использовать для развертывания и запуска моделей машинного обучения в любом месте с помощью ONNX.

  • 00:10:00 В этом разделе видео ведущий настраивает модель для работы в ONNX, чтобы для ее использования не требовался Python. Указывается количество функций, входящих в обучение модели, и модель ONNX инициализируется, чтобы знать, чего ожидать. Исходный ввод называется вводом функции, который необходим для оценки. Для оценки модели создается сеанс, и строка кода отвечает за прогнозирование на основе обучающих данных. Затем прогнозы распечатываются.

  • 00:15:00 В этом разделе спикер обсуждает запуск модели Python в ONNX и то, как ее можно последовательно запускать в Python независимо от используемых пакетов. Докладчик показывает, как преобразовать модель Python в ONNX и запустить ее в функции Azure, используя HTTP POST с объектом JSON. Функция извлекает важные данные, такие как год, большая жилая площадь и условия продажи, и передает их модели, которая использует ONNX для оценки данных и возврата результата. Докладчик объясняет, что функция Azure — это стандартный HTTP-триггер с REST API, что упрощает вызов из любого приложения или веб-сайта.

  • 00:20:00 В этом разделе спикер объясняет шаги, необходимые для создания переменной с именем input и использования ее для формирования входного тензора, чтобы он был приемлемым для запуска сеанса. Сеанс запускается и кикстарт для запуска нового сеанса на пути и оценки с назначенным вводом. Затем результат оценки извлекается и упаковывается как объект результата и передается обратно в функцию. Докладчик демонстрирует, как тестировать развернутую модель в Postman, передавая необработанные параметры объектной модели JSON, такие как год постройки и жилая площадь, чтобы получить оценку. Преимущество развертывания моделей машинного обучения через ONNX и ML.NET заключается в том, что не имеет значения, на каком языке люди создают свои модели, если его можно преобразовать в модель ONNX, после чего его можно будет развернуть и запустить согласованно.
Deploy Machine Learning anywhere with ONNX. Python SKLearn Model running in an Azure ml.net Function
Deploy Machine Learning anywhere with ONNX. Python SKLearn Model running in an Azure ml.net Function
  • 2020.07.21
  • www.youtube.com
Deploying Machine Learning Models is hard. ONNX tries to make this process easier. You can build a model in almost any framework you're comfortable with and ...
 

Развертывание моделей машинного обучения (TensorFlow/Caffe2/ONNX) — быстро и просто



Развертывание моделей машинного обучения (TensorFlow/Caffe2/ONNX) — быстро и просто

Видео демонстрирует, как трансферное обучение можно использовать для классификации изображений и как интегрировать модель классификации изображений в приложение конечного пользователя с использованием Python и TensorFlow. Докладчик использует пример приложения для торговли автомобилями, чтобы проиллюстрировать проблемы, с которыми сталкиваются, когда фотографии не загружаются с нужного ракурса, а этикетки необходимо проверять вручную, что приводит к скуке и неэффективности. Он объясняет, как преодолеть эти проблемы, обучив существующую нейронную сеть распознавать перспективы фотографий с помощью метода трансферного обучения. Затем он показывает, как протестировать и развернуть модель в облаке Oracle с помощью проекта с открытым исходным кодом GraphPipe. Наконец, докладчик подчеркивает важность переноса моделей машинного обучения из лабораторной фазы в стадию производства.

  • 00:00:00 В этом разделе Йерун Клоостерман объясняет, как можно использовать машинное обучение для классификации изображений и как интегрировать модель классификации изображений в приложение для конечного пользователя. Он рассказывает о проблемах, с которыми сталкивается приложение для торговли автомобилями, где фотографии не загружаются с нужного ракурса, а этикетки приходится проверять вручную, что приводит к скуке и неэффективности. Чтобы преодолеть эти проблемы, Йерун использует метод трансферного обучения, обучая существующую нейронную сеть распознавать перспективы фотографий с помощью Python и Tensorflow. Отслеживая только последние слои нейронной сети для распознавания разных ракурсов, Йерун Клоостерман успешно обучает сеть автоматически классифицировать фотографии.

  • 00:05:00 В этом разделе Йерун показывает, как протестировать модель, которая была обучена в предыдущем разделе, а затем развернуть ее в облаке Oracle с помощью проекта с открытым исходным кодом GraphPipe. Для начала вызывается скрипт переобучения Python, который использует TensorFlow для переобучения модели. После настройки среды в облаке Oracle ведущий пишет пример клиента, использующего Python для вызова классификатора изображений. Классификация, возвращенная моделью, может затем использоваться внешним интерфейсом для отображения сообщения конечному пользователю приложения для продажи автомобилей. Наконец, докладчик подчеркивает важность переноса моделей машинного обучения из лабораторной фазы в стадию производства.
Deploy Machine Learning Models (TensorFlow/Caffe2/ONNX) - Fast and Easy
Deploy Machine Learning Models (TensorFlow/Caffe2/ONNX) - Fast and Easy
  • 2018.11.06
  • www.youtube.com
In this video you learn how to Build and Deploy an Image Classifier with TensorFlow and GraphPipe. You can use the same technique to deploy models of other f...
 

Развертывание моделей машинного обучения с помощью функций Azure и среды выполнения ONNX



Развертывание моделей машинного обучения с помощью функций Azure и среды выполнения ONNX

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

  • 00:00:00 В этом разделе показано, как развернуть модель машинного обучения с помощью среды выполнения ONNX и функций Azure в VS Code. Этот процесс включает в себя создание проекта функции Azure с триггером Python и HTTP, обновление кода с помощью сценария оценки, изменение размера и формы изображения и его предварительную обработку, загрузку модели из пути к модели, создание сеанса вывода с помощью ONNX Runtime и возвращая вывод. После проверки функциональности кода в видеоролике показано, как развернуть функцию в Azure и протестировать ее там.

  • 00:05:00 В этом разделе спикер демонстрирует, как протестировать развернутую функцию, получив URL-адрес функции и вставив его в тест. Докладчик демонстрирует, как можно использовать развернутую функцию для простого получения результата с помощью функций Azure и среды выполнения ONNX, что позволяет эффективно развертывать модели.
Deploy ML Models with Azure Functions and ONNX Runtime
Deploy ML Models with Azure Functions and ONNX Runtime
  • 2022.01.21
  • www.youtube.com
In this video we will go step-by-step do deploy the ImageNet model using VS Code, Azure Functions, and ONNX Runtime.Doc link: https://docs.microsoft.com/azur...
 

Развертывание на рабочем столе с ONNX



Развертывание на рабочем столе с помощью ONN X

В видео «Развертывание на рабочем столе с помощью ONNX» Александр Чжан обсуждает проблемы развертывания на рабочем столе и решения, предлагаемые ONNX. Поддержка настольных компьютеров сопряжена с определенными трудностями, поскольку существует меньший контроль над системными ограничениями графического процессора или операционной системы, а также значительное разнообразие настольных графических процессоров. Для решения этих проблем Александр использует разные библиотеки логических выводов для каждого поставщика оборудования, поддерживаемого Topaz labs. ONNX используется для указания одной и той же модели для всех этих библиотек, что обеспечивает относительно согласованные результаты на различном оборудовании и экономит ручную работу с каждой моделью. Однако преобразования ONNX могут создавать различные проблемы, такие как двусмысленность, несоответствие и несоответствие качества, что требует от разработчиков выполнения тестовых преобразований и явного использования последних смещений ONNX. Чтобы максимизировать пропускную способность за счет пакетной обработки и, возможно, параллельной работы на нескольких устройствах и библиотеках, они разбивают изображения на блоки и выбирают соответствующий размер на основе видеопамяти, а затем обрабатывают блоки с помощью логических выводов.

  • 00:00:00 В этом разделе Александр Чжан обсуждает проблемы развертывания на настольных компьютерах и решения, предлагаемые ONNX. Чтобы вписаться в существующие рабочие процессы, одновременно отвечая ожиданиям по производительности и не отставая от достижений, необходимо предоставлять самые последние доступные модели изображений самого высокого качества. Поддержка настольных компьютеров сопряжена с определенными трудностями, поскольку существует меньший контроль над системными ограничениями графического процессора или операционной системы, а также значительное разнообразие настольных графических процессоров. Для решения этих проблем Александр использует разные библиотеки логических выводов для каждого поставщика оборудования, поддерживаемого Topaz labs. ONNX используется для указания одной и той же модели для всех этих библиотек, что обеспечивает относительно согласованные результаты на различном оборудовании и экономит ручную работу с каждой моделью. Однако преобразования ONNX могут создавать различные проблемы, такие как двусмысленность, несоответствие и несоответствие качества, что требует от разработчиков выполнения тестовых преобразований и явного использования последних смещений ONNX.

  • 00:05:00 В этом разделе спикер объясняет, что одной из причин, по которой они сами выполняют много преобразований, а не используют существующие библиотеки или оболочки, является производительность. Они также подчеркивают важность гибкости для оптимизации своих собственных моделей и потребностей в производительности, если это необходимо, без необходимости писать специфичный для модели код для каждой модели. Чтобы максимизировать пропускную способность за счет пакетной обработки и, возможно, параллельной работы на нескольких устройствах и библиотеках, они разбивают изображения на блоки и выбирают соответствующий размер на основе видеопамяти, а затем обрабатывают блоки с помощью логических выводов. Тем не менее, они пришли к выводу, что существуют постоянные трудности с обеспечением хорошей работы новых архитектур моделей во всех библиотеках, но они по-прежнему надеются, что их стратегия позволит преодолеть эти проблемы и обеспечить последовательное улучшение качества изображения.
Deploying on Desktop with ONNX
Deploying on Desktop with ONNX
  • 2022.07.13
  • www.youtube.com
ORT provides the foundations for inference for Adobe's audio and video products (Premiere Topaz Labs develops deep learning based image quality software for ...
 

Развертывание моделей ONNX на Flink — Исаак Маккиллен-Годфрид



Развертывание моделей ONNX на Flink — Исаак Маккиллен-Годфрид

Исаак МакКиллен-Годфрид обсуждает проблемы внедрения современных моделей машинного обучения из исследовательских сред в производственную среду для эффективного использования. Цель доклада — упростить перенос моделей из исследовательских сред в производственную среду и обеспечить включение самых современных моделей в различные платформы. Он объясняет преимущества формата ONNX и различные варианты интеграции моделей глубокого обучения в Java. Кроме того, он обсуждает развертывание моделей ONNX на Flink с помощью Jep, интерпретатора Python, написанного на Java, и объясняет проект с открытым исходным кодом, который позволяет использовать данные из коннектора Flink Twitter, а затем фильтровать твиты не на английском языке. В докладе также освещается текущая реализация только ЦП для развертывания моделей ONNX на Flink и потенциал для будущих реализаций ГП или гибридных реализаций.

  • 00:00:00 В этом разделе видео спикер обсуждает проблемы внедрения современных моделей машинного обучения из исследовательских сред в производственную среду для эффективного использования. Он упоминает, что большинство популярных фреймворков написано на Java и Scala, а большая часть кода и статей написана на Python. Цель доклада — упростить перенос моделей из исследовательских сред в производственную среду и обеспечить включение самых современных моделей в различные платформы. Спикер также рассказывает о проблемах, в том числе о плохой поддержке Python во Flink и сложности включения ONNX в Java. Он также упоминает популярность PyTorch в исследовательском сообществе и его растущее внедрение в фреймворки машинного обучения.

  • 00:05:00 В этом разделе спикер обсуждает формат ONNX и его преимущества. ONNX — это открытый формат обмена нейронными сетями, который позволяет легко экспортировать и импортировать модели из различных фреймворков. Цель ONNX — обеспечить запуск моделей на разных языках и платформах, что делает его ценным инструментом для разработчиков. Кроме того, спикер рассказывает о различных фреймворках и инструментах ONNX, доступных для экспорта и импорта моделей. Они также вводят систему показателей, которая измеряет поддержку операций в ONNX, при этом TensorFlow и Caffe2 имеют значительную поддержку. Затем докладчик обсуждает различные варианты интеграции моделей глубокого обучения в Java, включая создание микросервиса, встроенный в Java Python и запуск серверных сред ONNX на основе JVM.

  • 00:10:00 В этом разделе обсуждаются ограничения использования Java с моделями ONNX, в том числе ограниченная поддержка операций нейронной сети в таких средах, как Meno и Vespa. Процесс экспорта также может быть трудным и трудоемким, и может возникнуть необходимость полностью переобучить модели. Одним из решений является использование асинхронности и микросервисов, но этот подход требует масштабирования и обслуживания отдельной службы. Другой обсуждаемый подход — это использование встроенного в Java Python (JEP), который позволяет использовать любую библиотеку Python и, как было установлено, быстро работает с такими платформами, как Keras. Однако могут возникнуть проблемы с общими библиотеками, которые необходимо решить.

  • 00:15:00 В этом разделе видео спикер обсуждает развертывание моделей ONNX на Flink и возможные проблемы с настройкой, которые могут возникнуть. Хотя можно перенести примитивы Java в Python и наоборот, могут возникнуть проблемы с настройкой зависимостей. Спикер рекомендует создать собственный образ Docker, включающий пакеты Flink и Python, чтобы упростить настройку. Докладчик также рассказывает о Flair, платформе PyTorch для задач НЛП, и объясняет, как интегрировать ее в Flink с помощью JEP. В примере кода используется расширенная функция сопоставления для возврата результатов Flair в виде строки.

  • 00:20:00 В этом разделе спикер рассказывает о развертывании моделей ONNX на Flink с помощью Jep, интерпретатора Python, написанного на Java. Докладчик демонстрирует пример выполнения анализа тональности данных Twitter с помощью коннектора Flink Twitter и объясняет важность загрузки модели в открытой части функции, чтобы предотвратить ее повторную загрузку на каждой итерации. Они также показывают, как устанавливать переменные в Python с помощью Jep и как возвращать результат в Java в виде строки. Докладчик подчеркивает использование общего интерпретатора в Jep, чтобы избежать ошибок при использовании модулей Python, и предлагает преобразовать результат в JSON для упрощения обработки в Java.

  • 00:25:00 В этом разделе Исаак МакКиллен-Годфрид рассказывает о проекте с открытым исходным кодом, который позволяет получать данные из коннектора Flink Twitter, а затем фильтровать твиты не на английском языке. Затем данные будут обрабатываться с помощью многозадачных моделей распознавания именованных сущностей, которые могут обрабатывать несколько языков и конкретных языковых моделей. Распознавание именованных сущностей и анализ тональности будут выполняться перед преобразованием в таблицы и использованием запросов для их группировки по сущности и тональности. Благодаря включению глубокого обучения и других моделей во Flink можно в режиме реального времени просматривать именованные объекты и их настроения в тексте Twitter. Хотя бэкендам onnx не хватает зрелости, он экономит время на преобразование кода и переписывание, а запуск модели в кластере происходит быстро. МакКиллен-Годфрид планирует провести тесты для измерения увеличения задержки в ближайшем будущем.

  • 00:30:00 В этом разделе Исаак Маккиллен-Годфрид обсуждает текущую реализацию только ЦП для развертывания моделей ONNX на Flink и потенциал будущих ГП или гибридных реализаций, которые могут еще больше ускорить процесс. Он отмечает, что тестировал модель только на процессорах и еще не исследовал возможности повышения эффективности за счет использования графических процессоров.
 

Развертывание модели Tiny YOLOv2 ONNX на Jetson Nano с использованием DeepStream



Развертывание модели Tiny YOLOv2 ONNX на Jetson Nano с использованием DeepStream

Это видео демонстрирует эффективность использования предварительно обученной модели Tiny YOLOv2 в формате ONNX для одновременной обработки четырех видеопотоков.
Потоки поступают из четырех отдельных файлов и обрабатываются в Jetson Nano с использованием DeepStream SDK. Система достигла FPS примерно 6,7 при параллельной обработке всех четырех видео.

https://github.com/thatbrguy/Deep-Stream-ONNX

 

Механизм исполнения модели ONNX Runtime способен выполнять модели машинного обучения в различных средах



Среда выполнения ONNX

ONNX Runtime — это механизм исполнения модели с открытым исходным кодом, оптимизированный для повышения производительности, масштабируемости и расширяемости, способный запускать новые операторы до того, как они будут стандартизированы. Формат ONNX позволяет легко представлять и развертывать модели, разработанные с использованием предпочтительных инструментов, обычным способом. Microsoft заключила партнерское соглашение с Xilinx для создания исполняющего провайдера для программной библиотеки Vitis AI, которая позволяет делать выводы и ускорять AI на аппаратных платформах Xilinx. Инструментарий Vitis AI состоит из IP-инструментов, библиотек, моделей и примеров проектов для разработчиков ПЛИС, а контрольные цифры показывают максимальное ускорение для решений для геопространственных изображений. Поставщик выполнения Vitis AI можно создать из исходного кода или развернуть с помощью предварительно созданной библиотеки программного обеспечения, которая вскоре будет выпущена в Azure Marketplace.

  • 00:00:00 В этом разделе Манаш Госвами, главный руководитель программы AI Frameworks в Microsoft, представляет среду выполнения ONNX, которая представляет собой механизм логического вывода с открытым исходным кодом, используемый для выполнения моделей ONNX. Формат ONNX позволяет группам специалистов по обработке и анализу данных использовать предпочитаемые ими инструменты для разработки моделей, гарантируя при этом, что модель может быть представлена и развернута обычным и легко выполнимым способом. Среда выполнения ONNX оптимизирована с точки зрения производительности, расширяемости и масштабируемости, а также поддерживает настраиваемые операторы, что позволяет запускать новые операторы до того, как они будут стандартизированы. Среда выполнения совместима как с предыдущими, так и с прямыми версиями, а ее интерфейс поставщика выполнения позволяет выполнять модель машинного обучения на разных аппаратных платформах. Microsoft заключила партнерское соглашение с Xilinx для создания поставщика исполнения для программной библиотеки Vitis AI, которая выполняет модели ONNX на платформе Xilinx U250 FPGA.

  • 00:05:00 В этом разделе мы узнаем о программной библиотеке Vitis AI, платформе разработки Xilinx, специализирующейся на выводе AI на аппаратных платформах Xilinx. U250 FPGA доступен для использования с программным стеком Vitis AI в частной предварительной версии в Azure в качестве очереди виртуальных машин NP для пользователей. Набор инструментов Vitis AI состоит из оптимизированных IP-инструментов, библиотек, моделей и примеров проектов, которые разработчики могут использовать с FPGA, что позволяет им сочетать вывод AI и ускорение. Peakspeed, стартап, предоставляющий решения для геопространственной аналитики, интегрирует ONNX Runtime и стек Vitis AI с приложением Esri ArcGIS Pro для создания самых быстрых в мире решений для геопространственных изображений. Peakspeed успешно ускорил процесс геопространственной коррекции или ортотрансформирования на ЦП, записав контрольные показатели, сравнивающие TrueView, работающий на Azure NP с Xilinx U250 FPGA, с тем же алгоритмом, работающим на процессоре Xeon Platinum.

  • 00:10:00 В этом разделе Манаш объясняет, как разработчики и клиенты могут внедрить в свои приложения средства глубокого обучения с помощью среды выполнения ONNX и стека ИИ Vitis для ускорения на конечных точках FPGA в Azure, а также локально с аппаратным обеспечением Xilinx U250. Он также подчеркивает, что разработчики могут создавать поставщика исполнения Vitis AI с помощью ONNX Runtime из исходного кода, а Xilinx вскоре выпустит образ виртуальной машины в Azure Marketplace со всеми готовыми программными библиотеками, интегрированными в одном месте для простого развертывания в виртуальной машине Azure NP.
ONNX Runtime
ONNX Runtime
  • 2020.07.07
  • www.youtube.com
ONNX Runtime inference engine is capable of executing ML models in different HW environments, taking advantage of the neural network acceleration capabilitie...
 

Развертывание моделей Transformer в браузере с помощью #ONNXRuntime



Развертывание моделей Transformer в браузере с помощью #ONNXRuntime

В видео показано, как настроить и развернуть оптимизированную модель BERT в браузере с помощью ONNXRuntime. Докладчик показывает, как преобразовать модель PyTorch в формат ONNX с помощью Transformers API, использовать ONNXRuntime для квантования модели для уменьшения размера и создать сеанс логического вывода. В видео также рассматриваются необходимые шаги для импорта пакетов в JavaScript с помощью WebAssembly и как выполнять ввод текста через преобразованную модель для классификации эмоций. Несмотря на снижение точности прогнозирования, меньший размер модели идеально подходит для развертывания в браузере. Предоставляются ссылки на модель, наборы данных, исходный код и сообщение в блоге.

  • 00:00:00 В этом разделе ведущий видео демонстрирует, как ввести в действие модели преобразователя, и показывает конечный проект, включающий модель преобразователя, оптимизированную и развернутую в браузере. Модель, используемая в проекте, представляет собой оптимизированную модель bert, которая была переработана корпорацией Майкрософт, чтобы уменьшить ее размер и сделать тестирование независимым. Набор данных об эмоциях, используемый для точной настройки модели, доступен на хабе с обнимающим лицом. Докладчик описывает процесс тонкой настройки с использованием API-интерфейса трансформаторов и показывает, как преобразовать модель PyTorch в формат ONNX с помощью встроенного инструмента преобразования преобразователей. Наконец, веб-пакет ONNX Runtime Web используется для логического вывода в JavaScript, где можно выбирать различные наборы операций в зависимости от требуемых операторов.

  • 00:05:00 В этом разделе видео обсуждается, как развернуть модели преобразования в браузере с помощью ONNXRuntime. Во-первых, в видео объясняется, как использовать ONNXRuntime для квантования модели, чтобы уменьшить ее размер, после чего создается сеанс логического вывода как для неквантованных, так и для квантованных моделей. Затем в видео показано, как импортировать необходимые пакеты в JavaScript с помощью WebAssembly и как кодировать вводимые тексты перед их запуском через модель ONNXRuntime. Демонстрация показывает, как преобразованную модель можно использовать для прогнозирования различных эмоций по входному тексту. Несмотря на снижение точности прогнозирования, в видеоролике делается вывод о том, что уменьшенный размер модели делает ее идеальной для развертывания в Интернете.

  • 00:10:00 В этом разделе ведущий объясняет, как им удалось взять большую модель трансформера, очистить ее и квантовать, а затем использовать среду выполнения ONNX для выполнения логических выводов на границе. Они также предоставляют ссылки на используемые модели и наборы данных, а также на исходный код и сообщение в блоге о демонстрации.
Deploy Transformer Models in the Browser with #ONNXRuntime
Deploy Transformer Models in the Browser with #ONNXRuntime
  • 2022.04.01
  • www.youtube.com
In this video we will demo how to use #ONNXRuntime web with a distilled BERT model to inference on device in the browser with #JavaScript. This demo is base...
 

Open Neural Network Exchange (ONNX) на предприятии: как Microsoft масштабирует машинное обучение



Open Neural Network Exchange (ONNX) на предприятии: как Microsoft масштабирует машинное обучение — BRK3012

Open Neural Network Exchange (ONNX) представлен как решение проблем развертывания моделей машинного обучения в рабочей среде, включая управление несколькими обучающими средами и целями развертывания, при этом Microsoft уже широко внедряет ONNX для таких продуктов, как Bing, реклама Bing и Office 365. ONNX позволяет масштабировать и поддерживать модели машинного обучения, а также значительно повышать производительность и экономить средства, связанные с использованием аппаратных ускорителей, таких как графические процессоры. Кроме того, в экосистему ONNX входят такие партнеры, как Intel, для оптимизации времени выполнения, с готовыми комплектами для разработки и методами квантования, доступными для преобразования моделей FP32 в типы данных с более низкой точностью, что приводит к повышению эффективности. Выступающие также подчеркивают преимущества использования ONNX для периферийных вычислений, поскольку среда выполнения является гибкой и может развертывать модели на различных аппаратных платформах.

  • 00:00:00 В этом разделе докладчики обсуждают масштаб инициатив Microsoft в области машинного обучения, включая более 180 миллионов активных пользователей в месяц в Office 365 и технологию машинного обучения, развернутую на сотнях миллионов устройств Windows. Они также упоминают, что Microsoft использует более шести сред машинного обучения и что существуют проблемы с развертыванием моделей машинного обучения в рабочей среде. Они представляют ONNX и ONNX Runtime как решения этих проблем, которые можно использовать с аппаратными ускорителями, такими как Intel и NVIDIA, и с машинным обучением Azure.

  • 00:05:00 В этом разделе видео спикер обсуждает проблемы, возникающие при обучении моделей машинного обучения и развертывании их в продакшене. С таким количеством различных обучающих сред и целей развертывания становится сложно управлять и поддерживать эффективную производительность приложений. Чтобы решить эту проблему, Microsoft представляет ONNX (Open Neural Network Exchange), отраслевой стандарт, который позволяет преобразовывать модели машинного обучения в формат ONNX независимо от используемой для обучения платформы. Это позволяет развертывать модели ONNX в любой поддерживаемой среде, создавая более гибкое и масштабируемое решение. Кроме того, Microsoft создает сильную экосистему партнеров для поддержки ONNX и обеспечения его успеха в качестве отраслевого стандарта.

  • 00:10:00 В этом разделе спикер обсуждает реальные варианты использования Open Neural Network Exchange (ONNX) и среды выполнения ONNX, чтобы показать, как они приносят бизнес-ценность продуктам Microsoft и клиентам. Некоторые продукты Microsoft, такие как Bing, Bing ads и Office 365, уже широко используют ONNX и среду выполнения ONNX, а также значительно улучшили производительность модели и уменьшили задержку. Например, благодаря ONNX и среде выполнения ONNX функция проверки грамматики Office 365 повысила производительность в 14,6 раз, что привело к снижению затрат и задержек. Другой вариант использования, OCR, также значительно выиграл от ONNX и среды выполнения ONNX.

  • 00:15:00 В этом разделе спикер обсуждает, как Microsoft использует Open Neural Network Exchange (ONNX) для масштабирования машинного обучения в различных сценариях, в том числе для улучшения качества и производительности своей службы OCR сообщества Azure Cognitive Services, а также для улучшения их качество поиска и возможность новых сценариев, таких как вопросы и ответы с помощью личных помощников. Спикер также упомянул, как ONNX и ONNX Runtime повысили скорость моделей машинного обучения в 3,5 раза и 2,8 раза соответственно, что принесло большую пользу их продуктовым командам. Они также подчеркивают важность обучения моделей машинного обучения для реального понимания семантического значения изображений для улучшения поиска мультимедиа.

  • 00:20:00 В этом разделе докладчики обсуждают использование моделей Open Neural Network Exchange (ONNX) в продуктах Microsoft, в частности функцию визуального поиска Bing. ONNX позволяет масштабировать и поддерживать модели машинного обучения, а также значительно повышать производительность и экономить средства за счет использования аппаратных ускорителей, таких как графические процессоры. Выступающие также подчеркивают универсальность ONNX, который может работать на различных платформах, включая архитектуры x64 и ARM, и представляет собой механизм вывода с открытым исходным кодом для моделей ONNX, доступный для Windows, Mac и Linux. Использование ONNX позволяет оптимизировать выполнение на конкретном целевом оборудовании без изменения интерфейса модели, что делает его ценным инструментом для масштабирования и поддержки производственных развертываний.

  • 00:25:00 В этом разделе спикер обсуждает интерфейс поставщика исполнения, используемый для запуска моделей ONNX на различных аппаратных платформах, включая ЦП, графические процессоры и ПЛИС. Экосистема партнеров включает Intel, с которой Microsoft сотрудничала в области оптимизации времени выполнения с использованием открытых поставщиков исполнения на основе VINO. Они также предлагают готовые комплекты для разработки, в том числе модуль для нейронных вычислений, для ускорения рабочих нагрузок ИИ для различных вертикалей, таких как производство, розничная торговля и транспорт. Microsoft и Intel также сотрудничали в области квантования, чтобы преобразовать модели FP32 в тип данных с более низкой точностью, что привело к снижению пропускной способности памяти, уменьшению объема памяти модели и увеличению количества четырех вершин на ватт с минимальной потерей точности.

  • 00:30:00 В этом разделе спикер обсуждает, как они смогли использовать инструкции векторной обработки и слияние графов для повышения производительности и требований к памяти для ядер целочисленных драгоценных камней для сверточных нейронных сетей. Они смогли добиться в 4 раза больше вычислений и в 4 раза меньше требований к памяти. Они продемонстрировали преимущества использования n-graph в качестве поставщика исполнения, а также возможности аппаратной обработки, продемонстрировав масштабирование производительности для различных размеров пакетов. Потеря точности была очень небольшой и соответствовала мотивационным преимуществам квантования. Они также обсудили различные способы создания моделей ONNX, такие как использование зоопарка моделей ONNX, экспериментов с машинным обучением Azure и пользовательских служб машинного зрения от Microsoft.

  • 00:35:00 В этом разделе спикер объясняет, как запускать сеансы логических выводов с помощью среды выполнения ONNX в приложении. После преобразования модели пользователь загружает ее в среду выполнения ONNX и начинает анализировать граф. Среда выполнения идентифицирует доступные оптимизации и запрашивает базовое оборудование, чтобы определить, какие операции поддерживаются аппаратными библиотеками. Среда выполнения ONNX предназначена для согласованности, поэтому фрагменты кода для Python и C-sharp очень похожи. Спикер также упоминает AutoML, который позволяет пользователю вводить данные для получения предложения по применению, которое автоматически преобразует код в Python и C-sharp. Кроме того, спикер описывает образ докера, который включает в себя конвертеры для разных фреймворков и позволяет пользователю быстро приступить к работе со средой выполнения ONNX. Рабочий процесс демонстрируется с использованием записных книжек Azure.

  • 00:40:00 В этом разделе докладчик обсуждает, как использовать Open Neural Network Exchange (ONNX) и инструменты машинного обучения Microsoft для масштабирования моделей на предприятии. Этот процесс включает в себя использование рабочей области машинного обучения для создания файла оценки, который включает в себя этапы предварительной обработки и вывода. Затем докладчик демонстрирует, как создавать образы контейнеров для целевого компьютера и среды, включая базовые образы, такие как базовый образ среды выполнения ONNX. Наконец, изображения развертываются в облачной службе IKS с возможностью отправки тестовых изображений для вывода на конечных точках ЦП и ГП.

  • 00:45:00 В этом разделе спикер демонстрирует гибкость среды выполнения Open Neural Network Exchange (ONNX), показывая демонстрацию, в которой один и тот же код используется для указания приложения на разные аппаратные платформы, такие как процессоры по сравнению с графическими процессорами и x86. против АРМ. Докладчик также продемонстрировал демонстрацию развертывания среды выполнения и моделей ONNX на периферийных устройствах, в частности, на платформе Intel, для выявления сценариев безопасности в сценарии фабричных рабочих с использованием предварительно записанного видеопотока и постобработки ограничивающих рамок. Код, использованный в демонстрации, идентичен, но для оптимизации приложения используются разные аппаратные ускорители. Докладчик резюмирует, что ONNX становится распространенным форматом для представления моделей нейронных сетей и что среда выполнения ONNX позволяет выполнять развертывание как в облаке, так и на периферийных устройствах.

  • 00:50:00 В этом разделе докладчики обсуждают преимущества использования Open Neural Network Exchange (ONNX) для создания и развертывания приложений машинного обучения с помощью Azure. Они также отвечают на вопросы аудитории о машинном обучении на разных процессорах, использовании ONNX с существующими конвейерами и возможности возврата от ONNX к предыдущим платформам. Кроме того, они упоминают о своих планах по расширению модельного зоопарка ONNX с помощью целевых сценариев и данных.

  • 00:55:00 В этом разделе докладчики обсуждают преимущества ONNX с точки зрения гибкости фреймворка, поскольку модели ONNX можно использовать с различными фреймворками для обслуживания. Они также упоминают интеграцию ONNX с машинным обучением Azure, что позволяет пользователям загружать телеметрические выводы для повторного обучения или экспериментов. На сессии также обсуждается возможность изначальной интеграции ONNX с Excel, хотя она все еще находится в разработке. Они также решают вопрос создания пользовательских алгоритмов и преобразования их в ONNX с возможностью использования Python для управления форматом файлов ONNX. Наконец, на сессии упоминается необходимость подхода к подписанию моделей ONNX для распространения, что будет принято в качестве отзыва для будущих улучшений.
Open Neural Network Exchange (ONNX) in the enterprise: how Microsoft scales ML - BRK3012
Open Neural Network Exchange (ONNX) in the enterprise: how Microsoft scales ML - BRK3012
  • 2019.05.08
  • www.youtube.com
AI, machine learning, deep learning, and advanced analytics are being infused into every team and service at Microsoft—understanding customers and the busine...
 

#OpenVINO Execution Provider для #ONNX Runtime - #OpenCV Weekly #Webinar Ep. 68



#OpenVINO Execution Provider для #ONNX Runtime - #OpenCV Weekly #Webinar Ep. 68

Поставщик выполнения OpenVINO для среды выполнения ONNX был основной темой обсуждения на этом еженедельном веб-семинаре OpenCV. Продукт предназначен для повышения производительности моделей ONNX на оборудовании Intel, требуя при этом минимальных усилий со стороны пользователя. На вебинаре обсуждались проблемы развертывания моделей глубокого обучения в реальном мире, и OpenVINO был представлен как решение этих проблем. OpenVINO может оптимизировать модели ИИ для эффективной работы на различных устройствах и оборудовании. Подробно обсуждалась среда выполнения ONNX, проект с открытым исходным кодом, предназначенный для ускорения машинного обучения. На вебинаре также была представлена демонстрация улучшения производительности, достигнутого с помощью OpenVINO Execution Provider для ONNX Runtime, а также его функций, таких как многопоточный логический вывод, полная поддержка различных подключаемых модулей и кэширование моделей. Также обсуждалась интеграция между OpenVINO и PyTorch через OpenVINO Execution Provider. Докладчики ответили на вопросы аудитории по таким темам, как совместимость с устройствами ARM и потенциальная потеря производительности или точности при использовании форматов обмена ONNX.

  • 00:00:00 В этом разделе ведущие представляют своих гостей, Девона Агарвала и Приту Вирамалай, которые являются техническим менеджером по продуктам и инженером по ИИ-инфраструктуре соответственно в OpenVINO. Они представляют краткое введение в шоу и обсуждают некоторые предстоящие розыгрыши для зрителей. Основная тема обсуждения вращается вокруг исполняющего провайдера OpenVINO для среды выполнения ONNX, целью которого является повышение производительности моделей ONNX на оборудовании Intel с минимальными усилиями со стороны пользователя. Ведущие также намечают повестку дня сессии, которая включает в себя обзор глубокого обучения и связанных с ним проблем, после чего следует введение в OpenVINO и его возможности.

  • 00:05:00 В этом разделе видео спикер представляет исполняющий провайдер OpenVINO для среды выполнения ONNX и объясняет его назначение. Они также дают обзор OpenVINO, ONNX и ONNX Runtime, а затем руководство о том, как начать работу с OpenVINO Execution Provider для ONNX Runtime и интегрировать его в приложения ONNX. Спикер также обсуждает набор функций продукта и планы на будущее, в том числе краткий обзор бета-версии продукта для разработчиков. Затем разговор переходит к важности глубокого обучения в современном мире, потребности в ИИ на периферийных устройствах и вычислительных требованиях к ИИ. В видео также рассматриваются проблемы, связанные с разработкой и развертыванием моделей глубокого обучения, в том числе уникальные потребности в выводах, проблемы интеграции и отсутствие универсального решения.

  • 00:10:00 В этом разделе обсуждаются проблемы развертывания моделей глубокого обучения в реальном мире. Существуют технические проблемы, возникающие из-за разрыва между обучением сети глубокого обучения и выводом, происходящим на встроенных платформах. Существуют также варианты языка программирования и аппаратного обеспечения, для которых требуется специальный API для связи программного и аппаратного обеспечения. Инструментарий Intel OpenVINO представлен как решение этих проблем. Набор инструментов оптимизирует рабочий процесс разработки и позволяет разработчикам один раз написать приложение и развернуть его в архитектуре Intel, обеспечивая подход «один раз развернуть в любом месте». Инструментарий позволяет развертывать приложения, ориентированные на ЦП, iGPU, Movidius VPU и GNA. Он может быть полезен в различных отраслях, включая промышленность, здравоохранение и медико-биологические науки, розничную торговлю, безопасность и безопасность, предлагая более быстрые, точные и эффективные результаты для реального развертывания.

  • 00:15:00 В этом разделе спикер объясняет концепцию OpenVino и то, как она оптимизирует модели ИИ для периферийных устройств. Они объясняют, как после создания моделей ИИ в таких средах, как PyTorch или TensorFlow, они должны быть оптимизированы для эффективной работы на определенных устройствах, таких как ЦП, графические процессоры или визуальные процессоры. OpenVino автоматизирует этот процесс преобразования для различных устройств и оборудования, гарантируя, что модели будут оптимизированы для эффективной работы на устройстве, на котором они развернуты. Затем докладчик переходит к объяснению того, что такое ONNX, открытый формат для представления моделей машинного обучения, определяющий общий набор операторов в качестве строительных блоков моделей машинного обучения и глубокого обучения. В целом, ONNX позволяет разработчикам ИИ использовать различные платформы, инструменты, среды выполнения и компиляторы, не беспокоясь о последствиях последующего логического вывода.

  • 00:20:00 В этом разделе спикеры обсуждают формат ONNX, открытую промежуточную модель, которая позволяет преобразовывать модели, созданные различными инструментами, для чтения с использованием стандартизированного формата. Среда выполнения ONNX — это проект с открытым исходным кодом, предназначенный для ускорения машинного обучения в различных операционных системах и аппаратных платформах. Он автоматически определяет возможности оптимизации и предоставляет доступ к наилучшему доступному аппаратному ускорению. Поставщик выполнения OpenVINO для ONNX позволяет использовать инструментарий OpenVINO для ускорения логического вывода моделей ONNX на процессорах Intel, GPU и VPU. Это позволяет пользователям выполнять логические выводы с использованием API-интерфейсов среды выполнения ONNX, легко интегрируя инструментарий OpenVINO в качестве серверной части.

  • 00:25:00 В этом разделе обсуждается интеграция между средой выполнения ONNX и исполняющим провайдером OpenVINO. Эта интеграция позволяет эффективно выполнять модели глубокого обучения на устройствах Intel. Инструментарий OpenVINO предоставляет оптимизированные библиотеки для запуска моделей на устройствах Intel. Когда провайдер выполнения OpenVINO включен, он интеллектуально выбирает, какие операторы в модели должны выполняться на серверной части OpenVINO для максимальной эффективности. Остальные операторы выполняются с использованием собственной среды выполнения ONNX. Пользователь может установить исполняющий провайдер OpenVINO путем сборки из исходного кода, извлечения образа Docker или использования установки pip. Пакет OpenVINO среды выполнения ONNX можно найти на PyPI.

  • 00:30:00 В этом разделе вебинара докладчики обсуждают, как использовать OpenVINO Execution Provider для ONNX Runtime и демонстрируют его возможности. Они объясняют, как установить продукт с помощью pip, и предоставляют фрагменты кода, чтобы показать, как импортировать библиотеку времени выполнения ONNX и начать сеанс логического вывода. Они также показывают, как легко использовать OpenVINO Execution Provider с простой модификацией существующей строки кода. Затем докладчики приглашают зрителей сканировать QR-коды, чтобы получить доступ к демонстрациям и образцам, чтобы попробовать их самостоятельно.

  • 00:35:00 В этом разделе видео демонстрируется улучшение производительности, достигнутое с помощью OpenVINO Execution Provider (EP) для среды выполнения ONNX. Видео показывает сравнение между 5 кадрами в секунду, достигнутыми с поставщиком исполнения ЦП, и 8 кадрами в секунду, достигнутыми с помощью OpenVINO EP. Кроме того, в видео представлена демонстрация квантования с использованием OpenVINO EP для ONNX Runtime, что привело к двукратному увеличению производительности при незначительной потере точности. Демонстрационный ноутбук доступен в Intel DevCloud, который обеспечивает удаленный доступ к реальному оборудованию Intel для тестирования и анализа.

  • 00:40:00 Закончили демонстрацию? В этом разделе докладчик демонстрирует, как запустить OpenVINO Execution Provider для ONNX Runtime и выбрать аппаратное обеспечение, такое как i3, i5, xenon или Core i9, и графическое подразделение. Они также демонстрируют ноутбук Jupyter и образец обнаружения объектов, который использует входное видео и модель ONNX для создания помех на устройстве. Докладчик объясняет, что существует поддержка носителей CPU, GPU и FP16 VADM, а также упоминается поставщик исполнения CPU, который является собственным бэкендом среды выполнения ONNX. Наконец, ведущий обсуждает полезность OpenVINO Execution Provider для тестирования различного оборудования без покупки или аренды каждого устройства.

  • 00:45:00 В этом разделе обсуждаются возможности OpenVINO Execution Provider. Он предлагает многопоточный вывод, полную поддержку различных плагинов и кэширование моделей. Также доступны квантование модели и разделение графа, а также API для нескольких языков. Для повышения производительности предусмотрена оптимизация буфера ввода-вывода, а для моделей ONNX доступно внешнее сохранение файлов. Зрителям задают вопрос, чтобы выиграть приз, и рассказывают об интеграции OpenVINO для моделей PyTorch.

  • 00:50:00 В этом разделе обсуждают интеграцию OpenVINO с PyTorch через исполняющий провайдер OpenVINO. Этот продукт может повысить производительность моделей PyTorch на оборудовании Intel, используя всего две дополнительные строки кода. Пользователь может обернуть свой nn.module в модуль вывода torch orp/ort, который подготовит модуль для вывода с помощью исполняющего провайдера OpenVINO и экспортирует модуль в граф в памяти через onnx.export. Сеанс ONNXruntime затем разбивает граф на подграфы с поддерживаемыми и неподдерживаемыми операторами для разделения подграфов, а узлы, совместимые с OpenVINO, будут выполняться провайдером и могут выполняться на процессорах Intel, GPU или VPU, в то время как все остальные узлы будут возвращаться к провайдер исполнения CPU ML по умолчанию. Процесс установки прост, с возможностью сборки из исходного кода, простой установки pip и получения доступа ко всему спектру API-интерфейсов Python.

  • 00:55:00 В этом разделе ведущие еженедельного вебинара OpenCV зачитывают вопросы аудитории по таким темам, как совместимость OpenVINO с устройствами ARM и потенциальная потеря производительности или точности при использовании форматов обмена ONNX. Ведущие и докладчики объясняют, что OpenVINO действительно может работать и повышать производительность на устройствах с процессором ARM, а ONNX может даже повысить производительность для большинства моделей. Однако всегда рекомендуется проверять точность на тестовом наборе при преобразовании из одного формата в другой. Ведущие также уточняют, что ONNX поддерживает динамические модели форм, вопреки вопросу из аудитории. Наконец, ведущие и ведущие благодарят аудиторию и Фила, организатора, за прекрасную презентацию и информативную сессию.