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

 

ONNX и JVM


ONNX и JVM

Поддержка ONNX на виртуальной машине Java (JVM) имеет решающее значение, поскольку модели машинного обучения становятся все более заметными практически в каждом приложении. Поскольку Java является одной из крупнейших платформ, используемых для создания реальных программных приложений, очень важно обеспечить поддержку таких языков программирования, как Java или C#. Oracle стремится предоставить C API среды выполнения ONNX на Java, обеспечивая простое развертывание с минимальным влиянием на производительность за счет использования тонкого слоя Java API поверх C API. Докладчик также обсуждает библиотеку с открытым исходным кодом для написания моделей ONNX из Java, представляет пример графа логистической регрессии и предлагает внести свой вклад в экспорт ONNX в Trippo, обсуждая отсутствие стандартизации в формате метаданных ONNX.

  • 00:00:00 В этом разделе Адам Покок, исследователь исследовательской группы по машинному обучению в Oracle Labs, объясняет, почему важна поддержка ONNX на виртуальной машине Java (JVM). Поскольку модели машинного обучения становятся все более важными практически во всех приложениях, очень важно обеспечить поддержку языков, на которых написаны приложения, таких как Java или C#. По словам Покока, Java является одной из крупнейших платформ для создания живых программных приложений во всем мире, на которой работают миллионы разработчиков Java. В результате цель Oracle состоит в том, чтобы предоставить C API среды выполнения ONNX на Java, упрощая развертывание для пользователей с минимальным влиянием на производительность. Показан краткий пример кода, демонстрирующий тонкий слой Java API по сравнению с C API.

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

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

Демонстрация модели классификации цифр в ONNX Runtime



Демонстрация классификации цифр в ONNX Runtime

Open Neural Network Exchange (ONNX) предоставляет формат с открытым исходным кодом как для моделей глубокого, так и для машинного обучения. Мы можем обучать наши модели в любой предпочитаемой среде, а затем преобразовывать модель в формат ONNX. С помощью Microsoft ONNX Runtime мы можем запускать сеанс логического вывода с моделями onnx в любых средах, что обеспечивает немного более быструю реализацию. Вот простая демонстрация того же самого. Модель обучена распознавать цифры с использованием набора данных MNIST с PyTorch. Я запускаю сеанс вывода на процессоре в Linux.

https://github.com/NagarajSMurthy/Digit-recognizer

Digit classification on CPU with ONNX Runtime demo
Digit classification on CPU with ONNX Runtime demo
  • 2020.09.06
  • www.youtube.com
Open Neural Network Exchange (ONNX) provides an open-source format for both deep learning and machine learning models.We can train our models in whichever fr...
 

Миллиарды исполнений NLP моделей на JVM с использованием ONNX и DJL



Миллиарды исполнений NLP моделей на JVM с использованием ONNX и DJL

Технический директор компании, занимающейся медиа-аналитикой, обсуждает, как они используют JVM, DJL и Hugging Face для токенизации NLP в конвейере машинного обучения для анализа медиа-ландшафта для различных вариантов использования. По мере того, как функции их продуктов приближались к этому, их система машинного обучения и моделирования стала важными частями, чтобы все работало, поскольку они достигли масштаба, при котором ЦП больше не может хватать. Они перешли с 32-битной модели с плавающей запятой на 16-битную, что привело к увеличению эффективности на 3%, но столкнулись с ошибками преобразования и редкими утечками памяти во время процесса, которые они устранили путем замены нескольких реализаций. Они инвестировали в надежность, добавив CI на базе графического процессора и настроив расширенный логический стек Prometheus, который отслеживает задержку различных выводов и задержку токенизации. В их планы на будущее входит повышение эффективности графического процессора и добавление в систему большего количества моделей за счет создания конфигурации с несколькими графическими процессорами.

  • 00:00:00 В этом разделе видео Вьет, технический директор компании, занимающейся разведкой СМИ, обсуждает, как инфраструктура его компании основана на JVM и как они используют ее для анализа медиа-ландшафта для различных вариантов использования, таких как запуск продукта. отслеживание и отслеживание репутации. Он объясняет, что их система работает на JVM, и они используют DJL и Hugging Face для токенизации NLP в конвейере машинного обучения. Система машинного обучения и моделирования компании больше не просто приятная вещь, а необходимая часть, чтобы все работало и работало по мере того, как их функции продукта приближаются к этому. Они достигли масштаба, при котором ЦП больше не может хватать, поэтому они рассматривают Cubernates как систему для горизонтального масштабирования. Их система делает миллиарды выводов в день, они используют GPU-ускорение и используют 8 миллионов сайтов для создания целой системы веб-краулера.

  • 00:05:00 В этом разделе спикер рассказывает о своем опыте работы с экосистемой ONNX. Говорят о переходе с использования 32-битной модели с плавающей запятой на 16-битную, что привело к повышению эффективности на 3%. Однако в ходе этого процесса они столкнулись с ошибками преобразования, что привело к неожиданному выводу модели ONNX. Они также столкнулись с редкими утечками памяти, которые были устранены путем замены нескольких реализаций. Спикер объясняет, что они вложили средства в надежность, добавив CI на базе графического процессора и настроив расширенный логический стек Prometheus, который отслеживает задержку различных выводов и задержку токенизации. Наконец, они обсуждают свои планы на будущее, в том числе повышение эффективности графического процессора и добавление дополнительных моделей в систему путем создания конфигурации с несколькими графическими процессорами.
Billions of NLP Inferences on the JVM using ONNX and DJL
Billions of NLP Inferences on the JVM using ONNX and DJL
  • 2022.07.13
  • www.youtube.com
This session outlines the recently rolled out Hypefactors' MLOps infrastructure designed for billions NLP inferences a day. The workload serves media intelli...
 

Создайте свое высокопроизводительное решение для исполнения моделей с помощью DJL и ONNX Runtime



Создайте свое высокопроизводительное решение для исполнения моделей с помощью DJL и ONNX Runtime

Библиотека Deep Java (DJL) — это библиотека машинного обучения, построенная на Java, которая абстрагирует библиотеки глубокого обучения и предлагает несколько серверных частей, таких как Apache MXNet, TensorFlow и PyTorch. Библиотека имеет набор предварительно обученных моделей для различных задач и готова к эксплуатации, пройдя тщательное тестирование для обеспечения максимальной производительности при контроле использования памяти. Динамики также представляют концепцию гибридного движка, которая загружает оба движка вместе, обеспечивая более плавный переход между движками для логического вывода. Дальнейшие разработки включают в себя поддержку серверов ARM, запуск ONNX Runtime на устройствах Android и перенос решения гибридного ядра на периферийные устройства.

  • 00:00:00 В этом разделе спикер представляет библиотеку Deep Java (DJL) и ее интеграцию со средой выполнения ONNX, которая доказала свою хорошую производительность для случаев использования машинного обучения как внутри Amazon, так и за ее пределами. DJL — это библиотека машинного обучения, построенная на Java, которая абстрагирует библиотеки глубокого обучения и предлагает несколько бэкэндов, таких как Apache MXNet, TensorFlow и PyTorch. У DJL есть набор предварительно обученных моделей, в том числе популярные из Hugging Face и Torch Hub, для таких задач, как классификация изображений, обнаружение объектов, анализ настроений и распознавание действий. Преимущество DJL заключается в том, что он готов к обслуживанию и прошел тщательное тестирование для обеспечения максимальной производительности при контроле использования памяти. Докладчик также поделился некоторыми успешными примерами использования клиентами ONNX Runtime и DJL, демонстрируя значительные улучшения в скорости вывода модели и многопоточного вывода, даже при преобразовании из других сред глубокого обучения, таких как TensorFlow и PaddlePaddle, которые не поддерживали потокобезопасность. многопоточность.

  • 00:05:00 В этом разделе спикеры обсуждают проблемы, с которыми сталкиваются пользователи ONNX Runtime из-за отсутствия встроенных операторов, что затрудняет выполнение предобработки и постобработки в Java для безразмерного массива операция. Они предлагают новую концепцию, называемую гибридным движком, которая одновременно загружает оба движка, обеспечивая более плавный переход между движками для логического вывода. Библиотека Deep Java предлагает класс критериев, в котором пользователь может определить, как будет загружаться их модель, а транслятор предоставляет абстракцию для выполнения предварительной и последующей обработки. Они также представляют ND Manager, древовидную архитектуру, которая заменяет систему сборки мусора в Java, обеспечивая экономичную сборку памяти. Выступающие упоминают о дальнейших разработках, таких как поддержка сервера ARM, запуск ONNX Runtime на устройствах Android и перенос гибридного движка на периферийные устройства.
Build your high-performance model inference solution with DJL and ONNX Runtime
Build your high-performance model inference solution with DJL and ONNX Runtime
  • 2022.07.13
  • www.youtube.com
In many companies, Java is the primary language for the teams to build up services. To have ONNX model onboard and integration, developers faced several tech...
 

[FlexFlow Bootcamp 2020] Интерфейсная часть FlexFlow поддерживает: TensorFlow Keras, PyTorch, ONNX и др.



[FlexFlow Bootcamp 2020] Интерфейсная часть FlexFlow поддерживает: TensorFlow Keras, PyTorch, ONNX и др.

В этом разделе видео спикер обсуждает FlexFlow Python API, который поддерживает TensorFlow Keras, PyTorch и ONNX. Процесс создания и обучения модели включает в себя добавление в модель операторов, компиляцию модели, создание загрузчиков данных и инициализацию/обучение модели с использованием функции подгонки или настраиваемых процедур обучения. Спикеры также обсуждают поддержку моделей Keras и PyTorch во FlexFlow, а также возможность импорта уже существующих моделей через промежуточное представление ONNX. Однако важно обеспечить согласованность между библиотекой, используемой для сборки FlexFlow, и библиотекой, используемой для сборки пакета Python ONNX.

  • 00:00:00 В этом разделе видео докладчики знакомят с интерфейсной поддержкой FlexFlow, в частности с Python API. Среда выполнения FlexFlow построена на основе среды выполнения Legion, которая представляет собой программную систему, основанную на задачах, разработанную исследователями из Стэнфордского университета, NVIDIA и Лос-Аламоса. API Python вызывает API C++ через библиотеку cffi, а тонкий слой API Python обеспечивает такую же производительность, как при использовании API C++. Затем докладчики обсуждают шаги по созданию модели с помощью FlexFlow Python API, которые включают сначала создание файла конфигурации, а затем создание входного тензора в формате NCHW. Кроме того, они вводят поддержку Keras и ONNX.

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

  • 00:10:00 В этом разделе докладчики обсуждают импорт уже существующих моделей во FlexFlow, в частности, через промежуточное представление ONNX. Пакет ONNX позволяет экспортировать модели из других сред глубокого обучения, таких как PyTorch или TensorFlow, и импортировать их во FlexFlow, используя то же имя файла. Однако важно убедиться, что библиотека, используемая для сборки FlexFlow, такая же, как и библиотека, используемая для сборки пакета Python ONNX. Поддержка ONNX все еще находится в стадии разработки, и исправления приветствуются.
[FlexFlow Bootcamp 2020] FlexFlow Front-End Supports: TensorFlow Keras, PyTorch, ONNX, and more
[FlexFlow Bootcamp 2020] FlexFlow Front-End Supports: TensorFlow Keras, PyTorch, ONNX, and more
  • 2020.12.15
  • www.youtube.com
We are excited to announce the first FlexFlow bootcamp, 9:00-13:00 PDT December 11th 2020. The bootcamp is designed for people interested in using FlexFlow t...
 

Изучение машинного обучения с помощью .NET, PyTorch и среды выполнения ONNX



Изучение машинного обучения с помощью .NET, PyTorch и среды выполнения ONNX

В этом видео об обучении машинному обучению с помощью .NET, PyTorch и среды выполнения ONNX докладчики представляют среду выполнения ONNX и объясняют различные этапы обучения модели машинного обучения. Они также демонстрируют, как использовать формат ONNX с .NET для глубокого обучения, и обсуждают важность понимания гиперпараметров и метода оптимизации для точных прогнозов модели. Докладчики также покажут, как использовать среду выполнения ONNX для загрузки модели и создания прогнозов, а также как обрабатывать любые потенциальные ошибки с помощью блока try при запуске сеанса. Кроме того, они обсуждают использование вектора ненадежности, чтобы показать неопределенность ИИ в своих прогнозах, и упоминают некоторые отрасли, в которых используется ИИ, такие как системы обнаружения мошенничества и рекомендации.

  • 00:00:00 В этом разделе видео «Изучение машинного обучения с помощью .NET, PyTorch и среды выполнения ONNX» ведущие представляют среду выполнения ONNX и то, как ее можно использовать с .NET для глубокого обучения. Они объясняют, что после обучения модели следующим шагом будет добавление файла модели в проект и получение ответа. Они используют пример распознавания чисел и показывают репозиторий Py Torch GitHub с моделью сверточной нейронной сети. Они также подчеркивают полезность VS Code в качестве IDE для Python с его встроенными функциями и функциями.

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

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

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

  • 00:20:00 В этом разделе спикеры демонстрируют процесс использования PyTorch и .NET для распознавания чисел с помощью машинного обучения. Система идентифицирует цифры как матрицы и обучается идентифицировать конкретные цифры с помощью алгоритмов оптимизации. Система не имеет возможности сказать «я не знаю» и вместо этого всегда будет давать ответ с максимальной эффективностью, даже если он может быть неправильным при вводе незнакомых данных. Конечным результатом является вектор вероятностей, который затем преобразуется в удобочитаемый формат.

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

Как читать и писать модель ONNX в ML.NET



Как читать и писать модель ONNX в ML.NET

Видео начинается с представления ONNX — открытого формата, созданного Microsoft и Facebook, который позволяет обмениваться моделями машинного обучения между различными фреймворками. Докладчик объясняет, как ML.NET, кроссплатформенная библиотека машинного обучения с открытым исходным кодом, поддерживает модели ONNX. Затем в видео показано, как создать и экспортировать модель ML.NET в файл ONNX с помощью пакета среды выполнения ONNX. После создания модели ONNX в видеоролике объясняется, как использовать ее для прогнозирования новых данных в ML.NET. В целом, видео представляет собой исчерпывающее руководство по использованию моделей ONNX с ML.NET для приложений машинного обучения.

 

Интеграция моделей машинного обучения scikit-learn с ML.NET с использованием ONNX — группа пользователей ML.NET 18.02.2022



Интеграция моделей машинного обучения scikit-learn с ML.NET с использованием ONNX — группа пользователей ML.NET 18.02.2022

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

На этом практическом занятии группы пользователей ML.NET ведущий демонстрирует использование формата ONNX для создания модели ONNX для оценки потенциальных клиентов, которую можно включить в экосистему Dot Net. Эту реализацию можно использовать параллельно с ML.NET, что позволяет выполнять модели ONNX с использованием среды выполнения ONNX при выполнении машинного обучения с использованием ML.NET. Докладчик делится репозиторием GitHub, который содержит используемые методы, библиотеки и пошаговые инструкции по построению модели ONNX. Использование формата ONNX позволяет использовать кроссплатформенный механизм выполнения и помогает преодолеть разрыв между учеными, занимающимися данными, и разработчиками приложений. Ценность сессии заключается в практической реализации системы проверки концепции, которую можно использовать с другими алгоритмами.

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

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

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

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

  • 00:20:00 В этом разделе видео спикер представляет обзор инструментов и пакетов, которые они используют для интеграции моделей машинного обучения scikit-learn с ML.NET с использованием ONNX. Они упоминают, что используют дистрибутив Anaconda для вычислений на Python, блокнот Jupyter для построения моделей с библиотекой scikit-learn на основе Python и .NET версии 6 с ONNX версии 1.9 и средой выполнения ONNX версии 181. Докладчик кратко описывает набор данных. которые они используют, и методы, которые они внедрили для обработки данных, исследовательского анализа данных и показателей оценки производительности. Они также упоминают, что построили логистическую модель с точностью более 82%, используя логистическую регрессию для целей классификации с использованием алгоритма Lipliner.

  • 00:25:00 В этом разделе ведущий обсуждает процесс построения модели логистической регрессии для прогнозирования оценки потенциальных клиентов, а затем ее сериализации с использованием библиотеки pickle в Python для сохранения в виде файла pkl. После этого ведущий загружает файл pkl для проверки модели, и результат показывает точность 0,76 на тестовом наборе. Затем докладчик демонстрирует, как преобразовать модель из scikit-learn в формат ONNX, необходимый для развертывания модели в экосистеме Microsoft.NET. Этот раздел может служить практическим руководством по интеграции моделей машинного обучения scikit-learn с ML.NET с использованием ONNX.

  • 00:30:00 В этом разделе спикер обсуждает процесс интеграции моделей машинного обучения scikit-learn с ML.NET с использованием ONNX. Они предлагают проверить список алгоритмов, поддерживаемых конвертерами ML.NET ONNX, прежде чем внедрять какое-либо машинное обучение, и продемонстрировать, как импортировать конвертеры, поддерживаемые SK2ONNX. Затем они определяют путь для хранения модели и количество признаков, подчеркивая важность схемы при именовании входных данных и преобразовывая их в тип тензора потока. Наконец, они показывают, как построить модель ONNX с помощью функции convert_sklearn, используя ранее определенные модель и начальные типы.

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

  • 00:40:00 В этом разделе выступающий начинает с создания пустого решения в Visual Studio 2022 для интеграции модели машинного обучения scikit-learn, в частности модели логистической регрессии, с экосистемой .NET с использованием ONNX. Затем выступающий создает функцию Azure в решении и получает шаблонный код для ее реализации с помощью .NET 6 в качестве триггера HTTP. Они используют Insomnia для создания нового запроса с функциями ввода в формате JSON, который будет проанализирован и использован для интеграции системы. Выступающий устанавливает пакет среды выполнения Microsoft ML ONNX из NuGet и создает класс для объяснения набора входных функций. Затем спикер использует фрагменты кода, чтобы ускорить процесс интеграции.

  • 00:45:00 В этом разделе докладчик обсуждает, как получить и десериализовать тело запроса из API с помощью преобразователя JSON, чтобы отправить его в качестве входных данных для модели машинного обучения. Они создают объект класса параметров LSLead Scoring Model и присваивают ему значения из тела десериализованного запроса. Они также объясняют важность реализации входного тензора и преобразования входных данных в объект TensorFlow тензора, чтобы его можно было включить в сеанс логического вывода. Наконец, они создают сеанс логического вывода с использованием среды выполнения ONNX и извлекают выходные данные сеанса для запуска модели машинного обучения.

  • 00:50:00 В этом разделе ведущий пытается показать, как интегрировать модели машинного обучения scikit-learn с ML.NET с помощью ONNX, но сталкивается с техническими трудностями в Visual Studio. После попытки решить проблему докладчик прибегает к демонстрации фрагментов кода и обсуждает необходимые пакеты и входные тензоры, необходимые для интеграции. Несмотря на неудачи, ведущий может предоставить ссылку на функцию и набор входных функций, используемых в демонстрации, чтобы зрители могли получить доступ и попробовать их самостоятельно.

  • 00:55:00 В этом разделе ведущий демонстрирует, как использовать ONNX для интеграции моделей машинного обучения scikit-learn с ML.NET. Сначала они показывают, как распаковать вероятности, выдаваемые реализацией прогнозирования-вероятности, и преобразовать их в словарь длинных и плавающих значений, представляющих вероятности быть или не быть преобразованными. Затем они используют эти вероятности для получения рейтинга лидов для конвертации и неконверсии, который они отображают в сообщении Insomnia. Наконец, они используют блокнот Jupyter, чтобы показать, как запись из тестового набора отправляется в модель, и получают соответствующее выходное значение, равное единице, что указывает на то, что человек, вероятно, будет преобразован.

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

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

Модели машинного обучения с ONNX и .NET | Конференция .NET 2022 г.



Модели машинного обучения с ONNX и .NET | Конференция .NET 2022 г.

Видео «Модели машинного обучения с ONNX и .NET» с конференции .NET Conf 2022 знакомит зрителей с концепциями искусственного интеллекта и машинного обучения, включая разницу между глубоким обучением и традиционным программированием. Докладчики представляют обзор Машинного обучения Azure, PyTorch и ONNX и демонстрируют, как создать конвейер с помощью Машинного обучения Azure для обучения моделей машинного обучения с помощью ONNX и .NET. Они также объясняют, как интегрировать модель машинного обучения в приложение .NET Maui, и обсуждают методы уменьшения размера моделей ONNX для мобильных устройств. Раздел заканчивается представлением следующего спикера, Рори, который будет обсуждать доступность.

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

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

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

  • 00:15:00 В этом разделе докладчик обсуждает, как создать конвейер с помощью конструктора машинного обучения Azure для обучения моделей машинного обучения с помощью ONNX и .NET. Первым шагом является просмотр данных, хранящихся в хранилище BLOB-объектов. Затем они создают новый конвейер с помощью конструктора, который позволяет им перетаскивать компоненты на холст. Компоненты, которые они выбирают, включают модель PyTorch, преобразователь ONNX и средство обучения модели. После определения компонентов выступающий запускает конвейер на своем вычислении машинного обучения Azure под названием BumbleBee. Они демонстрируют особенности определения компонента и код обучающего файла.

  • 00:20:00 В этом разделе ведущий демонстрирует, как использовать ONNX и .NET для создания модели машинного обучения и ее интеграции в приложение .NET Maui. Модель была обучена с помощью Машинного обучения Azure с Python и PyTorch и преобразована в формат ONNX. Затем модель была зарегистрирована в Model Management и использована в приложении .NET. Докладчик объясняет важность предоставления ученым данных возможности работать с выбранным ими языком, а разработчикам — создавать приложения на своем. Все примеры кодов, использованные в презентации, можно найти по предоставленной ссылке, а также другие ресурсы для получения дополнительной информации о машинном обучении и роли разработчика ИИ.

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

В .NET Live — операционализация моделей машинного обучения с помощью ONNX, C# .... и Pokemon!



В .NET Live — операционализация моделей машинного обучения с помощью ONNX, C# .... и Pokemon!

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

В видеоролике On.NET Live обсуждается внедрение моделей машинного обучения с помощью ONNX, C# и (для развлечения) Pokemon. Первый докладчик рассказывает об ONNX, формате машинного обучения, который позволяет сохранять и загружать модели в разных средах, а также о том, как операционализировать модели с помощью .NET. Второй докладчик обсуждает использование ML.NET для создания классификатора изображений покемонов и показывает, как его можно использовать для развертывания. В целом, видео дает отличный обзор операционализации моделей машинного обучения с помощью ONNX и C#.

  • 00:00:00 В этом разделе видео ведущие представляют специального гостя, Кэсси, которая будет обсуждать машинное обучение с Onnx и, возможно, даже с покемонами. Разговор также включает объявления о предстоящих конференциях, таких как .NET Conf и Start Dev Change, которые были организованы Кэсси и командой, чтобы помочь людям освоить новые навыки разработки и расширить возможности смены карьеры. Конференция охватила различные технические области с целью помочь людям найти свое увлечение и изменить карьеру.

  • 00:05:00 В этом разделе Кэсси Козырков говорит о важности наставничества и необходимости для людей участвовать в таких инициативах, как Start Dev Change, особенно в это время, когда люди борются из-за пандемии. Затем она обсуждает ONNX, открытый формат для сохранения моделей машинного обучения и их развертывания в различных средах. Кэсси объясняет, что ONNX упрощает создание моста между тем, что делают специалисты по данным, и тем, что делают инженеры-программисты, особенно в тех случаях, когда существует разрыв между отделами. С помощью ONNX модели можно передать стороне DevOps, которая сможет развернуть их так, как лучше всего подходит для проекта, и их можно использовать в различных приложениях, включая C#, C++ и Python.

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

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

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

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

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

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

  • 00:40:00 В этом разделе докладчики обсуждают важность тестирования и понимания того, как работает модель машинного обучения при прогнозировании. Они выдвигают идею создания модульных тестов и включения автоматизированных тестов в обычный процесс разработки. Кроме того, они упоминают инструменты, доступные в Машинном обучении Azure для интерпретируемости модели, которые могут помочь в выявлении потенциальных проблем с прогнозами модели. Наконец, они касаются развертывания модели в триггере HTTP через расширение Visual Studio Code.

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

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

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