Estudiamos ONNX para aplicarlo al trading - página 14

 

Seminario web NVAITC: Implementación de modelos con TensorRT



Seminario web NVAITC: Implementación de modelos con TensorRT

En esta sección del seminario web de NVAITC, la arquitecta de soluciones Nikki Loppie presenta TensorRT, el kit de desarrollo de software de NVIDIA para la inferencia de aprendizaje profundo de alto rendimiento. TensorRT proporciona un optimizador de inferencia y tiempo de ejecución para inferencia de baja latencia y alto rendimiento en una variedad de plataformas, desde dispositivos integrados hasta centros de datos. Loppie explica las cinco tecnologías que usa TensorRT para optimizar el rendimiento de la inferencia, incluida la fusión del núcleo y la calibración de precisión. Los desarrolladores pueden usar las API de Python y C++ de TensorRT para incorporar estas optimizaciones en sus propias aplicaciones, y las bibliotecas de convertidores como trtorch se pueden usar para optimizar los modelos de PyTorch para la inferencia. Loppie demuestra cómo guardar modelos optimizados de TensorRT usando la biblioteca trtorch y compara los modelos optimizados con modelos no optimizados para la clasificación de imágenes, mostrando aceleraciones significativas con la mitad de precisión.

  • 00:00:00 En esta sección del seminario web, la arquitecta de soluciones Nikki Loppie analiza la importancia de la eficiencia en la inferencia y la necesidad de la portabilidad de la plataforma. Presenta TensorRT, un kit de desarrollo de software de NVIDIA para la inferencia de aprendizaje profundo de alto rendimiento que aborda estos dos desafíos. TensorRT incluye un optimizador de inferencia y tiempo de ejecución para inferencia de baja latencia y alto rendimiento en una amplia gama de plataformas, desde dispositivos integrados hasta centros de datos. También es compatible con todos los principales marcos de aprendizaje profundo. Luego, Loppie explica las cinco tecnologías que implementa TensorRT para optimizar el rendimiento de la inferencia, incluida la fusión del kernel, la calibración de precisión y el ajuste automático del kernel.

  • 00:05:00 En esta sección, el seminario web presenta las capacidades de TensorRT para optimizar el tiempo de ejecución del kernel, reducir el consumo de memoria y admitir la inferencia paralela mediante la ejecución de flujos múltiples. Los desarrolladores pueden usar las API Python y C++ de TensorRT para incorporar estas optimizaciones en sus propias aplicaciones. El seminario web también explica cómo usar bibliotecas de convertidores como tr torch para optimizar un modelo de PyTorch para la inferencia. Los pasos implican guardar el modelo, cargarlo, inicializar un modelo ResNet, compilarlo usando TorchScript y finalmente convertirlo al formato TensorRT. Luego, el modelo optimizado se puede implementar en la plataforma de destino.

  • 00:10:00 En esta sección del seminario web, el orador demuestra cómo guardar modelos optimizados de TensorRT para su uso posterior o para su implementación en otras plataformas mediante la biblioteca trtorch. El orador utiliza un ejemplo de clasificación de imágenes con los modelos ResNet-18 y ResNet-50 que se ejecutan en el conjunto de datos de ImageNet. Los modelos optimizados para trtorch muestran aceleraciones significativas con la mitad de precisión en comparación con los modelos no optimizados, con un factor de aceleración de 5,5x para ResNet-18 y 6,4x para ResNet-50. El orador también destaca la importancia de la evaluación comparativa imparcial y brinda instrucciones sobre cómo comenzar con trtorch.
NVAITC Webinar: Deploying Models with TensorRT
NVAITC Webinar: Deploying Models with TensorRT
  • 2020.11.30
  • www.youtube.com
Learn how to accelerate deep learning (DL) inference with TensorRT via TRTorch library. https://developer.nvidia.com/tensorrt, https://nvidia.github.io/TRTorch/
 

Tutorial de ESP - Cómo: diseñar un acelerador en Keras/Pytorch/ONNX



Tutorial de ESP - Cómo: diseñar un acelerador en Keras/Pytorch/ONNX

El tutorial presenta una herramienta llamada Chalice for ML, que puede generar automáticamente un acelerador a partir de un modelo Keras/Pytorch/ONNX. Luego, el tutorial procede a demostrar cómo integrar el acelerador en ESP (Early Stage Prototyper). El orador también muestra cómo diseñar un acelerador en Keras/Pytorch/ONNX y sigue los pasos de importar un acelerador, agregar un banco de pruebas, generar RTL y crear dos versiones del acelerador. El video también cubre la compilación de Linux y la creación de una aplicación de espacio de usuario de Linux para el acelerador. Finalmente, el tutorial finaliza con recursos para seguir aprendiendo.

  • 00:00:00 En esta sección del tutorial, el presentador presenta una herramienta llamada Chalice for ML que puede generar automáticamente un acelerador a partir de un modelo Keras/Pytorch/ONNX. El flujo se demuestra mediante el uso de HLS 4 ML para generar un acelerador a partir de un modelo de Keras preconstruido que se proporciona dentro del ESP para el repositorio GitHub de NXP. Luego, el acelerador generado se integra y se prueba en ESP mediante un script interactivo. El presentador enfatiza que los usuarios deben seguir las guías de requisitos previos y configurar su entorno antes de intentar seguir el tutorial. El tutorial también ofrece materiales preconstruidos que los usuarios pueden usar para experimentar sin tener que seguir todos los pasos.

  • 00:05:00 En esta sección del tutorial, el instructor explica cómo integrar el acelerador diseñado en los pasos anteriores en ESP (Early Stage Prototyper). Se asigna el ID hexadecimal de tres dígitos para el acelerador, teniendo en cuenta que el número no debe ser mayor a 1024 en decimal. A continuación, se define el ancho de bits de datos del acelerador, que es de 32 bits en el caso de uso actual, y se determinan los tamaños de los archivos de entrada y salida. Finalmente, el instructor demuestra la ejecución de síntesis de alto nivel para el acelerador de tres capas MLP y muestra cómo ejecutar HLS con ESP. Todos los pasos son los mismos que para otras guías para aceleradores del sistema C o C++, y la carpeta del proyecto HLS para MLP se agrega a ESP con todos los archivos necesarios para encapsular e interconectar el acelerador con el resto del sistema ESP.

  • 00:10:00 En esta sección del video, el orador demuestra los pasos para diseñar un acelerador en Keras/Pytorch/ONNX. Primero muestran cómo importar un acelerador y agregar un banco de pruebas que prueba automáticamente la simulación. Luego pasan por el paso HLS, que genera un proyecto que se ejecuta en una búsqueda de selector y la tecnología de FPGA. El RTL generado se coloca luego en la tecnología de la FPGA y se crean dos versiones del acelerador, una de 32 bits y otra de 64 bits. El orador configura un SOC con el comando ESP X config y muestra cómo compilar una aplicación bare metal que se ha generado automáticamente. Para simular la prueba de metal desnudo de un acelerador, se debe especificar el programa de prueba. Una vez que ha pasado la validación, se puede generar un flujo de bits FPGA.

  • 00:15:00 En esta sección, el tutorial en video recorre la compilación de Linux, que no solo compila los cínicos, sino que también compila las aplicaciones de prueba del espacio de usuario para los aceleradores. Una vez que finaliza Linux, se crea un ejecutable para el acelerador, que es la aplicación de espacio de usuario de Linux que se ejecutará en FPGA. Luego, el tutorial procede a programar el FPGA y ejecutar la prueba completa usando el comando make FPGA run. Para ejecutar la prueba unitaria completa del desacelerador, se especifica un programa de prueba que se generó anteriormente. Posteriormente se corrió Linux y se ejecutó la aplicación de prueba unitaria, la cual encontró exitosamente al vendedor Reiter y la prueba pasó con validación. El tutorial finaliza con algunos recursos para seguir aprendiendo.
ESP tutorial - How to: design an accelerator in Keras/Pytorch/ONNX
ESP tutorial - How to: design an accelerator in Keras/Pytorch/ONNX
  • 2020.03.20
  • www.youtube.com
Tutorial guide: https://www.esp.cs.columbia.edu/docs/hls4ml/(The video tutorial was not recorded with the latest version of the ESP repository. While watchin...
 

Inferencia óptima en hardware flexible con ONNX Runtime



Inferencia óptima en hardware flexible con ONNX Runtime

Este tutorial cubre la implementación de modelos en CPU, GPU y OpenVINO usando ONNX Runtime. El orador demuestra el uso de diferentes proveedores de ejecución, incluido OpenVINO, para la inferencia en hardware flexible. El código para la inferencia es principalmente el mismo en todos los entornos, siendo la principal diferencia el proveedor de ejecución. ONNX Runtime realiza inferencias más rápido que PyTorch en CPU y GPU, y existe una biblioteca de ONNX Runtime independiente para OpenVINO. En general, el tutorial proporciona una descripción general de cómo implementar modelos en varias opciones de hardware mediante ONNX Runtime.

  • 00:00:00 En esta sección, el orador recorre el proceso de configuración de entornos virtuales y el uso de ONNX Runtime para realizar inferencias en un modelo ResNet50 en CPU, GPU y OpenVINO. El orador señala que ONNX Runtime usará GPU si detecta un acelerador compatible; de lo contrario, usará CPU de forma predeterminada. El código para la inferencia es principalmente el mismo en los tres entornos, con la principal diferencia de cambiar el proveedor de ejecución. El orador demuestra que ONNX Runtime puede realizar inferencias más rápido que PyTorch en CPU y GPU, y señala que hay una biblioteca de ONNX Runtime separada para OpenVINO.

  • 00:05:00 En esta sección, el orador demuestra el uso de diferentes proveedores de ejecución como OpenVINO y OpenVino en la CPU para la inferencia en hardware flexible con ONNX Runtime. Al establecer el proveedor de ejecución en OpenVINO, el mismo código ofrece 30 ms y una utilización de la CPU de alrededor de 0,78. El tutorial brinda una descripción general de cómo implementar modelos en CPU, GPU y OpenVINO usando ONNX Runtime.
Optimal Inferencing on Flexible Hardware with ONNX Runtime
Optimal Inferencing on Flexible Hardware with ONNX Runtime
  • 2022.08.22
  • www.youtube.com
Check out this video and blog on how to inference ResNet with CPU, GPU or OpenVINO by our intern Kevin Huang!Blog: https://onnxruntime.ai/docs/tutorials/acce...
 

Inferencia de aprendizaje automático en Flink con ONNX



Inferencia de aprendizaje automático en Flink con ONNX

El video analiza los beneficios y la implementación del uso de ONNX en la inferencia de aprendizaje automático y su implementación en el marco de computación distribuida, Flink. La separación de preocupaciones entre el entrenamiento de modelos y la inferencia de producción, la capacidad de definir especificaciones para entradas y salidas y la independencia del idioma hacen de ONNX una herramienta valiosa para los científicos de datos. El video demuestra cómo cargar un modelo ONNX en Flink, proporciona componentes clave de la función de mapa enriquecido y explica cómo agrupar los modelos junto con el código mediante un archivo jar. El orador también aborda consideraciones como la administración de memoria, la optimización de lotes y la aceleración de hardware con ONNX, y enfatiza sus beneficios para la inferencia de aprendizaje automático en tiempo real en Flink.

  • 00:00:00 En esta sección del video, Colin Germain explica la importancia de la inferencia de aprendizaje automático en tiempo real usando un ejemplo de juguete del dominio de detección de ataques cibernéticos. Ilustra cómo esperar para detectar un incidente puede conducir a la pérdida de la filtración de datos importantes. Además, explica por qué el aprendizaje automático es vital para capturar la variación de diferentes tipos de técnicas y exploits utilizados por adversarios externos. Finalmente, enfatiza la importancia de escalar la solución utilizando computación distribuida en Flink. Colin presenta el modelo Onyx, que desempeña un papel fundamental en la solución, y explica cómo pueden usar un modelo de aprendizaje automático en PyTorch y serializarlo con Onyx para implementarlo en Flink.

  • 00:05:00 En esta sección, el orador explica los beneficios de usar ONNX, que significa Open Neural Network Exchange, en una canalización de aprendizaje automático. ONNX permite la separación de preocupaciones entre la fase de entrenamiento del modelo y la fase de inferencia de producción, lo que facilita que los científicos de datos desarrollen modelos en Python y luego usen el modelo ONNX con diferentes herramientas para la inferencia. ONNX proporciona un contrato que define el cálculo de un gráfico acíclico dirigido que se utilizará para el aprendizaje automático. Cada operador en el gráfico tiene una versión, lo que permite la compatibilidad con versiones anteriores y el servicio continuo en el futuro. El orador también señala los beneficios de empaquetar modelos ONNX con el marco de transmisión Apache Flink para facilitar la implementación.

  • 00:10:00 En esta sección del video, el orador analiza los beneficios de usar ONNX para la inferencia de aprendizaje automático, incluida la capacidad de definir especificaciones para entradas y salidas, y la compatibilidad con todas las versiones de modelos en la biblioteca de tiempo de ejecución de ONNX. La independencia del idioma de ONNX y la disponibilidad de convertidores para la mayoría de los marcos de ML facilitan la introducción de modelos en ONNX, y el orador sugiere usar netron para fines de diagnóstico. Finalmente, el orador presenta un ejemplo simple del uso de un modelo de antorcha pi con ONNX para el procesamiento de extremo a extremo sin capacitación.

  • 00:15:00 En esta sección, el orador analiza el método directo que se usa para definir el cálculo y cómo lo usa el torque alto para administrar la propagación hacia atrás de los gradientes para el entrenamiento. Se muestra un ejemplo básico del uso de la clase add offset, que compensa los tensores por un valor definido. Luego, el orador pasa a hablar sobre la exportación a ONNX y la importancia de proporcionar las entradas correctas para los modelos dinámicos. El modelo ONNX se carga en la memoria utilizando la sesión y el entorno de tiempo de ejecución ONNX de Scala, lo que permite realizar inferencias en el modelo. Se crea una clase para contener el modelo cargado para su uso en la inferencia.

  • 00:20:00 En esta sección, el orador explica cómo se puede cargar el modelo ONNX en Flink usando una matriz de bytes y un método de carga. También demuestran cómo se puede usar la función de mapa enriquecido para mantener el modelo cargado y realizar inferencias de una manera limpia y organizada. El orador repasa los componentes clave de la función de mapa enriquecido, incluida la configuración del tensor ONNX, la definición de las entradas y salidas y la ejecución de la sesión del modelo para obtener los resultados. Señalan que el código se puede modificar para admitir múltiples salidas, lo que lo convierte en una solución flexible para diferentes tipos de modelos. Finalmente, el orador toca el aspecto del empaque de los modelos ONNX, explicando cómo se pueden agrupar junto con el archivo jar que contiene el código, eliminando la necesidad de conectarse a puntos finales externos o descargar archivos de diferentes fuentes.

  • 00:25:00 En esta sección, el ponente analiza un ejemplo de inferencia de aprendizaje automático en Flink utilizando el problema clásico de clasificar dígitos escritos a mano, conocido como MNIST. Muestran el modelo PyTorch utilizado para clasificar las matrices de 28x28 píxeles y cómo se puede convertir en un gráfico ONNX para usar en Flink, utilizando el mismo enfoque de tamaño de lote que antes. Luego, el orador analiza otro ejemplo de aprendizaje automático que usa transformadores en NLP, específicamente una versión más pequeña de BERT, que ha sido entrenada previamente en un vocabulario de palabras. El modelo de transformador se usa para predecir opiniones, traducciones y otras tareas de palabras, y puede capacitarse aún más para nuevas tareas de predicción en Flink.

  • 00:30:00 En esta sección, el presentador muestra la biblioteca Hugging Face Transformers, que permite importar fácilmente modelos previamente entrenados y transferir el aprendizaje en Python. Si bien estos modelos tienden a ser grandes, la biblioteca incluye funciones de optimización y cuantificación para mejorar el rendimiento. Sin embargo, es importante tener en cuenta que las etapas de preprocesamiento, como la tokenización, aún no forman parte del gráfico y es posible que no se pueda acceder a ellas en Scala. El presentador también destaca los beneficios de aprovechar todas las capacidades del lenguaje Scala en Flink, al tiempo que separa las dependencias de capacitación de la inferencia de producción y desacopla las dos piezas de manera efectiva. En general, aunque existen algunas desventajas, como el tamaño del modelo y los desafíos de preprocesamiento, el método ofrece ventajas en términos de aprovechar las capacidades de Flink e implementar en un archivo JAR.

  • 00:35:00 En esta sección, el orador señala que al usar la inferencia de aprendizaje automático en Flink con ONNX, hay algunas consideraciones importantes que se deben tener en cuenta. Una es la gestión cuidadosa de la memoria cuando se trata de modelos grandes, como modelos de transformadores que pueden ocupar cientos de megabytes. Además, la optimización por lotes y la aceleración de hardware, como el uso de GPU, pueden afectar el rendimiento. El procesamiento previo se puede realizar con gráficos ONNX personalizados, pero esto requiere trabajo adicional y no es tan fácil como se mostró anteriormente. El orador enfatiza que ONNX permite el aprendizaje automático en tiempo real en Flink y separa muy bien el código de entrenamiento de Python del código de producción de Scala, lo que puede ser una ventaja para los científicos de datos. El orador también aborda preguntas sobre el uso de ONNX con modelos basados en TensorFlow y por qué se eligió ONNX en lugar de la API de Java, PyTorch o TensorFlow.

  • 00:40:00 En esta sección, el orador habla sobre ONNX como un esquema independiente del marco para el gráfico que también es independiente del lenguaje. El orador mencionó que una de las propiedades interesantes de usar ONNX es que si uno usa PyTorch y quiere cambiar a TensorFlow, puede usar ONNX como un "vehículo" para ir entre los dos marcos, lo que muestra la flexibilidad del marco. El público preguntó si el ponente había experimentado con modelos TensorFlow con el proyecto Scala de TensorFlow, a lo que respondió negativamente. Por último, el orador invita a la audiencia a visitar el repositorio ONNX, crear un problema en GitHub o comunicarse con él en LinkedIn si tiene preguntas, especialmente sobre contratación.
Machine Learning Inference in Flink with ONNX
Machine Learning Inference in Flink with ONNX
  • 2021.05.20
  • www.youtube.com
What is the best way to run inference on a machine learning model in your streaming application? We will unpack this question, and explore the ways to levera...
 

Mejorando la experiencia de compra en línea con ONNX



Mejorando la experiencia de compra en línea con ONNX

Este video analiza cómo las empresas de comercio electrónico utilizan la IA para crear conocimientos impactantes que diferencian las ganancias y las pérdidas en el espacio minorista en línea. El orador brinda un ejemplo de Bazaar Voice, la red más grande de marcas y minoristas que proporciona más de 8 mil millones de reseñas en total, y cómo utilizan la coincidencia de productos para compartir reseñas. Luego, el orador describe cómo desarrollaron un modelo de aprendizaje automático en Python, lo exportaron al formato ONNX y lo implementaron en una función sin servidor utilizando un entorno de nodo para ejecutar la inferencia en un tiempo de ejecución ONNX. Esta solución permite la coincidencia de alta velocidad de cientos de millones de productos en miles de catálogos de clientes al mismo tiempo que mantiene costos bajos, lo que genera ahorros significativos en costos y millones de reseñas adicionales para marcas y minoristas. El orador concluye invitando a los espectadores a explorar más formas de usar las capacidades de ONNX y compartir sus casos de uso para futuros avances tecnológicos.

  • 00:00:00 En esta sección, aprendemos que la digitalización del comercio ha llevado a las empresas de comercio electrónico a poseer la escala de datos que recopilan y usan IA para crear conocimientos impactantes como el diferenciador entre ganar y perder en el espacio minorista en línea. Un ejemplo es de mil millones de compradores al mes para Bazaar Voice, la red de marcas y minoristas más grande del mundo que proporciona más de 8 mil millones de reseñas en total, y cómo compartir reseñas se basa en la coincidencia de productos. La comparación de productos, la función central del modelo de aprendizaje automático creado, se realiza comparando identificadores únicos, pero cada mes se realizan manualmente más de un millón de coincidencias de productos. La solución es un modelo scikit-learn construido con Python y exportado a formato ONNX, habiendo implementado la solución más liviana y rentable mientras mantiene el rendimiento.

  • 00:05:00 En esta sección, el disertante analiza varias opciones para implementar modelos de aprendizaje automático para una experiencia de compra en línea y concluye que las funciones sin servidor son la mejor opción debido a su bajo costo y fácil implementación. Luego explican cómo desarrollaron un modelo en Python, lo exportaron a formato ONNX y lo implementaron en una función sin servidor utilizando un entorno de nodo para ejecutar la inferencia en un tiempo de ejecución de ONNX. La modularidad de esta solución permite que se conecte fácilmente a cualquier servicio y, mediante el uso de métricas como la memoria utilizada y el tiempo de ejecución, pudieron encontrar el tamaño de memoria óptimo para garantizar el mejor rendimiento y mantener los costos bajos. Si bien se tienen en cuenta los límites de tamaño de implementación y el trabajo dentro de los límites de tiempo de espera, la potencia de ONNX y el tiempo de ejecución de ONNX en combinación con las funciones sin servidor permitieron la coincidencia de alta velocidad de cientos de millones de productos en miles de catálogos de clientes, lo que resultó en ahorros de costos significativos y 15 millones. revisiones adicionales para marcas y minoristas.

  • 00:10:00 En esta sección, el orador concluye el video invitando a los espectadores a explorar más formas de usar las capacidades de ONNX y compartir sus casos de uso. Como alguien que trabaja activamente en este espacio, el orador está intrigado y obligado por dónde nos pueden llevar estas tecnologías en el futuro.
Improving the online shopping experience with ONNX
Improving the online shopping experience with ONNX
  • 2022.07.13
  • www.youtube.com
Building and deploying AI solutions to the cloud at scale is complex. With massive datasets and performance considerations - finding a harmonious balance is ...
 

DSS online #4: Implementación de aprendizaje profundo de extremo a extremo con ONNX


DSS online #4: Implementación de aprendizaje profundo de extremo a extremo con ONNX

Este video analiza los desafíos de la implementación de aprendizaje profundo de un extremo a otro, incluida la administración de diferentes lenguajes, marcos, dependencias y la variabilidad del rendimiento, así como la fricción entre los equipos y los bloqueos de formato propietario. El Open Neural Network Exchange (ONNX) se presenta como un formato basado en búfer de protocolo para la serialización de aprendizaje profundo. Es compatible con los principales marcos de aprendizaje profundo y proporciona un artefacto autónomo para ejecutar el modelo. ONNX ML también se analiza como parte de la especificación ONNX que brinda soporte para el procesamiento previo de aprendizaje automático tradicional. Se reconocen las limitaciones de ONNX, pero se lo considera un proyecto de rápido crecimiento con un fuerte apoyo de grandes organizaciones que ofrece verdadera portabilidad en diferentes dimensiones de lenguajes, marcos, tiempos de ejecución y versiones.

  • 00:00:00 En esta sección, Nick Pentreath, ingeniero principal de IBM, presenta la implementación de aprendizaje profundo de extremo a extremo con Open Neural Network Exchange. Hay muchos pasos en el flujo de trabajo del aprendizaje automático, incluido el análisis de datos, su preprocesamiento para modelos, el entrenamiento del modelo, su implementación en aplicaciones del mundo real y su mantenimiento y supervisión. Pentreath analiza cómo el flujo de trabajo abarca diferentes equipos y herramientas, lo que hace que sea esencial tener una infraestructura al servicio del modelo.

  • 00:05:00 En esta sección, el orador analiza las tres preguntas que son cruciales para la implementación del aprendizaje automático: qué estamos implementando, dónde estamos implementando y cómo lo estamos implementando. La implementación de un modelo de aprendizaje automático implica la incorporación de todo el conjunto de pasos que preceden al modelo entrenado, incluidas las transformaciones, la extracción de características y el preprocesamiento. Es imperativo aplicar los mismos pasos de preprocesamiento en el entorno en vivo que los utilizados durante el entrenamiento, ya que cualquier diferencia puede generar sesgos en los datos que pueden tener resultados catastróficos. El orador señala que incluso el aprendizaje profundo aún necesita un preprocesamiento cuidadoso y una ingeniería de funciones, y destaca los desafíos que conlleva la estandarización del preprocesamiento. Estos desafíos incluyen diferentes diseños de datos y modos de color entre diferentes marcos que pueden tener impactos sutiles pero significativos en las predicciones.

  • 00:10:00 En esta sección, el video analiza los desafíos cuando se trata de implementar una canalización de aprendizaje profundo de un extremo a otro, incluida la gestión y el puente entre diferentes lenguajes, marcos, dependencias y la variabilidad del rendimiento, así como la fricción entre los equipos. , la falta de estandarización entre los marcos de código abierto y los bloqueos de formato propietario. Si bien la implementación basada en contenedores brinda beneficios significativos, aún requiere algún tipo de marco de servicio en la parte superior y no resuelve el problema de la estandarización. Es por eso que el video sugiere el uso de estándares abiertos para exportar modelos de diferentes marcos a un formato estandarizado, lo que proporciona una separación de preocupaciones entre el productor del modelo y el consumidor del modelo, lo que les permite concentrarse en sus respectivas tareas sin preocuparse por los problemas de implementación o dónde está el modelo de procedencia.

  • 00:15:00 En esta sección, el orador analiza la importancia del código abierto y los estándares abiertos en la implementación del aprendizaje profundo. Explican los beneficios de tener una sola pila y un conjunto estandarizado de herramientas para el análisis y la visualización, y destacan el papel fundamental de la gobernanza abierta para brindar visibilidad y evitar la concentración del control. Luego, el orador presenta el intercambio de red neuronal abierta (ONNX), un formato basado en búfer de protocolo para definir la serialización de modelos de aprendizaje automático con un enfoque en el aprendizaje profundo. ONNX es compatible con los principales marcos de aprendizaje profundo, como PyTorch, Caffe, TensorFlow, Keras, Apple Core ML y MXNet, y proporciona un artefacto autónomo para ejecutar el modelo.

  • 00:20:00 En esta sección, el orador analiza cómo ONNX ML (Machine Learning) es una parte de la especificación ONNX que brinda soporte para el procesamiento previo de aprendizaje automático tradicional, junto con tipos adicionales como secuencias y mapas. ONNX abarca una amplia comunidad y un ecosistema de exportadores que están escritos para varios marcos tradicionales de aprendizaje automático, así como modelos como modelos lineales, conjuntos de árboles y aumento de gradiente. Para representar todo esto, ONNX actúa como un estándar que se encuentra entre los productores y consumidores modelo. El zoológico de modelos ONNX contiene un conjunto de modelos estándar y ampliamente utilizados en diferentes dominios, incluidos el análisis de imágenes, la clasificación, la segmentación y el procesamiento del lenguaje natural, todos representados en formatos ONNX. El tiempo de ejecución de ONNX, un proyecto de código abierto de Microsoft, es un tiempo de ejecución totalmente compatible que admite tanto el aprendizaje profundo central como los operadores de aprendizaje automático de ONNX.

  • 00:25:00 En esta sección, el orador analiza las limitaciones de ONNX, particularmente en términos de ciertas características que faltan, como el procesamiento de imágenes, el procesamiento avanzado de cadenas y los modelos de agrupamiento de hash. Además, existen desafíos cuando se trata de exportar canalizaciones híbridas desde marcos como Spark ML, y esto requiere un poco de código personalizado. Sin embargo, ONNX es un proyecto activo que está creciendo rápidamente y cuenta con un fuerte apoyo de grandes organizaciones. Ofrece verdadera portabilidad en diferentes dimensiones de lenguajes, marcos, tiempos de ejecución y versiones, lo que resuelve un problema importante para la implementación de canalizaciones de aprendizaje profundo de manera abierta y portátil. ONNX es código abierto y gobierno abierto, por lo que cualquiera puede participar.
DSS online #4 : End-to-End Deep Learning Deployment with ONNX
DSS online #4 : End-to-End Deep Learning Deployment with ONNX
  • 2020.10.29
  • www.youtube.com
End-to-End Deep Learning Deployment with ONNXA deep learning model is often viewed as fully self-contained, freeing practitioners from the burden of data pro...
 

ONNX y ONNX Runtime con Vinitra Swamy y Pranav Sharma de Microsoft



ONNX y ONNX Runtime con Vinitra Swamy y Pranav Sharma de Microsoft

El video analiza el formato Open Neural Network Exchange (ONNX), creado para hacer que los modelos sean interoperables y eficientes en la serialización y el control de versiones. ONNX consta de una capa de representación intermedia, especificaciones del operador y admite diferentes tipos de datos. ONNX Runtime, implementado en C++ y ensamblador, ofrece compatibilidad con versiones anteriores y es extensible a través de proveedores de ejecución, operadores personalizados y optimizadores de gráficos. La API ofrece soporte para plataformas, lenguajes de programación y proveedores de ejecución. Los usuarios pueden crear sesiones, optimizar modelos y serializarlos para uso futuro. Los altavoces brindan una demostración de la versatilidad y eficiencia de ONNX Runtime, con la capacidad de ejecutarse en dispositivos Android.

  • 00:00:00 En esta sección, Venetra del equipo de ingeniería de ONNX presenta ONNX, Open Neural Network Exchange, que es un estándar interoperable para modelos de IA. Ella explica que Microsoft ha integrado el aprendizaje automático en casi todos los aspectos de su conjunto de productos, desde HoloLens hasta Xbox y Skype, lo que ha llevado a varios desafíos de implementación a escala. ONNX se creó para optimizar la inferencia eficiente al estandarizar el proceso de implementación del modelo para diferentes marcos y objetivos de implementación. El objetivo es admitir modelos de muchos marcos mediante la implementación de un estándar y brindar una experiencia uniforme para todos los usuarios, ya sean científicos de datos, prestamistas de hardware, autores de servicios o ingenieros de aprendizaje automático.

  • 00:05:00 En esta sección, Vinitra Swamy y Pranav Sharma hablan sobre ONNX, un consorcio de socios fundadores que incluye a Microsoft, Facebook, Amazon, NVIDIA e Intel, entre otros. ONNX consiste en una capa de representación intermedia y una especificación de operador completa que define los operadores de manera estándar a pesar de los diferentes conjuntos de operadores que tiene cada marco. El código para convertir modelos a ONNX no es largo y la conversión podría ahorrar mucho a los usuarios en términos de inferencia e interoperabilidad. Además, ONNX tiene principios de diseño que permiten la interoperabilidad tanto para el aprendizaje profundo como para los modelos de aprendizaje automático. Los usuarios pueden comenzar con ONNX yendo al zoológico de modelos ONNX, servicios de creación de modelos o convertidores.

  • La sección 00:10:00 analiza los componentes y el diseño de ONNX, un formato de modelo creado para que sea interoperable y compatible con versiones anteriores, al tiempo que admite una serialización y un control de versiones eficientes. El formato consta de un modelo, un gráfico computacional con nodos y una especificación de operador. Los tipos de datos admitidos incluyen los tipos de tensor estándar y dos tipos de no tensor, secuencias y mapas. Las especificaciones del operador incluyen entradas, salidas, restricciones y ejemplos. Se proporciona un ejemplo de una especificación de operador para el operador relu.

  • 00:15:00 En esta sección del video, Vinitra Swamy y Pranav Sharma analizan las diferentes versiones y operadores compatibles con el formato Open Neural Network Exchange (ONNX). Explican que ONNX tiene más de 156 operaciones de especificaciones de aprendizaje profundo y 18 operaciones de aprendizaje automático tradicionales que son interoperables entre los diferentes operadores. Además, los usuarios pueden crear operaciones personalizadas para sus modelos utilizando el marco ONNX. También destacan la importancia del control de versiones, que se realiza en tres niveles diferentes: capa de representación intermedia, compensaciones y operadores individuales. Finalmente, analizan ONNX Runtime, que es un motor de inferencia de código abierto y alto rendimiento para ONNX. Es multiplataforma y está diseñado para ser compatible con versiones anteriores, lo que lo hace adecuado para su implementación en entornos de producción.

  • 00:20:00 En esta sección, la atención se centra en la arquitectura de ONNX Runtime y cómo se ejecuta un modelo dentro de ella. La compatibilidad con versiones anteriores y el rendimiento fueron preocupaciones clave para ONNX Runtime, que se implementa en C++ y algunas partes en ensamblador. ONNX Runtime tiene soporte para aceleradores de hardware mediante el uso de algo llamado "proveedores de ejecución". El algoritmo de partición permite que el modelo se ejecute en una etapa de ejecución híbrida, y los proveedores de ejecución individuales pueden optimizar los subgráficos aún más para un mejor rendimiento. Finalmente, ONNX Runtime actúa como un intérprete que pasa por todos los nodos del gráfico para ejecutar el modelo.

  • 00:25:00 En esta sección, los disertantes discuten los modos de ejecución en ONNX y ONNX Runtime, que son secuenciales y paralelos. Los usuarios pueden controlar la cantidad de subprocesos que desean configurar para cada modo de ejecución y los resultados se envían a través de la API. Los oradores señalan que es posible que diferentes dispositivos no compartan la misma memoria, por lo que los nodos de copia de memoria se insertan en función de las optimizaciones realizadas. También hablan sobre el proceso de partición de gráficos, donde los usuarios deben especificar una lista priorizada de proveedores de ejecución donde se debe ejecutar el gráfico. Sin embargo, en la próxima versión, habrá una nueva fase llamada particionamiento inteligente, donde ONNX descubrirá la mejor manera de colocar el gráfico y cómo ejecutarlo de manera eficiente. Los oradores también abordan los proveedores de ejecución, que son abstracciones de software sobre aceleradores de hardware. Hay dos tipos de proveedores de ejecución basados en kernel y en tiempo de ejecución, y el último es una caja negra donde el proveedor de ejecución ejecuta partes del gráfico por nosotros.

  • 00:30:00 En esta sección, los oradores discuten los principios de diseño de ONNX Runtime, enfatizando su extensibilidad a través de opciones como proveedores de ejecución, operadores personalizados y optimizadores de gráficos. También proporcionan una matriz de plataformas compatibles, lenguajes de programación y proveedores de ejecución, incluidos Tensor RT, Direct ML y OpenVINO. Los oradores explican las construcciones de alto nivel de una sesión y la forma segura de crear el objeto de sesión antes de llamar a la función de ejecución. También analizan cómo el tiempo que lleva optimizar un modelo depende del tamaño del modelo y sus oportunidades de optimización.

  • 00:35:00 En esta sección, los oradores discuten la creación de sesiones y el uso de opciones de ejecución y opciones de sesión, con la capacidad de serializar el modelo optimizado para uso futuro. También explican el proceso de registro de operadores personalizados, con la opción de usar Python para aquellos que prefieran no usar C#. Se lanzó la versión ONNX Runtime 1.0, lo que garantiza que no se romperán las API en el futuro, con
    compatibilidad que se remonta a CentOS 7.6. También se analiza la herramienta ONNX Go Live, una herramienta de código abierto para convertir y ajustar modelos para un rendimiento óptimo. La sección concluye con ejemplos de servicios de Microsoft que utilizan ONNX, incluida una ganancia de rendimiento de 14 veces en el modelo de determinante faltante de Office y una ganancia de rendimiento de 3 veces en el modelo de reconocimiento óptico de caracteres utilizado en los servicios cognitivos.

  • 00:40:00 En esta sección, los oradores analizan la API de tiempo de ejecución de ONNX, que se encuentra en modo de vista previa y permite ejecutar el tiempo de ejecución de ONNX en dispositivos Android. También mencionan el soporte de capacitación, que actualmente es exploratorio y tiene como objetivo ver si el tiempo de ejecución de ONNX se puede usar para ajustar modelos ya creados. Luego, los oradores hacen una demostración del uso del tiempo de ejecución de ONNX en un modelo de detección de objetos YOLOv3, mostrando que el tiempo de ejecución de ONNX es versátil, eficiente y útil para los casos que requieren un buen rendimiento o necesitan admitir un modelo en diferentes marcos.

  • 00:45:00 En esta sección del video, los presentadores demuestran ONNX Runtime identificando imágenes y sus respectivas clases con un modelo grande y complicado. También muestran una demostración rápida de Onnx Ecosystem Converter, que permite a los usuarios cargar y convertir modelos de diferentes marcos en Jupyter Notebook. Convierten un modelo de clasificación de documentos de CoreML, el marco de aprendizaje automático de Apple, a ONNX y validan su precisión. Señalan que es un costo único convertir un modelo a ONNX y es un proceso eficiente.

  • 00:50:00 En esta sección, los oradores resumen lo que han cubierto en el video, incluidos los beneficios de usar ONNX y ONNX Runtime, las diversas formas de convertir diferentes marcos a ONNX y la creciente adopción de ONNX en sus 26 compañías. Agradecen a su audiencia por escuchar y expresan su entusiasmo por continuar con la sesión de preguntas y respuestas.
ONNX and ONNX Runtime with Microsoft's Vinitra Swamy and Pranav Sharma_1
ONNX and ONNX Runtime with Microsoft's Vinitra Swamy and Pranav Sharma_1
  • 2020.07.30
  • www.youtube.com
Microsoft hosted an AI enthusiast’s meetup group in San Francisco in November 2019 focused on accelerating and optimizing machine learning models with ONNX a...
 

Jan-Benedikt Jagusch Christian Bourjau: hacer que las aplicaciones de aprendizaje automático sean rápidas y sencillas con ONNX



Jan-Benedikt Jagusch Christian Bourjau: hacer que las aplicaciones de aprendizaje automático sean rápidas y sencillas con ONNX

En este video sobre el aprendizaje automático y la implementación, los oradores analizan los desafíos de poner modelos en producción, en particular, la dificultad de decapar e implementar modelos. Presentan ONNX, un formato de archivo universal para exportar modelos de aprendizaje automático, y explican cómo puede ayudar a desvincular el entrenamiento y la inferencia, haciendo que la implementación sea más rápida y eficiente. Proporcionan una demostración en vivo usando scikit-learn, que explica cómo convertir una canalización de aprendizaje automático al formato ONNX. También analizan las limitaciones de los contenedores Docker para implementar modelos de aprendizaje automático y destacan los beneficios de usar ONNX en su lugar. Tocan el tema del cifrado de modelos para mayor seguridad y abordan el problema de usabilidad de ONNX, que aún es un ecosistema joven con algunos mensajes de error crípticos.

  • 00:00:00 En esta sección del video, los presentadores analizan la importancia de desvincular el entrenamiento de modelos de la inferencia mediante ONNX. Los presentadores señalan que el 55 % de las empresas que comenzaron con el aprendizaje automático no lograron poner sus modelos en producción, y argumentan que la automatización de los procesos comerciales mediante la puesta en producción de modelos es donde radica la mayor parte del valor. Sin embargo, también señalan que implementar modelos es más complicado de lo que parece inicialmente, por lo que discutirán cómo ONNX puede ayudar a superar este desafío. También recorren el proceso de cómo un proyecto de aprendizaje automático normalmente comienza, se desarrolla y luego colisiona con los requisitos de implementación.

  • 00:05:00 En esta sección, los oradores discuten los desafíos de poner en producción modelos de aprendizaje automático, centrándose específicamente en las dificultades de decapado e implementación del modelo. Exploran los problemas que surgen al usar un paquete sin terminar, como un pickle, para transferir el modelo, y cómo se deben instalar los entornos y las dependencias correctos para cargar correctamente el modelo en producción. También abordan el problema de que los modelos son demasiado lentos para su uso en producción, lo que genera cambios y optimizaciones en el modelo. Finalmente, discuten la necesidad de un formato de archivo universal para exportar el modelo, lo que facilita el uso de cualquier tiempo de ejecución para la implementación.

  • 00:10:00 En esta sección, los oradores discuten el concepto de desacoplar el entrenamiento del tiempo de predicción utilizando herramientas de entrenamiento para exportar un modelo de aprendizaje automático a un formato de archivo universal, como ONNX, para liberar las herramientas utilizadas para la implementación. . Explican que ONNX es "la forma estandarizada de describir su modelo completo, incluida su ingeniería de características y almacenarlo en un formato binario". También señalan que ONNX es una buena opción para aquellos con diferentes tipos de modelos de aprendizaje automático, no solo redes neuronales. Sin embargo, enfatizan que para usar ONNX, un modelo de aprendizaje automático debe describirse como un gráfico computacional con nodos que son operadores y bordes que son datos que fluyen a través del gráfico, y que ONNX está fuertemente tipado con información de tipo y forma.

  • 00:15:00 En esta sección, los oradores discuten las especificaciones de ONNX, que define un conjunto de operadores que deben usarse para garantizar la compatibilidad con el formato. En el momento de esta charla, había 175 operadores, incluidos los más complicados, como regresores lineales y verdaderos regresores de conjunto. ONNX también especifica los datos necesarios para almacenar cada operador, lo que hace que todo el archivo sea autónomo sin necesidad de otras dependencias. Los oradores enfatizan que cualquier cosa representable en un gráfico acíclico dirigido se puede convertir a ONNX, no solo a modelos de aprendizaje automático. Además, toda la canalización se puede convertir a ONNX, siempre que cada paso se pueda representar como su propio gráfico acíclico dirigido.

  • 00:20:00 En esta sección, los oradores demuestran cómo crear un imputador simple y un regresor mediante operaciones numéricas, que se pueden definir fácilmente como un gráfico de operadores de ónix. Al reemplazar cada nodo en el gráfico de scikit-learn con un gráfico en sí mismo, scikit-learn se puede convertir a un formato onix. Si bien los marcos de aprendizaje automático establecidos como PyTorch, TensorFlow, Light GBM y XGBoost ya tienen convertidores disponibles, los convertidores personalizados deben escribirse para estimadores y transformadores personalizados. Sin embargo, la curva de aprendizaje es empinada pero factible, y es crucial que el código personalizado encaje en un mazo. Los oradores también brindan una demostración en vivo utilizando datos de capacitación y una canalización de scikit-learn, que luego se convierte a un formato onix.

  • 00:25:00 En esta sección, Jan-Benedikt Jagusch y Christian Bourjau explican que ONNX está fuertemente tipado y requiere información inicial de los datos que se proporcionan. Para simplificar este proceso, convierten fácilmente los tipos de un marco de datos de pandas asignando tipos de datos de pandas a tipos de datos ONNX. Luego, el modelo ONNX es completamente autónomo, extraído de la lógica de predicción de la canalización. El equipo de ingeniería de datos solo necesita volcar esto en un archivo y usar el tiempo de ejecución de ONNX para analizar los datos, que es la única dependencia, independientemente del modelo de datos que se serialice desde TensorFlow, Python u otro lugar. El tiempo de ejecución de ONNX proporciona enlaces de Python que mejoran la velocidad de predicción hasta un factor de diez. La velocidad de predicción de una sola fila también es una prioridad, ya que es esencial en entornos en línea, tardando solo 170 milisegundos, que es similar a Scikit-learn.

  • 00:30:00 En esta sección, los oradores analizan los beneficios de usar onyx para desvincular el entorno de capacitación del entorno de implementación. Explican que al exportar modelos al formato de archivo universal de ONNX, los usuarios pueden interpretar sus modelos utilizando un tiempo de ejecución que proporciona las características de rendimiento necesarias para la implementación en el mundo real. Los ponentes también abordan una pregunta sobre el uso de contenedores Docker, destacando las limitaciones en términos de escalabilidad y flexibilidad. Recomiendan buscar onyx por su capacidad para proporcionar rendimiento y flexibilidad, con el potencial de archivar modelos además de mejorar la implementación.

  • 00:35:00 En esta sección, los oradores analizan las limitaciones de usar Docker para implementar modelos de aprendizaje automático y destacan los beneficios de serializar modelos en ONNX. Si bien Docker puede funcionar para proporcionar una API REST y, en ciertos casos, el artefacto producido incluye muchas capas, lo que dificulta la carga de la formulación matemática del modelo. Por otro lado, la serialización del modelo en ONNX proporciona una esencia pura del modelo que es legible por humanos y fácil de cargar. Los oradores advierten que, si bien ONNX tiene muchos beneficios, no es una solución perfecta para todos los casos de uso y requiere algunos gastos generales para convertir estimadores y transformadores personalizados. Además, el ecosistema aún es relativamente nuevo y es posible que los usuarios deban dedicar tiempo a solucionar problemas o leer problemas de GitHub. Finalmente, los disertantes mencionan brevemente la posibilidad de implementar modelos ONNX en GPU, lo cual es técnicamente posible con el tiempo de ejecución predeterminado de ONNX.

  • 00:40:00 En esta sección, los ponentes analizan la posibilidad de cifrar los modelos ONNX para protegerlos contra el uso no deseado o la ingeniería inversa. Mencionan que si bien es posible leer los coeficientes del modelo, si es complejo, se vuelve difícil ya que ONNX no conserva la información del operador y de la tubería. ONNX proporciona seguridad por ofuscación hasta cierto punto, pero no está encriptada. Sin embargo, mencionan que es posible compilar el archivo en código de máquina para ofuscación y mayor seguridad. Los oradores también abordan el problema de colocar pasos de preprocesamiento que tienen E/S en la base de datos, lo que requeriría que todos los datos estén en la base de datos para el instanciador dentro del gráfico ONNX. Por último, discuten el problema de la usabilidad de Onyx, ya que los mensajes de error pueden ser crípticos, pero son optimistas de que el ecosistema mejorará, dada su corta edad y el respaldo corporativo.
Jan-Benedikt Jagusch Christian Bourjau: Making Machine Learning Applications Fast and Simple with...
Jan-Benedikt Jagusch Christian Bourjau: Making Machine Learning Applications Fast and Simple with...
  • 2022.05.12
  • www.youtube.com
Speaker:: Jan-Benedikt Jagusch Christian BourjauTrack: General: ProductionTaking trained machine learning models from inside a Jupyter notebook and deploying...
 

ONNX Runtime Azure EP para inferencia híbrida en el perímetro y la nube



ONNX Runtime Azure EP para inferencia híbrida en el perímetro y la nube

El equipo de ONNX Runtime ha lanzado su primer paso hacia el mundo híbrido que permite a los desarrolladores usar una única API para la computación perimetral y en la nube con Azure EP, que elimina los problemas de conectividad de los dispositivos y permite a los desarrolladores cambiar al modelo de nube que han optimizado. , ahorrando costes y reduciendo la latencia. Esta nueva función permite a los desarrolladores actualizar la lógica de la aplicación y elegir qué camino tomar a través de Azure EP, lo que ofrece más capacidad y potencia. El equipo demuestra la implementación de servidores para niños y modelos de detección de objetos, además de cómo probar el punto final y configurar Onnx Runtime Azure de manera sencilla. Los presentadores también analizan la capacidad de cambiar entre el procesamiento local y remoto y los posibles casos de uso, incluidos los modelos de menor rendimiento frente a los de mayor rendimiento. ONNX Runtime Azure EP se puede precargar y configurar fácilmente con los paquetes necesarios para la implementación, lo que contribuye a la facilidad de uso del software.

  • 00:00:00 En esta sección, Azure EP se presenta como el primer paso del equipo de tiempo de ejecución de ONNX en el mundo híbrido que permite a los desarrolladores usar una única API para la computación perimetral y en la nube. Al hacerlo, los desarrolladores no tendrán que preocuparse por la conectividad del dispositivo y podrán cambiar al modelo de nube que han optimizado y están usando allí, ahorrando costos y latencia. Esta nueva característica permite a los desarrolladores actualizar la lógica de la aplicación y elegir qué camino tomar a través de Azure EP, lo que les brinda más capacidad y poder. En general, el equipo de tiempo de ejecución de ONNX está emocionado de ver lo que viene de la comunidad de desarrolladores y cómo se implementa esta nueva función.

  • 00:05:00 En esta sección, Randy Schrey, colaborador de la nueva versión 1.14 de ONNX Runtime (ORT), demuestra algunas de las características interesantes que vienen con la versión. Primero, muestra un punto de conexión llamado Azure Machine Learning, que sirve como servidor para los modelos. También analiza el servidor Triton que se utiliza para proporcionar terminales, dividido por Nvidia, y su impresionante rendimiento y estabilidad. Schrey muestra cómo implementar un servidor para niños y brinda una descripción general de cómo se ve, incluida la especificación del nombre, la versión y la ubicación del modelo. También destaca la estructura de carpetas que se debe seguir al implementar un servidor Triton y muestra el archivo de configuración que describe cómo el modelo obtiene la entrada y la salida.

  • 00:10:00 En esta sección, el orador analiza la estructura de su carpeta para implementar modelos de detección de objetos y explica cómo el servidor Triton puede encontrar el modelo para la implementación. También responden una pregunta sobre el consumo de modelos servidos en Azure y mencionan las limitaciones actuales de Trtis sobre Azure, indicando que solo admite el servidor Triton como su lado del servidor. Luego, el orador analiza la prueba del punto final, el proceso para instalar Onnx Runtime Azure de manera simple y cómo pueden usar Onnx Runtime Azure para la inferencia híbrida en Edge y la nube para trabajar con el punto final en línea desde el lado del cliente. El orador proporciona un script y explica algunas de las configuraciones necesarias para cargar y consumir un modelo mediante Onnx Runtime Azure.

  • 00:15:00 En esta sección, los presentadores demuestran cómo usar ONNX Runtime Azure EP para la inferencia híbrida en el perímetro y la nube. Muestran cómo configurar la clave de autenticación y ejecutar la inferencia, con la capacidad de cambiar entre procesamiento local y remoto cambiando un solo parámetro en el código. Analizan posibles casos de uso, como elegir entre modelos de menor y mayor rendimiento, y señalan que, si bien la versión preliminar actual requiere el servidor de inferencia Triton, el plan es admitir todos los tipos de servidores de implementación en el futuro.

  • 00:20:00 En esta sección, se explica que ONNX Runtime Azure EP se puede precargar y configurar fácilmente con los paquetes necesarios para la implementación. Esta característica contribuye a la facilidad de implementación y uso del software.
ONNX Runtime Azure EP for Hybrid Inferencing on Edge and Cloud
ONNX Runtime Azure EP for Hybrid Inferencing on Edge and Cloud
  • 2023.02.14
  • www.youtube.com
0:00 What is Azure EP?5:00 How to Setup a Triton Inference Server Managed Endpoint in Azure12:45 Installing the ONNX Runtime Azure EP Package13:35 Using the ...
 

INT8 Inferencia de modelos entrenados con reconocimiento de cuantización utilizando ONNX-TensorRT




INT8 Inferencia de modelos entrenados con reconocimiento de cuantización utilizando ONNX-TensorRT

Dheeraj Peri, ingeniero de software de aprendizaje profundo de NVIDIA, explica los conceptos básicos de la cuantificación y cómo TensorRT admite redes cuantificadas a través de varias fusiones. Se centran en los modelos entrenados con el marco TensorFlow 2.0 y cómo realizar la cuantificación posterior al entrenamiento (PTQ) y el entrenamiento consciente de la cuantificación (QAT). Se explica el proceso de implementación de un modelo entrenado con el kit de herramientas de cuantificación Nvidia TF2 con ONNX-TensorRT, y se presentan los resultados de precisión y latencia para varios modelos de ResNet. En general, se demuestra el flujo de trabajo de QAT de extremo a extremo desde TensorFlow hasta la implementación de TensorRT a través de ONNX-TensorRT.

  • 00:00:00 En esta sección, Dheeraj, ingeniero de software de aprendizaje profundo de NVIDIA, analiza los conceptos básicos de la cuantificación y cómo TensorRT admite redes cuantificadas a través de varias fusiones. Explica que la cuantización es el proceso de convertir valores continuos en un conjunto discreto de valores utilizando técnicas de escalado lineales o no lineales. Se centran en los modelos que se entrenan con el marco TensorFlow 2.0 y cómo realizar la cuantificación posterior al entrenamiento (PTQ) y el entrenamiento consciente de la cuantificación (QAT). Dhiraj también destaca las diferencias entre el kit de herramientas de cuantización de NVIDIA y el kit de herramientas de modificación TF, donde los nodos se colocan de manera diferente en las capas de convolución.

  • 00:05:00 En esta sección, se explica el proceso de implementación de un modelo entrenado con el kit de herramientas de cuantificación Nvidia TF2 con ONNX-TensorRT. El proceso consiste en cuantificar el modelo TensorFlow 2.0 preentrenado con el kit de herramientas de Nvidia, ajustarlo para una pequeña cantidad de épocas para simular el proceso de cuantificación y luego convertir el modelo a un formato ONNX. Luego, el gráfico ONNX se usa para generar el motor TensorRT usando la API de TensorRT. Se presentan los resultados de precisión y latencia para varios modelos ResNet y se observa que los modelos entrenados en cuantificación (QAT) muestran una mejor precisión que los modelos de cuantificación posterior al entrenamiento (PTQ) durante la inferencia. Los modelos QAT muestran una latencia similar a la de los modelos PTQ, pero depende de la ubicación de los nodos QDQ y sus fusiones. En general, se demuestra el flujo de trabajo de QAT de extremo a extremo desde TensorFlow hasta la implementación de TensorRT a través de ONNX-TensorRT.
INT8 Inference of Quantization-Aware trained models using ONNX-TensorRT
INT8 Inference of Quantization-Aware trained models using ONNX-TensorRT
  • 2022.07.14
  • www.youtube.com
Accelerating Deep Neural Networks (DNN) inference is an important step in realizing latencycritical deployment of real-world applications such as image class...