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

 

Импорт, обучение и оптимизация моделей ONNX с помощью NVIDIA TAO Toolkit



Импорт, обучение и оптимизация моделей ONNX с помощью NVIDIA TAO Toolkit

В видео показано, как использовать набор инструментов NVIDIA TAO для импорта, обучения и оптимизации моделей ONNX. Он начинается с загрузки предварительно обученной модели ResNet18, ее точной настройки с помощью TAO в наборе данных Pascal VOC и предоставления шагов для импорта модели и визуализации графика ONNX. За ходом обучения можно следить с помощью визуализации TensorBoard, а в случае ошибок преобразования ONNX можно использовать настраиваемые слои. В видео также объясняется, как оценить производительность модели, наблюдая за уменьшением потерь, подтверждая потери и анализируя веса и смещения. Пользователи могут оценить точность модели на тестовом наборе данных и образцах изображений, а затем продолжить сокращение и оптимизацию для ее дальнейшего улучшения.

  • 00:00:00 В этом разделе видео объясняется, как импортировать, обучать и оптимизировать модели ONNX с помощью набора инструментов NVIDIA TAO. Видео начинается с загрузки предварительно обученной модели ResNet18, которая затем настраивается на наборе данных Pascal VOC с использованием TAO. Также рассматриваются шаги по импорту модели ONNX и визуализации графика ONNX. Кроме того, в видео обсуждается, как отслеживать ход выполнения задания обучения с помощью визуализации TensorBoard. Наконец, в видео упоминается, что TAO может обрабатывать пользовательские слои, и даются рекомендации о том, как использовать их для импорта моделей, которые не удалось преобразовать.

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

Веб-семинар NVAITC: развертывание моделей с помощью TensorRT



Веб-семинар NVAITC: развертывание моделей с помощью TensorRT

В этом разделе вебинара NVAITC архитектор решений Никки Лоппи представляет TensorRT, набор средств разработки программного обеспечения NVIDIA для высокопроизводительного вывода на основе глубокого обучения. TensorRT предоставляет оптимизатор вывода и среду выполнения для вывода с низкой задержкой и высокой пропускной способностью на различных платформах, от встроенных устройств до центров обработки данных. Лоппи объясняет пять технологий, которые TensorRT использует для оптимизации производительности логических выводов, включая слияние ядра и точную калибровку. Разработчики могут использовать API-интерфейсы Python и C++ TensorRT для включения этих оптимизаций в свои собственные приложения, а библиотеки преобразователей, такие как trtorch, можно использовать для оптимизации моделей PyTorch для логического вывода. Лоппи демонстрирует, как сохранять модели, оптимизированные для TensorRT, с помощью библиотеки trtorch, и сравнивает оптимизированные модели с неоптимизированными моделями для классификации изображений, демонстрируя значительное ускорение с половинной точностью.

  • 00:00:00 В этом разделе вебинара архитектор решений Никки Лоппи обсуждает важность эффективности логических выводов и необходимость переносимости платформы. Она представляет TensorRT, комплект для разработки программного обеспечения от NVIDIA для высокопроизводительного логического вывода на основе глубокого обучения, который решает эти две проблемы. TensorRT включает в себя оптимизатор логического вывода и среду выполнения для логического вывода с малой задержкой и высокой пропускной способностью на широком спектре платформ, от встроенных устройств до центров обработки данных. Он также совместим со всеми основными платформами глубокого обучения. Затем Лоппи объясняет пять технологий, которые TensorRT реализует для оптимизации производительности вывода, включая слияние ядра, точную калибровку и автонастройку ядра.

  • 00:05:00 В этом разделе вебинара представлены возможности TensorRT по оптимизации времени выполнения ядра, уменьшению объема памяти и поддержке параллельного вывода с использованием многопоточного выполнения. Разработчики могут использовать API-интерфейсы Python и C++ TensorRT для внедрения этих оптимизаций в свои собственные приложения. На вебинаре также объясняется, как использовать библиотеки преобразователей, такие как tr torch, для оптимизации модели PyTorch для логического вывода. Шаги включают в себя сохранение модели, ее загрузку, инициализацию модели ResNet, ее компиляцию с помощью TorchScript и, наконец, преобразование ее в формат TensorRT. Затем оптимизированную модель можно развернуть на целевой платформе.

  • 00:10:00 В этом разделе вебинара спикер демонстрирует, как сохранить модели, оптимизированные для TensorRT, для последующего использования или для развертывания на других платформах с помощью библиотеки trtorch. Докладчик использует пример классификации изображений с моделями ResNet-18 и ResNet-50, работающими в наборе данных ImageNet. Модели, оптимизированные для trtorch, показывают значительное ускорение с половинной точностью по сравнению с неоптимизированными моделями, с коэффициентом ускорения 5,5x для ResNet-18 и 6,4x для ResNet-50. Докладчик также подчеркивает важность беспристрастного сравнительного анализа и дает инструкции о том, как начать работу с trtorch.
 

Учебное пособие по ESP - Как создать ускоритель в Keras/Pytorch/ONNX



Учебное пособие по ESP - Как создать ускоритель в Keras/Pytorch/ONNX

В этом руководстве представлен инструмент под названием Chalice для ML, который может автоматически генерировать ускоритель из модели Keras/Pytorch/ONNX. Затем в учебнике демонстрируется, как интегрировать ускоритель в ESP (прототип на ранней стадии). Докладчик также показывает, как спроектировать ускоритель в Keras/Pytorch/ONNX, и описывает этапы импорта ускорителя, добавления тестового стенда, генерации RTL и создания двух версий ускорителя. В видео также рассказывается о компиляции Linux и создании приложения пользовательского пространства Linux для ускорителя. Наконец, учебник заканчивается ресурсами для дальнейшего обучения.

  • 00:00:00 В этом разделе руководства докладчик представляет инструмент под названием Chalice для ML, который может автоматически генерировать ускоритель из модели Keras/Pytorch/ONNX. Поток демонстрируется с использованием HLS 4 ML для создания ускорителя из предварительно созданной модели Keras, которая предоставляется в репозитории GitHub ESP для NXP. Затем сгенерированный ускоритель интегрируется и тестируется в ESP с помощью интерактивного скрипта. Докладчик подчеркивает, что пользователи должны ознакомиться с необходимыми руководствами и настроить свою среду, прежде чем пытаться следовать руководству. Учебное пособие также предлагает готовые материалы, которые пользователи могут использовать для экспериментов, не выполняя все шаги.

  • 00:05:00 В этом разделе руководства инструктор объясняет, как интегрировать ускоритель, разработанный на предыдущих этапах, в ESP (ранний прототип). Трехзначный шестнадцатеричный идентификатор для ускорителя назначается с учетом того, что число не должно превышать 1024 в десятичном виде. Затем определяется разрядность данных ускорителя, которая в текущем варианте использования составляет 32 бита, и определяются размеры входного и выходного файлов. Наконец, инструктор демонстрирует запуск высокоуровневого синтеза для трехуровневого ускорителя MLP и показывает, как запустить HLS с ESP. Все шаги такие же, как и для других руководств для ускорителей System C или C++, а папка проекта HLS для MLP добавляется в ESP со всеми необходимыми файлами для упаковки и взаимодействия ускорителя с остальной частью системы ESP.

  • 00:10:00 В этом разделе видео спикер демонстрирует этапы проектирования ускорителя в Keras/Pytorch/ONNX. Сначала они показывают, как импортировать ускоритель и добавить испытательный стенд, который автоматически проверяет симуляцию. Затем они проходят этап HLS, который генерирует проект, работающий на селекторном поиске и технологии FPGA. Сгенерированный RTL затем помещается в технологию FPGA, и создаются две версии ускорителя, одна с 32 битами, а другая с 64 битами. Докладчик настраивает SOC с помощью команды ESP X config и показывает, как скомпилировать чистое металлическое приложение, которое было сгенерировано автоматически. Чтобы имитировать испытание ускорителя на «голом железе», необходимо указать программу испытаний. После прохождения проверки можно сгенерировать битовый поток FPGA.

  • 00:15:00 В этом разделе видеоруководство рассказывает о компиляции Linux, которая не только компилирует циники, но и компилирует тестовые приложения пользовательского пространства для ускорителей. После завершения Linux создается исполняемый файл для ускорителя, который представляет собой приложение пользовательского пространства Linux, которое будет работать на FPGA. Затем руководство переходит к программированию FPGA и запуску теста на «голом железе» с помощью команды make FPGA run. Для запуска юнит-теста замедления на «голом железе» указывается ранее сгенерированная тестовая программа. После этого был запущен Linux и выполнено модульное тестовое приложение, которое успешно нашло продавца Reiter, и тест прошел с проверкой. Учебное пособие заканчивается некоторыми ресурсами для дальнейшего обучения.
ESP tutorial - How to: design an accelerator in Keras/Pytorch/ONNX
ESP tutorial - How to: design an accelerator in Keras/Pytorch/ONNX
  • 2020.03.20
  • www.youtube.com
Tutorial guide: https://www.esp.cs.columbia.edu/docs/hls4ml/(The video tutorial was not recorded with the latest version of the ESP repository. While watchin...
 

Оптимальное исполнение моделей на оборудовании с ONNX Runtime



Оптимальное исполнение моделей на оборудовании с ONNX Runtime

В этом руководстве рассматривается развертывание моделей на CPU, GPU и OpenVINO с использованием ONNX Runtime. Докладчик демонстрирует использование различных исполняющих провайдеров, включая OpenVINO, для логических выводов на гибком оборудовании. Код для логического вывода в основном одинаков во всех средах, главное отличие заключается в поставщике исполнения. Среда выполнения ONNX выполняет вывод быстрее, чем PyTorch на ЦП и графическом процессоре, а для OpenVINO существует отдельная библиотека среды выполнения ONNX. В целом, в руководстве представлен обзор того, как развертывать модели на различных вариантах оборудования с помощью ONNX Runtime.

  • 00:00:00 В этом разделе спикер описывает процесс настройки виртуальных сред и использования среды выполнения ONNX для выполнения логических выводов в модели ResNet50 на ЦП, графическом процессоре и OpenVINO. Докладчик отмечает, что ONNX Runtime будет использовать GPU, если обнаружит совместимый ускоритель, в противном случае по умолчанию будет использовать CPU. Код для логического вывода в основном одинаков во всех трех средах, с основным отличием в смене поставщика выполнения. Докладчик демонстрирует, что ONNX Runtime может выполнять вывод быстрее, чем PyTorch на CPU и GPU, и отмечает, что для OpenVINO существует отдельная библиотека ONNX Runtime.

  • 00:05:00 В этом разделе спикер демонстрирует использование различных поставщиков исполнения, таких как OpenVINO и OpenVino на ЦП, для логических выводов на гибком оборудовании с ONNX Runtime. Установив поставщика выполнения на OpenVINO, тот же код обеспечивает 30 мс и загрузку ЦП около 0,78. В руководстве дается обзор того, как развертывать модели на CPU, GPU и OpenVINO с помощью ONNX Runtime.
Optimal Inferencing on Flexible Hardware with ONNX Runtime
Optimal Inferencing on Flexible Hardware with ONNX Runtime
  • 2022.08.22
  • www.youtube.com
Check out this video and blog on how to inference ResNet with CPU, GPU or OpenVINO by our intern Kevin Huang!Blog: https://onnxruntime.ai/docs/tutorials/acce...
 

Вывод машинного обучения в Flink с ONNX



Вывод машинного обучения в Flink с ONNX

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

  • 00:00:00 В этом разделе видео Колин Жермен объясняет важность выводов машинного обучения в реальном времени, используя игрушечный пример из области обнаружения кибератак. Он иллюстрирует, как ожидание обнаружения инцидента может привести к потере важных данных. Кроме того, он объясняет, почему машинное обучение имеет жизненно важное значение для выявления вариаций различных типов методов и эксплойтов, используемых внешними злоумышленниками. Наконец, он подчеркивает важность масштабирования решения с помощью распределенных вычислений во Flink. Колин представляет модель Onyx, которая играет решающую роль в решении, и объясняет, как они могут использовать модель машинного обучения в PyTorch и сериализовать ее с помощью Onyx для развертывания во Flink.

  • 00:05:00 В этом разделе спикер объясняет преимущества использования ONNX, что означает Open Neural Network Exchange, в конвейере машинного обучения. ONNX позволяет разделить задачи между фазой обучения модели и фазой логического вывода, что позволяет специалистам по данным легко разрабатывать модели на Python, а затем использовать модель ONNX с различными инструментами для логического вывода. ONNX предоставляет контракт, который определяет вычисление ориентированного ациклического графа, используемого для машинного обучения. У каждого оператора на графике есть версия, обеспечивающая обратную совместимость и непрерывное обслуживание в будущем. Докладчик также отмечает преимущества упаковки моделей ONNX с потоковой структурой Apache Flink для упрощения развертывания.

  • 00:10:00 В этом разделе видео спикер обсуждает преимущества использования ONNX для вывода машинного обучения, в том числе возможность определять спецификации для входов и выходов и поддержку всех версий моделей в библиотеке времени выполнения ONNX. Независимость ONNX от языка и наличие конвертеров для большинства ML-фреймворков упрощают перенос моделей в ONNX, а спикер предлагает использовать netron для диагностических целей. Наконец, спикер представляет простой пример использования модели pi torch с ONNX для сквозной обработки без обучения.

  • 00:15:00 В этом разделе докладчик обсуждает прямой метод, используемый для определения вычислений, и то, как он используется высоким крутящим моментом для управления обратным распространением градиентов для обучения. Демонстрируется базовый пример использования класса add offset, который смещает тензоры на определенное значение. Затем докладчик переходит к обсуждению экспорта в ONNX и важности предоставления правильных входных данных для динамических моделей. Модель ONNX загружается в память с использованием среды выполнения Scala ONNX и сеанса, что позволяет выполнять вывод по модели. Класс создается для хранения загруженной модели для использования в выводе.

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

  • 00:25:00 В этом разделе спикер обсуждает пример вывода машинного обучения во Flink с использованием классической задачи классификации рукописных цифр, известной как MNIST. Они показывают модель PyTorch, используемую для классификации массивов 28x28 пикселей, и то, как ее можно преобразовать в граф ONNX для использования во Flink, используя тот же подход к пакетному определению размера, что и раньше. Затем спикер обсуждает другой пример машинного обучения с использованием преобразователей в НЛП, в частности, уменьшенную версию BERT, предварительно обученную на словарном запасе слов. Модель преобразователя используется для прогнозирования тональности, перевода и других задач со словами, и ее можно дополнительно обучить для новых задач прогнозирования в Flink.

  • 00:30:00 В этом разделе ведущий демонстрирует библиотеку Hugging Face Transformers, которая позволяет легко импортировать предварительно обученные модели и передавать обучение в Python. Хотя эти модели могут быть большими, библиотека включает функции оптимизации и квантования для повышения производительности. Однако важно отметить, что этапы предварительной обработки, такие как токенизация, еще не являются частью графа и могут быть недоступны в scala. Докладчик также подчеркивает преимущества использования всех возможностей языка Scala во Flink при одновременном отделении зависимостей обучения от логического вывода и эффективном разделении двух частей. В целом, несмотря на некоторые недостатки, такие как размер модели и проблемы с предварительной обработкой, этот метод предлагает преимущества с точки зрения использования возможностей Flink и развертывания в файле JAR.

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

  • 00:40:00 В этом разделе спикер говорит об ONNX как о независимой от фреймворка схеме для графа, который также не зависит от языка. Докладчик упомянул, что одним из интересных свойств использования ONNX является то, что если кто-то использует PyTorch и хочет переключиться на TensorFlow, он может использовать ONNX в качестве «транспортного средства» для перехода между двумя фреймворками, что демонстрирует гибкость фреймворка. Аудитория спросила, экспериментировал ли спикер с моделями TensorFlow в проекте TensorFlow Scala, на что он ответил отрицательно. Наконец, спикер приглашает аудиторию посетить репозиторий ONNX, создать задачу на GitHub или обратиться к нему через LinkedIn по вопросам, особенно по найму.
 

Улучшение опыта онлайн-покупок с ONNX



Улучшение опыта онлайн-покупок с ONNX

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

  • 00:00:00 В этом разделе мы узнаем, что цифровизация коммерции привела к тому, что компании электронной коммерции получили масштаб данных, которые они собирают, и используют ИИ для создания эффективных идей в качестве дифференциала между выигрышем и проигрышем в онлайн-пространстве розничной торговли. Одним из примеров является миллиард покупателей в месяц для Bazaar Voice, крупнейшей в мире сети брендов и розничных продавцов, которые предоставляют более 8 миллиардов отзывов, и как обмен отзывами основан на сопоставлении продуктов. Сопоставление продуктов, основная функция построенной модели машинного обучения, выполняется путем сравнения уникальных идентификаторов, но ежемесячно вручную выполняется более миллиона сопоставлений продуктов. Решение представляет собой модель обучения, созданную с помощью Python и экспортируемую в формат ONNX, в которой реализовано самое легкое и экономичное решение при сохранении производительности.

  • 00:05:00 В этом разделе спикер обсуждает различные варианты реализации моделей машинного обучения для онлайн-покупок и приходит к выводу, что бессерверные функции — лучший вариант из-за их низкой стоимости и простоты реализации. Затем они объясняют, как они разработали модель на Python, экспортировали ее в формат ONNX и развернули в бессерверной функции, используя среду узла для выполнения вывода в среде выполнения ONNX. Модульность этого решения позволяет легко подключать его к любой службе, а с помощью таких показателей, как объем используемой памяти и время выполнения, они смогли найти оптимальный размер памяти, чтобы обеспечить наилучшую производительность при сохранении низких затрат. Несмотря на то, что ограничения по размеру развертывания и работа в рамках ограничений по времени ожидания являются важными факторами, мощность ONNX и среды выполнения ONNX в сочетании с бессерверными функциями позволила быстро сопоставить сотни миллионов продуктов в тысячах клиентских каталогов, что привело к значительной экономии средств и 15 млн. дополнительные обзоры для брендов и ритейлеров.

  • 00:10:00 В этом разделе спикер завершает видео, предлагая зрителям изучить другие способы использования возможностей ONNX и поделиться своими вариантами использования. Как человек, активно работающий в этой области, спикер заинтригован и заинтересован тем, куда эти технологии могут привести нас в будущем.
Improving the online shopping experience with ONNX
Improving the online shopping experience with ONNX
  • 2022.07.13
  • www.youtube.com
Building and deploying AI solutions to the cloud at scale is complex. With massive datasets and performance considerations - finding a harmonious balance is ...
 

ONNX Runtime Azure EP для гибридного вывода на границе и в облаке



ONNX Runtime Azure EP для гибридного вывода на границе и в облаке

Команда ONNX Runtime сделала первый шаг в гибридный мир, позволив разработчикам использовать единый API как для пограничных, так и для облачных вычислений с помощью Azure EP, что устраняет проблемы с подключением устройств и позволяет разработчикам переключаться на оптимизированную ими облачную модель. , экономя затраты и уменьшая задержку. Эта новая функция позволяет разработчикам обновлять логику приложения и выбирать путь через Azure EP, предлагая больше возможностей и возможностей. Команда демонстрирует развертывание дочерних серверов и моделей обнаружения объектов, а также то, как просто протестировать конечную точку и настроить Azure Onnx Runtime. Докладчики также обсуждают возможность переключения между локальной и удаленной обработкой и потенциальные варианты использования, в том числе модели с более низкой и более высокой производительностью. ONNX Runtime Azure EP можно предварительно загрузить и легко настроить с помощью необходимых пакетов для развертывания, что упрощает использование программного обеспечения.

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

  • 00:05:00 В этом разделе Рэнди Шрей, участник нового выпуска ONNX Runtime (ORT) 1.14, демонстрирует некоторые интересные функции, появившиеся в этом выпуске. Во-первых, он показывает конечную точку, называемую Машинное обучение Azure, которая служит серверной частью для моделей. Он также обсуждает сервер Triton, который используется для предоставления конечных точек, разделенных Nvidia, и его впечатляющую производительность и стабильность. Шрей показывает, как развернуть детский сервер, и дает обзор того, как он выглядит, в том числе указывает имя модели, версию и местоположение. Он также выделяет структуру папок, которой необходимо придерживаться при развертывании сервера Triton, и показывает файл конфигурации, описывающий, как модель получает входные и выходные данные.

  • 00:10:00 В этом разделе спикер обсуждает структуру своей папки для развертывания моделей обнаружения объектов и объясняет, как сервер Triton может найти модель для развертывания. Они также отвечают на вопрос об использовании моделей, обслуживаемых в Azure, и упоминают текущие ограничения Trtis по сравнению с Azure, заявляя, что он поддерживает только сервер Triton в качестве своей серверной части. Затем докладчик обсуждает тестирование конечной точки, процесс простой установки Onnx Runtime Azure и то, как они могут использовать Onnx Runtime Azure для гибридного логического вывода на периферии и в облаке для работы с онлайн-конечной точкой со стороны клиента. Докладчик предоставляет сценарий и объясняет некоторые конфигурации, необходимые для загрузки и использования модели с помощью Onnx Runtime Azure.

  • 00:15:00 В этом разделе докладчики демонстрируют, как использовать Azure EP ONNX Runtime для гибридного вывода на границе и в облаке. Они показывают, как настроить ключ аутентификации и запустить вывод с возможностью переключения между локальной и удаленной обработкой путем изменения одного параметра в коде. Они обсуждают возможные варианты использования, такие как выбор между менее производительными и более высокопроизводительными моделями, и отмечают, что, хотя для текущего предварительного выпуска требуется сервер логических выводов Triton, в будущем планируется поддерживать все типы серверов развертывания.

  • 00:20:00 В этом разделе объясняется, что Azure EP среды выполнения ONNX можно предварительно загрузить и легко настроить с помощью необходимых пакетов для развертывания. Эта функция способствует простоте развертывания и использования программного обеспечения.
 

DSS онлайн № 4: комплексное развертывание глубокого обучения с ONNX


DSS онлайн № 4: комплексное развертывание глубокого обучения с ONNX

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

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

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

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

  • 00:15:00 В этом разделе спикер обсуждает важность открытого исходного кода и открытых стандартов в развертывании глубокого обучения. Они объясняют преимущества наличия единого стека и стандартизированного набора инструментов для анализа и визуализации, а также подчеркивают важнейшую роль открытого управления в обеспечении прозрачности и предотвращении концентрации контроля. Затем докладчик представляет открытый обмен нейронными сетями (ONNX), формат на основе буфера протокола для определения сериализации моделей машинного обучения с упором на глубокое обучение. ONNX поддерживает основные платформы глубокого обучения, такие как PyTorch, Caffe, TensorFlow, Keras, Apple Core ML и MXNet, и предоставляет автономный артефакт для запуска модели.

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

  • 00:25:00 В этом разделе спикер обсуждает ограничения ONNX, особенно с точки зрения некоторых отсутствующих функций, таких как обработка изображений, расширенная обработка строк и модели кластеризации хэширования. Кроме того, возникают проблемы с экспортом гибридных конвейеров из таких фреймворков, как Spark ML, и для этого требуется немного пользовательского кода. Тем не менее, ONNX — это активный проект, который быстро растет и пользуется сильной поддержкой крупных организаций. Он предлагает настоящую переносимость между различными размерами языков, фреймворков, сред выполнения и версий, что решает значительную проблему развертывания конвейеров глубокого обучения открытым и переносимым образом. ONNX — это открытый исходный код и открытое управление, поэтому каждый может принять участие.
DSS online #4 : End-to-End Deep Learning Deployment with ONNX
DSS online #4 : End-to-End Deep Learning Deployment with ONNX
  • 2020.10.29
  • www.youtube.com
End-to-End Deep Learning Deployment with ONNXA deep learning model is often viewed as fully self-contained, freeing practitioners from the burden of data pro...
 

ONNX и ONNX Runtime с Винитрой Свами и Пранавом Шармой из Microsoft



ONNX и ONNX Runtime с Винитрой Свами и Пранавом Шармой из Microsoft

В видео обсуждается формат Open Neural Network Exchange (ONNX), созданный для обеспечения совместимости и эффективности моделей при сериализации и управлении версиями. ONNX состоит из промежуточного уровня представления, спецификаций операторов и поддерживает различные типы данных. Среда выполнения ONNX, реализованная на C++ и ассемблере, обеспечивает обратную совместимость и расширяется с помощью поставщиков исполнения, пользовательских операторов и оптимизаторов графов. API предлагает поддержку платформ, языков программирования и поставщиков исполнения. Пользователи могут создавать сеансы, оптимизировать модели и сериализовать их для будущего использования. Выступающие демонстрируют универсальность и эффективность ONNX Runtime с возможностью запуска на устройствах Android.

  • 00:00:00 В этом разделе Венетра из инженерной группы ONNX представляет ONNX, Open Neural Network Exchange, который является совместимым стандартом для моделей ИИ. Она объясняет, что Microsoft интегрировала машинное обучение почти во все аспекты своего набора продуктов, от HoloLens до Xbox и Skype, что привело к различным проблемам развертывания в масштабе. ONNX был создан для оптимизации эффективного вывода путем стандартизации процесса развертывания модели для различных платформ и целей развертывания. Цель состоит в том, чтобы поддерживать модели из многих платформ путем реализации единого стандарта и обеспечивать единообразие работы для всех пользователей, будь то специалисты по данным, поставщики оборудования, авторы услуг или инженеры по машинному обучению.

  • 00:05:00 В этом разделе Винитра Свами и Пранав Шарма обсуждают ONNX, консорциум партнеров-основателей, в который входят, среди прочего, Microsoft, Facebook, Amazon, NVIDIA и Intel. ONNX состоит из промежуточного уровня представления и полной спецификации оператора, которая определяет операторы стандартным способом, несмотря на разные наборы операторов, которые есть в каждой платформе. Код для преобразования моделей в ONNX невелик, и преобразование может значительно сэкономить пользователям с точки зрения логического вывода и функциональной совместимости. Кроме того, ONNX имеет принципы проектирования, обеспечивающие взаимодействие моделей глубокого и машинного обучения. Пользователи могут начать работу с ONNX, перейдя в зоопарк моделей ONNX, сервисы создания моделей или конвертеры.

  • В разделе 00:10:00 обсуждаются компоненты и дизайн ONNX, формата модели, созданного для обеспечения функциональной совместимости и обратной совместимости при одновременной поддержке эффективной сериализации и управления версиями. Формат состоит из модели, вычислительного графа с узлами и спецификации оператора. Поддерживаемые типы данных включают стандартные тензорные типы и два нетензорных типа, последовательности и карты. Спецификации оператора содержат входные данные, выходные данные, ограничения и примеры. Пример спецификации оператора приведен для оператора relu.

  • 00:15:00 В этом разделе видео Винитра Свами и Пранав Шарма обсуждают различные версии и операторы, поддерживаемые в формате Open Neural Network Exchange (ONNX). Они объясняют, что ONNX имеет более 156 операций глубокого обучения и 18 операций традиционного машинного обучения, которые совместимы между разными операторами. Кроме того, пользователи могут создавать собственные операции для своих моделей с помощью платформы ONNX. Они также подчеркивают важность управления версиями, которое выполняется на трех разных уровнях — промежуточном уровне представления, смещениях и отдельных операторах. Наконец, они обсуждают ONNX Runtime, высокопроизводительный механизм логических выводов с открытым исходным кодом для ONNX. Он кроссплатформенный и разработан с учетом обратной совместимости, что делает его пригодным для развертывания в производственных средах.

  • 00:20:00 В этом разделе основное внимание уделяется архитектуре среды выполнения ONNX и тому, как в ней запускается модель. Обратная совместимость и производительность были ключевыми проблемами для среды выполнения ONNX, которая реализована на C++ и некоторых частях на ассемблере. ONNX Runtime поддерживает аппаратные ускорители с помощью так называемых «поставщиков выполнения». Алгоритм разделения позволяет модели работать на этапе гибридного выполнения, а отдельные поставщики выполнения могут еще больше оптимизировать подграфы для повышения производительности. Наконец, ONNX Runtime действует как интерпретатор, проходящий через все узлы в графе для выполнения модели.

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

  • 00:30:00 В этом разделе докладчики обсуждают принципы проектирования среды выполнения ONNX, подчеркивая ее расширяемость с помощью таких опций, как поставщики выполнения, пользовательские операторы и оптимизаторы графов. Они также предоставляют матрицу поддерживаемых платформ, языков программирования и поставщиков исполнения, включая Tensor RT, Direct ML и OpenVINO. Докладчики объясняют высокоуровневые конструкции сеанса и безопасный для потоков способ создания объекта сеанса перед вызовом функции запуска. Они также обсуждают, как время, необходимое для оптимизации модели, зависит от размера модели и возможностей ее оптимизации.

  • 00:35:00 В этом разделе спикеры обсуждают создание сеансов и использование параметров запуска и параметров сеанса с возможностью сериализации оптимизированной модели для использования в будущем. Они также объясняют процесс регистрации пользовательских операторов с возможностью использования Python для тех, кто предпочитает не использовать C#. Выпущена версия ONNX Runtime 1.0, гарантирующая отсутствие нарушений API в будущем, с
    совместимость возвращается к CentOS 7.6. Также обсуждается ONNX Go Live Tool, инструмент с открытым исходным кодом для преобразования и настройки моделей для достижения оптимальной производительности. Раздел завершается примерами служб Microsoft, использующих ONNX, включая 14-кратный прирост производительности в отсутствующей модели определителя Office и 3-кратный прирост производительности в модели оптического распознавания символов, используемой в когнитивных службах.

  • 00:40:00 В этом разделе спикеры обсуждают API среды выполнения ONNX, который находится в режиме предварительного просмотра и позволяет запускать среду выполнения ONNX на устройствах Android. Они также упоминают поддержку обучения, которая в настоящее время носит ознакомительный характер и направлена на то, чтобы увидеть, можно ли использовать среду выполнения ONNX для настройки уже созданных моделей. Затем докладчики демонстрируют использование среды выполнения ONNX в модели обнаружения объектов YOLOv3, показывая, что среда выполнения ONNX универсальна, эффективна и полезна для случаев, когда требуется хорошая производительность или требуется поддержка модели в разных средах.

  • 00:45:00 В этом разделе видео докладчики демонстрируют среду выполнения ONNX, идентифицируя изображения и соответствующие им классы с помощью большой и сложной модели. Они также демонстрируют быструю демонстрацию Onnx Ecosystem Converter, позволяющую пользователям загружать и конвертировать модели из разных фреймворков в Jupyter Notebook. Они преобразуют модель классификации документов из CoreML, платформы машинного обучения Apple, в ONNX и проверяют ее точность. Они отмечают, что преобразование модели в ONNX требует разовых затрат и является эффективным процессом.

  • 00:50:00 В этом разделе выступающие резюмируют то, что они рассмотрели в видео, в том числе преимущества использования ONNX и среды выполнения ONNX, различные способы преобразования различных фреймворков в ONNX и растущее внедрение ONNX в их 26 странах. компании. Они благодарят свою аудиторию за внимание и выражают свое волнение по поводу продолжения сессии вопросов и ответов.
 

Ян-Бенедикт Ягуш Кристиан Буржо: Делаем приложения машинного обучения быстрыми и простыми с помощью ONNX



Ян-Бенедикт Ягуш Кристиан Буржо: Делаем приложения машинного обучения быстрыми и простыми с помощью ONNX

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

  • 00:00:00 В этом разделе видео докладчики обсуждают важность отделения обучения модели от логического вывода с помощью ONNX. Выступающие отмечают, что 55% компаний, которые начали с машинного обучения, не смогли запустить свои модели в производство, и утверждают, что автоматизация бизнес-процессов путем запуска моделей в производство — это то, в чем заключается наибольшая ценность. Однако они также отмечают, что развертывание моделей сложнее, чем может показаться на первый взгляд, поэтому они обсудят, как ONNX может помочь решить эту проблему. Они также знакомятся с тем, как проект машинного обучения обычно запускается, развивается, а затем сталкивается с требованиями к развертыванию.

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

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

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

  • 00:20:00 В этом разделе спикеры демонстрируют, как создать простой импутер и регрессор, используя операции numpy, которые легко можно определить как граф операторов оникса. Заменив каждый узел в графе scikit-learn самим графом, scikit-learn можно преобразовать в формат onix. Несмотря на то, что общепризнанные платформы машинного обучения, такие как PyTorch, TensorFlow, Light GBM и XGBoost, уже имеют доступные преобразователи, для пользовательских оценок и преобразователей необходимо написать собственные преобразователи. Тем не менее, кривая обучения крутая, но выполнимая, и крайне важно, чтобы пользовательский код вписывался в колоду. Спикеры также представляют живую демонстрацию с использованием обучающих данных и пайплайна из scikit-learn, который затем преобразуется в формат onix.

  • 00:25:00 В этом разделе Ян-Бенедикт Ягуш и Кристиан Буржо объясняют, что ONNX строго типизирован и требует исходной информации из предоставляемых данных. Чтобы упростить этот процесс, они легко преобразуют типы из фрейма данных pandas, сопоставляя типы данных pandas с типами данных ONNX. Затем модель ONNX становится полностью автономной и извлекается из логики прогнозирования конвейера. Команде инженеров данных нужно только выгрузить это в файл и использовать среду выполнения ONNX для анализа данных, что является единственной зависимостью, независимо от того, сериализуется ли модель данных из TensorFlow, Python или где-либо еще. Среда выполнения ONNX предоставляет привязки Python, которые повышают скорость прогнозирования в десять раз. Скорость однострочного прогнозирования также является приоритетом, поскольку она важна в онлайн-средах, занимая всего 170 миллисекунд, что аналогично Scikit-learn.

  • 00:30:00 В этом разделе докладчики обсуждают преимущества использования onyx для отделения среды обучения от среды развертывания. Они объясняют, что, экспортируя модели в универсальный файловый формат ONNX, пользователи могут интерпретировать свои модели с помощью среды выполнения, обеспечивающей необходимые характеристики производительности для реального развертывания. Спикеры также затронули вопрос об использовании контейнеров Docker, подчеркнув ограничения с точки зрения масштабируемости и гибкости. Они рекомендуют обратить внимание на способность onyx обеспечивать как производительность, так и гибкость, а также возможность архивирования моделей в дополнение к улучшению развертывания.

  • 00:35:00 В этом разделе докладчики обсуждают ограничения использования Docker для развертывания моделей машинного обучения и подчеркивают преимущества сериализации моделей в ONNX. Хотя Docker может работать для предоставления REST API, в некоторых случаях создаваемый артефакт включает в себя множество слоев, что затрудняет загрузку математической формулировки модели. С другой стороны, сериализация модели в ONNX обеспечивает чистую суть модели, которая удобочитаема и проста для загрузки. Выступающие предупреждают, что, хотя ONNX имеет много преимуществ, это не идеальное решение для всех случаев использования и требует некоторых накладных расходов для преобразования пользовательских оценок и преобразователей. Кроме того, экосистема все еще относительно новая, и пользователям, возможно, придется потратить время на исправление ошибок или чтение ошибок GitHub. Наконец, выступающие кратко упоминают о возможности развертывания моделей ONNX на графических процессорах, что технически возможно при использовании среды выполнения ONNX по умолчанию.

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