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

 

Ускорение масштабируемого inference машинного обучения с помощью ONNX, Triton и Seldon | PyData Global 2021



Ускорение масштабирумого inference машинного обучения помощью ONNX, Triton и Seldon | PyData Global 2021

В видео  Алехандро Сауседо из Seldon Technologies обсуждает проблемы масштабирования вывода машинного обучения и способы использования ONNX и Triton для оптимизации и производства моделей. Используя модель GPT-2 TensorFlow в качестве варианта использования, сеанс охватывает предварительную обработку, выбор оптимальных токенов и развертывание модели с использованием Tempo и сервера вывода Triton. Сауседо подчеркивает необходимость абстрагироваться от сложностей инфраструктуры и упростить развертывание, обеспечивая при этом воспроизводимость и соответствие требованиям. Доклад завершается сотрудничеством с проектами с открытым исходным кодом для сквозного обучения и компонентов развертывания.

  • 00:00:00 В этом разделе Алехандро Сауседо представляет себя и свою компанию Seldon Technologies, которая занимается развертыванием и мониторингом машинного обучения. Он объясняет, что на сессии будет рассмотрена проблема ускорения вывода машинного обучения в масштабе за счет практического подхода с использованием модели GPT-2 TensorFlow в качестве варианта использования. Цель состоит в том, чтобы оптимизировать модель с помощью ONNX и протестировать ее локально с помощью инструмента под названием Tempo, прежде чем запускать ее в Kubernetes. Основное внимание уделяется абстрагированию базовых сложностей инфраструктуры, чтобы специалисты по науке о данных могли сосредоточиться на стороне науки о данных. Сауседо также объясняет, что такое GPT-2 и его приложения, отмечая, что это относительно сложная модель, которая требует значительного объема вычислений для обучения и вывода.

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

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

  • 00:15:00 В этом разделе спикер обсуждает, как произвести модель с помощью Tempo и сервера логических выводов Triton. Первый шаг — определить оболочку Tempo для модели GPT-2, а затем запустить оптимизированную модель на оптимизированном сервере от Nvidia. Затем необходимо определить пользовательскую логику преобразования для преобразования машиночитаемых токенов в удобочитаемые строки, что позволит пользователям легко и просто взаимодействовать с моделью. После локального тестирования модели в Docker ее можно развернуть в стеке Kubernetes с помощью простой команды. Показан код для определения оболочки, и выступающий объясняет, что этот метод позволяет использовать различные типы фреймворков модели, что делает его универсальным инструментом для создания логических выводов ML.

  • 00:20:00 В этом разделе спикер обсуждает, как создать пользовательскую логику преобразователя, используя модели PyTorch с ONNX и Triton. Во-первых, расшифровка объясняет, как отправлять токены с помощью этой пользовательской логики, используя преобразование строк и функцию прогнозирования. Затем докладчик объясняет, как загрузить артефакты из модели GPT2 и определить функцию прогнозирования как конечную точку REST, прежде чем выполнять итерацию по токенам и генерировать ответ. Ключевым выводом является то, что, передавая токены через модель и повторяя несколько прогонов, мы можем вернуть строку из этой сложной инфраструктуры. Кроме того, спикер упоминает, что этот подход можно легко развернуть в Kubernetes с помощью удаленной функции развертывания.

  • 00:25:00 В этом разделе спикер обсуждает ускорение машинного обучения в масштабе, уделяя особое внимание оптимизации модели TensorFlow GPT-2 с помощью ONNX и запуску ее с помощью Triton с помощью Docker, а затем ее развертыванию в Kubernetes, следуя рекомендациям. Цель состоит в том, чтобы свести к минимуму утечку базовой инфраструктуры и обеспечить надежное развертывание с минимальными усилиями. Спикер также упоминает их сотрудничество с командами Tempo и Metaflow для обеспечения сквозного обучения и компонентов развертывания в проектах с открытым исходным кодом. Выступление завершается сессией вопросов и ответов.
Accelerating ML Inference at Scale with ONNX, Triton and Seldon | PyData Global 2021
Accelerating ML Inference at Scale with ONNX, Triton and Seldon | PyData Global 2021
  • 2022.01.19
  • www.youtube.com
Accelerating ML Inference at Scale with ONNX, Triton and SeldonSpeaker: Alejandro SaucedoSummaryIdentifying the right tools for high performant production ma...
 

AI Show Live - Эпизод 62 - Многоплатформенный inference с помощью ONNX Runtime



AI Show Live - Эпизод 62 - Многоплатформенный inference с помощью ONNX Runtime

В эпизоде «Мультиплатформенный inference с помощью ONNX Runtime» AI Show Live ведущие демонстрируют, как развернуть модель сверхвысокого разрешения и модель обнаружения объектов на нескольких платформах с использованием среды выполнения ONNX. Они обсуждают этапы предварительной и последующей обработки как для мобильных, так и для веб-платформ, демонстрируют преимущества использования единого решения, объясняют процесс преобразования модели PyTorch в модель ONNX и демонстрируют, как предварительно обрабатывать данные для логического вывода с помощью ONNX. Время выполнения. Кроме того, они демонстрируют реализацию модели обработки естественного языка BERT с использованием ONNX Runtime на C#. Код и модели с открытым исходным кодом доступны для настройки для решений пользователей.

Во второй части AI Show Live докладчики освещают различные темы, связанные с выполнением логических выводов с помощью ONNX Runtime. Они демонстрируют процесс классификации текста на примере из примеров вывода ONNX и исследуют установку пакетов и инструментов, необходимых для построения моделей классификации BERT на C#. Они также обсудят использование IntelliCode с VS 2022 и пройдут этапы подготовки к выводу модели, включая создание тензоров, настройку сеанса вывода среды выполнения ONNX и постобработку вывода. Кроме того, они затрагивают важность обращения к документации модели и выбора правильного токенизатора для получения точных результатов.

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

  • 00:05:00 В этом разделе ведущие представляют проект, который использует React Native и Expo для создания приложения, которое можно развернуть на разных платформах для мобильных устройств и Интернета. Они объясняют, что использование функции собственных модулей React Native позволяет реализовывать функции и модели на других языках, таких как C++ и Java, которые можно использовать в коде JavaScript. Эта функция позволяет им писать функции предварительной обработки на другом языке, например функцию получения пикселей, написанную на Java, чтобы лучше обрабатывать данные, упрощая получение данных о пикселях изображения для своих моделей машинного обучения.

  • 00:10:00 В этом разделе видео на YouTube спикер обсуждает этапы предварительной и последующей обработки мобильного приложения, использующего модель сверхвысокого разрешения. В отличие от других моделей, которые работают со значениями RGB, эта модель работает только с компонентом яркости (Y) изображения. Поэтому докладчик показывает, как преобразовать изображение RGB в изображение YCbCr, чтобы извлечь компонент Y. Докладчик также демонстрирует, как загрузить модель в мобильную среду, используя формат ONNX Runtime, который обеспечивает оптимизированную сборку уменьшенного размера для мобильных и веб-приложений. Наконец, выполняется этап постобработки для обработки выходных данных модели.

  • 00:15:00 В этом разделе видео ведущий и гость демонстрируют функцию постобработки, которая берет массив из своей модели и изменяет YCbCr обратно на RGB. Затем они используют функцию собственной модели, чтобы получить источник изображения для отображения. Предварительная обработка и постобработка в языках, отличных от Python, как правило, являются сложной частью при операционализации и выводе моделей на других языках. Они демонстрируют демонстрацию, в которой модель развертывается локально на мобильном устройстве, а затем повторно используют код для развертывания той же модели в веб-браузере. Один зритель спрашивает, можно ли то же самое сделать на C#, на что гость полагает, что это возможно.

  • 00:20:00 В этом разделе Калия демонстрирует различия в предварительной и последующей обработке для запуска модели на веб-платформе и на мобильных платформах. В Интернете для получения данных изображения используются закадровый холст и Canvas API, тогда как на мобильных устройствах нет необходимости переключаться между API и обратно. Как только закадровый холст отрисовывает изображение, функция предварительной обработки настраивает данные изображения на канал y, который использует модель сверхвысокого разрешения. Затем функция постобработки преобразует данные из формата y cbcr в формат rgb, чтобы их можно было отобразить на экране. Код Kalia для функций предварительной и последующей обработки можно использовать в Java, C# или React.

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

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

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

  • 00:40:00 В этом разделе показана демонстрация модели обработки естественного языка BERT с использованием Onnx Runtime на C#. Ведущий объясняет, что, хотя есть много примеров использования BERT в Python, они предпочитают использовать C#. Они начали с базовой модели BERT без оболочки, а затем перешли к примеру из документации Onnx Runtime для ответов на вопросы. С помощью API преобразователей Hugging Face они смогли легко получить предварительно обученную модель и экспортировать ее в формат Onnx. Затем они показывают, как ввести модель и запустить ее с помощью Onnx Runtime на C#.

  • 00:45:00 В этом разделе спикер обсуждает этап предварительной обработки модели, где текст токенизируется. Они демонстрируют, как динамические оси используются для обеспечения разной длины ввода, и как они используют токенизатор для предварительной обработки ввода в до-диез. Они также представляют Boat Tokenizer, проект с открытым исходным кодом, который позволяет им токенизировать модель BERT в C Sharp, что невозможно с пакетом трансформаторов на основе Python. Затем закодированные входные данные возвращаются в виде входных идентификаторов, которые представляют собой разные токены, прикрепленные к разным словам в модели.

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

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

  • 01:00:00 В этом разделе спикер запускает логические значения и получает логиты начала и конца. Результаты возвращаются в порядке индекса меток. Чтобы получить прогнозируемый ответ, сначала необходимо получить максимальное значение и индекс максимального значения из начального и конечного логитов. Отображаются выходные имена и закодированные значения токенов, которые используются для сравнения правильности токенов. Докладчик также демонстрирует процесс преобразования кода логического вывода Python в C# для операционализации моделей. Наконец, они предлагают поэкспериментировать с другими моделями, преобразовать код логического вывода Python в C# и выполнить точную настройку моделей.

  • 01:05:00 В этом разделе видео ведущий исследует классификацию текста с помощью среды выполнения ONNX и примера из примеров вывода ONNX, которые являются хорошим ресурсом для поиска примеров использования ONNX. В примере используется токенизатор от Hugging Face и уменьшенная версия базового токенизатора в оболочке. Хост устанавливает путь на основе имени модели, затем устанавливает входные данные для модели, которая имеет динамические оси из-за переменной длины предложения. Входными данными для модели классификации текста являются входные идентификаторы и маска внимания. Ведущий упоминает, что для ONNX разрабатываются расширения и что новая версия среды выполнения поддерживает .NET six и Maui. Хотя пример предварительной обработки для модели недоступен, хост планирует использовать Netron, чтобы понять это.

  • 01:10:00 подведем итоги этого раздела. В этом разделе видео спикер переименовывает предыдущую модель в менее информативную форму и добавляет к ней текстовую классификацию. Затем они создают новый проект с использованием C# и .NET 6 и объясняют новую функцию простого шаблона консоли со сценарием. Спикер копирует и вставляет некоторый код из предыдущего проекта в новый и добавляет вход BERT, который теперь имеет только два выхода. Спикер признает, что ему следует создать отдельный файл для этого ввода, но вместо этого предпочитает использовать сценарий.

  • 01:15:00 В этом разделе спикер обсуждает установку различных пакетов и инструментов для построения моделей классификации Burp на C#. Они устанавливают необходимый пакет токенизатора и пакеты среды выполнения ONNX вместе с управляемым пакетом. Ненужные пакеты атрибутов закомментированы, а говорящий добавляет входное предложение и токенизатор для получения токенов для кодирования. Докладчик также упоминает IntelliCode VS 2022, который использует модель GPT-2 для обучения на базе кода и работает локально.

  • 01:20:00 В этом разделе видео ведущий рассказывает об использовании Intellicode (ранее известного как Intellisense) с VS 2022, который представляет собой инструмент на основе ИИ, который может учиться на основе существующей кодовой базы. Затем они переходят к работе с токенизатором и закодированным значением предложения. Они также обсуждают путь к модели и то, как вставить модель в консольное приложение для экспериментальных целей, хотя есть лучшие способы справиться с этим для производственного приложения. Наконец, ведущий создает сеанс логического вывода для модели BERT.

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

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

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

  • 01:40:00 В этом разделе ведущие AI Show Live обсуждают проект Optimum от Hugging Face, который реализует оптимизации для машинного обучения, включая ускорители для обучения и различные аппаратные интеграции с использованием среды выполнения ONNX на серверной части. Организаторы также проверяют этапы предварительной обработки для токенизатора и создания сеанса для модели классификации текста. Они исследуют закодированную версию предложения и повторно используют некоторый ранее написанный код для создания сеанса для своей модели.

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

  • 01:55:00 В этом разделе видео ведущий пытается настроить входы и выходы для запуска модели. Они сталкиваются с некоторыми проблемами с маской ввода и маской внимания и в конечном итоге понимают, что могут просто взять токены и отправить их без дополнительной обработки. Затем они переключают свое внимание на ввод модели, что немного сложнее, поскольку требует двух входных данных и необходимо указать форму для пакета. Докладчик использует среду выполнения ONNX для настройки входных и выходных данных и проверяет ее, чтобы увидеть, дает ли она те же результаты, что и модель C#.
AI Show Live - Episode 62 - Multiplatform Inference with the ONNX Runtime
AI Show Live - Episode 62 - Multiplatform Inference with the ONNX Runtime
  • 2022.07.29
  • www.youtube.com
Join Cassie Breviu as she takes us on a tour of what the ONNX Runtime can do when it comes to inference AND on multiple platforms to boot.
 

Прикладное машинное обучение с ONNX Runtime



Прикладное машинное обучение с ONNX Runtime

Дженнифер Лупер, главный защитник облачных технологий в сфере образования в Microsoft, обсуждает в этом видео конвергенцию разработки приложений, машинного обучения и науки о данных. Она рекомендует создавать интеллектуальные приложения для Интернета и изучает различные API-интерфейсы JavaScript, включая ml5.js, Magenta.js, PoseNet и Brain.js, для включения технологий машинного обучения в приложения. Looper подчеркивает полезность scikit-learn для классического машинного обучения и рекомендует его как мощный инструмент без громоздких решений нейронных сетей. Она также обсуждает среду выполнения Onnx, которая оптимизирует обучение и вывод за счет определения общего набора операторов для построения моделей машинного обучения и глубокого обучения, а также использует данные из Kaggle для объяснения процесса выполнения базовой задачи классификации с использованием контролируемого машинного обучения. Затем докладчик демонстрирует, как создать механизм рекомендаций с использованием моделей машинного обучения, и предлагает посетить онлайн-ресурсы Microsoft, чтобы узнать больше о машинном обучении. Она заключает, что Onnx Runtime подходит для начинающих как часть их учебной программы или для всех, кто хочет больше узнать о машинном обучении.

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

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

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

  • 00:15:00 В этом разделе видео спикер обсуждает различные API-интерфейсы Javascript, которые можно использовать с предварительно обученными моделями для исследования и создания искусственного интеллекта в браузере. Одним из них является ml5.js, который построен на основе Tensorflow и предоставляет примеры распознавания изображений и анализа звука. Другой упомянутый API — это Magenta.js, который использует предварительно обученные модели для создания музыки и изображений в браузере. Спикер также рассказывает о PoseNet, который можно использовать для оценки одной или нескольких поз всего тела, лица или только руки. Наконец, спикер представляет Brain.js, который позволяет нейронным сетям работать в Javascript в браузерах и Node.js.

  • 00:20:00 В этом разделе спикер обсуждает ограничения использования JavaScript и браузера для обучения моделей машинного обучения, предполагая, что это не лучшая среда для этой цели и лучше подходит для запуска готовых моделей или переподготовка действующих. Они рекомендуют, чтобы для создания более надежных и правильных моделей машинного обучения подходил Python, а программисты могли изучить достаточно Python, чтобы быть опасными, и работать с Jupyter Notebooks для обучения своих моделей. Они также обсуждают использование таких сервисов, как loeb.ai, для обучения работе с изображениями и другими медиаданными.

  • 00:25:00 В этом разделе спикер обсуждает альтернативу использованию TensorFlow для машинного обучения, scikit-learn. Спикер поясняет, что не для всех задач машинного обучения нужны нейронные сети, и они создали на GitHub учебную программу, в которой нейронные сети не используются. Они также показывают, как они использовали scikit-learn для создания приложения, рекомендующего кухню, работающего на среде выполнения ONNX, позволяющего пользователям вводить ингредиенты и получать предложения о типе кухни, которую они могут приготовить из этих ингредиентов. Спикер подчеркивает полезность scikit-learn для классического машинного обучения и рекомендует его как мощный инструмент без громоздких решений нейронных сетей.

  • 00:30:00 В этом разделе видео спикер представляет scikit-learn, платформу машинного обучения с открытым исходным кодом, которая предоставляет примеры и документацию для основных задач машинного обучения, таких как классификация, регрессия и кластеризация. Они объясняют, что scikit-learn — популярный фреймворк среди специалистов по обработке и анализу данных, доступный для всех, поскольку он поставляется в комплекте с numpy, scipy и matplotlib. Затем докладчик обсуждает Onnx Runtime, продукт Open Neural Network Exchange (Onnx), который оптимизирует обучение и логические выводы, определяя общий набор операторов для построения моделей машинного обучения и глубокого обучения. Onnx Runtime поддерживает множество фреймворков, инструментов и сред выполнения и позволяет разработчикам ИИ использовать предпочитаемую ими инфраструктуру с выбранным механизмом логического вывода. Докладчик описывает типичный рабочий процесс машинного обучения, который включает очистку данных с помощью Python, обучение моделей с помощью scikit-learn и преобразование моделей для использования с Onnx Runtime с использованием библиотеки skl to Onnx.

  • 00:35:00 В этом разделе видео спикер берет данные из Kaggle о разных типах кухонь и объясняет, как очистить и сбалансировать данные. Набор данных содержит 100 потенциальных ингредиентов, которые классифицируются как индийские, тайские, корейские, японские или китайские. Чтобы построить модель, спикер объясняет, что вам нужно выбрать алгоритм, классификатор и решатель для оптимизации результатов. Набор данных небольшой, всего около 700 точек данных. Данные помечены, что означает, что можно использовать контролируемое обучение, и докладчик подчеркивает важность понимания данных перед их формированием и очисткой для использования в приложениях машинного обучения.

  • 00:40:00 В этом разделе ведущий обсуждает процесс выполнения базовой задачи классификации с использованием контролируемого машинного обучения и выбора алгоритма классификации нескольких классов. Ведущий представляет шпаргалку для мультиклассовой классификации и исключает нейронные сети из-за характера набора данных и локального обучения. Два оставшихся алгоритма многоклассовой классификации — это логистическая регрессия и леса решений. Докладчик выбирает логистическую регрессию и выбирает один вместо остальных, чтобы обрабатывать классификацию по нескольким классам. Затем ведущий объясняет важность выбора правильного решателя и выбирает линейный решатель. Ведущий обучает модель с помощью lr fit и проверяет ее точность, используя рецепт с кинзой, луком, горохом, картофелем, помидорами и растительными маслами, сообщая о точности 71%. Докладчик также представляет шпаргалку по алгоритму Scikit-learn, чтобы помочь в выборе подходящего алгоритма на основе количества доступных данных и меток.

  • 00:45:00 В этом разделе спикер обсуждает важность выбора правильного алгоритма классификации при построении модели машинного обучения. Они демонстрируют, как они экспериментировали с различными классификаторами и решателями, чтобы увидеть, какой из них дает наибольшую точность. Выбрав классификатор опорных векторов (SVC), они перестроили модель и проверили ее точность. Как только они были удовлетворены точностью модели, они преобразовали ее в файл Onyx и использовали среду выполнения Onyx для создания веб-приложения. Докладчик объясняет, как они создали простое веб-приложение с набором флажков для передачи данных об ингредиентах в импортированную модель и использовали асинхронную функцию для запуска вывода. Затем они продемонстрировали веб-приложение и проверили, что предлагает модель.

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

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

Привнесите мощь ONNX в Spark, как никогда раньше



Привнесите мощь ONNX в Spark, как никогда раньше

В этом видео Шиван Ван из Huawei объясняет, как использовать возможности ONNX в Spark для логического вывода. Он обсуждает проблемы с развертыванием моделей DL в Spark и то, как сообщество Spark инициировало предложение под названием Spip для упрощения процесса. Спикер также обсуждает процессор искусственного интеллекта Huawei, Ascent и экосистему искусственного интеллекта Ascent, которая включает в себя несколько моделей процессоров Ascent и аппаратное обеспечение Atlas. Он предлагает добавить Con в качестве нового исполняющего провайдера в следующей среде выполнения, чтобы напрямую использовать модели ONNX на оборудовании Ascent без необходимости перевода модели. Наконец, он упоминает, что код POC для внедрения возможностей ONNX в Spark почти завершен, и приглашает заинтересованных пользователей оставить сообщение для обсуждения и потенциального предоставления ресурсов для целей тестирования.

  • 00:00:00 В этом разделе Шиван Ван из Huawei обсуждает, как использовать возможности Onyx в Spark для логического вывода. Он объясняет, что четко определенный интерфейс вывода фрейма данных очень удобен для инженеров по данным, которые могут легко загружать данные и завершать разработку функций. Однако между платформами искусственного интеллекта и внутренними предварительными образцами существуют пробелы, что затрудняет развертывание моделей DL в Spark. Чтобы упростить этот процесс, сообщество Spark инициировало обсуждение предложения под названием Spip, которое предоставит простой API, чтобы заставить процесс Spark и ИИ влиять на малые соты. Наконец, выполнив вывод Onyx в исполнителе Spark, пользователи могут легко завершить влияние Onyx на большие данные с помощью платформы вывода Onyx.

  • 00:05:00 В этом разделе докладчик обсуждает процессор искусственного интеллекта Huawei под названием Ascent и экосистему искусственного интеллекта Ascent, которая включает в себя несколько моделей процессоров Ascent и оборудование Atlas. Программный уровень экосистемы Ascent называется Cam и предоставляет API-интерфейсы, помогающие разработчикам быстро создавать приложения ИИ в рамках сервисов на основе платформы Ascent. Чтобы запустить модель ONNX на другом оборудовании, пользователь должен сначала использовать инструмент преобразования модели, предоставляемый Con, для перевода модели из ONNX в Ascent. Однако докладчик считает, что лучшим решением будет добавить Con в качестве нового исполняющего провайдера в следующей среде выполнения, чтобы пользователи могли напрямую использовать модели ONNX на оборудовании Ascent без необходимости перевода модели. Они планируют завершить всю поддержку операторов ONNX к концу этого года и убедиться, что все модели в зоопарке модели ONNX хорошо работают на Ascent, а в следующем году — дальнейшее развитие.

  • 00:10:00 В этом разделе спикер упоминает, что код POC для переноса мощности ONNX в Spark почти завершен, и основные операции, такие как операция добавления, могут выполняться правильно. Они также приглашают заинтересованных пользователей оставить сообщение для обсуждения и, возможно, предоставить ресурсы для целей тестирования. Раздел завершается благодарностью зрителей за просмотр.
Bring the power of ONNX to Spark as it never happened before
Bring the power of ONNX to Spark as it never happened before
  • 2022.07.13
  • www.youtube.com
Both data processing platforms and deep learning frameworks are evolving in their own fields. Usually, Spark is used for offline data processing, and then va...
 

Builders Build #3 — от Colab к продакшену с ONNX



Builders Build #3 — от Colab к продакшену с ONNX

Видео иллюстрирует процесс развертывания проекта из Colab в рабочей среде с использованием ONNX. Докладчик охватывает различные аспекты, такие как предварительная обработка сигналов, изменение кода для развертывания, создание обработчика на AWS Lambda, прием аудиовхода на веб-сайте, загрузка функции в S3 и развертывание зависимостей для ONNX. Несмотря на некоторые трудности, спикер успешно развернул свою модель с помощью AWS и предложил использовать файловый объект base64 загрузки браузера или фрагменты чтения звукового файла для будущих шагов.

Кроме того, в видео демонстрируется использование модели SimCLR для контрастного обучения аудио, создание каталога песен путем их ввода в модель и обучение с помощью PyTorch для достижения нулевых потерь и отзыва при k = 1. Ведущий обсуждает проблемы использования PyTorch в продакшене и предлагает ONNX в качестве решения. Видео демонстрирует, как экспортировать и загружать модель PyTorch в формате ONNX и выполнять вывод. В нем также показано, как обрабатывать аудиофайлы с помощью библиотек Torch Audio и Numpy, а также устраняются проблемы при настройке модели PyTorch для развертывания. Видео дает представление о том, как перенести модели из разработки в ноутбуках Colab в производственные среды.

  • 00:00:00 В этом разделе спикер обсуждает простую структуру для сопоставительного обучения визуальному представлению с использованием модели SimCLR, которая включает в себя выборку двух случайных преобразований из набора различных преобразований, примененных к изображению, в результате чего получаются два разных изображения (x тильда i и x тильда j), которые затем передаются в кодировщик (resnet 50) для получения двух векторов (hi и hj), которые передаются функции проекции (MLP) для возврата двух проекций (zi и zj). Цель состоит в том, чтобы максимизировать косинусное сходство двух проекций, используя контрастные потери для изучения f и g, чтобы выходные данные двух проекций модели были очень близки друг к другу. Динамик применяет эту структуру к аудио, где входным сигналом является не изображение, а сигнал, преобразованный в спектрограмму, и использует фильтр нижних частот для изменения скорости воспроизведения в качестве одного из различных преобразований.

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

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

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

  • 00:20:00 В этом разделе спикер объясняет, как экспортировать модель из PyTorch в формат ONNX с помощью функций torch.one и x.export. Пустой ввод позволяет формату ONNX понять ожидаемую форму входного файла, а имена выходных и входных данных указываются с использованием словаря или объекта JSON. Докладчик приводит пример экспорта модели с именем simclr с текущей меткой времени, использует параметры экспорта для хранения весов параметров поезда в файле модели и показывает, как добавить лямбда-функцию для получения метки времени модели.

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

  • 00:30:00 В этом разделе спикер обсуждает изменение кода для использования звука факела вместо использования массива numpy. Говорящий обнаруживает, что может использовать звук фонарика, и устанавливает его, чтобы двигаться вперед. Затем они обсуждают изменение имен входных и выходных данных и называют выходные данные «проекцией», чтобы сделать косинусное сходство с их библиотекой. Библиотека настроена как объект JSON с массивом заголовков, массивом волновых форм и массивом проекций, которые говорящий намеревается использовать в своих вычислениях косинусного сходства.

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

  • 00:40:00 В этом разделе докладчик демонстрирует, как использовать ONNX для создания и сохранения каталога в формате JSON. Каталог создается из массивов, и ведущий проверяет формы перед тем, как выгрузить каталог в виде файла JSON с помощью функции `dump()`. Последующая ошибка устраняется заменой каталога на копию библиотеки. Затем ведущий преобразует массивы в списки с помощью метода tolist() и загружает файл JSON. Наконец, ведущий показывает, как загрузить сохраненный файл JSON с помощью функции load().

  • 00:45:00 В этом разделе спикер обсуждает свой подход к обработке аудиофайлов из путей к файлам с использованием библиотек Torch Audio и Numpy в Python. Они объясняют, что скачали Torch Audio и будут использовать его метод «предварительной обработки сигнала» для передискретизации и предварительной обработки аудиофайла. Затем они используют функцию среднего значения Numpy для вычисления среднего значения обработанного сигнала при сохранении размеров, после чего сигнал дополняется с помощью np.pad. В целом, спикер дает четкое и краткое объяснение их метода обработки.

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

  • 00:55:00 В этом разделе спикер оценивает некоторые сообщения об ошибках, которые появляются при попытке настроить модель PyTorch для развертывания, и выявляет проблемы с размером пакета Torch и несовместимыми зависимостями. Они отмечают, что файл, загруженный с Torch Audio, указывает, что ему требуется более 1 ГБ памяти, что может привести к проблемам при запуске моделей с большими входными файлами. Чтобы решить эту проблему, они предлагают вместо этого загружать файлы с помощью librosa и заменять Torch Audio при преобразовании таких характеристик, как частота и загрузка файлов. В целом, в этом разделе основное внимание уделяется освещению некоторых проблем, которые могут возникнуть при переходе моделей от разработки в блокнотах Colab к развертыванию в производственных средах.

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

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

  • 01:10:00 В этом разделе выступающий модифицирует код, чтобы разрешить развертывание SpeakFluent REST API, функции, которая будет обрабатывать запрос, а затем выполнять вывод. Они изменяют обработчик, чтобы получить запрос с аудиофайлом и именем файла, а затем сохраняют файл локально. Они выполняют вывод с использованием среды выполнения ONNX без Torch, а затем возвращают наилучшее совпадение.

  • 01:15:00 В этом разделе спикер обсуждает исходный обработчик Python для приложения, которое в настоящее время возвращает массив названий песен и соответствующих им наилучших названий. Докладчик также упоминает будущие дополнения к обработчику, которые будут включать возврат URI для корзины S3 и процент совпадения для наилучшего совпадения. Докладчик планирует сделать перерыв и вернуться к созданию настоящего обработчика, который может загружать и развертывать функцию AWS Lambda.

  • 01:25:00 В этом разделе видео ведущий объясняет, как создать обработчик на AWS Lambda с помощью скрипта и события. Обработчик Lambda предназначен для приема события, а не запроса, и он будет получать звуковую часть формы от события. Ведущий объясняет, что процесс включает в себя создание формы во внешнем интерфейсе и получение идентификатора из аудиовхода.

  • 01:30:00 В этом разделе видео разработчик обсуждает процесс приема аудиовхода на веб-сайте с помощью Javascript и загрузки файла на сервер для обработки. Разработчик объясняет, что они добавят кнопку записи на веб-сайт и будут использовать Javascript для создания файла и его автоматической загрузки на сервер. Затем они обсуждают вызов логического вывода для загруженного файла и возврат кода состояния 200 с телом с помощью JSON.dumps. Разработчик также рассматривает возможность использования кодирования звука base64 вместо файла для повышения эффективности. Они исследуют процесс выполнения выводов ONNX с помощью Python в AWS с использованием среды выполнения Lambda.

  • 01:35:00 В этой секции спикер обсуждает процесс загрузки функции в S3 и создания новой функции с нуля для проекта Diva. Спикер выражает раздражение по поводу этого процесса, но продолжает создавать новую функцию с использованием Python 3.9, обсуждая разницу в ARM, а также рассматривая возможность загрузки файлов непосредственно в функцию.

  • 01:40:00 В этом разделе спикер исследует панель инструментов Cloud Functions и демонстрирует, как загрузить zip-файл, изменить форматы событий на JSON и создать новое событие. Они также обсуждают необходимость дополнительных настроек памяти и переменных среды. Затем динамик пытается добавить запись со звуком base64, но сталкивается с проблемой доступных параметров.

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

  • 01:50:00 В этом разделе спикер обсуждает шаги по компиляции и развертыванию необходимых зависимостей для ONNX, проекта управления моделью с открытым исходным кодом. Они объясняют, что важно компилировать в среде, аналогичной Lambda, чтобы избежать проблем с совместимостью, и предлагают найти папку среды выполнения ONNX и скопировать ее в пакет развертывания. Хотя этот процесс можно считать «неприятным», спикер объясняет, что необходимо убедиться, что код будет работать правильно. Затем они перечисляют необходимые зависимости, включая librosa, scipy и numpy, и обсуждают размер пакета развертывания, который может достигать 200 мегабайт.

  • 01:55:00 В этом разделе спикер обсуждает шаги, которые необходимо предпринять для развертывания своей модели с помощью AWS. Им нужно создать облегченный обработчик Lambda, выяснить, как его развернуть с AWS limitout, и решить, хранить ли его в S3, поскольку он больше 50 мегабайт. Следующим шагом является обновление функции обработки для получения аудиообъекта base64 вместо файла, и выступающий рассматривает возможность использования файлового объекта base64 загрузки браузера или фрагментов чтения звукового файла для достижения этой цели. В заключение они заявляют, что, по их мнению, они могут просто сделать это.
 

Сочетание возможностей Optimum, OpenVINO™, ONNX Runtime и Azure



Сочетание возможностей Optimum, OpenVINO™, ONNX Runtime и Azure

Видео демонстрирует сочетание Optimum, OpenVINO, ONNX Runtime и Azure для упрощения рабочего процесса разработчика и повышения точности и скорости их моделей. Докладчики демонстрируют использование вспомогательных функций, ONNX Runtime и OpenVINO Execution Provider для оптимизации моделей глубокого обучения. Они также показывают, как оптимизировать модели обнимающих лиц с помощью квантования в Neural Network Compression Framework, и иллюстрируют процесс обучения и вывода с использованием Azure ML, Optimum, ONNX Runtime и OpenVINO. Демонстрация подчеркивает мощь этих инструментов в улучшении производительности моделей при минимальных потерях точности.

  • 00:00:00 В этом разделе видео Кэсси рассказывает представителям Intel о наборе инструментов OpenVINO и среде выполнения Onyx. Набор инструментов OpenVINO использует передовые методы оптимизации, специально разработанные для оборудования Intel, чтобы повысить производительность моделей глубокого обучения. Благодаря библиотеке времени выполнения Onyx и простой модификации строки кода мгновенного сеанса разработчики могут использовать исполняющий провайдер Intel OpenVINO для ускорения вывода моделей Onyx. Демонстрация, показанная в видео, демонстрирует ускоренную производительность YOLO V7, популярной модели глубокого обучения, на процессоре Intel.

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

  • 00:10:00 В этом разделе спикеры обсуждают, как оптимизировать модели обнимающих лиц с помощью квантования в Neural Network Compression Framework. Они рассматривают пример кода, показывающий, как включить квантование во время обучения с использованием Optimum Intel и конфигурации OV. Они также демонстрируют рабочий процесс ИИ, который объединяет подготовку данных, обучение модели, вывод, развертывание и автоматизацию, чтобы помочь разработчикам и клиентам более эффективно выполнять сложные действия. Докладчики демонстрируют, как использовать Azure ML для поддержки этих рабочих процессов для повышения производительности.

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

  • 00:20:00 В этом разделе спикер демонстрирует, как работает процесс квантования, показывая исходную модель fp32 и оптимизированную модель int 8, которая была визуализирована с помощью Netron. Они также обсуждают, как можно использовать Azure ML и OpenVINO для повышения точности и производительности в процессе обучения и вывода. Они упоминают об использовании ONNX Runtime для дальнейшей оптимизации и повышения производительности и призывают зрителей ознакомиться с кодом и записью в блоге для получения дополнительной информации. В целом демонстрация демонстрирует возможности объединения нескольких инструментов для упрощения рабочего процесса разработчика и повышения точности и скорости их моделей.
Combining the power of Optimum, OpenVINO™, ONNX Runtime, and Azure
Combining the power of Optimum, OpenVINO™, ONNX Runtime, and Azure
  • 2023.01.27
  • www.youtube.com
Devang Aggarwal, and Akhila Vidiyala from Intel join Cassie Breviu to talk about Intel OpenVINO + ONNX Runtime. We'll look at how you can optimize large BERT...
 

Более быстрый вывод моделей ONNX | Серия Edge Innovation для разработчиков | Программное обеспечение Intel



Более быстрый вывод моделей ONNX | Серия Edge Innovation для разработчиков | Программное обеспечение Intel

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

Faster Inference of ONNX Models | Edge Innovation Series for Developers | Intel Software
Faster Inference of ONNX Models | Edge Innovation Series for Developers | Intel Software
  • 2022.11.30
  • www.youtube.com
Join Ragesh in his interview with Devang Aggarwal, a product manager at Intel with Intel’s OpenVINO™ AI framework engineering team doing work around deep lea...
 

Более быстрый и легкий вывод модели с помощью ONNX Runtime от облака к клиенту



Более быстрый и легкий вывод модели с помощью ONNX Runtime от облака к клиенту

В этом видео Эмма из группы Microsoft Cloud and AI объясняет Open Neural Network Exchange (ONNX) и ONNX Runtime, который представляет собой высокопроизводительный механизм для логического вывода моделей ONNX на различном оборудовании. Эмма обсуждает значительный прирост производительности и уменьшение размера модели, которые может обеспечить квантование INT8 среды выполнения ONNX, а также важность точности. Она демонстрирует сквозной рабочий процесс квантования ONNX Runtime INT8 и представляет результаты базовой модели с использованием квантования PyTorch. Кроме того, Эмма обсуждает способность среды выполнения ONNX оптимизировать вывод модели из облака в клиент и то, как она может достичь размера менее 300 килобайт на платформах Android и iOS по умолчанию.

  • 00:00:00 В этом разделе Эмма, старший менеджер программы в группе AI Framework в Microsoft Cloud и AI group, объясняет роль ONNX и ONNX Runtime в программном стеке AI. ONNX, что означает Open Neural Network Exchange, представляет собой стандартный формат для представления как традиционных моделей машинного обучения, так и нейронных сетей глубокого обучения. ONNX Runtime — это высокопроизводительный механизм для логического вывода моделей ONNX на различном оборудовании. Преобразователи ONNX и среда выполнения ONNX являются основными элементами рабочего процесса для операционализации модели ONNX, которую можно включить из любой среды с помощью инструментов преобразователя ONNX. Существует множество популярных фреймворков, поддерживающих ONNX, включая PyTorch, TensorFlow и Caffe.

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

  • 00:10:00 В этом разделе спикер обсуждает значительный прирост производительности за счет квантования ONNX Runtime INT8, который может повысить производительность логического вывода до трех раз на большой машине и примерно на 60 процентов на меньшей машине, а также уменьшить размер модели. размер почти в четыре раза. Докладчик также подчеркивает важность точности и приводит пример того, как квантованные модели ONNX Runtime могут поддерживать такую же точность, как и модели FP32, в обычной задаче НЛП. Затем докладчик демонстрирует сквозной рабочий процесс квантования INT8 среды выполнения ONNX, который включает преобразование моделей в формат ONNX, использование инструмента квантования для получения модели INT8, а затем выполнение вывода в среде выполнения ONNX. Наконец, спикер представляет результаты базовой модели с использованием квантования PyTorch и оценивает производительность с помощью функции Tokenize и оценки от Hugging Face.

  • 00:15:00 В этом разделе докладчики обсуждают процесс квантования ONNX Runtime для оптимизации производительности и размера модели. Процесс включает этап оптимизации перед квантованием, который необходим только для моделей преобразователя. После оптимизации модель может быть преобразована в 8-битный формат с помощью API квантования среды выполнения ONNX, что приводит к значительному уменьшению размера модели. Результаты производительности и точности показывают, что квантование среды выполнения ONNX превосходит квантование PyTorch с точки зрения оценки F1. Еще одна интересная функция ONNX Runtime — возможность минимизировать размер среды выполнения для логического вывода на смартфонах и периферийных устройствах.

  • 00:20:00 В этом разделе обсуждается способность среды выполнения ONNX оптимизировать вывод модели из облака в клиент. Для мобильной среды выполнения ONNX включены два основных метода: введение нового оптимизированного формата, называемого форматом среды выполнения ONNX, и построение среды выполнения ONNX с операторами, необходимыми только для предопределенных моделей, для уменьшения размера среды выполнения. Это значительно уменьшает размер среды выполнения за счет избавления от неиспользуемых операторов, что делает ее более пригодной для вывода собственных устройств и удовлетворения требований к памяти. Основной мобильный пакет ONNX Runtime по умолчанию может достигать размера менее 300 килобайт на платформах Android и iOS. ONNX Runtime — это проект с открытым исходным кодом, руководства и примеры которого доступны в репозитории GitHub.
 

Быстрый исполнение модели трансформера T5 с преобразованием и квантованием ONNX



Быстрый исполнение модели трансформера T5 с преобразованием и квантованием ONNX

Преобразовав модель трансформера T5 в ONNX и внедрив квантование, можно уменьшить размер модели в 3 раза и увеличить скорость логического вывода до 5 раз. Это особенно полезно для развертывания модели генерации вопросов, такой как T5, на ЦП с задержкой менее секунды. Кроме того, приложение Gradio предлагает визуально привлекательный интерфейс для модели. Используется модель трансформера T5 от Huggingface, а библиотека FastT5 используется для ONNX и квантования. Внедрение этих оптимизаций может привести к значительной экономии затрат на производственное развертывание этих систем.

  • 00:00 Введение и повестка дня

  • 01:07 Установите библиотеку трансформеров из обнимающего лица

  • 02:18 Загрузка Модель обнимает лицо

  • 02:40 Пример создания вопроса

  • 04:00 Развертывание приложения Gradio в графическом интерфейсе

  • 08:11 Преобразование Pytorch T5 в ONNX и квантование с помощью FastT5

  • 17:22 Сохраняем модель в накопитель

  • 18:30 Запустите приложение Gradio с новой моделью

  • 21:55 Будущая серия и заключение
Fast T5 transformer model CPU inference with ONNX conversion and quantization
Fast T5 transformer model CPU inference with ONNX conversion and quantization
  • 2021.04.26
  • www.youtube.com
Question Generation using NLP course link: https://bit.ly/2PunWiWThe Colab notebook shown in the video is available in the course.With the conversion of T5 t...
 

Azure AI и среда выполнения ONNX



Azure AI и среда выполнения ONNX

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

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

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

  • 00:10:00 В этом разделе спикер объясняет, как можно использовать Azure AI и среду выполнения ONNX для простого развертывания моделей машинного обучения на разных платформах. Выбрав соответствующие параметры для своей платформы и языка, предприятия могут использовать программное обеспечение для загрузки последовательностей 0 и 1 своей нейронной сети и использовать платформу и язык по своему выбору для экспорта системы для упрощения развертывания. На сессии также рассказывается, как можно использовать Onex для оптимизации обучения на протяжении всего процесса разработки, что приводит к более быстрым и точным результатам. Докладчик также представляет систему автоматической оптимизации Intel serrandello для графических и центральных процессоров, которая еще больше упрощает разработку моделей.

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

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

  • 00:25:00 В этом разделе спикер объясняет, как Azure AI и среда выполнения ONNX упрощают интеграцию моделей машинного обучения в различные приложения. С Azure AI клиенту нужно только создать свою модель на предпочитаемом языке, а затем он может использовать Azure AI для загрузки модели и создания необходимых входных данных для вызова модели. Затем ONNX Runtime можно использовать для интеграции модели в различные приложения, такие как Xamarin, Android или Mac, независимо от базовой платформы. Это позволяет легко интегрировать модели машинного обучения на различные устройства и платформы. Спикер также отмечает, что ONNX Runtime оптимизируется под различные процессоры, в том числе под мобильные устройства.

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

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

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