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

 

Нейронная сеть в вашем телефоне: от обучения до развертывания через ONNX



Нейронная сеть в вашем телефоне: от обучения до развертывания через ONNX

В этом видео «Нейронная сеть в вашем телефоне: от обучения к развертыванию через ONNX» ведущий демонстрирует, как обучить нейронную сеть с помощью API сообщества iNaturalist для идентификации различных видов грибов в зависимости от того, токсичны они или съедобны. Затем они объясняют, как развернуть модель на iPhone с помощью пакета Core ML от Apple. Спикер также указывает на важность форматирования обученной модели в формате файла ONNX перед ее импортом в Core ML. Докладчик подчеркивает, что EfficientNet станет будущей моделью для классификации изображений, при выборе модели необходимо соблюдать осторожность, и предлагает создать классификаторы для растений, животных или птиц.

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

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

  • 00:10:00 В этом разделе спикер объясняет, как можно развернуть нейронные сети на устройстве с операционной системой iOS с помощью пакета Core ML от Apple. Чтобы преобразовать модель в формат Core ML, докладчик показывает, как использовать инструменты CoreML для импорта различных типов сетевых моделей, включая ONNX, и как указать аргументы предварительной обработки и метки классов для набора данных грибов, используемого в качестве примера. Докладчик также отмечает, что модели Core ML работают так же, как и модели естественного языка, с кодировщиком и декодером, и выделяет некоторые различия между двумя форматами с точки зрения значений пикселей и смещения цвета.

  • 00:15:00 В этом разделе спикер объясняет шаги, необходимые для развертывания модели Core ML на iPhone. Они демонстрируют, как заменить существующую модель MobileNet в проекте Xcode своей собственной моделью видов грибов. Спикер демонстрирует правильность работы модели, тестируя ее на различных грибах, найденных в лесу. Они призывают аудиторию проверить их блокнот Jupyter для получения дополнительной информации.

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

  • 00:25:00 В этом разделе спикер обсуждает различные варианты импорта наблюдений за видами и другие полезные функции, такие как импорт поиска gpif, импорт gpif и глобальных данных, которые можно использовать для создания классификаторов животных или растений. Спикер также благодарит аудиторию за внимание и предлагает им задать больше вопросов в группе машинного обучения в сообществе.
Neural Net in your Phone: From Training to Deployment through ONNX
Neural Net in your Phone: From Training to Deployment through ONNX
  • 2020.12.10
  • www.youtube.com
Current smartphones are powerful enough to run neural networks locally without the need of a cloud server connection. But deploying and running a custom neur...
 

Используйте возможности машинного обучения с ONNX | Рон Лайл Дагдаг | Conf42 Машинное обучение 2021


Используйте возможности машинного обучения с ONNX | Рон Лайл Дагдаг | Conf42 Машинное обучение 2021

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

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

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

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

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

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

  • 00:25:00 В этом разделе докладчик обсуждает среду выполнения ONNX и то, как ее можно использовать с платформой Windows AI, например с WinML API, для практического и простого вывода API на основе моделей. Кроме того, имеется DirectML API для создания игр, библиотека JavaScript под названием ONNX.js для запуска моделей в браузере и несколько надежных моделей драйверов в зависимости от возможностей системы. Затем докладчик переходит к демонстрации того, как преобразовать обученную модель в ml.net в ONNX с помощью пакетов nuget и приложения C#.

  • 00:30:00 В этом разделе Рон Лайл Дагдаг демонстрирует простой пример того, как создать модель машинного обучения, которая прогнозирует заработную плату на основе многолетнего опыта рецензента, использующего ml.net. После того, как модель обучена, ее можно преобразовать в модель ONNX с помощью функции `context.model.convert_to_onnx`. Затем модель ONNX можно проверить и использовать для вывода в записной книжке Python с помощью библиотеки времени выполнения ONNX. Ввод и вывод модели отображаются с помощью `netron.app`.

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

  • 00:40:00 В этом разделе Рон Дагдаг, ведущий инженер-программист Spacy и Microsoft MVP, завершает видео, благодарит аудиторию и делится способами связаться с ним, если они хотят узнать о среде выполнения ONNX, ноутбуках Jupyter, пекарнях. , пекари и хлеб.
Leverage Power of Machine Learning with ONNX | Ron Lyle Dagdag | Conf42 Machine Learning 2021
Leverage Power of Machine Learning with ONNX | Ron Lyle Dagdag | Conf42 Machine Learning 2021
  • 2021.08.31
  • www.youtube.com
Ron Lyle DagdagLead Software Engineer @ SpaceeHave you ever wanted to make your apps “smarter”? This session will cover what every ML/AI developer should kno...
 

ONNX на микроконтроллерах



ONNX на микроконтроллерах

Рохит Шарма рассказывает о проблемах и возможностях запуска моделей ONNX на микроконтроллерах. Он подчеркивает, что, хотя этим устройствам не хватает ресурсов высокопроизводительных серверов, растет число приложений машинного обучения для крошечных устройств из-за улучшения аппаратных ресурсов и усилий сообщества ИИ по уменьшению размера модели. Шарма обсуждает два инструмента для простой реализации машинного обучения на микроконтроллерах: DeepSea, опережающий компилятор с открытым исходным кодом, который поддерживает Python и позволяет разработчикам создавать собственные алгоритмы машинного обучения, и Canvas, платформу без кода/мало кода, обеспечивающую более 70 крошечных приложений машинного обучения, которые можно настроить в соответствии с набором данных пользователя. Он предлагает два варианта использования этих инструментов, в том числе носимую перчатку, которая переводит жесты жестов в слова, и обнаружение слабых слов для устройств с голосовой поддержкой, таких как Amazon Echo.

  • 00:00:00 В этом разделе Рохит Шарма обсуждает проблемы и возможности запуска моделей ONNX на микроконтроллерах, которые представляют собой крошечные устройства, работающие от батарей в течение нескольких месяцев. Хотя эти устройства не имеют вычислительных ресурсов высокопроизводительных серверов с ускорителями или одноплатных компьютеров, растущее число приложений машинного обучения, работающих на крошечных устройствах, связано с тем, что поставщики микроконтроллеров продолжают улучшать аппаратные ресурсы, в то время как сообщество исследователей ИИ работает над уменьшением размера модели. Шарма объясняет, что все крошечные приложения МО — это периферийные приложения ИИ, но не все периферийные приложения ИИ — крошечные приложения МО, поскольку разница коренится в энергопотреблении. Затем он продолжает обсуждение процесса компиляции моделей ONNX с помощью DeepSea, независимого от поставщика компилятора библиотеки глубокого обучения с открытым исходным кодом и платформы логического вывода, разработанной для устройств малого форм-фактора, включая микроконтроллеры, IoT и периферийные устройства.

  • 00:05:00 В этом разделе спикер описывает два инструмента для простой реализации машинного обучения на микроконтроллерах. Первым инструментом является DeepSea, компилятор с опережением времени (AOT) с открытым исходным кодом, который поддерживает Python и позволяет разработчикам создавать собственные алгоритмы машинного обучения. Второй инструмент — Canvas, платформа без кода и с низким кодом, предоставляющая галерею из более чем 70 крошечных приложений машинного обучения. Canvas позволяет настраивать эти приложения для создания крошечной модели машинного обучения, подходящей для пользовательского набора данных. Докладчик также представил два варианта использования этих инструментов — носимую перчатку, которая преобразует жесты жестов в произносимые слова, и обнаружение слабых слов для включения устройств с голосовой поддержкой, таких как Amazon Echo.
 

Вывод в JavaScript с ONNX Runtime Web!



Вывод в JavaScript с ONNX Runtime Web!

В видео рассказывается об использовании ONNX Runtime Web в браузере с помощью шаблона Next.js, который предлагает пользовательский интерфейс для выполнения логических выводов на предварительно выбранных изображениях. Демонстрируется процесс преобразования данных изображения в тензор с использованием значений RGB и создание размеров. Исследуется вспомогательная функция модели, которая передает предварительно обработанные данные в сеанс логического вывода ONNX, используя путь к модели, поставщику выполнения и параметрам сеанса. Каналы для модели создаются с использованием входного имени и тензорного объекта и передаются в функцию session.run для получения первых пяти результатов. Первый результат заполняет изображение, в то время как предоставляется конфигурация веб-пакета и инструкции для логического вывода на стороне сервера с использованием узла среды выполнения ONNX.

  • 00:00:00 В этом разделе мы узнаем об использовании ONNX Runtime Web с JavaScript в браузере с использованием шаблона, который обеспечивает всю необходимую предварительную обработку, необходимую для логического вывода. Шаблон построен на Next.js, платформе React для создания готовых приложений, и предлагает простой пользовательский интерфейс для выполнения логических выводов на предварительно выбранных образцах изображений. Автор знакомит нас с кодом, который настраивает элемент холста HTML для отображения изображений и сообщает различную статистику о выводе. Затем изображение преобразуется в тензор с помощью вспомогательной утилиты изображения, а затем передается через функцию прогнозирования в вспомогательной программе модели, которая вызывает веб-API среды выполнения ONNX для выполнения логического вывода.

  • 00:05:00 В этом разделе видео описывается процесс преобразования данных изображения в тензор для вывода с использованием значений RGB, изменения формы и создания тензора с данными и размерами с использованием объекта тензора в ONNX Runtime Web. В видео также рассматривается вспомогательная функция модели, которая передает предварительно обработанные данные в сеанс логического вывода ONNX, предоставляя ему путь к модели, поставщику выполнения (WebGL или WebAssembly) и параметрам сеанса. Имя ввода и объект тензора ORT необходимы для создания каналов для модели, которые передаются в функцию session.run для получения результата. Возвращаются первые пять результатов, и первый результат используется для заполнения изображения. Кроме того, предоставляется конфигурация веб-пакета, а также инструкции по использованию узла времени выполнения ONNX для выполнения логических выводов на стороне сервера с помощью платформы API.
 

Используйте возможности машинного обучения с ONNX — Рон Дагдаг



Используйте возможности машинного обучения с ONNX — Рон Дагдаг

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

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

  • 00:05:00 В этом разделе Рон Дагдаг обсуждает различные способы получения модели ONNX. Специалисты по данным, как и повара, несут ответственность за создание и уточнение рецепта для улучшения модели компании, в то время как модели ONNX похожи на PDF-файлы для нейронного представления графа операций. Существует четыре способа получения моделей ONNX, в том числе через GitHub, специализированную службу машинного зрения Azure, преобразование существующих моделей и их обучение с помощью автоматизированного машинного обучения Azure. Процесс преобразования моделей в ONNX прост, поскольку существуют конвертеры для преобразования моделей из TensorFlow, Keras или PyTorch в ONNX, с важными шагами, включая загрузку существующей модели, выполнение преобразования и ее сохранение. В целом, ONNX может помочь компаниям более эффективно интегрировать машинное обучение в свои приложения.

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

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

  • 00:20:00 В этом разделе спикер обсуждает фреймворк ONNX и его возможные применения. ONNX позволяет преобразовывать модели в различные форматы, включая TensorFlow, Core ML и передавать обучение, а также имеет высокопроизводительную среду выполнения для выполнения моделей, которая называется ONNX Runtime. ONNX Runtime является кроссплатформенным и поддерживает традиционные операции машинного обучения. Он также имеет версию для графического процессора и C# API. В целом, ONNX — это мощный инструмент для разработчиков, и пользователи могут начать работу с ним через экосистему ONNX, используя экземпляр контейнера Docker. В своей демонстрации спикер показывает, как загружать и использовать различные пакеты ONNX на C# для управления данными с помощью фреймов данных.

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

  • 00:30:00 В этом разделе спикер обсуждает преимущества использования среды выполнения ONNX, различные группы Microsoft, которые использовали ее в прошлом, и то, как она улучшает их процессы. Он также рассказывает об использовании Windows ML при развертывании на устройствах Windows, которое доступно на устройствах семейства Windows в приложениях Win32 и WinRT, и о подключении среды выполнения ONNX с помощью API. Затем докладчик исследует Direct ML, который идеально подходит для создания высококонтролируемого API машинного обучения в реальном времени и лучше всего подходит для игр. Он также выделяет ONNX JS для запуска моделей ONNX в браузере или в nodejs и встроенную библиотеку обучения, которая позволяет вам начать использовать устройства, на которых нет полной операционной системы или Linux Mac.

  • 00:35:00 В этом разделе Рон Дагдаг обсуждает использование ONNX в качестве открытого стандарта для машинного обучения и то, как его можно эффективно преобразовать в различные платформы. Модели ONNX можно создавать на нескольких языках, таких как dotnet, JavaScript и Python. Производительность может быть достигнута за счет развертывания в облаке или на периферии. Аудитория задавала такие вопросы, как, можете ли вы импортировать свою модель ONNX в C#, каков объем памяти среды выполнения ONNX и как вы можете преобразовать большую модель образа в меньшую модель ONNX, подходящую для небольших устройств. Дагдаг предложил использовать обрезку или квантование, чтобы сжать модели и уменьшить их размер. Он также подчеркнул, что слайды и демонстрационные коды доступны в репозитории GitHub вместе с подшивкой для опробования кода.

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

Рон Дагдаг — Создание нейронных сетей в браузере с помощью ONNX



Рон Дагдаг — Создание нейронных сетей в браузере с помощью ONNX

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

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

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

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

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

  • 00:20:00 В этом разделе спикер обсуждает варианты развертывания нейронных сетей, включая развертывание на виртуальной машине или устройстве, таком как iOS или Android. Также подчеркивается разница между облачным и периферийным развертыванием, используя аналогию с тем, как McDonald's печет свой хлеб на фабрике, а Subway печет его в ресторане. Среда выполнения ONNX представлена как инструмент с открытым исходным кодом, который можно использовать для вывода моделей ONNX в JavaScript, Node и React Native. Затем спикер демонстрирует демонстрацию того, как визуализировать модель ONNX в приложении узла, и кратко рассказывает о том, как они обучали и преобразовывали модель в ONNX с помощью интерактивного .NET и блокнота Python.

  • 00:25:00 В этом разделе Рон Дагдаг объясняет, как он создает модель ONNX из своих пакетов NuGet для обучения модели с помощью Microsoft ML. Он использует данные, предоставленные Microsoft, которые прогнозируют результат на основе одного входного фактора — в данном случае пользовательского опыта и заработной платы на основе многолетнего опыта. После того, как он обучил модель, она генерирует файл ONNX, который он затем интегрирует в приложение JavaScript, создавая сеанс и передавая каналы. Как только потоки настроены в сеансе, он запускает его и использует счет. output для отображения результатов прогнозирования. Dagdag использует узел времени выполнения ONNX для среды выполнения для выполнения приложения JavaScript.

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

  • 00:35:00 В этом разделе Дагдаг демонстрирует процесс создания и интеграции модели ONNX в браузере. В качестве примера он использует модель ONNX, способную отличать эмоции от изображения в градациях серого 64x64. Чтобы использовать модель на изображении, Dagdag сначала изменяет размер и предварительно обрабатывает изображение, а затем преобразует его в тензор. Он загружает модель ONNX в три этапа, создает сеанс, передает входные данные в модель и обрабатывает выходные данные для отображения эмоций, обнаруженных на изображении. Дагдаг отмечает, что процесс интеграции ONNX с браузерным приложением включает в себя создание сеанса, передачу его в session.run и обработку вывода.

  • 00:40:00 В этом разделе Рон Дагдаг обсуждает различные ресурсы и демонстрации, доступные для экспериментов с ONNX, такие как демонстрация MNIST, которая позволяет пользователям нарисовать число, чтобы увидеть, может ли модель точно классифицировать его. Он также упоминает, что ONNX можно использовать с React Native на платформах Android и iOS, но его необходимо преобразовать в формат, оптимизированный для мобильных устройств. ONNX совместим с различными платформами, такими как Windows 10, Mac, Ubuntu, iOS, Android, и может использоваться с webassembly или webgl. Рон подчеркивает важность использования среды выполнения ONNX для эффективного запуска модели на целевой платформе и разделения того, что используется для обучения и логического вывода. Он также упоминает, что ONNX можно развернуть с помощью Windows ML, Azure ML и использовать с JavaScript и Python. В заключение Рон сказал, что ONNX может работать на различных устройствах, таких как очки дополненной реальности Snapchat, и призывает зрителей экспериментировать с ONNX, используя доступные ресурсы и демонстрации.
 

День искусственного интеллекта и данных Linux Foundation — собрание сообщества ONNX — 21 октября 2021 г.

Эмма Нинг (Microsoft) ONNX Runtime Web для запуска ONNX моделей в браузере


001 ONNX 20211021 Ning ONNX Runtime Web для запуска ONNX моделей в браузере

Эмма, менеджер по продуктам команды Microsoft AI Framework, представляет ONNX Runtime Web, новую функцию ONNX Runtime, которая позволяет разработчикам JavaScript запускать и развертывать модели машинного обучения в браузере с двумя серверными частями, включая веб-сборку для ЦП и WebGL для ГП. Серверная часть веб-сборки может работать с любой моделью ONNX, использовать многопоточность и SIMD, а также поддерживать большинство функций, которые поддерживает среда выполнения ONNX, в то время как серверная часть WebGL представляет собой реализацию на основе чистого JavaScript с API-интерфейсами WebGL. Докладчик также обсуждает совместимость операторов ONNX с обоими бэкендами, предоставляет фрагменты кода для создания сеанса логического вывода и запуска модели, а также демонстрирует демонстрационный веб-сайт с несколькими сценариями моделей изображений в браузере на основе модели MobileNet. Тем не менее, спикер также признает, что еще есть возможности для улучшения производительности сети выполнения ONNX и потребления памяти, а также расширения поддерживаемых операторов ONNX.

  • 00:00:00 В этом разделе Эмма, менеджер по продукту из команды Microsoft AI Framework, представляет ONNX Runtime Web, новое решение для логического вывода в браузере. Идея машинного обучения в браузере набирает обороты, поскольку она обеспечивает кросс-платформенную переносимость с реализацией системы через браузер, защищает конфиденциальность пользователей и повышает производительность без отправки данных на сервер. ONNX Runtime Web — это новая функция ONNX Runtime, которая позволяет разработчикам JavaScript запускать и развертывать модели машинного обучения в браузере с улучшенной производительностью вывода, охватом моделей и опытом разработки. Архитектура ONNX Runtime Web включает два бэкенда, в том числе веб-сборку для CPU и WebGL для GPU, которые позволяют ONNX Runtime Web ускорять вывод как на CPU, так и на GPU. Серверная часть веб-сборки может работать с любой моделью ONNX, использовать многопоточность и SIMD, а также поддерживать большинство функций, которые поддерживает среда выполнения ONNX. Серверная часть WebGL, с другой стороны, представляет собой чистую реализацию на основе JavaScript с API-интерфейсами WebGL, которые обеспечивают прямой доступ к графическому процессору компьютера, позволяя использовать множество методов оптимизации для дальнейшего повышения производительности до максимума.

  • 00:05:00 В этом разделе спикер обсуждает совместимость операторов ONNX как с бэкендами WebAssembly, так и с WebGL, которые поддерживают самые популярные платформы в веб-мире. Они предоставляют ссылку на таблицу, в которой показаны совместимые платформы и поддерживаемые операторы ONNX. Они также предоставляют фрагменты кода, которые демонстрируют, как создать сеанс логического вывода и запустить модель с помощью веб-среды выполнения ONNX, что обеспечивает согласованный опыт разработки для влияния на стороне сервера и на стороне клиента. Затем спикер делится демонстрационным веб-сайтом с несколькими интересными сценариями видения в браузере, основанными на моделях изображений, таких как запуск модели MobileNet в браузере с возможностью выбора различных серверных частей. Докладчик признает, что еще есть возможности для улучшения с точки зрения добавления большего количества операторов ONNX и оптимизации веб-производительности среды выполнения ONNX и потребления памяти, а также работы над дополнительными демонстрациями для демонстрации его возможностей.
001 ONNX 20211021 Ning ONNX Runtime Web for In Browser Inference
001 ONNX 20211021 Ning ONNX Runtime Web for In Browser Inference
  • 2021.11.05
  • www.youtube.com
LF AI & Data Day - ONNX Community Meeting - October 21, 2021Emma Ning (Microsoft)ONNX Runtime Web for In Browser Inference
 

Веб-семинар и машинное обучение W3C Workshop Summer 2020

ONNX.js — библиотека Javascript для запуска моделей ONNX в браузерах и Node.js.



ONNX.js — библиотека Javascript для запуска моделей ONNX в браузерах и Node.js.

ONNX.js — это библиотека JavaScript, которая позволяет пользователям запускать модели ONNX в браузерах и Node.js. Он оптимизирует модель как на ЦП, так и на ГП с помощью различных методов и поддерживает профилирование, ведение журнала и отладку для упрощения анализа. Библиотека поддерживает все основные браузеры и платформы и обеспечивает распараллеливание с использованием веб-воркеров для повышения производительности на многоядерных компьютерах. Используя WebGL для доступа к возможностям графического процессора, он обеспечивает значительное повышение производительности и сокращает передачу данных между ЦП и графическим процессором. Хотя необходима дальнейшая оптимизация и поддержка оператора, спикер призывает сообщество внести свой вклад в улучшение ONNX.js.

  • 00:00:00 В этом разделе Эмма из Microsoft рассказывает о ONNX.js, библиотеке JavaScript, используемой для запуска моделей ONNX в браузерах и Node.js. JavaScript — очень важный язык, используемый 95% веб-сайтов, и самый популярный клиентский язык, используемый для электронных приложений, таких как GitHub Desktop и VS Code. Несмотря на мнение, что JavaScript не предназначен для высокопроизводительных вычислений, существуют методы, позволяющие обеспечить совместную работу JavaScript и машинного обучения. Преимущество использования машинного обучения на стороне клиента включает в себя защиту конфиденциальности при одновременном анализе в реальном времени, обеспечении единообразного взаимодействия с ИИ на разных платформах и повышении производительности за счет использования графических процессоров без необходимости установки библиотек или драйверов. ONNX.js похож на TensorFlow.js и предоставляет модели машинного обучения в формате ONNX, который является стандартной структурой.

  • 00:05:00 В этом разделе мы узнаем о сообществе ONNX, которое было создано в 2017 году Microsoft и Facebook для обеспечения нейтрального к окнам стандарта открытого формата. ONNX.js — это реализация ONNX на чистом JavaScript, которая позволяет пользователям запускать модели ONNX в браузере и загружать JS. Он оптимизирует модель как для процессора, так и для графического процессора с помощью нескольких передовых технологических методов и включает три внутренних сервера: два для процессора с использованием JavaScript и WebAssembly и один для графического процессора с использованием WebGL. ONNX.js также предоставляет профилировщик, регистратор и другие утилиты для простой отладки и анализа и поддерживает все браузеры на основных платформах, что позволяет легко создавать приложения ИИ на разных платформах. Наконец, использование веб-воркеров позволяет выполнять распараллеливание внутри тяжелых операторов, что значительно повышает производительность на машинах с многоядерными процессорами.

  • 00:10:00 В этом разделе спикер обсуждает преимущества использования WebGL, популярного стандартного API для доступа к возможностям графического процессора, для ускорения создания графики в JavaScript. Использование WebGL обеспечивает множество оптимизаций для сокращения передачи данных между ЦП и ГП, а также сокращения циклов обработки ГП, что приводит к значительному повышению производительности. Докладчик также приводит сквозной пример использования ONNX.js для запуска модели и демонстрирует, как использовать ONNX.js с примером HTML, а также npm и граничными инструментами. Кроме того, спикер обсуждает необходимость дальнейшей оптимизации и поддержки большего числа операторов ONNX и призывает сообщество внести свой вклад в улучшение ONNX.js.
 

Как запускать модели PyTorch в браузере с помощью ONNX.js



Как запускать модели PyTorch в браузере с помощью ONNX.js

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

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

  • 00:05:00 В этом разделе видео объясняет разницу между использованием TensorFlow.js и ONNX.js и предлагает использовать TensorFlow.js для обучения и ONNX.js для логического вывода. ONNX означает «обмен открытыми нейронными сетями» и определяет общий формат файлов для моделей машинного обучения. Затем в видео показан процесс преобразования модели PyTorch в модель ONNX с использованием метода torch.onnx.export и показано, как загрузить модель в сеанс логического вывода ONNX.js, чтобы выполнить логический вывод в браузере. Видео содержит пример кода для создания сеанса, загрузки модели и выполнения логического вывода на фиктивных входных данных, который возвращает выходную карту, доступную только для чтения.

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

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

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

Запуск нейронных сетей в браузере с помощью ONNX — Рон Дагдаг — NDC Melbourne 2022



Запуск нейронных сетей в браузере с помощью ONNX — Рон Дагдаг — NDC Melbourne 2022

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

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

  • 00:05:00 В этом разделе спикер представляет ONNX (Open Neural Network Exchange), открытый формат для моделей машинного обучения с открытым исходным кодом на GitHub. ONNX позволяет интегрировать модели машинного обучения, созданные в различных средах, таких как PyTorch и Keras, с существующими приложениями на разных языках программирования, таких как C#, Java и JavaScript. Использование ONNX особенно полезно, когда вам нужна высокая задержка логического вывода и быстрые результаты, особенно при работе на IoT или периферийных устройствах. Кроме того, ONNX позволяет комбинировать различные модели и проводить обучение локально, а не удаленно. В повестку сессии входит создание моделей ONNX и их развертывание.

  • 00:10:00 В этом разделе спикер обсуждает различные способы создания модели ONNX для развертывания. Один из способов — через Зоопарк моделей ONNX на GitHub, где уже доступны для бесплатной загрузки существующие модели, основанные, среди прочего, на классификации изображений. Другой способ — через службу Microsoft Custom Vision, где изображение или набор данных можно загрузить, пометить и обучить для создания пользовательской модели, которую можно экспортировать в модель ONNX. Преобразование существующих моделей — еще один вариант, который можно выполнить с помощью библиотек или инструментов, таких как библиотека PyTorch или инструменты ONNX ML. Спикер подчеркивает важность специалиста по данным в экспериментировании и поиске наилучшего подхода для создания наиболее эффективной модели данных компании.

  • 00:15:00 В этом разделе Рон Дагдаг объясняет процесс создания моделей машинного обучения и управления ими с помощью машинного обучения Azure, где модели можно регистрировать и управлять ими, как репозиторием Github для изменений кода. Он также демонстрирует, как создать модель машинного обучения с помощью ml.net в Visual Studio Code и как экспортировать ее в ONNX с помощью интерфейса командной строки, который генерирует файл model.onnx, который можно открыть в приложении ONNX netron.

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

  • 00:25:00 В этом разделе спикер рассказывает о среде выполнения ONNX, высокопроизводительном механизме вывода для моделей ONNX с открытым исходным кодом и полностью совместимом со спецификацией ONNX ML. Среда выполнения ONNX позволяет разработчикам выбирать различные платформы и архитектуры для запуска своих моделей, включая веб-браузер, iOS, Android, Mac и различные API. Докладчик демонстрирует, как использовать среду выполнения ONNX с node.js и веб-сборкой для загрузки модели ONNX в память, передачи входных данных и получения выходных данных. Они также объясняют, как среда выполнения ONNX обеспечивает эффективную обработку, пропуская только необходимые данные для расчета и игнорируя остальные.

  • 00:30:00 В этом разделе Рон Дагдаг объясняет, как включить узел, созданный с помощью ml.net и экспортированный в ONNX, в приложение JavaScript, работающее на стороне сервера. Используя технологии webassembly и webgl, модель ONNX может работать как на ЦП, так и на графическом процессоре, что обеспечивает более высокую производительность, повышенную безопасность, автономное использование и снижение затрат. Хотя включение модели в браузер имеет много преимуществ, большие размеры модели и требования к оборудованию могут повлиять на взаимодействие с пользователем, поэтому необходимо упростить и рассмотреть устройство. Реагирующий шаблон также доступен для использования реагирующими разработчиками.

  • 00:35:00 В этом разделе Рон Дагдаг демонстрирует, как запустить нейронную сеть в браузере с помощью ONNX. Он показывает демонстрацию модели ONNX, которую он скачал из зоопарка моделей ONNX, которая обнаруживает эмоции на изображении. Сеть среды выполнения ONNX используется для загрузки изображения и его обработки. Для модели требуется входное изображение размером 64x64, поэтому Рон изменяет размер и преобразует изображение в оттенки серого, прежде чем преобразовывать его в тензор с помощью ort.tensor. На выходе получается тензор 1x8, содержащий эмоции, обнаруженные на изображении.

  • 00:40:00 В этом разделе спикер обсуждает, как заставить нейросети работать в браузере с помощью ONNX. Он объясняет, что три этапа загрузки модели ONNX в память — это ее загрузка, создание входных параметров на основе модели и запуск сеанса для получения результатов. Он также обсуждает процесс оценки предварительно обученной модели на мобильных устройствах с помощью React Native, который включает преобразование модели ONNX в оптимизированную мобильную модель под названием mobile.ort. Среда выполнения ONNX совместима с различными платформами, включая Windows 10, Mac OS, Ubuntu, iOS, Android, Chrome, Edge, Safari и Electron. Спикер подчеркивает, что понимание вариантов использования различных конвейеров логического вывода и обучения моделей имеет решающее значение, и предоставляет ссылку на свой GitHub тем, кто хочет узнать больше.

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

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