Estudiamos ONNX para aplicarlo al trading - página 7

 

Implemente modelos de aprendizaje automático (TensorFlow/Caffe2/ONNX) - Rápido y fácil



Implemente modelos de aprendizaje automático (TensorFlow/Caffe2/ONNX) - Rápido y fácil

El video demuestra cómo se puede usar el aprendizaje por transferencia para clasificar imágenes y cómo integrar el modelo de clasificación de imágenes en una aplicación de usuario final usando Python y TensorFlow. El presentador usa un ejemplo de aplicación de comercio de automóviles para ilustrar los desafíos que se enfrentan cuando las fotos no se cargan desde la perspectiva requerida y las etiquetas deben verificarse manualmente, lo que genera aburrimiento e ineficiencia. Explica cómo superar estos desafíos entrenando una red neuronal existente para que reconozca las perspectivas de las fotografías utilizando la técnica de aprendizaje por transferencia. Luego muestra cómo probar e implementar el modelo en la nube de Oracle utilizando el proyecto de código abierto GraphPipe. Finalmente, el presentador enfatiza la importancia de llevar los modelos de aprendizaje automático de la fase de laboratorio a la fase de producción.

  • 00:00:00 En esta sección, Jeroen Kloosterman explica cómo se puede utilizar el aprendizaje automático para la clasificación de imágenes y cómo integrar el modelo de clasificación de imágenes en una aplicación de usuario final. Destaca los desafíos que enfrenta una aplicación de comercio de automóviles donde las fotos no se cargan desde la perspectiva requerida y las etiquetas deben verificarse manualmente, lo que genera aburrimiento e ineficiencia. Para superar estos desafíos, Jeroen utiliza la técnica de transferencia de aprendizaje entrenando una red neuronal existente para reconocer las perspectivas de las fotografías usando Python y Tensorflow. Al rastrear solo las últimas capas de la red neuronal para reconocer diferentes perspectivas, Jeroen Kloosterman entrena con éxito la red para clasificar las fotos automáticamente.

  • 00:05:00 En esta sección, Jeroen muestra cómo probar el modelo, que se entrenó en la sección anterior, y luego implementarlo en la nube de Oracle usando el proyecto de código abierto GraphPipe. Para comenzar, se llama al script Python de reentrenamiento, que usa TensorFlow para volver a entrenar el modelo. Después de configurar el entorno en la nube de Oracle, el presentador escribe un cliente de ejemplo usando Python para llamar al clasificador de imágenes. La clasificación devuelta por el modelo puede ser utilizada por el front-end para mostrar un mensaje al usuario final de la aplicación de venta de automóviles. Finalmente, el presentador enfatiza la importancia de llevar los modelos de aprendizaje automático de la fase de laboratorio a la fase de producción.
Deploy Machine Learning Models (TensorFlow/Caffe2/ONNX) - Fast and Easy
Deploy Machine Learning Models (TensorFlow/Caffe2/ONNX) - Fast and Easy
  • 2018.11.06
  • www.youtube.com
In this video you learn how to Build and Deploy an Image Classifier with TensorFlow and GraphPipe. You can use the same technique to deploy models of other f...
 

Implemente modelos de aprendizaje automático con Azure Functions y ONNX Runtime



Implemente modelos de aprendizaje automático con Azure Functions y ONNX Runtime

El video demuestra cómo implementar un modelo de aprendizaje automático mediante ONNX Runtime y Azure Functions en VS Code. El proceso incluye la creación de un proyecto de función de Azure, la actualización del código con el script de puntuación, la carga del modelo desde la ruta del modelo, la creación de una sesión de inferencia con ONNX Runtime y la devolución del resultado. El video también muestra cómo implementar la función en Azure y probarla allí. Este método permite la implementación eficiente de modelos a través de Azure Functions y ONNX runtime, lo que permite un fácil acceso a los resultados.

  • 00:00:00 En esta sección, el video muestra cómo implementar un modelo de aprendizaje automático mediante ONNX Runtime y Azure Functions en VS Code. El proceso implica crear un proyecto de función de Azure con Python y desencadenador HTTP, actualizar el código con el script de puntuación, cambiar el tamaño y la forma de la imagen y procesarla previamente, cargar el modelo desde la ruta del modelo, crear una sesión de inferencia con ONNX Runtime y devolviendo la salida. Después de verificar la funcionalidad del código, el video muestra cómo implementar la función en Azure y probarla allí.

  • 00:05:00 En esta sección, el orador demuestra cómo probar la función implementada obteniendo la URL de la función y pegándola en la prueba. El orador demuestra cómo se puede usar la función implementada para obtener un resultado fácilmente a través de Azure Functions y el tiempo de ejecución de ONNX, lo que permite una implementación eficiente de los modelos.
Deploy ML Models with Azure Functions and ONNX Runtime
Deploy ML Models with Azure Functions and ONNX Runtime
  • 2022.01.21
  • www.youtube.com
In this video we will go step-by-step do deploy the ImageNet model using VS Code, Azure Functions, and ONNX Runtime.Doc link: https://docs.microsoft.com/azur...
 

Implementación en escritorio con ONNX



Implementación en escritorio con ONN X

En el video "Implementación en escritorio con ONNX", Alexander Zhang analiza los desafíos de la implementación en escritorio y las soluciones que ofrece ONNX. La compatibilidad con los escritorios tiene sus desafíos, ya que hay menos control sobre las restricciones del sistema en la GPU o el sistema operativo, así como una diversidad significativa en las GPU de escritorio. Para hacer frente a estos desafíos, Alexander se basa en diferentes bibliotecas de inferencia para cada uno de los proveedores de hardware compatibles con Topaz labs. ONNX se usa para especificar el mismo modelo para todas estas bibliotecas, lo que brinda resultados relativamente consistentes en diferentes hardware y ahorra trabajo manual en cada modelo. Sin embargo, las conversiones de ONNX pueden crear varios problemas, como ambigüedad, inconsistencia y discrepancias de calidad, lo que requiere que los desarrolladores realicen conversiones de prueba y usen explícitamente las últimas compensaciones de ONNX. Para maximizar el rendimiento a través del procesamiento por lotes y potencialmente ejecutar en múltiples dispositivos y bibliotecas en paralelo, dividen las imágenes en bloques y seleccionan un tamaño apropiado en función de la VRAM, y luego ejecutan los bloques a través de la inferencia.

  • 00:00:00 En esta sección, Alexander Zhang analiza los desafíos de la implementación en el escritorio y las soluciones que ofrece ONNX. Adaptarse a los flujos de trabajo existentes y al mismo tiempo cumplir con las expectativas de rendimiento y mantenerse al día con los avances requiere ofrecer los modelos de imagen más recientes y de la más alta calidad disponibles. La compatibilidad con los escritorios tiene sus desafíos, ya que hay menos control sobre las restricciones del sistema en la GPU o el sistema operativo, así como una diversidad significativa en las GPU de escritorio. Para hacer frente a estos desafíos, Alexander se basa en diferentes bibliotecas de inferencia para cada uno de los proveedores de hardware compatibles con Topaz labs. ONNX se usa para especificar el mismo modelo para todas estas bibliotecas, lo que brinda resultados relativamente consistentes en diferentes hardware y ahorra trabajo manual en cada modelo. Sin embargo, las conversiones de ONNX pueden crear varios problemas, como ambigüedad, inconsistencia y discrepancias de calidad, lo que requiere que los desarrolladores realicen conversiones de prueba y usen explícitamente las últimas compensaciones de ONNX.

  • 00:05:00 En esta sección, el orador explica que una de las razones por las que hacen muchas conversiones ellos mismos en lugar de usar bibliotecas o contenedores existentes es el rendimiento. También enfatizan la importancia de la flexibilidad para optimizar sus propios modelos y necesidades de rendimiento si lo desean sin estar obligados a escribir código específico del modelo para cada modelo. Para maximizar el rendimiento a través del procesamiento por lotes y potencialmente ejecutar en múltiples dispositivos y bibliotecas en paralelo, dividen las imágenes en bloques y seleccionan un tamaño apropiado en función de la VRAM, y luego ejecutan los bloques a través de la inferencia. Sin embargo, concluyen que existen dificultades continuas para garantizar que las arquitecturas de nuevos modelos se comporten bien en todas las bibliotecas, pero mantienen la esperanza de que su estrategia supere estos desafíos y brinde mejoras consistentes en la calidad de la imagen.
Deploying on Desktop with ONNX
Deploying on Desktop with ONNX
  • 2022.07.13
  • www.youtube.com
ORT provides the foundations for inference for Adobe's audio and video products (Premiere Topaz Labs develops deep learning based image quality software for ...
 

Implementación de modelos ONNX en Flink - Isaac Mckillen-Godfried



Implementación de modelos ONNX en Flink - Isaac Mckillen-Godfried

Isaac McKillen-Godfried analiza los desafíos de incorporar modelos de aprendizaje automático de última generación de entornos de investigación a la producción para una utilización eficaz. El objetivo de la charla es facilitar el traslado de modelos de entornos de investigación a producción y permitir la incorporación de modelos de última generación en diferentes plataformas. Explica las ventajas del formato ONNX y las diferentes opciones para integrar modelos de aprendizaje profundo en Java. Además, habla sobre la implementación de modelos ONNX en Flink usando Jep, un intérprete de Python escrito en Java, y explica un proyecto de código abierto que permite consumir datos del conector Flink Twitter y luego filtrar tweets que no están en inglés. La charla también destaca la implementación actual solo de CPU de la implementación de modelos ONNX en Flink y el potencial para futuras implementaciones de GPU o híbridas.

  • 00:00:00 En esta sección del video, el orador analiza los desafíos de incorporar modelos de aprendizaje automático de última generación de entornos de investigación a la producción para una utilización eficaz. Menciona que la mayoría de los marcos populares están escritos en Java y Scala, mientras que la mayoría del código y los documentos están escritos en Python. El objetivo de la charla es facilitar el traslado de modelos de entornos de investigación a producción y permitir la incorporación de modelos de última generación en diferentes plataformas. El orador también habla sobre los desafíos, incluido el soporte deficiente de Python en Flink y la dificultad de incorporar ONNX en Java. También menciona la popularidad de PyTorch en la comunidad de investigación y su creciente implementación en marcos de aprendizaje automático.

  • 00:05:00 En esta sección, el ponente habla sobre el formato ONNX y sus ventajas. ONNX es un formato de intercambio de red neuronal abierta que permite exportar e importar fácilmente modelos de varios marcos. El objetivo de ONNX es permitir la ejecución de modelos en diferentes lenguajes y marcos, lo que la convierte en una herramienta valiosa para los desarrolladores. Además, el orador habla sobre varios marcos y herramientas ONNX disponibles para exportar e importar modelos. También presentan un cuadro de mando que mide el soporte de operaciones en ONNX, con TensorFlow y Caffe2 teniendo un soporte considerable. Luego, el orador analiza las diferentes opciones para integrar modelos de aprendizaje profundo en Java, incluida la creación de un microservicio, Python integrado en Java y la ejecución de marcos basados en JVM de back-end de ONNX.

  • 00:10:00 En esta sección, se analizan las limitaciones del uso de Java con modelos ONNX, incluido el soporte limitado de operaciones de redes neuronales en marcos como Meno y Vespa. El proceso de exportación también puede ser difícil y llevar mucho tiempo, y es posible que sea necesario volver a entrenar los modelos por completo. Una solución es usar microservicios asíncronos, pero este enfoque requiere escalar y mantener un servicio separado. Otro enfoque discutido es el uso de Java Embedded Python (JEP), que permite el uso de cualquier biblioteca de Python y se ha encontrado que se ejecuta rápidamente con marcos como Keras. Sin embargo, puede haber problemas con las bibliotecas compartidas que deben abordarse.

  • 00:15:00 En esta sección del video, el orador analiza la implementación de modelos ONNX en Flink y los posibles problemas de configuración que pueden surgir. Si bien es posible transferir primitivas de Java a Python y viceversa, puede haber problemas con la configuración de dependencias. El orador recomienda crear una imagen Docker personalizada que incluya los paquetes Flink y Python para facilitar la configuración. El orador también destaca Flair, un marco PyTorch para tareas de NLP, y explica cómo integrarlo en Flink usando JEP. El código de ejemplo usa una función de mapa enriquecido para devolver los resultados de Flair como una cadena.

  • 00:20:00 En esta sección, el orador habla sobre la implementación de modelos ONNX en Flink usando Jep, un intérprete de Python escrito en Java. El orador muestra un ejemplo de cómo realizar un análisis de sentimiento en los datos de Twitter con el conector Flink Twitter y explica la importancia de cargar el modelo en la parte abierta de la función para evitar que se vuelva a cargar en cada iteración. También muestran cómo establecer variables en Python usando Jep y cómo devolver el resultado a Java como una cadena. El orador destaca el uso de un intérprete compartido en Jep para evitar errores al usar módulos de Python y sugiere convertir el resultado a JSON para facilitar el procesamiento en Java.

  • 00:25:00 En esta sección, Isaac McKillen-Godfried habla sobre un proyecto de código abierto que permite consumir datos del conector Flink Twitter y luego filtrar los tweets que no están en inglés. Luego, los datos se procesarían a través de modelos de reconocimiento de entidades nombradas multitarea, que pueden manejar varios idiomas y modelos de idiomas específicos. El reconocimiento de entidades nombradas y el análisis de opiniones se producirían antes de convertirlas en tablas y usar consultas para agruparlas por su entidad y opinión. Al incorporar el aprendizaje profundo y otros modelos en Flink, se puede ver una vista en tiempo real de las entidades nombradas y su sentimiento en el texto de Twitter. Aunque los backends de onnx carecen de madurez, ahorra tiempo al tener que convertir código y reescribir, y ejecutar el modelo en un clúster es rápido. McKillen-Godfried planea realizar puntos de referencia para medir el aumento de la latencia en un futuro próximo.

  • 00:30:00 En esta sección, Isaac Mckillen-Godfried analiza la implementación actual solo de CPU de la implementación de modelos ONNX en Flink, y el potencial para futuras implementaciones de GPU o híbridas que podrían acelerar aún más el proceso. Señala que solo ha probado el modelo en CPU y aún no ha explorado las posibilidades de aumentar la eficiencia mediante el uso de GPU.
Deploying ONNX models on Flink - Isaac Mckillen-Godfried
Deploying ONNX models on Flink - Isaac Mckillen-Godfried
  • 2019.07.08
  • www.youtube.com
Deploying ONNX models on FlinkThe Open Neural Network exchange format (ONNX) is a popular format to export models to from a variety of frameworks. It can han...
 

Implementación del modelo Tiny YOLOv2 ONNX en Jetson Nano usando DeepStream



Implementación del modelo Tiny YOLOv2 ONNX en Jetson Nano usando DeepStream

Este video muestra la eficiencia de utilizar un modelo Tiny YOLOv2 preentrenado en el formato ONNX para procesar cuatro transmisiones de video simultáneamente.
Las transmisiones provienen de cuatro archivos distintos y se procesan en Jetson Nano utilizando DeepStream SDK. El sistema logró un FPS de aproximadamente 6,7 mientras procesaba los cuatro videos en paralelo.

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

Deploying Tiny YOLOv2 ONNX model on Jetson Nano using DeepStream
Deploying Tiny YOLOv2 ONNX model on Jetson Nano using DeepStream
  • 2019.11.18
  • www.youtube.com
This video demonstrates the performance of using a pre-trained Tiny YOLOv2 model in the ONNX format on four video streams.Blog: https://towardsdatascience.co...
 

El motor de inferencia ONNX Runtime es capaz de ejecutar modelos de aprendizaje automático en diferentes entornos



Tiempo de ejecución ONNX

ONNX Runtime es un motor de inferencia de código abierto optimizado para el rendimiento, la escalabilidad y la extensibilidad, capaz de ejecutar nuevos operadores antes de que se estandaricen. El formato ONNX permite una fácil representación y despliegue de modelos desarrollados en las herramientas preferidas de forma común. Microsoft se asoció con Xilinx para construir el proveedor de ejecución para la biblioteca de software Vitis AI, que permite la inferencia y aceleración de AI en las plataformas de hardware de Xilinx. El kit de herramientas Vitis AI consta de herramientas IP, bibliotecas, modelos y diseños de ejemplos para desarrolladores de FPGA, con números de referencia que muestran la aceleración máxima para soluciones de imágenes geoespaciales. El proveedor de ejecución de IA de Vitis puede crearse desde el origen o implementarse a través de una biblioteca de software preconstruida que pronto se lanzará en Azure Marketplace.

  • 00:00:00 En esta sección, Manash Goswami, administrador principal de programas para AI Frameworks en Microsoft, presenta ONNX Runtime, que es un motor de inferencia de código abierto que se usa para ejecutar modelos ONNX. El formato ONNX permite que los equipos de ciencia de datos utilicen sus herramientas preferidas para el desarrollo de modelos al tiempo que garantiza que el modelo se pueda representar e implementar de una manera común y fácilmente ejecutable. ONNX Runtime está optimizado para el rendimiento, la extensibilidad y la escalabilidad, y admite operadores personalizados, lo que lo hace capaz de ejecutar nuevos operadores antes de que se estandaricen. El tiempo de ejecución es compatible con versiones anteriores y posteriores, y su interfaz de proveedor de ejecución permite la ejecución del modelo ML en diferentes plataformas de hardware. Microsoft se asoció con Xilinx para crear el proveedor de ejecución de la biblioteca de software Vitis AI, que ejecuta modelos ONNX en la plataforma Xilinx U250 FPGA.

  • 00:05:00 En esta sección, aprendemos sobre la biblioteca de software de IA de Vitis, la plataforma de desarrollo de Xilinx especializada en inferencia de IA en plataformas de hardware de Xilinx. El FPGA U250 está disponible para su uso con la pila de software Vitis AI en vista previa privada en Azure, como la cola de máquinas virtuales NP para los usuarios. El kit de herramientas de Vitis AI consta de herramientas IP optimizadas, bibliotecas, modelos y diseños de ejemplo para que los desarrolladores los usen con FPGA, lo que les permite combinar la inferencia y la aceleración de IA. Peakspeed, una startup que ofrece soluciones analíticas geoespaciales, integra ONNX Runtime y Vitis AI stack con la aplicación ArcGIS Pro de Esri para crear las soluciones de imágenes geoespaciales más rápidas del mundo. Peakspeed aceleró con éxito el proceso de ortorrectificación o corrección geoespacial en las CPU, registrando números de referencia comparando TrueView que se ejecuta en un Azure NP que aloja Xilinx U250 FPGA con el mismo algoritmo que se ejecuta en una CPU Xeon platinum.

  • 00:10:00 En esta sección, Manash explica cómo los desarrolladores y los clientes pueden infundir aprendizaje profundo en sus aplicaciones utilizando ONNX Runtime y la pila de IA de Vitis para acelerar en puntos finales de FPGA en Azure, así como en las instalaciones con hardware Xilinx U250. También destaca que los desarrolladores pueden crear el proveedor de ejecución de IA de Vitis con ONNX Runtime desde el origen, y Xilinx pronto lanzará una imagen de máquina virtual en Azure Marketplace con todas las bibliotecas de software preconstruidas integradas en un solo lugar para una fácil implementación en la máquina virtual de Azure NP.
ONNX Runtime
ONNX Runtime
  • 2020.07.07
  • www.youtube.com
ONNX Runtime inference engine is capable of executing ML models in different HW environments, taking advantage of the neural network acceleration capabilitie...
 

Implemente modelos de transformadores en el navegador con #ONNXRuntime



Implemente modelos de transformadores en el navegador con #ONNXRuntime

El video demuestra cómo ajustar e implementar un modelo BERT optimizado en un navegador mediante ONNXRuntime. El presentador muestra cómo convertir el modelo PyTorch al formato ONNX usando la API de Transformers, usar ONNXRuntime para cuantificar el modelo para la reducción de tamaño y crear una sesión de inferencia. El video también cubre los pasos necesarios para importar paquetes a JavaScript usando WebAssembly y cómo ejecutar entradas de texto a través del modelo transformado para la clasificación de emociones. A pesar de una reducción en la precisión de la predicción, el tamaño de modelo más pequeño es ideal para la implementación en un navegador. Se proporcionan enlaces al modelo, conjuntos de datos, código fuente y una publicación de blog.

  • 00:00:00 En esta sección, el presentador de video demuestra cómo hacer operativos los modelos de transformadores y muestra el proyecto final que incluye un modelo de transformador que se optimizó e implementó en un navegador. El modelo utilizado en el proyecto es un modelo bert optimizado que ha sido destilado por Microsoft para reducir su tamaño y hacer que la prueba sea agnóstica. El conjunto de datos de emociones utilizado para ajustar el modelo está disponible en el centro de cara abrazada. El presentador recorre el proceso de ajuste fino usando la API de transformers y muestra cómo convertir el modelo PyTorch al formato ONNX usando la herramienta de conversión integrada de transformers. Finalmente, el paquete web ONNX Runtime se usa para la inferencia en JavaScript, donde se pueden elegir diferentes conjuntos de operaciones según los operadores requeridos.

  • 00:05:00 En esta sección, el video explica cómo implementar modelos de transformadores en el navegador con ONNXRuntime. Primero, el video explica cómo usar ONNXRuntime para cuantificar el modelo y reducir su tamaño, luego de lo cual se crea una sesión de inferencia para los modelos no cuantificados y cuantificados. Luego, el video demuestra cómo importar los paquetes necesarios a JavaScript usando WebAssembly y cómo codificar las entradas de texto antes de ejecutarlas a través del modelo ONNXRuntime. La demostración muestra cómo se puede usar el modelo transformado para predecir diferentes emociones dado un texto de entrada. A pesar de una disminución en la precisión de la predicción, el video concluye que el tamaño reducido del modelo lo hace ideal para su implementación en la web.

  • 00:10:00 En esta sección, el presentador explica cómo pudieron tomar un modelo de transformador grande, destilarlo y cuantificarlo, y usar ONNX Runtime para realizar inferencias en el perímetro. También proporcionan enlaces al modelo y los conjuntos de datos utilizados, así como el código fuente y una publicación de blog sobre la demostración.
Deploy Transformer Models in the Browser with #ONNXRuntime
Deploy Transformer Models in the Browser with #ONNXRuntime
  • 2022.04.01
  • www.youtube.com
In this video we will demo how to use #ONNXRuntime web with a distilled BERT model to inference on device in the browser with #JavaScript. This demo is base...
 

Open Neural Network Exchange (ONNX) en la empresa: cómo Microsoft escala el aprendizaje automático



Open Neural Network Exchange (ONNX) en la empresa: cómo escala Microsoft ML - BRK3012

Open Neural Network Exchange (ONNX) se presenta como una solución a los desafíos en la implementación de modelos de aprendizaje automático en producción, incluida la gestión de múltiples marcos de capacitación y objetivos de implementación, con Microsoft ya adoptando ampliamente ONNX para productos como Bing, Bing ads y Office 365 ONNX permite la escalabilidad y el mantenimiento de los modelos de aprendizaje automático, así como importantes mejoras de rendimiento y ahorros de costos atribuidos al uso de aceleradores de hardware como GPU. Además, el ecosistema ONNX incluye socios como Intel para la optimización del tiempo de ejecución, con kits de desarrollo disponibles y técnicas de cuantificación disponibles para convertir modelos FP32 en tipos de datos de menor precisión, lo que resulta en una mayor eficiencia. Los oradores también destacan los beneficios de utilizar ONNX para la computación perimetral, ya que el tiempo de ejecución es flexible y puede implementar modelos en diferentes plataformas de hardware.

  • 00:00:00 En esta sección, los presentadores analizan la escala de las iniciativas de aprendizaje automático de Microsoft, incluidos más de 180 millones de usuarios activos mensuales en Office 365 y la tecnología de aprendizaje automático implementada en cientos de millones de dispositivos Windows. También mencionan que Microsoft usa más de seis marcos de aprendizaje automático y que existen desafíos en la implementación de modelos de aprendizaje automático en producción. Presentan ONNX y ONNX Runtime como soluciones a estos desafíos, que se pueden usar con aceleradores de hardware como Intel y NVIDIA y en el aprendizaje automático de Azure.

  • 00:05:00 En esta sección del video, el orador analiza los desafíos que surgen cuando se entrenan modelos de aprendizaje automático y se implementan en producción. Con tantos marcos de trabajo de capacitación y objetivos de implementación diferentes, se vuelve difícil administrar y mantener un rendimiento eficiente de las aplicaciones. Para abordar este problema, Microsoft presenta ONNX (Open Neural Network Exchange), un estándar de la industria que permite la conversión de modelos de aprendizaje automático al formato ONNX, independientemente del marco utilizado para la capacitación. Esto permite la implementación de modelos ONNX en cualquier marco compatible, lo que lo convierte en una solución más flexible y escalable. Además, Microsoft está construyendo un sólido ecosistema de socios para respaldar a ONNX y garantizar su éxito como estándar de la industria.

  • 00:10:00 En esta sección, el orador analiza casos de uso de producción reales de Open Neural Network Exchange (ONNX) y el tiempo de ejecución de ONNX para mostrar cómo aportan valor empresarial a los productos y clientes de Microsoft. Algunos de los productos de Microsoft, como Bing, Bing ads y Office 365, ya han adoptado ampliamente el tiempo de ejecución de ONNX y ONNX, y han visto mejoras significativas en el rendimiento del modelo y una latencia reducida. Por ejemplo, con ONNX y el tiempo de ejecución de ONNX, la función de revisión gramatical de Office 365 ha visto una mejora de 14,6 veces en el rendimiento, lo que se traduce en una reducción de los costos y la latencia. Otro caso de uso, OCR, también se ha beneficiado significativamente del tiempo de ejecución de ONNX y ONNX.

  • 00:15:00 En esta sección, el orador analiza cómo Microsoft usa Open Neural Network Exchange (ONNX) para escalar el aprendizaje automático en varios escenarios, incluida la mejora de la calidad y el rendimiento de su servicio comunitario OCR de Azure Cognitive Services, además de mejorar su calidad de búsqueda y habilitando nuevos escenarios como preguntas y respuestas con asistentes personales. El ponente también menciona cómo ONNX y ONNX Runtime han mejorado la velocidad de los modelos de aprendizaje automático en 3,5 veces y 2,8 veces, respectivamente, aportando un gran valor a sus equipos de productos. También destacan la importancia de entrenar modelos de aprendizaje automático para comprender realmente el significado semántico de las imágenes para mejorar la búsqueda multimedia.

  • 00:20:00 En esta sección, los oradores analizan el uso de los modelos Open Neural Network Exchange (ONNX) en los productos de Microsoft, específicamente la función de búsqueda visual de Bing. ONNX permite escalar y mantener modelos de aprendizaje automático, así como mejoras significativas en el rendimiento y ahorros de costos, logrados mediante el uso de aceleradores de hardware como GPU. Los oradores también destacan la versatilidad de ONNX, que puede ejecutarse en una variedad de plataformas, incluidas arquitecturas x64 y basadas en ARM, y es un motor de inferencia de código abierto para modelos ONNX, disponible en Windows, Mac y Linux. El uso de ONNX permite la optimización de la ejecución en hardware de destino específico sin cambiar la interfaz del modelo, lo que lo convierte en una herramienta valiosa para escalar y mantener las implementaciones de producción.

  • 00:25:00 En esta sección, el orador analiza la interfaz del proveedor de ejecución que se usa para ejecutar modelos ONNX en diferentes plataformas de hardware, incluidas CPU, GPU y FPGA. El ecosistema de socios incluye a Intel, con quien Microsoft ha colaborado en la optimización del tiempo de ejecución utilizando proveedores de ejecución abiertos basados en VINO. También ofrecen kits de desarrollo fácilmente disponibles, incluido el dispositivo de cómputo neuronal, para acelerar las cargas de trabajo de IA para varios verticales, como la fabricación, el comercio minorista y el transporte. Microsoft e Intel también han colaborado en la cuantificación para convertir los modelos FP32 a un tipo de datos de menor precisión, lo que da como resultado un ancho de banda de memoria más bajo, una huella de memoria reducida del modelo y una mayor cantidad de cuatro puntas por vatio con una pérdida mínima de precisión.

  • 00:30:00 En esta sección, el orador analiza cómo pudieron usar instrucciones de procesamiento vectorial y fusión de gráficos para mejorar el rendimiento y los requisitos de memoria de los núcleos de gemas enteras para redes neuronales convolucionales. Pudieron lograr 4 veces más cómputo y 4 veces menos requisitos de memoria. Mostraron los beneficios de usar n-graph como proveedor de ejecución junto con su capacidad de procesamiento de hardware al mostrar la escalabilidad en el rendimiento para varios tamaños de lotes. La pérdida de precisión fue muy pequeña y cumplió con los beneficios motivacionales de la cuantificación. También discutieron las diferentes formas de generar modelos ONNX, como usar ONNX Model Zoo, Azure Machine Learning Experimentation y los servicios de visión personalizados de Microsoft.

  • 00:35:00 En esta sección, el orador explica cómo ejecutar sesiones de inferencia usando el tiempo de ejecución de ONNX dentro de una aplicación. Después de convertir el modelo, el usuario lo carga en el tiempo de ejecución de ONNX y comienza a analizar el gráfico. El tiempo de ejecución identifica las optimizaciones disponibles y consulta el hardware subyacente para identificar qué tipo de operaciones son compatibles con las bibliotecas de hardware. El tiempo de ejecución de ONNX está diseñado para ser coherente, por lo que los fragmentos de código para Python y C-sharp son muy similares. El orador también menciona AutoML, que permite al usuario ingresar datos para recibir una propuesta de aplicación que convierte automáticamente el código en Python y C-sharp. Además, el orador describe una imagen acoplable que incluye convertidores para diferentes marcos y permite al usuario comenzar rápidamente con el tiempo de ejecución de ONNX. El flujo de trabajo se demuestra mediante el uso de Azure Notebooks.

  • 00:40:00 En esta sección, el orador analiza cómo utilizar Open Neural Network Exchange (ONNX) y las herramientas de aprendizaje automático de Microsoft para escalar modelos en la empresa. El proceso implica el uso de un espacio de trabajo de ML para crear un archivo de puntuación que incluye pasos de preprocesamiento y de inferencia. Luego, el orador demuestra cómo crear imágenes de contenedor para la computadora y el entorno de destino, incluidas imágenes base, como una imagen base de tiempo de ejecución ONNX. Finalmente, las imágenes se implementan en un servicio IKS en la nube con la capacidad de enviar imágenes de prueba para realizar inferencias en los puntos finales de CPU y GPU.

  • 00:45:00 En esta sección, el orador demuestra la flexibilidad del tiempo de ejecución de Open Neural Network Exchange (ONNX) al mostrar una demostración en la que se usa el mismo código para apuntar una aplicación hacia diferentes plataformas de hardware, como CPU versus GPU y x86 contra BRAZO. El orador también muestra una demostración de la implementación del tiempo de ejecución y los modelos de ONNX en dispositivos perimetrales, específicamente en Intel up squared, para detectar escenarios de seguridad en un escenario de trabajador de fábrica mediante el uso de video pregrabado y el posprocesamiento de cuadros delimitadores. El código utilizado en la demostración es idéntico, pero se utilizan diferentes aceleradores de hardware para optimizar la aplicación. El orador resume que ONNX se convierte en el formato común para representar modelos de redes neuronales y que el tiempo de ejecución de ONNX permite la implementación tanto en la nube como en dispositivos periféricos.

  • 00:50:00 En esta sección, los presentadores analizan los beneficios de usar Open Neural Network Exchange (ONNX) para crear e implementar aplicaciones de aprendizaje automático con Azure. También abordan las preguntas de la audiencia sobre el aprendizaje automático en diferentes procesadores, el uso de ONNX con canalizaciones existentes y la posibilidad de volver de ONNX a marcos anteriores. Además, mencionan sus planes para expandir el ONNX Model Zoo con escenarios y datos específicos.

  • 00:55:00 En esta sección, los oradores discuten los beneficios de ONNX en términos de flexibilidad del marco, ya que los modelos ONNX se pueden usar con una variedad de marcos para servir. También mencionan la integración de ONNX con el aprendizaje automático de Azure, que permite a los usuarios cargar telemetría de inferencia para volver a capacitarse o experimentar. La sesión también analiza la posibilidad de la integración de ONNX con Excel de forma nativa, aunque esto aún está en desarrollo. También abordan la cuestión de crear algoritmos personalizados y convertirlos a ONNX, con la opción de usar Python para manipular el formato de archivo ONNX. Finalmente, la sesión menciona la necesidad de un acercamiento a la firma de modelos ONNX para distribución, que se tomará como retroalimentación para futuras mejoras.
Open Neural Network Exchange (ONNX) in the enterprise: how Microsoft scales ML - BRK3012
Open Neural Network Exchange (ONNX) in the enterprise: how Microsoft scales ML - BRK3012
  • 2019.05.08
  • www.youtube.com
AI, machine learning, deep learning, and advanced analytics are being infused into every team and service at Microsoft—understanding customers and the busine...
 

Proveedor de ejecución #OpenVINO para #ONNX Runtime - #OpenCV Weekly #Webinar Ep. 68



Proveedor de ejecución #OpenVINO para #ONNX Runtime - #OpenCV Weekly #Webinar Ep. 68

El proveedor de ejecución de OpenVINO para ONNX Runtime fue el tema principal de discusión en este seminario web semanal de OpenCV. El producto tiene como objetivo acelerar el rendimiento de los modelos ONNX en hardware Intel y requiere un esfuerzo mínimo por parte del usuario. El seminario web discutió los desafíos de implementar modelos de aprendizaje profundo en el mundo real, con OpenVINO presentado como la solución a estos desafíos. OpenVINO puede optimizar los modelos de IA para un rendimiento eficiente en varios dispositivos y hardware. El tiempo de ejecución de ONNX, un proyecto de código abierto diseñado para acelerar la inferencia de aprendizaje automático, se discutió extensamente. El seminario web también presentó una demostración de la mejora del rendimiento lograda con OpenVINO Execution Provider para ONNX Runtime, así como sus funciones, como la inferencia de subprocesos múltiples, la compatibilidad total con varios complementos y el almacenamiento en caché de modelos. También se discutió la integración entre OpenVINO y PyTorch a través del proveedor de ejecución de OpenVINO. Los presentadores respondieron preguntas de la audiencia sobre temas como la compatibilidad con dispositivos ARM y la posible pérdida de rendimiento o precisión al usar formatos de intercambio ONNX.

  • 00:00:00 En esta sección, los anfitriones presentan a sus invitados, Devon Agarwal y Prita Veeramalai, quienes son gerente técnico de productos e ingeniero de marco de IA respectivamente en OpenVINO. Brindan una breve introducción al programa y analizan algunos obsequios próximos para los espectadores. El principal tema de discusión gira en torno al proveedor de ejecución OpenVINO para el tiempo de ejecución de ONNX, cuyo objetivo es acelerar el rendimiento de los modelos ONNX en hardware Intel con el mínimo esfuerzo requerido por parte del usuario. Los anfitriones también describen la agenda de la sesión, que incluye una descripción general del aprendizaje profundo y sus desafíos, seguida de una introducción a OpenVINO y sus capacidades.

  • 00:05:00 En esta sección del video, el orador presenta OpenVINO Execution Provider para ONNX Runtime y explica su propósito. También brindan una descripción general de OpenVINO, ONNX y ONNX Runtime, seguida de una guía sobre cómo comenzar con OpenVINO Execution Provider para ONNX Runtime e integrarlo en las aplicaciones ONNX. El orador también analiza el conjunto de características del producto y los planes futuros, incluido un adelanto de un producto de vista previa beta para desarrolladores. Luego, la conversación pasa a la importancia del aprendizaje profundo en el mundo actual, la necesidad de IA en dispositivos de borde y las demandas informáticas de IA. El video también cubre los desafíos asociados con el desarrollo y la implementación de modelos de aprendizaje profundo, incluidas las necesidades de inferencia únicas, los desafíos de integración y la ausencia de una solución única para todos.

  • 00:10:00 En esta sección, se analizan los desafíos de implementar modelos de aprendizaje profundo en el mundo real. Existen desafíos técnicos derivados de la desconexión entre el entrenamiento de la red de aprendizaje profundo y la inferencia que ocurre en las plataformas integradas. También hay variaciones de hardware y lenguaje de programación, que requieren una API dedicada para la comunicación de software y hardware. El kit de herramientas OpenVINO de Intel se presenta como una solución a estos desafíos. El conjunto de herramientas agiliza el flujo de trabajo de desarrollo y permite a los desarrolladores escribir una aplicación una vez e implementarla en la arquitectura Intel, proporcionando un enfoque de escritura única e implementación en cualquier lugar. El conjunto de herramientas es capaz de implementar aplicaciones dirigidas a CPU, iGPU, Movidius VPU y GNA. Puede ser valioso en varias industrias, incluidas la industria, la salud y las ciencias de la vida, el comercio minorista, la seguridad y la protección, y ofrece resultados más rápidos, precisos y eficientes para la implementación en el mundo real.

  • 00:15:00 En esta sección, el orador explica el concepto de OpenVino y cómo optimiza los modelos de IA para dispositivos periféricos. Explican cómo, una vez integrados en marcos como PyTorch o TensorFlow, los modelos de IA deben optimizarse para un rendimiento eficiente en dispositivos específicos como CPU, GPU o VPU. OpenVino automatiza este proceso de conversión para varios dispositivos y hardware, lo que garantiza que los modelos se optimicen para un rendimiento eficiente en el dispositivo en el que se implementa. Luego, el orador continúa explicando qué es ONNX, un formato abierto para representar modelos de aprendizaje automático, definiendo un conjunto común de operadores como los componentes básicos de los modelos de aprendizaje automático y aprendizaje profundo. En general, ONNX permite a los desarrolladores de IA utilizar una variedad de marcos, herramientas, tiempos de ejecución y compiladores sin preocuparse por las implicaciones de inferencia posteriores.

  • 00:20:00 En esta sección, los ponentes hablan sobre el formato ONNX, un modelo intermedio abierto que permite la conversión de modelos producidos por diferentes herramientas para ser leídos usando un formato estandarizado. El tiempo de ejecución de ONNX es un proyecto de código abierto diseñado para acelerar la inferencia de aprendizaje automático en varios sistemas operativos y plataformas de hardware. Identifica automáticamente las oportunidades de optimización y brinda acceso a la mejor aceleración de hardware disponible. El proveedor de ejecución de OpenVINO para ONNX permite que el poder del kit de herramientas de OpenVINO acelere la inferencia de modelos ONNX en CPU, GPU y VPU de Intel. Permite a los usuarios ejecutar inferencias utilizando las API de tiempo de ejecución de ONNX mientras integra fácilmente el kit de herramientas de OpenVINO como backend.

  • 00:25:00 En esta sección, se analiza la integración entre el tiempo de ejecución de ONNX y el proveedor de ejecución de OpenVINO. Esta integración permite la ejecución eficiente de modelos de aprendizaje profundo en dispositivos Intel. El kit de herramientas OpenVINO proporciona bibliotecas optimizadas para ejecutar modelos en dispositivos Intel. Cuando el proveedor de ejecución de OpenVINO está habilitado, selecciona de manera inteligente qué operadores del modelo deben ejecutarse en el back-end de OpenVINO para obtener la máxima eficiencia. Los operadores restantes se ejecutan utilizando el marco de tiempo de ejecución nativo de ONNX. El usuario puede instalar el proveedor de ejecución de OpenVINO a través de la compilación desde el origen, extraer la imagen de Docker o usar pip install. El paquete OpenVINO de tiempo de ejecución de ONNX se puede encontrar en PyPI.

  • 00:30:00 En esta sección del seminario web, los presentadores analizan cómo usar OpenVINO Execution Provider para ONNX Runtime y demuestran sus capacidades. Explican cómo instalar el producto mediante pip y proporcionan fragmentos de código para mostrar cómo importar la biblioteca de tiempo de ejecución de ONNX e iniciar una sesión de inferencia. También muestran lo fácil que es usar el proveedor de ejecución de OpenVINO con una simple modificación de una línea de código existente. Luego, los presentadores invitan a los espectadores a escanear códigos QR para acceder a demostraciones y muestras para probar por sí mismos.

  • 00:35:00 En esta sección, el video presenta una demostración de la mejora del rendimiento lograda con OpenVINO Execution Provider (EP) para ONNX Runtime. El video muestra una comparación entre los 5 fps logrados con el proveedor de ejecución de CPU y los 8 fps logrados con OpenVINO EP. Además, el video presenta una demostración de cuantización usando OpenVINO EP para ONNX Runtime, que resultó en una ganancia de rendimiento de 2x con una pérdida insignificante de precisión. El portátil de demostración está disponible en Intel DevCloud, que proporciona acceso remoto a hardware Intel real para evaluación comparativa y análisis.

  • 00:40:00 hecho con la demostración? En esta sección, el presentador demuestra cómo iniciar OpenVINO Execution Provider para ONNX Runtime y seleccionar el hardware, como i3, i5, xenon o Core i9, y la división de gráficos. También muestran el cuaderno Jupyter y la muestra de detección de objetos, que toma video de entrada y un modelo ONNX para ejecutar interferencias en el dispositivo. El presentador explica que hay soporte para CPU, GPU y medios VADM FP16, y también mencionan el proveedor de ejecución de CPU, que es el backend de tiempo de ejecución nativo de ONNX. Finalmente, el presentador analiza la utilidad del proveedor de ejecución de OpenVINO para probar diferentes hardware sin comprar o alquilar cada dispositivo.

  • 00:45:00 En esta sección, se analizan las funciones del proveedor de ejecución de OpenVINO. Ofrece inferencia de subprocesos múltiples, soporte completo para varios complementos y almacenamiento en caché de modelos. También están disponibles la cuantificación de modelos y el particionamiento de gráficos, así como las API para varios idiomas. Las optimizaciones del búfer de E/S están presentes para mejorar el rendimiento y el guardado de archivos externo está disponible para los modelos ONNX. Se hace una pregunta para que la audiencia gane un premio y se comparte un adelanto de la integración de OpenVINO para los modelos PyTorch.

  • 00:50:00 En esta sección, analizan la integración de OpenVINO con PyTorch a través del proveedor de ejecución de OpenVINO. Este producto puede acelerar el rendimiento de los modelos PyTorch en hardware Intel utilizando solo dos líneas de código adicionales. El usuario puede envolver su nn.module en el módulo de inferencia torch orp/ort que prepara el módulo para la inferencia utilizando el proveedor de ejecución OpenVINO y exporta el módulo a un gráfico en memoria a través de onnx.export. Luego, la sesión ONNXruntime divide el gráfico en subgráficos con operadores admitidos y no admitidos para la partición de subgráficos, y el proveedor ejecutará los nodos compatibles con OpenVINO y puede ejecutarse en CPU, GPU o VPU de Intel, mientras que todos los demás nodos recurrirán al proveedor de ejecución de aprendizaje automático de CPU predeterminado. El proceso de instalación es simple, con la opción de compilar desde la fuente, realizar una instalación pip simple y obtener acceso a la gama completa de API de Python.

  • 00:55:00 En esta sección, los anfitriones del seminario web semanal de OpenCV leyeron preguntas de la audiencia sobre temas como la compatibilidad de OpenVINO con dispositivos ARM y la posible pérdida de rendimiento o precisión al usar formatos de intercambio ONNX. Los anfitriones y presentadores explican que OpenVINO puede ejecutarse y dar un impulso en los dispositivos de CPU ARM, y que ONNX puede incluso mejorar el rendimiento de la mayoría de los modelos. Sin embargo, siempre es recomendable probar la precisión en un equipo de prueba al convertir de un formato a otro. Los anfitriones también aclaran que ONNX admite modelos de formas dinámicas, contrariamente a una pregunta de la audiencia. Finalmente, los anfitriones y presentadores agradecen a la audiencia ya Phil, el organizador, por una gran presentación y sesión informativa.
#OpenVINO Execution Provider For #ONNX Runtime - #OpenCV Weekly #Webinar Ep. 68
#OpenVINO Execution Provider For #ONNX Runtime - #OpenCV Weekly #Webinar Ep. 68
  • 2022.08.09
  • www.youtube.com
Devang Aggarwal and Preetha Veeramalai join the show to give us a rundown of how OpenVINO can work with ONNX Runtime to squeeze even more performance out of ...
 

Importación de redes neuronales con ONNX



Importación de redes neuronales con ONNX

Este video explora la importancia del proyecto Open Neural Network Exchange (ONNX) en el aprendizaje automático y sus beneficios en la conversión de modelos a través de varias herramientas. El orador analiza los desafíos de cargar modelos manualmente o con herramientas automatizadas y cómo ONNX elimina este problema a través de su modelo computacional basado en gráficos. El ponente también destaca las ventajas de ONNX en la conversión manual de modelos complejos y su compatibilidad con diferentes frameworks. El video toca los modelos de red parametrizados, la estructura de ONNX y los posibles desafíos que pueden surgir al usar el proyecto. A pesar de estos desafíos, el orador cree que ONNX prosperará gracias al respaldo sustancial de varias empresas.

  • 00:00:00 En esta sección, el ponente analiza la importancia de ONNX en el aprendizaje automático y las dificultades que se encuentran al cargar modelos manualmente o mediante herramientas automatizadas. El orador explica que con la introducción de PyTorch y TensorFlow, la mayoría de los modelos se desarrollan en esos marcos, lo que dificulta la incorporación de modelos externos a otros marcos. El proceso manual de conversión de modelos consume mucho tiempo y es tedioso, ya que implica vincular pesos a la arquitectura, lo cual no es divertido. Luego, el orador analiza el crecimiento del repositorio de redes neuronales y cómo agregaron varios modelos al repositorio desde la versión 12. También presentan MobileNet, una red de clasificación de imágenes que se presentó en 2018, que reduce el tamaño de las redes de clasificación de imágenes y ejecuta más rápido.

  • La sección 00:05:00 se centra en la importancia de los modelos de redes parametrizadas y por qué son necesarios en el repositorio de redes neuronales. Sin parametrización, el repositorio sería demasiado largo y difícil de navegar. También explica cómo elegir un modelo no predeterminado y brinda un ejemplo del modelo BPE, que convierte segmentos en palabras o subpalabras según el idioma. La sección también destaca la necesidad de conversión manual de ONNX, ya que la conversión manual de modelos complejos como el famoso modelo lanzado el 14 de febrero de 2019 puede ser un desafío.

  • 00:10:00 En esta sección, el orador describe los detalles de la función de codificador de red utilizada en el modelo GPD2. Esta función tiene todo el procesamiento previo que necesita el modelo y convierte una cadena en una lista de tokens. Además, da el índice posicional y tiene un vector de tamaño 768, dependiendo del tamaño del modelo que se utilice. El ponente explica que crear la arquitectura para la red de capa 800-1000 a mano no era factible, y por eso necesitaban ONNX. La ventaja de usar ONNX es que elimina la necesidad de mantener un solo convertidor para cada tipo y tiene un zoológico de modelos que los usuarios pueden aprovechar para importar diferentes modelos de manera efectiva.

  • 00:15:00 En esta sección, el YouTuber analiza los beneficios y las especificaciones del proyecto Open Neural Network Exchange (ONNX). El proyecto permite la conversión de modelos a partir de herramientas de última generación, lo que facilita la elección de la mejor herramienta para la creación de modelos. ONNX tiene una amplia lista de socios de la comunidad, incluidas grandes empresas, lo que facilita el movimiento de modelos entre varias herramientas. El proyecto proporciona herramientas de optimización de hardware y herramientas de visualización, que faltan en muchos otros marcos. El YouTuber cree que, dado que el proyecto cuenta con un respaldo considerable de varias empresas, seguirá prosperando.

  • 00:20:00 En esta sección, el orador analiza la estructura de ONNX, un modelo computacional basado en gráficos que tiene operadores implementados externamente al gráfico. Se hace referencia a cada nodo en el gráfico como un operador y tiene una o más entradas y salidas que deben ser portátiles entre marcos. El ponente proporciona un ejemplo de cómo funciona ONNX, demostrando con una función interna que toma el modelo en formato de protocolo y lo convierte en una asociación matemática. El gráfico contiene los metadatos relacionados con el modelo. Luego, el orador explica cómo el gráfico tiene diferentes nodos y dedica tiempo a discutir las propiedades de una capa de convolución, que es uno de los nodos del gráfico. Por último, muestra cómo obtener información sobre las dimensiones de la capa.

  • 00:25:00 En esta sección, el orador analiza algunos de los problemas que pueden surgir al trabajar con ONNX. Hay ciertos errores que pueden ocurrir con el operador de remodelación cuando no tiene dimensiones de placa, por lo que la cobertura del operador debe mejorarse para admitir este tipo de casos. El orador menciona que hay trabajo por hacer en el futuro en términos de agregar soporte para RNN e hiperredes estáticas, así como conectar otras herramientas como inferencia de versión y forma y verificadores de modelos. Además, mejorar la cobertura del operador sigue siendo un trabajo en progreso. Sin embargo, el orador señala que ONNX se está desarrollando activamente y cuenta con el apoyo de las principales empresas.
Importing Neural Networks with ONNX
Importing Neural Networks with ONNX
  • 2020.04.08
  • www.youtube.com
Tuseeta Banerjee