Estudiamos ONNX para aplicarlo al trading - página 5

 

¡Día de la comunidad ONNX! Transmitido en vivo el 24 de junio de 2022

Este evento se realizará en persona en el nuevo campus de Microsoft Silicon Valley el viernes 24 de junio.

El evento cubrirá actualizaciones de la comunidad ONNX, historias de socios y usuarios, y muchas redes comunitarias.



¡Día de la comunidad ONNX!

Breve resumen:

  • 00:00:00 - 01:00:00 El video de YouTube "¡Día de la comunidad ONNX!" analiza las actualizaciones y mejoras del trabajo de la comunidad ONNX sobre interoperabilidad y flexibilidad para los desarrolladores que trabajan con modelos de aprendizaje automático. La comunidad ONNX trabaja bajo un gobierno abierto, y las tres categorías de herramientas, creación, ejecución y visualización, respaldan la participación y el uso de ONNX por parte de la comunidad. El video proporciona informes de progreso sobre diferentes aspectos, como actualizaciones de las especificaciones de ONNX, nuevos operadores y mejoras en los convertidores. El orador también destaca los beneficios de ONNX, incluida la gama más amplia de clientes para los proveedores de hardware y el acceso a múltiples marcos y aceleradores de hardware para los usuarios. El futuro de ONNX incluye la noción de funciones de ONNX para proporcionar una especificación ejecutable.

  • 01:00:00 - 02:00:00 El evento del Día de la comunidad de ONNX analiza varios temas relacionados con ONNX, incluidos ONNX Model Zoo y ONNX Tutorials, que proporcionan modelos de aprendizaje automático preentrenados y demostraciones para usar con modelos ONNX. El video destaca el trabajo del Grupo de trabajo de preprocesamiento de ONNX, cuyo objetivo es estandarizar las operaciones de preprocesamiento de datos para mejorar la implementación del modelo. Los oradores también analizan los conceptos básicos de la cuantificación de redes neuronales y cómo TensorRT admite redes cuantificadas a través de varias fusiones, incluida la cuantificación posterior al entrenamiento y el entrenamiento consciente de la cuantificación. También profundizan en las limitaciones de ONNX para representar la cuantificación de baja precisión y sugieren una estrategia para ampliar su poder de representación mediante el recorte para inducir precisión entre los nodos cuantificados y descuantificados. Finalmente, el video profundiza en un estudio de caso sobre la precisión de un modelo guardado de TensorFlow cuantificado y ajustado.

  • 02:00:00 - 03:00:00 El día de la comunidad de ONNX mostró numerosos oradores que discutieron la importancia de los metadatos en los modelos de aprendizaje automático y el soporte de Java Virtual Machine (JVM) en ONNX. Los oradores enfatizaron el uso de tecnologías basadas en hardware para proteger los datos y destacaron la compatibilidad de ONNX con varias bibliotecas de aprendizaje automático, incluidas DeepJ y Deep Java Library. Demostraron el uso de búferes de bytes para una mayor eficiencia y discutieron la importancia de estandarizar los metadatos para una IA responsable y explicable. Las presentaciones también incluyeron historias de éxito, incluido el tiempo de ejecución de un banco chino mejorado con ONNX y el tiempo de ejecución de ONNX. La comunidad ONNX está trabajando en la creación, consulta y filtrado de metadatos desde el flujo de trabajo de los centros con soporte para metadatos legibles por máquina en ONNX. En general, las presentaciones destacaron las fortalezas de la plataforma ONNX y el compromiso de la comunidad con su desarrollo.

  • 03:00:00 - 04:00:00 ¡El "Día de la comunidad ONNX!" El video cubre varias actualizaciones y funciones relacionadas con el ecosistema ONNX. Esto incluye una discusión sobre la simulación de la cuantificación para reducir la caída de la precisión entre los modelos cuantificados y preentrenados, la implementación de modelos TensorFlow entrenados con el kit de herramientas de NVIDIA en un gráfico ONNX usando TensorRT y las mejoras realizadas en ONNX Runtime, como la forma optimizada del tensor, los proveedores de ejecución y Soporte para plataformas móviles. Además, se discutieron las actualizaciones de ONNX, incluida la compatibilidad con la biblioteca XNNpack y la creación de extensiones de tiempo de ejecución de ONNX para tareas de procesamiento previo y posterior. El video también presenta la biblioteca Optimum, que se enfoca en acelerar los modelos de transformadores desde el entrenamiento hasta la inferencia.

  • 04:00:00 - 05:00:00 El día de la comunidad de ONNX incluyó discusiones sobre varios temas relacionados con el tiempo de ejecución de ONNX y sus casos de uso. Los oradores describieron las características del paquete de tiempo de ejecución ONNX, el convertidor PiTorch ONNX y operaciones personalizadas en PyTorch. También discutieron casos de uso como el monitoreo de procesos y la digitalización del comercio, así como los desafíos asociados con la implementación de modelos y las pruebas de compatibilidad. A lo largo del evento, se enfatizó que el tiempo de ejecución de ONNX puede ayudar a mejorar el rendimiento y reducir el tamaño de la implementación, pero la compatibilidad y la selección son esenciales para garantizar una calidad y velocidad constantes.

  • 05:00:00 - 06:00:00 El día de la comunidad ONNX contó con varios oradores que discutieron varias herramientas y técnicas utilizadas para optimizar e implementar modelos de aprendizaje automático utilizando el marco ONNX. NVIDIA habló sobre su enfoque para mejorar la calidad de imagen y la compatibilidad de modelos mediante la división de bloques para la inferencia, así como sus herramientas específicas de ONNX para depurar y modificar modelos. Qualcomm explicó cómo han integrado aceleradores de IA en sus diseños utilizando ONNX como formato de intercambio y presentó su pila de software que incluye el tiempo de ejecución de ONNX y varias herramientas para la optimización y la implementación. Además, varios oradores hablaron sobre la optimización de los modelos ONNX mediante técnicas como la optimización de módulos, los puntos de control y la inferencia de formas. El evento destacó la versatilidad y escalabilidad de ONNX para varios casos de uso de dispositivos y alentó las contribuciones para continuar con el crecimiento del proyecto ONNX. La última parte se centra en simplificar el proceso de implementación de modelos de aprendizaje automático en Spark utilizando la propuesta SPIP, que tiene como objetivo ocultar las complejidades de la conversión de procesamiento de pestañas y la inicialización del modelo para los desarrolladores. Se presentó el ecosistema Ascend AI y sus procesadores, incluida la capa de software "Kung" que proporciona API para crear aplicaciones y servicios de IA. Se discutió la pila de software de Khan y se presentó la hoja de ruta para agregarlo como un nuevo proveedor de ejecución para el tiempo de ejecución de ONNX. El evento finalizó con mesas redondas sobre temas como ONNX para dispositivos móviles y Edge, implementación de modelos, capacitación y operaciones, conversiones y operadores, seguidas de una hora feliz y comentarios de encuestas.


El resumen detallado de la línea de tiempo:

  • 03:00:00 En esta sección, un orador analiza su experiencia con el ecosistema ONNX y los desafíos que enfrentaron al usarlo. Hablan sobre la necesidad de hacer coincidir los controladores y configurar el monitoreo para garantizar que el sistema siga funcionando sin problemas. También mencionan sus planes futuros para aumentar la eficiencia de la GPU, agregar más modelos y mejorar la solidez general del sistema a través de pruebas aceleradas por GPU. El orador invita a cualquier pregunta y discusión sobre este caso de uso y aprovecha la oportunidad para agradecer a todos. El video se reanudará después del almuerzo con una repetición de la charla de NVIDIA.

  • 03:25:00 Lo siento, pero este extracto de la transcripción no está relacionado con el "Día de la comunidad ONNX". video. ¿Puede proporcionarme otro extracto del video para resumir?

  • 03:30:00 En esta sección del video, los oradores analizan cómo simular la cuantificación y almacenar los parámetros q finales para reducir la caída de precisión entre el modelo cuantificado y el modelo preentrenado. Una forma de realizar un entrenamiento consciente de la cuantificación es usar el kit de herramientas de optimización del modelo TensorFlow o el kit de herramientas creado por Nvidia, que ofrece funciones como la cuantificación de capas usando el nombre de la capa y los atributos de clase y la cuantificación basada en patrones. Los oradores señalan que el kit de herramientas de Nvidia usa una variante de cuantificación simétrica que ofrece el mejor rendimiento para un modelo QAT en una GPU usando una extensión.

  • 03:35:00 En esta sección, aprendemos sobre el proceso de implementación de un modelo entrenado con el kit de herramientas de cuantificación TF2 de NVIDIA en un gráfico ONNX con TensorRT. El flujo de trabajo consiste en cuantificar un modelo TensorFlow 2.0 previamente entrenado con el kit de herramientas de NVIDIA, ajustarlo para una pequeña cantidad de épocas y convertirlo en un gráfico ONNX mediante el convertidor TF2ONNX. Luego, las API de TensorRT se usan para generar TensorRT Engine a partir del gráfico ONNX. Vemos que el entrenamiento consciente de la cuantización proporciona una alternativa para implementar redes neuronales profundas con menor precisión, y los modelos qrt pueden ser menos propensos a la caída de la precisión durante la inferencia en comparación con los modelos ptq debido a los parámetros del modelo ajustados. Finalmente, los experimentos con modelos ResNet muestran que la precisión de INT8 está a la par con la precisión de referencia de FP32, y la latencia es más de 10 veces más rápida en comparación con sus contrapartes de FP32.

  • 03:40:00 En esta sección, Ryan Hill, un ingeniero de software que trabaja en el tiempo de ejecución de ONNX desde su creación, habla sobre las funciones y el uso del tiempo de ejecución de ONNX. ONNX runtime es un tiempo de ejecución para modelos ONNX, totalmente multiplataforma y con enlaces de lenguaje para muchos lenguajes de programación. Microsoft lo usa en todos sus principales grupos de productos, como Windows, Office y Azure, mientras que hay más de 160 modelos en producción con el tiempo de ejecución ONNX. Hill pasa por características nuevas notables en versiones recientes, incluida la capacidad de usar kernels operativos como una biblioteca matemática y la capacidad de alimentar inicializadores externos completamente en la memoria. Las mejoras de rendimiento incluyen la adición de un optimizador de transposición, la optimización de las asignaciones de almacenamiento dinámico y la reducción de la necesidad de transformaciones de diseño.

  • 03:45:00 En esta sección, los oradores analizan las mejoras realizadas en ONNX Runtime, incluida la forma de tensor optimizada y las clases de vectores en línea, lo que da como resultado una reducción en las asignaciones de almacenamiento dinámico y un rendimiento mejorado. También explican los beneficios de los proveedores de ejecución, que permiten que ONNX Runtime funcione de manera óptima en varias posibilidades de hardware, incluida una implementación de CPU completa como opción alternativa. Además, destacan las actualizaciones realizadas para admitir plataformas móviles y la facilidad de uso mejorada para los desarrolladores móviles, incluido el uso de la conversión NHWC en tiempo de ejecución y la adición de paquetes de Android e iOS con las compilaciones completas de ONNX Runtime. Finalmente, presentan ONNX Runtime Web, respaldado por la misma base de código central que ONNX Runtime y con un binario más pequeño, y analizan la introducción de una biblioteca de JavaScript llamada ONNX Runtime Common.

  • 03:50:00 En esta sección, los oradores analizan las actualizaciones de ONNX, incluida la compatibilidad con la biblioteca XNNpack y la próxima compatibilidad con OpenGL en la versión 1.12. También abordan los desafíos con el procesamiento previo y posterior de datos y la creación de las extensiones de tiempo de ejecución de ONNX, que proporcionan una biblioteca de operaciones personalizadas compartibles centradas en el trabajo de procesamiento previo y posterior del modelo. Estas extensiones incluyen funciones potenciales como convertir texto a mayúsculas o minúsculas y separar valores positivos y negativos en tensores separados. La biblioteca actual se centra principalmente en el procesamiento del lenguaje natural y los dominios de la visión y el texto, pero se anticipa que esto evolucionará a medida que se identifiquen nuevas necesidades. También presentan a Jeff de Hugging Face, quien analiza la integración de ONNX con la biblioteca Optimum para acelerar los modelos de Transformers.

  • 03:55:00 En esta sección, el orador analiza el poder de los modelos de transformadores y cómo las principales empresas como Tesla, Gmail, Facebook y Bing los utilizan para hacer miles de millones de predicciones todos los días. Explican que el objetivo de Hugging Face es hacer que estos modelos sean accesibles para todas las empresas del mundo a través de modelos y herramientas previamente capacitados y fácilmente accesibles para utilizarlos. También discuten su enfoque en la construcción de una comunidad que comparte y mejora lo que es posible, con más de 1300 colaboradores de código abierto en sus bibliotecas y acceso a más de 50 000 modelos ajustados para cada tarea y lenguaje de aprendizaje automático. Luego, el orador presenta su biblioteca Optimum, que se centra en acelerar los modelos de transformadores desde el entrenamiento hasta la inferencia, abordando los desafíos de los recursos informáticos, de memoria y de ancho de banda que vienen con el aumento de los parámetros del modelo.


  • 04:00:00 En esta sección, el orador analiza el paquete de tiempo de ejecución ONNX dentro del conjunto de herramientas de Optimum y su capacidad para acelerar el entrenamiento y la inferencia de modelos de transformadores. Presentan la nueva clase de entrenador llamada ORT Trainer que permite a los usuarios obtener una integración nativa de la velocidad profunda y lograr una aceleración de hasta el 40 % en el rendimiento del entrenamiento. Para la inferencia, hay tres clases principales: ORT Optimizer, RT Quantizer y RT Model for Task. Con estas clases, los usuarios pueden simplificar el gráfico de su modelo, optimizar los pesos y beneficiarse de toda la aceleración de hardware que ofrece el tiempo de ejecución de ONNX. El orador también menciona los esfuerzos de colaboración para permitir la optimización del modelo de secuencia a secuencia a través de estas clases óptimas de canalización de inferencia acelerada.

  • 04:05:00 En esta sección, dos presentadores analizan la comunidad ONNX y se centran en el proceso de optimización y conversión de los modelos ONNX. El primer presentador presenta la biblioteca óptima, que permite a los usuarios optimizar y cuantificar sus modelos, aumentando el rendimiento y disminuyendo la latencia mientras conservan la precisión de sus modelos. El segundo presentador analiza la arquitectura y el flujo del convertidor PiTorch ONNX, explica los pasos para convertir los modelos PiTorch a la representación intermedia de la antorcha, usar optimizaciones gráficas y convertir a ONNX IR. También destacan algunas funciones interesantes, como la compatibilidad con la exportación de un modelo cuantificado en formato QTQ y la captura de bucles de flujo de control de python e ifs en modelos ONNX como bucles ONNX y nodos if ONNX.

  • 04:10:00 En esta sección, el orador analiza varias formas de exportar operaciones personalizadas en PyTorch, incluida la escritura de una función autográfica de Torch personalizada y la definición de los métodos de avance y retroceso. El orador explica cómo utilizar la API para registrar una función simbólica personalizada para decirle al exportador cómo exportarla como operaciones ONNX estándar o cualquier operación personalizada en un dominio personalizado. Luego presentan la función de función local de ONNX que permite a los usuarios especificar una determinada clase de módulo Torch o tipo de nodo como una función para que el back-end aún pueda ejecutar el modelo sin tener un kernel específico. Por último, el ponente menciona que el equipo seguirá enfocándose en el soporte para más modelos y en mejorar la experiencia de diagnóstico de fallas.

  • 04:15:00 En esta sección, se analiza un caso de uso en el que se reutiliza un sistema de cámara existente para detectar empleados que ingresan a áreas peligrosas cerca de maquinaria en movimiento. Utilizando un modelo ONNX de código abierto para detectar personas y la herramienta Sasebo Stream Processing de SAS para análisis en tiempo real y procesamiento de eventos, se desarrolló una solución que podría procesar millones de eventos por segundo y escalarse a sistemas más grandes. La solución también estuvo disponible a través de un estudio gráfico y un cuaderno Jupyter para que los científicos de datos desarrollen modelos y el tiempo de ejecución de ONNX se integró en Sasebo Stream Processing. Para garantizar la resiliencia, se sugirió una solución modular que dividiera el procesamiento de imágenes en varios pasos con Kafka como cola de búfer.

  • 04:20:00 En esta sección, el ponente describe un modelo de procesamiento de visión artificial que se implementó en el perímetro utilizando Kubernetes como mecanismo de implementación. El modelo incluye un proceso de ingesta con un módulo para cada cámara, un bus Kafka para datos de video y un módulo de procesamiento que usa un modelo de visión por computadora para crear resultados. Luego, los resultados se envían a un tercer pod que procesa datos de sensores adicionales del cliente para comprender si el equipo que se está grabando está activo o no. Además, el orador explica que esta arquitectura se encuentra actualmente en producción en las instalaciones de uno de sus clientes y que la integración del tiempo de ejecución de ONNX garantiza un tiempo óptimo de generación de valor gracias a los modelos preentrenados disponibles públicamente y la reutilización de los activos del cliente. La resiliencia de la arquitectura es otro beneficio clave y está asegurada gracias a Kubernetes y Kafka.

  • 04:25:00 En esta sección, Matthew de Bazaar Voice analiza la digitalización del comercio y cómo las marcas y los minoristas se han trasladado al espacio infinito en los estantes de Internet. Con la escala de datos que poseen las empresas de comercio electrónico, la creación de conocimientos impactantes mediante la IA puede cambiar las reglas del juego. Matthew ilustra esto usando Bazaar Voice como ejemplo, que administra y procesa datos de más de mil millones de compradores al mes y proporciona más de 8 mil millones de reseñas totales para marcas y minoristas. Al centrarse en compartir reseñas de productos entre catálogos, el concepto de coincidencia de productos juega un papel fundamental. Matthew explica cómo se crea un modelo de aprendizaje automático para realizar la comparación de productos mediante la comparación de identificadores únicos de productos, pero los restos se realizan manualmente. Para implementar una solución que genere valor comercial real, el enfoque ideal es una solución liviana y rentable que mantenga el rendimiento.

  • 04:30:00 En esta sección, el orador analiza diferentes opciones para implementar modelos de aprendizaje automático, incluidos servidores virtuales, plataformas de aprendizaje automático en la nube y funciones sin servidor, como Azure Cloud Functions o AWS Lambdas. Después de evaluar los pros y los contras de cada opción, el orador y su equipo decidieron desarrollar un modelo de scikit-learn exportado al formato ONNX, compilarlo con Python, implementarlo en una función sin servidor y usar un entorno de nodo para ejecutar la inferencia en ONNX. tiempo de ejecución El orador también menciona que ONNX ayuda a reducir el tamaño de implementación de los modelos, pero destaca los desafíos de trabajar dentro de los límites de tiempo de espera y tamaño de implementación de las funciones sin servidor, así como los costos y las limitaciones de tamaño de los paquetes de Python.

  • 04:35:00 En esta sección, el ingeniero de software sénior de Adobe Nikhil Calro analiza los desafíos únicos que implica el aprendizaje automático de alto rendimiento para los flujos de trabajo de video y audio. Estos desafíos incluyen limitaciones de recursos, intensidad de datos y requisitos de cómputo pesado. Para abordar estos problemas, Adobe utiliza una combinación de tecnologías y canalizaciones para acelerar los flujos de trabajo, incluido el tiempo de ejecución ONNX para potenciar los flujos de trabajo de aprendizaje automático en Windows y el proveedor de ejecución Direct ML para la aceleración de GPU en plataformas Windows. Calro también señala que los flujos de trabajo de aprendizaje automático de Adobe tienen como objetivo permitir que los creadores pasen más tiempo en el proceso creativo y menos tiempo en tareas redundantes y repetitivas.

  • 04:40:00 En esta sección, el orador habla sobre cómo las aplicaciones Creative Cloud de Adobe apuntan a todo el ecosistema de Windows como una sola plataforma y deben proporcionar características y paridad funcional en todos los IHV principales que admiten Windows, como Nvidia, Intel y AMD. Eligieron el proveedor de ejecución de DirectML para permitir el uso de hardware específico del proveedor, como núcleos tensoriales en las GPU de Nvidia, ya que deja el hardware libre para otros flujos de trabajo de cómputo asíncrono. También realizaron optimizaciones de rendimiento adicionales al crear un marco sobre el tiempo de ejecución de ONNX e intentar ensamblar las solicitudes de inferencia en flujos de trabajo por lotes para reducir la contención de recursos con la GPU y minimizar la sobrecarga del controlador. Dan un ejemplo del flujo de trabajo de detección de edición de escena, que es un flujo de trabajo extremadamente intensivo en recursos, pero pueden ejecutar toda la canalización de principio a fin, desde la decodificación hasta la inferencia, en aproximadamente 10 segundos o seis veces en tiempo real.

  • 04:45:00 En esta sección, el orador analiza cómo las habilitaciones de rendimiento proporcionadas por ORT y el proveedor de ejecución de Direct ML hicieron posible el uso de GPU modernas de gama alta para permitir flujos de trabajo basados en aprendizaje automático durante el renderizado de GPU. Planean hacer la transición de su canalización para que se parezca más a la canalización de la derecha, minimizando las transferencias a la CPU y manteniendo la mayor cantidad posible de cosas en la GPU o hardware direccionable por GPU. Esto será aún más fácil a medida que una mayor parte de su procesamiento de GPU pase a DX12, eliminando la sobrecarga asociada con OpenCL y CUDA a DX12 en su OP.

  • 04:50:00 En esta sección, Alexander Zang, desarrollador de software de Topaz Labs, analiza los desafíos de implementar modelos de imágenes en equipos de escritorio y portátiles. Explica que la parte crítica de esta implementación es adaptarse a un flujo de trabajo existente, obtener el rendimiento esperado sin configuración manual y entregar modelos de imágenes de alta calidad. Alexander explica que, a diferencia de la implementación de servidor, la implementación de escritorio carece de control sobre el sistema, particularmente con diferentes GPU de diferentes proveedores con diferentes niveles de memoria y restricciones de capacidad de respuesta. Su solución a esto es confiar en diferentes bibliotecas de inferencia para cada proveedor de hardware, que proporciona ONNX. Este enfoque permite a Topaz Labs crear una arquitectura modelo que puede ser utilizada por diferentes bibliotecas de inferencia mientras ahorra trabajo manual.

  • 04:55:00 En esta sección, el orador analiza los desafíos asociados con la conversión de modelos y la necesidad de probar los problemas de compatibilidad antes de entrenar un modelo. Se destaca el problema de la ambigüedad en las especificaciones del modelo, así como la necesidad de probar el rendimiento y la consistencia de diferentes bibliotecas. El orador también explica las razones para realizar múltiples conversiones, afirmando que el uso de una interfaz más genérica puede generar pasos de carga adicionales y costos de conversión que pueden afectar el rendimiento de sus aplicaciones. Por último, se explica el proceso de selección de la configuración adecuada y el manejo de la canalización de inferencia en tiempo de ejecución, lo que destaca la necesidad de compatibilidad y selección al tiempo que se garantiza una calidad y velocidad uniformes desde los escritorios.



  • 05:00:00 En esta sección, un orador de NVIDIA habla sobre su enfoque para manejar la compatibilidad del modelo ONNX y mejorar la calidad de la imagen en los sistemas de escritorio al dividir las imágenes en bloques y ejecutarlas mediante inferencia, maximizando el rendimiento y potencialmente ejecutándose en múltiples dispositivos y bibliotecas. en paralelo. El orador también aborda la dificultad de garantizar que se puedan agregar nuevas arquitecturas modelo y que se comporten bien en todas las bibliotecas, lo que puede llevar mucho trabajo y tiempo. Luego pasan a hablar sobre dos herramientas, ONNX Craft Surgeon, una biblioteca de Python que le permite crear y modificar modelos ONNX, y Polygraphy, un conjunto de herramientas para depurar modelos de aprendizaje profundo. El orador explica cómo funcionan estas herramientas y cómo se pueden usar para construir modelos tan simples como construir gráficos tf.

  • 05:05:00 En esta sección, el orador presenta las herramientas de ONNX, que incluyen una API de Python y varias herramientas de línea de comandos que ofrecen muchas funciones para manipular modelos de ONNX. El orador se centra en las herramientas específicas de ONNX, como el modelo de inspección, que muestra una representación de texto de un modelo de ONNX, y la subherramienta esterilizada por el cirujano, que simplifica y pliega las constantes en el modelo. El extracto del cirujano permite a los usuarios extraer subgráficos de un modelo para depurarlo, y el modelo bisector debug reduce funciona como git bisect pero para modelos ONNX, lo que permite encontrar el modelo que falla más pequeño para diagnosticar errores en el sistema.

  • 05:10:00 En esta sección, el presentador analiza el uso de la herramienta de reducción de depuración de Calligraphy para depurar modelos que pueden tener problemas de tiempo de ejecución. Al reducir el tamaño del modelo y probar cada modelo intermedio, los desarrolladores pueden identificar áreas problemáticas en el código y facilitar el proceso de depuración. El presentador también explica cómo Qualcomm colabora con la comunidad mediante el uso de ONNX como un formato de intercambio que se puede usar en una variedad de dispositivos, desde auriculares hasta computadoras portátiles y sistemas automotrices. Al enfocarse en modelos que usan ONNX, los desarrolladores pueden crear modelos que sean compatibles con todos los dispositivos compatibles con Qualcomm.

  • 05:15:00 En esta sección, el orador habla sobre los desafíos de lidiar con varias arquitecturas de dispositivos que requieren diferentes modelos, implementaciones y requisitos de tiempo. Da un ejemplo de cómo el mismo algoritmo y la misma tecnología creados para los sensores de profundidad y las cámaras de los teléfonos móviles ahora se utilizan para proteger los timbres inteligentes y las cámaras de vigilancia internas y externas de los automóviles. Luego enfatiza la importancia de la escalabilidad y compara las diferencias entre los algoritmos de las máquinas de procesamiento en CPU, GPU y aceleradores de IA usando el ejemplo de ejecutar el modelo Inception V3, donde ejecutarlo en los aceleradores de IA puede proporcionar hasta mil inferencias por segundo. liberando la CPU para otras tareas útiles.

  • 05:20:00 En esta sección, un representante de Qualcomm explica cómo han integrado aceleradores de inteligencia artificial (IA) en su hardware para mejorar el rendimiento y la escalabilidad. Mediante el uso de un acelerador de IA especialmente diseñado, pueden manejar cargas de trabajo de IA sin el consumo de energía adicional o las velocidades más lentas que a menudo resultan del uso de una CPU o GPU. Además, su formato de intercambio ONNX les permite compilar y ejecutar modelos de aprendizaje automático en diferentes dispositivos y verticales, lo que ahorra tiempo a la empresa y permite una mayor portabilidad. También han creado una biblioteca y una pila de software unificados que admiten una variedad de sistemas operativos y ocultan los detalles del hardware para facilitar a los clientes el uso de su hardware.

  • 05:25:00 En esta sección, el orador presenta la pila de software que Qualcomm ha desarrollado alrededor de ONNX. Han creado una solución completa que incluye el tiempo de ejecución de ONNX, así como un sistema de delegación que se encarga de enrutar los modelos a la CPU o GPU según el caso de uso del dispositivo. El orador analiza las muchas herramientas que han desarrollado, incluidos compiladores, generadores de perfiles, analizadores y habilitación para herramientas de búsqueda de arquitectura de red. El orador enfatiza la escalabilidad y versatilidad de ONNX y cómo se puede usar para varios casos de uso de dispositivos, incluidos algoritmos de cámara, parlantes inteligentes y dispositivos XR.

  • 05:30:00 En esta sección, el orador explica el proceso de desarrollo del compilador ANITA, que se utiliza para proporcionar un dialecto de referencia en Mair para facilitar la optimización en diferentes arquitecturas y desplegar los modelos en varios entornos. El orador también destaca el marco que han introducido para admitir aceleradores personalizados, lo que les permite elegir qué operadores cargar y activar/desactivar el acelerador fácilmente. El orador también brinda una descripción general de cómo se implementa la optimización en ONNX Mlir, donde el modelo ONNX se reduce gradualmente a una representación intermedia.

  • 05:35:00 En esta sección, el orador habla sobre el compilador ONNX y cómo se usan varios dialectos para la optimización de la CPU y el acelerador. La optimización de alto nivel incluye la optimización a nivel de gráfico y, en los niveles inferiores, la optimización se aplica a las operaciones de la CPU y el acelerador. El orador presenta un ejemplo de cómo funciona un marco de aceleración en el compilador, donde usar el acelerador es 11 veces más rápido que ejecutarlo en una CPU. También mencionan cómo se están enfocando en la optimización del operador de aprendizaje profundo y admitirán operadores de aprendizaje automático en línea, así como otros aceleradores como la CPU. Finalmente, expresan su agradecimiento a los colaboradores e invitan a más contribuciones para seguir haciendo crecer el proyecto ONNX. El siguiente orador, de Preferred Networks, presenta PFVM, su compilador de redes neuronales que utiliza la representación intermedia de ONNX.

  • 05:40:00 En esta sección, un miembro del equipo Compile analiza un caso de uso de ONNX en la optimización de módulos, específicamente con respecto a su representación intermedia estable y bien documentada. El equipo usa ONNX para optimizar modelos con una variedad de rutas de optimización al extender ONNX con operadores de clientes, como agregar información del dispositivo para optimizar los cambios y la memoria del dispositivo. El orador también analiza la importancia de la inferencia de formas en la optimización de módulos y presenta tres casos de optimización. El primer caso consiste en reducir la sobrecarga del rango del núcleo en los gráficos computacionales ejecutados en CUDA mediante la fusión de varios operadores de elementos en un único operador de grupo de fusión.

  • 05:45:00 pass contendría muchos operadores innecesarios si el modelo fuera generado por un programa como la búsqueda de arquitectura neuronal. Aquí es donde las optimizaciones como la inferencia de formas y la simplificación de gráficos son útiles. La inferencia de forma es crucial para determinar si los operadores de elementos adyacentes se pueden fusionar, mientras que la simplificación de gráficos puede eliminar operadores innecesarios del paso hacia atrás. Ambas optimizaciones pueden reducir significativamente la cantidad de cálculos necesarios y mejorar la eficiencia general del modelo.

  • 05:50:00 En esta sección, el orador analiza la técnica de puntos de control, que reduce el uso de memoria al ejecutar un módulo. Al modificar el gráfico computacional, el uso de la memoria se puede reducir aún más, pero a expensas de una mayor latencia. El orador enfatiza la importancia de conocer los tamaños de los tensores para estimar el uso de la memoria y establece las limitaciones de los puntos de control automáticos cuando se trata de dimensiones desconocidas. Además, el orador analiza el impacto de las dimensiones desconocidas en las oportunidades de optimización y describe las mejoras que se han realizado en la inferencia de formas ONNX. Específicamente, la introducción de la inferencia simbólica en ONNX 1.10 ha mejorado mucho la inferencia de formas a través de la propagación de datos.

  • 05:55:00 En esta sección, el orador analiza la inferencia de formas en ONNX y explica que la información de formas se puede propagar globalmente desde arriba para casos estáticos, pero se necesita más soporte para casos dinámicos. El orador muestra un ejemplo de un gráfico ONNX donde se necesita estimar la forma de una remodelación, pero actualmente se desconoce. Sugieren implementar más funciones de inferencia de forma para casos dinámicos y preguntan si es necesario admitir casos como la concatenación de dos tensores de diferentes tamaños. El orador también menciona brevemente las optimizaciones para la supercomputadora md4, que solo acepta modelos con forma estática y sin ramificación dinámica, y utiliza información estática para la programación y las optimizaciones. A continuación, un representante de Huawei comparte una charla pregrabada sobre llevar el poder de ONNX a Spark para la inferencia.

  • 06:00:00 En esta sección, el foco está en la propuesta de mejora SPARK, comúnmente conocida como SPIP, que tiene como objetivo simplificar el proceso de implementación del modelo de aprendizaje automático para Spark, integrándolo con marcos DL de terceros. Esta propuesta está dirigida a ingenieros de datos o desarrolladores que necesitan implementar modelos DL en Spark. El objetivo final es ocultar las complejidades de la conversión de procesamiento de pestañas y la inicialización del modelo dentro de un UDF modal, lo que permite a los usuarios completar fácilmente la inferencia ONNX en big data. Se presenta el propio procesador de IA de Huawei llamado Ascend, y se explica que para completar la canalización de SPARK y ONNX en la plataforma Ascend, primero se debe introducir la compatibilidad con Ascend en el tiempo de ejecución de ONNX.

  • 06:05:00 En esta sección, el orador analiza el ecosistema Ascend AI y los diferentes procesadores que admite. El Ascend 310 solo admite la inferencia de IA, mientras que el Ascend 710 y el 910 admiten tanto el entrenamiento como la inferencia. Además, el ecosistema proporciona una capa de software llamada "Kung" que proporciona API para que los desarrolladores creen fácilmente aplicaciones y servicios de IA. Luego, el orador se enfoca en Khan, la pila de software actual en el ecosistema Ascend y la versión más nueva, Khan 5.0. Explican las diferentes capas de Khan y cómo proporciona bibliotecas de operadores, motores de optimización y un adaptador de marco para desarrolladores. Luego, el orador analiza la hoja de ruta para agregar Khan como un nuevo proveedor de ejecución para el tiempo de ejecución de ONNX, lo que permite a los usuarios ejecutar modelos ONNX en el hardware de Ascend directamente.

  • 06:10:00 En esta sección del video, el Día de la comunidad ONNX está concluyendo con las mesas redondas para los asistentes en persona. Las mesas redondas consistieron en seis temas diferentes, con grandes blocs de notas disponibles para que los asistentes escribieran. Los temas se seleccionaron en función de las presentaciones de los asistentes e incluyen ONNX para dispositivos móviles y Edge, implementación de modelos y cuantificación de aprendizaje automático, capacitación y operaciones, conversiones y operadores. El equipo de ONNX Runtime también estuvo disponible para unirse a las conversaciones. Después de las mesas redondas, los asistentes disfrutaron de una hora feliz con comidas y bebidas, y se les animó a completar la encuesta para brindar comentarios.
ONNX Community Day!
ONNX Community Day!
  • 2022.06.24
  • www.youtube.com
This event is being hosted in-person at the brand-new Microsoft Silicon Valley Campus on Friday, June 24th. The event will cover ONNX Community updates, part...
 

ONNX: pasado, presente y futuro: Jim Spohrer, IBM y Prasanth Pulavarthi, Microsoft



ONNX: pasado, presente y futuro: Jim Spohrer, IBM y Prasanth Pulavarthi, Microsoft

El video "ONNX: pasado, presente y futuro" presenta a Jim Spohrer de IBM y Prasanth Pulavarthi de Microsoft discutiendo el crecimiento y el futuro del marco de trabajo de IA de código abierto ONNX. Destacan la importancia de estandarizar la implementación de modelos de IA a través del formato intercambiable proporcionado por ONNX, lo que permite una optimización perfecta en diferentes marcos de aprendizaje profundo. Además, analizan los desarrollos recientes en la capacidad del tiempo de ejecución de ONNX para trabajar con varios aceleradores de hardware y ofrecen consejos y recursos para comenzar con ONNX. Los oradores responden preguntas de la audiencia sobre las capacidades de ONNX, el despliegue comercial y los próximos planes de certificación, al tiempo que insta a los espectadores a involucrarse en la comunidad de ONNX.

  • 00:00:00 En esta sección, Jim Spohrer de IBM y Prasanth Pulavarthi de Microsoft se presentan y brindan una descripción general del pasado, presente y futuro de ONNX, un marco de IA de código abierto. ONNX sirve como un formato de intercambio estandarizado, lo que permite que diferentes herramientas interoperen y optimicen la inferencia en varios marcos de aprendizaje profundo. Los oradores instan a los espectadores a involucrarse con la comunidad de ONNX consultando las noticias y la información de inicio en el sitio web de ONNX, además de unirse a la comunidad en GitHub y Gitter. También destacan reuniones comunitarias virtuales recientes, donde los socios de ONNX discutieron sus proyectos y cómo están utilizando ONNX de manera innovadora.

  • 00:05:00 En esta sección, los ponentes analizan el crecimiento de la comunidad ONNX y su importancia como formato de intercambio en medio de numerosos proyectos de código abierto en el campo de la inteligencia artificial y el aprendizaje automático. Destacan el progreso de la comunidad ONNX en términos de solicitudes de extracción, colaboradores, estrellas, bifurcaciones, artículos publicados y el zoológico modelo, y alientan a más organizaciones e individuos a participar. Los oradores también presentan ONNX en Microsoft y su uso en varios productos, enfatizando la necesidad de un formato estandarizado como ONNX en el panorama diverso de soluciones de IA y ML. Ofrecen consejos sobre cómo usar ONNX y agradecen las preguntas de la audiencia.

  • 00:10:00 En esta sección, los oradores analizan los problemas comunes que enfrentan los desarrolladores cuando intentan implementar modelos de ML en producción, como la alta latencia de inferencia, la ejecución de modelos en el perímetro y dispositivos IoT, y la necesidad de ejecutar el mismo modelo en diferentes hardware y sistemas operativos. Para resolver estos problemas, los oradores presentan el formato ONNX y el tiempo de ejecución de ONNX, que permite a los desarrolladores representar modelos de varios marcos en un formato común y ejecutarlos de manera eficiente en diferentes plataformas y aceleradores. El servicio de voz de Microsoft se presenta como un ejemplo de cómo ONNX ha mejorado la agilidad y el rendimiento en la producción.

  • 00:15:00 En esta sección, los oradores analizan cómo el uso del tiempo de ejecución de ONNX puede generar beneficios en términos de agilidad, rendimiento y precisión. Mencionan ejemplos de los servicios cognitivos de Microsoft, como voz a texto y visión por computadora, así como Azure Connect, un dispositivo con capacidades de seguimiento corporal. También se destaca el aspecto de portabilidad de ONNX, ya que permite usar el mismo modelo y código de aplicación en diferentes plataformas y aceleradores de hardware, ahorrando tiempo y esfuerzos de personalización. Además, los oradores tocan Windows ML, que usa el tiempo de ejecución ONNX como un formato común para los modelos, lo que facilita la inferencia de aprendizaje automático en el sistema operativo Windows.

  • 00:20:00 En esta sección, Jim Spohrer y Prasanth Pulavarthi analizan algunos de los desarrollos y logros recientes del tiempo de ejecución de ONNX. Una de sus características más significativas es su capacidad para trabajar con diferentes tipos de aceleradores de hardware, como GPU o VPU. También ofrece compatibilidad con varios idiomas, lo que permite a los usuarios convertir modelos entrenados en entornos pythonic a C#. Un ejemplo de una empresa que usa el tiempo de ejecución de ONNX es un ISV que entrena sus modelos financieros en python usando scikit-learn pero usa el tiempo de ejecución de ONNX para la producción en C#. Además, el tiempo de ejecución de ONNX optimizó recientemente la inferencia y el entrenamiento de modelos de transformadores como BERT y GPT2, lo que resultó en aceleraciones significativas y ahorros de costos para los usuarios.

  • 00:25:00 En esta sección, los oradores brindan información sobre cómo comenzar con ONNX y el tiempo de ejecución de ONNX. Model Zoo, al que se puede acceder a través de una URL, ofrece una variedad de modelos preentrenados para descargar y comenzar a usar con el tiempo de ejecución de ONNX para visión, lenguaje y próximos modelos de voz. Además, los ponentes fomentan la aportación de modelos al Zoológico Modelo. Los modelos existentes de otros marcos también se pueden convertir o exportar al formato ONNX. Los marcos como PyTorch, Keras, TensorFlow y Scikit-Learn tienen funcionalidades de exportación de ONNX, y el tiempo de ejecución de ONNX se puede instalar en Windows, Linux y Mac con soporte para múltiples lenguajes de programación.

  • 00:30:00 En esta sección, los disertantes discuten la aceleración de hardware y cómo se pueden integrar diferentes aceleradores de hardware a través de la API denominada proveedores de ejecución. El tiempo de ejecución de ONNX tiene una implementación de CPU altamente optimizada, así como una implementación de CUDA, y los proveedores de hardware como Nvidia e Intel se han asociado con ONNX para integrar sus optimizaciones con el tiempo de ejecución de ONNX. Esto garantiza que cualquier modelo de ONNX pueda ejecutarse con soporte completo para toda la especificación de ONNX, incluso si una operación en particular no es compatible con un acelerador específico. Los oradores alientan a los espectadores a probar ONNX y compartir los recursos disponibles en la comunidad de ONNX, incluida la gobernanza abierta, los SIG y los grupos de trabajo.

  • 00:35:00 En esta sección, los oradores discuten la estructura de gobierno abierta del proyecto ONNX, que consta de diferentes grupos de interés especial (SIG) y grupos de trabajo. Explican que los SIG y los grupos de trabajo se reúnen periódicamente y que todo está abierto, y las reuniones están todas publicadas en el calendario del calendario de AI. Además, la estructura de gobernanza abierta describe cómo se seleccionan los contribuyentes y los aprobadores, quienes respectivamente obtienen derechos de voto en diferentes decisiones o tienen permisos de fusión. En última instancia, los oradores alientan a las personas a involucrarse en el proyecto ONNX uniéndose a los diferentes canales y grupos, inscribiéndose en la lista de correo y participando en las discusiones.

  • 00:40:00 En esta sección, los oradores responden varias preguntas de la audiencia sobre temas como posibles publicaciones de libros sobre el tema de ONNX, las capacidades de registro del tiempo de ejecución de ONNX y los métodos utilizados para reducir el tiempo de capacitación en aprendizaje automático. También mencionan algunas implementaciones comerciales de modelos basados en ONNX en varios escenarios, como Azure Cognitive Services, modelos de oficina y el motor de búsqueda Bing.

  • 00:45:00 En esta sección, los oradores discutieron la implementación comercial de los modelos ONNX fuera de Microsoft y mencionaron que hay una serie de modelos de nivel de producción que utilizan las empresas financieras y otras organizaciones en Azure. También respondieron preguntas de la audiencia sobre ONNX, incluso si es compatible con CNTK (sí, tienen una exportación de ONNX) y si necesita conocimientos sobre herramientas de aceleración de hardware (no, ya que el tiempo de ejecución de ONNX proporciona una capa de abstracción). También mencionaron los beneficios de usar ONNX en la capacitación en comparación con la conversión a ONNX después de la capacitación, y explicaron que el tiempo de ejecución de ONNX puede acelerar el proceso de capacitación, lo que da como resultado modelos de transformadores más rápidos. Finalmente, expresaron su disposición a escuchar acerca de los posibles planes de certificación y las diferentes formas en que las personas usan ONNX.

  • 00:50:00 En esta sección, los oradores responden una pregunta sobre la capacidad de ONNX para admitir todos los tipos de canalizaciones. Si bien no es 100 % debido a algunas brechas existentes, los tipos de modelos comunes generalmente son compatibles y los usuarios pueden consultar ONNX Converter GitHub para obtener una lista de canalizaciones compatibles o probarlo ellos mismos para ver si su canalización se puede convertir por completo. Luego, los oradores concluyen la sesión agradeciendo a los asistentes y alentándolos a unirse a la comunidad ONNX.
ONNX: Past, Present, and Future - Jim Spohrer, IBM & Prasanth Pulavarthi, Microsoft
ONNX: Past, Present, and Future - Jim Spohrer, IBM & Prasanth Pulavarthi, Microsoft
  • 2020.09.11
  • www.youtube.com
ONNX: Past, Present, and Future - Jim Spohrer, IBM & Prasanth Pulavarthi, Microsoft
 

Onnx-mlir: un compilador basado en MLIR para modelos ONNX: el estado más reciente



Onnx-mlir: un compilador basado en MLIR para modelos ONNX: el estado más reciente

Onnx-mlir es un compilador para modelos ONNX que utiliza MLIR y LLVM para la optimización y generación de código, compatible con CPU y aceleradores personalizados. Dong Lin de IBM Research enfatiza la importancia de las pruebas exhaustivas y destaca el uso del marco en servicios de calificación en línea y marcos de servicio de modelos. Onnx-mlir tiene múltiples dialectos para CPU y acelerador, con optimizaciones en varios niveles, y se ha demostrado que acelera un modelo de detección de fraude con tarjetas de crédito 11 veces usando un acelerador de IBM. El proyecto agradece las contribuciones de la comunidad para optimizar operadores importantes y admitir operadores de ML de nicho y otros aceleradores como GPU.

  • 00:00:00 En esta sección, Dong Lin de IBM Research analiza Onnx-mlir, un compilador para modelos ONNX que utiliza MLIR y LLVM para la optimización de alto nivel y la generación de código de bajo nivel. El compilador tiene como objetivo proporcionar una referencia para el dialecto Onnx en MLIR y hacer que la optimización sea conveniente no solo para las CPU, sino también para los aceleradores personalizados. Es fácil de integrar con otros compiladores basados en MLIR y es compatible con diferentes lenguajes de programación como Python, C++ y Java. Dong Lin también destaca la importancia de probar cuidadosamente el compilador, y menciona que se ha utilizado para servicios de puntuación en línea y marcos de trabajo de modelos, con soporte recientemente introducido para aceleradores personalizados.

  • 00:05:00 En esta sección, el orador analiza el compilador ONNX-MLIR, que puede optimizar y admitir nuevos aceleradores. El compilador tiene múltiples dialectos para CPU y acelerador, con optimizaciones en varios niveles. El orador demostró la capacidad del marco para acelerar un modelo de detección de fraude con tarjetas de crédito 11 veces utilizando un acelerador de IBM, pero no pudo revelar más detalles. Hicieron hincapié en su interés en las contribuciones de la comunidad para hacer crecer el proyecto de código abierto, ya que su objetivo es optimizar operadores importantes, admitir operadores de aprendizaje automático de nicho y otros aceleradores como GPU.
Onnx-mlir: an MLIR-based Compiler for ONNX Models - The Latest Status
Onnx-mlir: an MLIR-based Compiler for ONNX Models - The Latest Status
  • 2022.07.13
  • www.youtube.com
Onnx-mlir is an open source compiler implemented using the Multi-Level Intermediate Representation (MLIR) infrastructure recently integrated in the LLVM proj...
 

PFVM: un compilador de redes neuronales que usa ONNX como su representación intermedia



PFVM: un compilador de redes neuronales que usa ONNX como su representación intermedia

En este video, Zijian Xu de Preferred Networks presenta PFVM, un compilador de redes neuronales que usa ONNX como su representación intermedia para la optimización de módulos. Analiza cómo PFVM toma ONNX exportado como entrada, lo optimiza y ejecuta el modelo con backends específicos utilizando API de terceros. Genji describe la importancia de la optimización, incluida la extensión de ONNX con los operadores de los clientes, la inferencia de formas y la simplificación de gráficos. También aborda las limitaciones de los compiladores ONNX actuales, incluida la necesidad de más soporte en el caso dinámico, y sugiere implementar más funciones de inferencia. Zijian Xu enfatiza la importancia de reducir la sobrecarga del rango del kernel y el uso de la memoria para un cálculo más rápido y sugiere utilizar la información estática disponible en las máquinas para programar y dar forma a la inferencia.

  • 00:00:00 En esta sección, Zijian Xu de Preferred Networks analiza PFVM, un compilador de redes neuronales que usa ONNX como su representación intermedia. Presenta la empresa y explica cómo utilizan el aprendizaje profundo para resolver problemas del mundo real. Luego se enfoca en ONNX para la optimización de módulos en lugar de la implementación de módulos. Explica que PFVM funciona como un compilador y tiempo de ejecución, tomando ONNX exportado como entrada, optimizándolo y ejecutando el modelo con backends específicos utilizando API de terceros. Genji describe el proceso de optimización y explica cómo amplían ONNX con los operadores de los clientes para la optimización de dispositivos y memoria. También analiza la importancia de la inferencia de formas en la optimización de módulos y presenta tres optimizaciones de casos. El primer caso es la fusión de elementos.

  • 00:05:00 En esta sección del video, el orador analiza la importancia de reducir la sobrecarga del rango del kernel para un cálculo más rápido al ejecutar gráficos de cálculo en CUDA. Proponen fusionar operadores de elementos en un solo operador de grupo de fusión para reducir el rango del núcleo, pero advierten que no todos los operadores pueden fusionarse con éxito. Es necesario comprobar si los operadores pueden ser retransmitibles o no ante un grupo de fusión de gradientes. El orador también enfatiza la importancia de la inferencia de formas y la simplificación de gráficos para optimizar los modelos de redes neuronales. Finalmente, abordan la pregunta de si los modelos contienen operadores innecesarios y responden que algunas optimizaciones son necesarias para un cálculo más rápido.

  • 00:10:00 En esta sección, el orador analiza cómo los modelos generados por programas como la primera generación o la red neuronal y la búsqueda de arquitectura neuronal pueden contener operadores innecesarios. Demuestran la importancia de las optimizaciones utilizando un ejemplo en el que un gráfico computacional de la izquierda usa mucha memoria para calcular el nodo cinco. Al modificar el gráfico computacional, se puede lograr el mismo resultado con un uso de memoria reducido. PFVM puede realizar puntos de control automáticos para reducir el uso de la memoria, pero requiere conocimiento de los tamaños de los tensores para estimar el uso de la memoria con precisión. El orador enfatiza la importancia de la referencia de la forma y cómo las dimensiones desconocidas limitan las oportunidades de optimización en la mayoría de los marcos de modelado.

  • 00:15:00 En esta sección, el orador analiza las limitaciones del actual compilador ONNX de última generación, incluida la incapacidad de realizar ciertas tareas como la transfusión de elementos y el control automático, así como la necesidad de más soporte en el caso dinámico. El orador sugiere implementar más funciones de inferencia para el caso dinámico y solicita retroalimentación de los usuarios para determinar si admitir casos como concat de dos tensores o no. El orador también analiza los beneficios de utilizar la información estática disponible en máquinas como Elements Core y mn4 para programar y dar forma a la inferencia.
PFVM - A Neural Network Compiler that uses ONNX as its intermediate representation
PFVM - A Neural Network Compiler that uses ONNX as its intermediate representation
  • 2022.07.13
  • www.youtube.com
PFVM is a neural network compiler developed by Preferred Networks, which relies on ONNX as the Intermediate Representation format. PFVM is used in production...
 

Pila de compilador YVR18-332 TVM y compatibilidad con ONNX



Pila de compilador YVR18-332 TVM y compatibilidad con ONNX

El video YVR18-332 analiza la pila del compilador TVM, que es una pila de aprendizaje profundo liderada por la comunidad que admite una variedad de hardware y front-end, incluido ONNX. El orador analiza cómo TVM puede optimizar los modelos a nivel estéreo, lo que permite a los desarrolladores explorar el espacio de búsqueda y encontrar la mejor configuración. También analizan las optimizaciones automáticas que ofrece TVM, incluidas las transformaciones de bucle y la aceleración de GPU. El orador habla sobre la hoja de ruta de TVM, que incluye habilitar la compatibilidad con 8 bits y el ajuste automático en el nivel gráfico. Además, discuten la interfaz de ONNX TV y la necesidad de unificar la interfaz estándar para todos los ecosistemas. Finalmente, el video hace una pausa para el almuerzo.

  • 00:00:00 En esta sección, el orador presenta la pila del compilador TVM y cómo es compatible con ONNX a través de GBM. TVM es una pila de aprendizaje profundo desde el nivel de clase hasta el nivel de cáncer y es un proyecto comunitario dirigido por investigadores de la Universidad de Washington con contribuciones de varias empresas y organizaciones. La pila del compilador TVM es compatible con una variedad de hardware, incluidos CPU, GPU, FPGA, y tiene planes para habilitar la compatibilidad con ASIC, con un simulador para la verificación del diseño del hardware. La pila también es compatible con varios front-end, incluidos MXNet, ONNX y TensorFlow, y tiene una implementación IR de clase computacional llamada NVM con una variedad de opciones de optimización.

  • 00:05:00 En esta sección, el orador analiza la pila del compilador TVM y el soporte de ONNX. Explican que la pila del compilador de TVM puede realizar muchas optimizaciones a nivel estéreo, como transformaciones de bucle y aceleración de GPU, y que ONNX es una nueva función agregada al paso en el TVM automático. El orador también explica el diploma Canadian Miss aplaudido por el mecanismo de implementación remota de TVM, que permite a los usuarios compilar un modelo en su dispositivo host e implementarlo de forma remota en el dispositivo de destino. Además, analizan las optimizaciones automáticas introducidas por TVM, que pueden reducir el trabajo tedioso de los desarrolladores y son
    diseñado para explorar el espacio de búsqueda y encontrar la mejor configuración.

  • 00:10:00 En esta sección, el orador analiza la pila del compilador TVM y la compatibilidad con ONNX. Mencionan que la pila del compilador TVM incorpora los algoritmos de ajuste más avanzados, incluidos los algoritmos aislados de aumento de gradiente extremo, para proporcionar un mejor rendimiento. También destacan el proyecto de código abierto que permite la optimización automatizada y puede aprovechar el trabajo anterior para optimizar el espacio de búsqueda. Luego, el orador habla sobre cómo se puede usar TVM para el acelerador abierto Vita y sus tres partes principales. Explican cómo se puede usar TVM para la optimización de horarios y cómo implementarlo de forma remota usando VPS RPC. Finalmente, brindan una hoja de ruta para TVM, que incluye la habilitación del soporte de 8 bits y el ajuste automático en el nivel de gráficos, mientras que también planean habilitar el uso en los dispositivos Ultra 9 de Xilinx y la instancia F1 de Amazon.

  • 00:15:00 En esta sección, el orador analiza la pila del compilador TVM y cómo planea actualizarse a NVM v2, denominado Relay. La implementación de Relay requiere elegir un flujo de control de pod para mejorar el sistema de tipos y controlar cómo mejorar el sistema del servidor de compilación. El orador explica cómo Relay encaja en la pila del compilador TVM cuando admite ONNX. ONNX define tres partes principales, a saber, el modelo gráfico de cálculo y los operadores de construcción, y una base de datos estándar. Para admitir las extensiones ONNX ml, el front-end de TVM implementó un front-end en DVM. Sin embargo, la conversión de ONNX al gráfico simbólico de NM VM puede causar algunos problemas de desajuste. Además, la comunidad está discutiendo si usar ONNX o Relay como gráfico IR en la comunidad de TVM, y la única forma de progresar es trabajar juntos para fusionar Relay para usar en futuras conversiones de modelos.

  • 00:20:00 En esta sección, el orador analiza la interfaz de ONNX TV para la integración del marco, que es una interfaz estándar para la inferencia de redes neuronales en diferentes aceleradores. La interfaz incluye descubrimiento de tiempo de ejecución de pod, selección de backends de ejecución y descubrimiento a largo plazo de operadores ONNX. El orador sugiere que la comunidad debería discutir cómo unificar la interfaz estándar para todos los ecosistemas. Además, el orador habla sobre la pila del compilador TVM y cómo podría incorporar una implementación codificada a mano como parte de su espacio de búsqueda. Sin embargo, todavía no hay una buena idea sobre este mecanismo, por lo que el orador agradece ideas y discusiones.

  • 00:25:00 En esta sección, el tema de discusión es la pila del compilador TVM y su soporte para ONNX. Se aclara que ONNX tiene un formato de descripción y una API de tiempo de ejecución, y el sistema de igualdad de ONNX se está expandiendo más allá del formato de intercambio abierto. El objetivo es unificar la API para que las aplicaciones de nivel superior puedan llamar a una sola API estándar para la inferencia en tiempo de ejecución, lo que facilita las cosas a los desarrolladores en esta área. No hay más preguntas y el video se detiene para el almuerzo.
YVR18-332 TVM compiler stack and ONNX support
YVR18-332 TVM compiler stack and ONNX support
  • 2018.09.28
  • www.youtube.com
As an open source deep learning compiler driven by the community, TVM is evolving quickly and well received by the industry. In this session, the architectur...
 

Standup de la comunidad de .NET MAUI: tiempo de ejecución de ONNX con Mike Parker



Standup de la comunidad de .NET MAUI: tiempo de ejecución de ONNX con Mike Parker

En este video, el orador invitado Mike Parker presenta el tiempo de ejecución de ONNX, una herramienta de código abierto y multiplataforma que permite la optimización y aceleración del aprendizaje automático en múltiples plataformas de hardware. Parker explica la importancia de usar el tiempo de ejecución de ONNX y muestra cómo se puede usar en proyectos .NET MAUI para clasificar imágenes usando el modelo de clasificación de objetos de MobileNet. Los anfitriones y Parker analizan los beneficios de ejecutar modelos de aprendizaje automático en un dispositivo y la capacidad de evitar costos de infraestructura de back-end. Además, el equipo comparte recursos útiles, incluido el blog de Parker sobre este tema y su asociación con Al Blount para el soporte de .NET MAUI y Xamarin.

  • 00:00:00 En esta sección del stand-up de la comunidad para .NET MAUI, el equipo presenta a Mike Parker, miembro del equipo asesor de clientes de la aplicación de cliente moderno, quien comparte su conocimiento de ONNX Runtime, una herramienta de aprendizaje automático para optimizar y aceleración de modelos en múltiples plataformas de hardware. Explica cómo ONNX Runtime es de código abierto y multiplataforma, lo que permite a los desarrolladores usar varios marcos y hardware para aplicaciones de aprendizaje automático. También muestra cómo la comunidad .NET puede aprovechar ONNX Runtime en sus proyectos.

  • 00:05:00 En esta sección, los anfitriones se presentan a sí mismos ya su invitado, Mike, quien se une para hablar sobre Onnx Runtime con ellos. Los anfitriones mencionan que primero verán algunos blogs de Microsoft y la comunidad antes de pasar a analizar algunas relaciones públicas de .NET MAUI y repositorios adyacentes, que les entusiasman. Por último, le entregarán la discusión a Mike Park para que hable sobre las bibliotecas Onnx Runtime, cómo las usó en Xamarin y sus escritos y podcasts sobre el tema. Los anfitriones también mencionan que es el vigésimo aniversario de .NET y que se envió .NET MAUI Preview 12. También advierten a los usuarios sobre un cambio importante y mencionan que Dave ha estado trabajando con los mantenedores de bibliotecas comunitarias.

  • 00:10:00 En esta sección, los oradores analizan el esfuerzo de unificación de .NET y la necesidad de volver a compilar y actualizar las bibliotecas y dependencias de iOS a medida que Xamarin hace la transición a MAUI. Actualmente, el equipo está trabajando en una forma de adoptar estos cambios para cualquier proyecto de vinculación a bibliotecas nativas y paquetes NuGet, y aseguran a los usuarios que se brindará orientación. Además, el equipo analiza la falta de compatibilidad con MAUI en la versión preliminar cinco de VS Mac 2022 y explica que están trabajando en ello, pero primero tuvieron que priorizar la reconstrucción de todo el trabajo de Xamarin en el tiempo de ejecución de .NET 6 con un nuevo UI SAC. Por último, el equipo anuncia la actualización del enlace SDK de Facebook y menciona el esfuerzo por actualizar y mantener otras bibliotecas de terceros, como las bibliotecas de Google.

  • 00:15:00 En esta sección, el equipo de Xamarin habla sobre los componentes que mantiene, que solían ser un enfoque principal, pero ahora se reducen a lo que es más crítico para el soporte. El equipo alienta a los usuarios a comunicarse si tienen dependencias en estos componentes durante la transición a .NET 6. También analizan un tutorial de Maui Hello World y una serie de blogs de disección del código fuente de .NET Maui. Además, se destaca el blog de Andreas sobre Z Index y la personalización de la interfaz de usuario, que muestra el apilamiento de elementos uno encima de otro mediante Z Index.

  • 00:20:00 En esta sección, el presentador muestra algunas publicaciones de blog y diseños que la gente ha recreado usando .NET MAUI. Los blogs incluyen la recreación de un diseño de tarjeta de embarque en Xamarin Forms, la discusión sobre el desarrollo de máquinas de estado con Xamarin Forms, la organización de su archivo de inicio .NET MAUI, una inmersión profunda en la arquitectura de los controladores y un blog sobre Xamarin Forms para la comunicación bidireccional de JavaScript mediante un WebView para ello. Las presentaciones muestran cuánto enfoque hay en el diseño en estos días, haciendo que Xamarin Forms/MAUI sea más extensible y útil, y cómo usar JavaScript y enlaces de manera más efectiva.

  • 00:25:00 En esta sección de la transcripción, los anfitriones analizan las contribuciones más recientes de la comunidad a .NET MAUI, incluido el lanzamiento del servicio de foro 5.0 Xamarin y nueva documentación. Animan a los contribuyentes a proporcionar comentarios sobre la participación en el repositorio y mencionan la disponibilidad de un control de chip en el kit de herramientas de la comunidad, aunque no está directamente en el recuadro. Los anfitriones también mencionan la reciente incorporación de sombras, que es una nueva característica de MAUI, y sugieren animar su bot modificándolo.

  • 00:30:00 En esta sección, Mike Parker proporciona una actualización sobre el estado de las versiones preliminares de .NET MAUI, destacando el progreso realizado con la versión preliminar 13. Hay mucho verde y muchas características nuevas, incluido el texto con formato de etiqueta, intervalos, y abarcar gestos, que están llenando los huecos en la plataforma. La comunidad también ha compartido una nueva propiedad adjunta llamada "Galadriel", que permite la adición simple de insignias a las pestañas y elementos de menú en Xamarin Forms Shell. Además, el equipo de .NET MAUI ha estado trabajando para mejorar el rendimiento de inicio de la plataforma y los resultados son prometedores, ya que la aplicación se inicia en 576 milisegundos en un Pixel 5 con AOT perfilado.

  • 00:35:00 En esta sección, el Standup de la comunidad de .NET MAUI analiza la disponibilidad de las extensiones de marcado de C# para la creación de UI en Xamarin Forms y .NET MAUI, que proporcionan una sintaxis más fluida para el desarrollo de UI. También hablan sobre el tiempo de ejecución onnx, un modelo portátil que puede ejecutar inferencias en diferentes plataformas utilizando un solo conjunto de API, con ejemplos como el reconocimiento facial y el etiquetado de fotos. El tiempo de ejecución de onnx está disponible en GitHub y se puede usar en Xamarin y aplicaciones móviles. El proceso para usar el tiempo de ejecución de onnx implica cargar el modelo, preparar la entrada, ejecutar la inferencia y procesar la salida en un formato utilizable.

  • 00:40:00 En esta sección del video, Mike Parker explica cómo usaron el tiempo de ejecución ONNX en una aplicación de Xamarin Forms para clasificar imágenes usando el modelo de clasificación de objetos de MobileNet. Destaca la importancia de seguir la documentación del modelo y normalizar los valores RGB. Parker también menciona una aplicación útil llamada Netron que permite visualizar los tamaños, las formas y los nombres de las entradas y salidas. La aplicación es solo un botón que carga y ejecuta el modelo, y muestra la etiqueta superior en una alerta. Parker señala que es genial que todo esto suceda en el dispositivo sin involucrar a la nube.

  • 00:45:00 En esta sección, los oradores analizan los beneficios de ejecutar modelos de aprendizaje automático en el dispositivo, incluida la capacidad de funcionar sin conectividad y evitar los costos de infraestructura de back-end. También mencionan sus experiencias con el uso de las API de Microsoft Azure Vision basadas en la nube y cómo pudieron lograr tiempos de procesamiento más rápidos con el tiempo de ejecución de ONNX. Además, explican cómo simplificaron la experiencia de la aplicación de incorporación de un equipo al reemplazar el código específico de la plataforma y del modelo con un solo modelo ONNX. Finalmente, analizan el proceso de preparación de un modelo, el uso de Azure Custom Vision Service y la creación de un paquete Nougat que permite que ONNX funcione con Xamarin.

  • 00:50:00 En esta sección del video, Mike Parker analiza su trabajo con el tiempo de ejecución de ONNX y la adaptación de su código de interoperabilidad nativo para admitir plataformas con AOT, como iOS. También continúa describiendo los escenarios del mundo real donde se puede usar esta tecnología, incluida la optimización de los flujos de trabajo y la mejora de la accesibilidad en las aplicaciones. Sin embargo, señala que trabajar con modelos preconstruidos puede ser abrumador para quienes no tienen experiencia en ciencia de datos tradicional y sugiere ser selectivo con los modelos que se incorporarán. Finalmente, se comparten algunos recursos útiles, incluido el blog de Mike sobre este tema.

  • 00:55:00 En esta sección, los anfitriones hablan sobre la disponibilidad de Mike Parker para contratar y presentan a Al Blount, quien puede brindar asistencia a las empresas que necesitan ayuda con Xamarin Forms y .NET Maui. También analizan brevemente el trabajo actual del equipo de Mike sobre la actualización a Maui, pero aún no pueden compartir ningún detalle. Los anfitriones finalizan el video agradeciendo a los espectadores por unirse y anunciando la próxima fiesta de cumpleaños del vigésimo aniversario de .NET.
.NET MAUI Community Standup - ONNX Runtime with Mike Parker
.NET MAUI Community Standup - ONNX Runtime with Mike Parker
  • 2022.02.03
  • www.youtube.com
Join Maddy Montaquila, David Ortinau, and special guest Mike Parker to learn about using the ONNX Runtime in your Xamarin app for Machine Learning!Community ...
 

[Reunión virtual] IA interoperable: ONNX y ONNXRuntime en C++ (M. Arena, M. Verasani)



[Reunión virtual] IA interoperable: ONNX y ONNXRuntime en C++ (M. Arena, M. Verasani)

El video analiza los desafíos de usar diferentes marcos para entrenar algoritmos de aprendizaje automático, lo que lleva a una falta de interoperabilidad, y presenta ONNX y ONNXRuntime que tienen como objetivo crear un formato universal para modelos de aprendizaje profundo. ONNX convierte las redes neuronales en gráficos computacionales estáticos, lo que permite un rendimiento optimizado durante la inferencia. ONNXRuntime permite la conversión de cualquier marco al formato ONNX y proporciona bibliotecas de aceleración que se pueden usar para apuntar a cualquier plataforma de hardware. El video muestra ejemplos del uso de ONNX y ONNXRuntime, además de analizar su uso en C++ y brindar consejos para comprender mejor el proyecto y su documentación.

Marco Arena y Matteo Verasani también analizan los beneficios de usar ONNX y ONNXRuntime en C++ para modelos de aprendizaje automático, destacando la flexibilidad del marco y su capacidad para convertir fácilmente modelos de diferentes marcos sin sacrificar el rendimiento. Proporcionan ejemplos de conversión de modelos al formato ONNX y demuestran el uso de ONNXRuntime para el modo de inferencia, mostrando mejoras en el rendimiento con un modelo clásico de Python. Además, analizan su trabajo con sistemas integrados y los beneficios potenciales de evaluar comparativamente ONNXRuntime en GPU. Los oradores también mencionan futuras reuniones virtuales y expresan su esperanza de incorporar más oportunidades de networking para los asistentes.

  • 00:00:00 En esta sección del video, los oradores discuten los problemas que surgen al usar diferentes marcos para entrenar algoritmos de aprendizaje automático para varios casos de uso, lo que lleva a una falta de interoperabilidad. Esto puede ser un desafío cuando se trabaja en un equipo donde los miembros pueden tener diferentes niveles de experiencia con diferentes marcos. Para resolver este problema, los oradores presentan ONNX y ONNXRuntime, que permiten la interoperabilidad entre marcos al convertir las redes en un formato común. ONNXRuntime luego permite que los modelos convertidos se implementen en cualquier hardware de destino, incluidas CPU, GPU y FPU.

  • 00:05:00 En esta sección, los ponentes discuten el proyecto ONNX (Open Neural Network Exchange), que pretende ser un formato universal para modelos de aprendizaje profundo, permitiendo la interoperabilidad entre diferentes marcos. El proyecto está impulsado por la comunidad y respaldado por numerosas empresas, con un enfoque en la conversión de diferentes tipos de modelos y marcos en un formato único para la producción. ONNX convierte las redes neuronales en gráficos computacionales estáticos, que se diferencian de los gráficos dinámicos en que se inicializan previamente antes del entrenamiento. Mientras que los gráficos estáticos son computacionalmente más eficientes, los gráficos dinámicos ofrecen una mayor flexibilidad para diferentes tamaños de entrada.

  • 00:10:00 En esta sección, los disertantes discuten cómo ONNX proporciona un gráfico computacional estático, que es muy útil en el proceso de inferencia. Mientras que otros marcos como Python tienen gráficos computacionales dinámicos, ONNX proporciona un gráfico estático que ya ha sido controlado durante las fases de entrenamiento y desarrollo, lo que permite un rendimiento más optimizado. Además, la herramienta de tiempo de ejecución ONNX de Microsoft permite la conversión de cualquier marco al formato ONNX y proporciona bibliotecas de aceleración que se pueden usar para apuntar a cualquier plataforma de hardware, lo que la convierte en una herramienta útil y versátil para la inferencia y la producción.

  • 00:15:00 En esta sección del video, los oradores hablan sobre su experiencia con ONNX y ONNX Runtime para la interoperabilidad de IA. Explican cómo crean un modelo de PyTorch en Python, lo convierten al formato ONNX y usan ONNX Runtime para la implementación, lo que les permite escribir sus canalizaciones y apuntar a diferentes plataformas, como GPU o dispositivos Android. También demuestran las mejoras de rendimiento del uso de ONNX Runtime en comparación con otros motores de inferencia, logrando resultados hasta 4 veces más rápidos. Destacan la flexibilidad de ONNX, lo que les permite convertir modelos creados en otros marcos, como Matlab, para usarlos con ONNX Runtime sin tener que volver a escribir la canalización de implementación.

  • 00:20:00 En esta sección, los ponentes analizan el proceso de uso de ONNX y ONNXRuntime en C++. Explican que los modelos primero deben convertirse al formato ONNX antes de que puedan ejecutarse en ONNXRuntime. Si bien la serialización de TensorFlow no es nativa de ONNXRuntime, existen bibliotecas de código abierto disponibles para la conversión. También responden a preguntas sobre la posibilidad de programar el proceso de conversión y el nivel de mejora observado con ONNX en comparación con C++. Señalan que se requiere más evaluación comparativa y análisis. El repositorio ONNXRuntime es de código abierto y cuenta con el respaldo de Microsoft, y ofrece una variedad de información, guías y ejemplos para los usuarios.

  • 00:25:00 En esta sección, el video analiza las características de ONNXRuntime en una escala de complejidad desde lo simple hasta lo más sofisticado. La columna verde contiene funciones básicas que son suficientes para tareas de aprendizaje automático más simples, mientras que la columna magenta incluye funciones un poco más sofisticadas, como proveedores de ejecución y compatibilidad con perfiles. La columna roja representa funciones avanzadas para tareas más complejas, como la capacidad de agregar operadores personalizados ONNX o realizar ajustes en el comercio. El presentador también proporciona enlaces a dos repositorios de demostración para ONNXRuntime en C++ y Python.

  • 00:30:00 En esta sección, el orador presenta ONNX y ONNXRuntime en C++. Explican que se debe crear un entorno dentro del programa para administrar el grupo comercial y la sesión, que establece el modelo en consideración. Las características de la sesión también se pueden personalizar y la configuración predeterminada se puede ejecutar utilizando la sesión. Además, ONNXRuntime optimizará el modelo al implementar el preprocesamiento requerido para administrar los datos antes de ejecutar la sesión. La herramienta también puede realizar tareas de inspección, como consultar la cantidad de entradas y salidas, tipos de datos y nombres. En última instancia, los usuarios pueden crear sus entradas y tensores en el formato requerido.

  • 00:35:00 En esta sección del video, el orador explica cómo crear un objeto que asigna tensores en la CPU y los transfiere al proveedor de ejecución. El hablante crea tensores de entrada y salida, pasando al búfer valores de entrada y la forma del tensor como argumentos. Luego, el tensor para la salida se crea pasando los valores de salida a la biblioteca OnnxRuntime. El orador explica la importancia de usar nombres para iniciar la inferencia, ya que permite flexibilidad para cambiar el orden de las entradas. La demostración muestra un ejemplo simple de cómo se imprimen los valores de salida en la pantalla.

  • 00:40:00 En esta sección, el orador brinda consejos para aquellos que desean comprender mejor el proyecto ONNX y su documentación. Recomiendan buscar en las "Partes C" para acceder a las secciones mejor documentadas de ONNX y detallar su experiencia con la inspección de datos en ONNX. El orador también explica que, aunque las bibliotecas de tiempo de ejecución de ONNX están disponibles a través de otros administradores de paquetes, recomiendan volver a compilar las bibliotecas, ya que las arquitecturas y los proveedores varían, y muestra cómo compilaron el mismo código para crear dos paquetes de tiempo de ejecución de ONNX destinados a una CPU o una GPU.

  • 00:45:00 En esta sección, el orador analiza ONNX Runtime con ejemplos del uso de DLL en C++. Las opciones de sesión agregadas al código varían según las preferencias del cliente e intenta usar los proveedores agregados en el orden especificado. El altavoz proporciona una aplicación de muestra de cómo el sistema ocupa el uso de RAM y GPU. Como ejemplo, se utilizó una reconexión de IA de juego principal, que se entrenó previamente en un conjunto de datos de 1000 imágenes. El sistema tiene sus requisitos de posprocesamiento y preprocesamiento.

  • 00:50:00 En esta sección del video, el orador analiza el preprocesamiento de imágenes usando Python y el uso de fuentes de extensión para simplificar el proceso. Las imágenes se redimensionan a un tamaño óptimo y se convierten en flotantes antes de normalizarse. El proceso de normalización implica dividir los valores por la media y realizar la desviación estándar. El posprocesamiento de la red neuronal implica una simple normalización softmax. El orador también demuestra cómo abrir, procesar y generar imágenes utilizando ONNX Runtime con un código mínimo. La clase utilizada para leer clases de un archivo de texto es simple y se utilizan algunas utilidades para evitar código repetitivo innecesario.

  • 00:55:00 En esta sección, el orador analiza el proceso de medición del tiempo de inferencia para una red neuronal mediante ONNXRuntime en C++. Explica que agregó la porción de inferencia a la red discutida anteriormente y midió el tiempo de inferencia usando el reloj del sistema. Luego pasa a demostrar cómo usar un registrador personalizado en ONNXRuntime para fines de creación de perfiles. El orador también analiza brevemente una red móvil separada que se desarrolló en colaboración con la Universidad de Módena y la complejidad involucrada en su procesamiento previo y posterior.

  • 01:00:00 En esta sección, el orador analiza la salida de un detector y muestra cómo dibuja cuadros delimitadores en objetos como osos y señales. También mencionan el uso de ONNXRuntime y cómo permite opciones de sesión y ajuste, incluida la habilitación de perfiles para la optimización del rendimiento. El archivo de seguimiento resultante se puede inspeccionar en detalle para ver cuánto tiempo lleva inicializar el modelo y ejecutarlo en las imágenes, incluidos los operadores que se usaron y el proveedor que se eligió. También mencionan la capacidad de ONNX para optimizar un gráfico antes de ejecutarlo, lo que puede mejorar el rendimiento y acortar el tiempo que lleva cargar el modelo.

  • 01:05:00 En esta sección, el presentador habla sobre la optimización de un modelo al habilitar o deshabilitar las optimizaciones, lo que puede afectar la portabilidad del modelo entre diferentes objetivos. Exploran diferentes niveles de optimizaciones y cómo cada uno afecta el rendimiento del modelo. El presentador muestra que habilitar el modo de ejecución en paralelo puede permitir que el modelo utilice múltiples subprocesos, pero es posible que no tenga un impacto significativo en el rendimiento en ciertos casos. También mencionan la posibilidad de paralelizar el procesamiento de múltiples imágenes mediante una utilidad. Finalmente, el presentador señala que las optimizaciones pueden tener un impacto notable en el rendimiento del modelo, como lo demuestra el tiempo de carga reducido de los modelos optimizados.

  • 01:10:00 En esta sección, Marco Arena y Marco Verasani analizan los beneficios de usar ONNX y ONNX Runtime en C++. Una de las principales ventajas es la capacidad de tener una sola capa de inferencia que acepta ONNX como formato, lo que permite la portabilidad y la flexibilidad en el uso de diferentes marcos para crear modelos. Esta característica es particularmente útil en situaciones en las que diferentes equipos pueden estar usando varios marcos y se necesita una canalización de inferencia estándar para la producción. Además, el uso de ONNX Runtime en C++ puede conducir a un rendimiento de tiempo de ejecución más rápido y optimizado para modelos de aprendizaje profundo. En general, el ecosistema ONNX ofrece muchas opciones y oportunidades para ajustar y optimizar el rendimiento de los modelos de aprendizaje profundo.

  • 01:15:00 En esta sección, los oradores analizan los beneficios de usar ONNX y ONNXRuntime en C++ para modelos de aprendizaje automático, ya que permite flexibilidad en los marcos y una fácil conversión entre ellos sin sacrificar el rendimiento. También mencionan que ONNXRuntime es compatible con Linux y demuestran cómo usar los cuadernos Python y Jupyter para crear prototipos y exportar modelos al formato ONNX. Utilizan un pequeño tutorial como ejemplo para mostrar cómo convertir modelos de otros marcos a ONNX y destacan la utilidad de la herramienta Netron para visualizar el gráfico computacional de los modelos. Los oradores alientan a los espectadores a hacer preguntas y compartir conocimientos sobre la herramienta.

  • 01:20:00 En esta sección, los disertantes discuten el proceso de convertir un modelo al formato ONNX y ejecutarlo en modo de inferencia usando ONNXRuntime en C++. Demuestran cómo crear un gráfico computacional y definir las dimensionalidades de entrada y salida, así como también cómo usar el tiempo para comparar el rendimiento del modelo en CPU y GPU. También muestran el uso del popular modelo de procesamiento de lenguaje natural BERT, que utiliza el operador de transformador y se implementa en la biblioteca Hugging Face. Los oradores enfatizan la importancia de instalar el paquete correcto para usar ONNXRuntime con CPU o GPU.

  • 01:25:00 En esta sección del video, el presentador demuestra cómo convertir un modelo BERT al formato ONNX en Python. El proceso implica definir las entradas del modelo y convertir el modelo usando la función "torch.onnx.export". El presentador explica que ONNX agrega operadores a cada versión, lo que enfatiza la necesidad de trabajar en la versión correcta de ONNX con los operadores necesarios para el modelo específico. Dynamic Axis también se destaca como una característica importante para permitir formas dinámicas de entrada/salida, como longitudes de secuencia variables en el procesamiento del lenguaje natural. Finalmente, el presentador muestra una comparación entre Python y ONNX en términos de rendimiento al realizar la inferencia sobre el modelo.

  • 01:30:00 En esta sección del encuentro virtual, los ponentes comparten una demostración de su trabajo con ONNX y ONNXRuntime en C++. Muestran una mejora en el rendimiento que se observa en la inferencia de un modelo clásico de Python ejecutado a través de ONNXRuntime. También demuestran una herramienta llamada "Visor de red", que permite a los usuarios ver el gráfico computacional estático de un modelo y ver las operaciones que se están realizando, incluidos los tipos de entrada y salida esperados. La herramienta también muestra la versión de ONNX utilizada para la conversión y el desplazamiento utilizado durante el proceso de conversión. Los oradores solicitan comentarios de los espectadores y proporcionan un enlace para que los asistentes proporcionen comentarios.

  • 01:35:00 En esta sección, Marco Arena y Matteo Verasani hablan sobre su trabajo de estudio de plataformas para sistemas integrados, incluidas GPU, FGA y CPU. Ejecutaron cuatro redes neuronales para la detección de objetos en estos sistemas integrados y analizaron los resultados en términos de consumo de energía y velocidad de inferencia. También analizan la importancia de usar detectores de una etapa para sistemas integrados y proporcionan enlaces a repositorios para ONNX y ONNXRuntime. Mencionan los beneficios potenciales de la evaluación comparativa de ONNXRuntime en GPU y expresan interés en invitar al equipo de ONNXRuntime de Microsoft a participar en eventos futuros. Por último, invitan a los espectadores a asistir a su próximo evento en línea y futuras reuniones.

  • 01:40:00 Esta sección del video habla sobre encontrar razones para no volver a las reuniones en persona y cómo tuvieron suerte de tener una concesión de los asistentes para su reunión en línea. También analizan los próximos planes para su serie de reuniones virtuales, que incluye sacar la sección de Python y centrarse en las partes iniciales de su demostración, según los materiales mostrados por Malattia, Verasani y los repositorios ONNX y ONNX Runtime. También hay enlaces y fuentes oficiales para aquellos que buscan más información sobre el tema. En última instancia, expresan la esperanza de incorporar más tiempo para establecer contactos y mantener el chat abierto para aquellos interesados en quedarse después de la cena, pero admiten las limitaciones de las reuniones en línea.
 

[CppDay20] IA interoperable: ONNX y ONNXRuntime en C++ (M. Arena, M.Verasani)



[CppDay20] IA interoperable: ONNX y ONNXRuntime en C++ (M. Arena, M.Verasani)

El uso de algoritmos de aprendizaje automático y aprendizaje profundo está aumentando, y existe la necesidad de herramientas que puedan implementar estos algoritmos en diferentes plataformas. La herramienta ONNX brinda interoperabilidad entre diferentes marcos y plataformas, lo que permite a los desarrolladores convertir sus algoritmos de un marco a otro e implementarlos en diferentes dispositivos, incluso si no están familiarizados con el marco o la plataforma específicos. ONNX Runtime es un motor de inferencia que puede aprovechar aceleradores personalizados para acelerar modelos durante la etapa de inferencia y puede dirigirse a una variedad de plataformas de hardware. Los oradores demuestran el uso de ONNX y ONNX Runtime en programación C++, con ejemplos de regresión lineal y modelos de redes neuronales. También analizan los beneficios de usar ONNX y ONNX Runtime para ajustar la ejecución de una red, optimizar el tiempo de carga y ejecutar imágenes secuenciales.

  • 00:00:00 En esta sección del video, los oradores analizan el uso cada vez mayor de algoritmos de aprendizaje automático y aprendizaje profundo para diversas aplicaciones y la necesidad de herramientas que puedan implementar estos algoritmos en diferentes plataformas. Presentan una herramienta llamada ONNX que proporciona interoperabilidad entre diferentes marcos y plataformas. Explican cómo los desarrolladores pueden usar ONNX para convertir sus algoritmos de un marco a otro e implementarlos en diferentes dispositivos, incluso si no están familiarizados con el marco o la plataforma específicos. Los oradores usan el ejemplo de convertir un algoritmo de Python al formato ONNX y luego al marco Core ML para implementarlo en un dispositivo Apple. Destacan la utilidad de ONNX para hacer que los algoritmos de aprendizaje profundo y aprendizaje automático sean más accesibles e implementables en una amplia gama de plataformas.

  • 00:05:00 En esta sección, el orador analiza ONNX y ONNX Runtime, que son herramientas que permiten la IA interoperable. ONNX permite la transferencia de modelos entre diferentes marcos de aprendizaje profundo, como PyTorch y Tensorflow, sin necesidad de conocer cada marco. ONNX Runtime, proporcionado por Microsoft, es un motor de inferencia que puede aprovechar los aceleradores personalizados para acelerar los modelos durante la etapa de inferencia. Puede apuntar a una variedad de plataformas de hardware y no requiere que el usuario cree su propio motor de inferencia en C++.

  • 00:10:00 En esta sección, los disertantes discuten los beneficios de usar el formato ONNX para modelos de aprendizaje automático y la interoperabilidad que proporciona para diferentes marcos de capacitación. Explican la tubería para desarrollar algoritmos de aprendizaje profundo, convertirlos al formato ONNX y usar el motor de inferencia de tiempo de ejecución ONNX para ejecutar el modelo en diferentes plataformas y lenguajes de programación. Los oradores también presentan gráficos de rendimiento que muestran una mejora significativa en el rendimiento de los algoritmos cuando se usa el tiempo de ejecución de ONNX, en comparación con otros marcos como PyTorch y scikit-learn. Finalmente, Marco toma el relevo y habla sobre el uso del motor de tiempo de ejecución ONNX en la programación de C++.

  • 00:15:00 En esta sección, el orador habla sobre su experiencia con la interoperabilidad entre marcos de aprendizaje automático y presenta el proyecto ONNX como un esfuerzo importante para lograr este objetivo. Mencionan que no experimentaron muchos problemas de conversión al convertir modelos entre marcos, pero el problema principal surge cuando un operador no es compatible con el formato ONNX o el formato ONNX Runtime. El orador también responde una pregunta sobre problemas de conversión y explica que los operadores que no son compatibles con ONNX pueden causar problemas en la conversión.

  • 00:20:00 En esta sección, los oradores analizan su experiencia con la conversión de TensorFlow a ONNX y mencionan que no han visto muchos problemas de conversión. También analizan la depuración y la solución de problemas cuando se trata de manipular tensores en C++, y mencionan el uso de otras bibliotecas como Extensor o Python para hacerlo. Presentan el punto de entrada para ONNX, onx.ai, que permite a los usuarios seleccionar la arquitectura y el lenguaje de programación deseados, y demuestran el uso de ONNXRuntime en C++. Mencionan que el código es el mismo para la GPU, la única diferencia es la biblioteca vinculada.

  • 00:25:00 En esta sección, el presentador muestra una demostración del uso de ONNXRuntime para cargar, inspeccionar y ejecutar inferencias en un modelo. Comienza creando un entorno para la API subyacente, con funciones opcionales, como personalizar el registro o la creación de subprocesos. Luego crea una sesión que representa la inferencia para ejecutar en un modelo particular, que se puede cargar desde una ruta o un flujo de bytes. Demuestra cómo usar un asignador para inspeccionar la información del modelo, como el número y los nombres de las entradas y salidas. Señala que esta demostración muestra la biblioteca sin formato y que, en situaciones de la vida real, se usaría un contenedor para evitar la gestión de cadenas y otras complejidades.

  • 00:30:00 En esta sección, el orador analiza un modelo de regresión lineal simple y cómo pasar una entrada a la red sin copiar datos usando una API externa llamada CreateTensor. El orador enfatiza la importancia de ir a la API de c debajo de la API de c++ cuando la documentación no está clara. Además, analizan las diversas opciones disponibles al ejecutar la sesión de inferencia, incluida la recuperación parcial de resultados y la personalización de nombres de resultados. Finalmente, señalan que los valores de salida se almacenan en un vector y son los mismos tensores asignados anteriormente.

  • 00:35:00 En esta sección, el orador analiza el acceso a los datos en C++ mediante la función obtener datos mutables del tensor y la necesidad de especificar el tipo que se utiliza debido al borrado de tipos. El ejemplo proporcionado muestra cómo imprimir valores en la salida estándar usando este método. El orador también menciona la necesidad de tener cuidado con la asignación de tensores y búferes de salida y cómo usar los búferes de salida preasignados. Luego, la discusión pasa a ejecutar un modelo lineal con un proveedor de ejecución de GPU usando el paquete de GPU de Microsoft ML ONNXRuntime como la opción predeterminada para ejecutar ONNXRuntime contra la CPU. Finalmente, el orador presenta brevemente dos proyectos de demostración para redes de visión: un clasificador llamado ResNet y un detector llamado MobileNet. El código de demostración es similar al ejemplo anterior, y el orador destaca el preprocesamiento y el posprocesamiento involucrados en estas redes.

  • 00:40:00 En esta sección, el presentador demuestra cómo usar ONNXRuntime para perfilar la ejecución de una red neuronal usando un temporizador externo. Al agregar una opción de creación de perfiles durante la creación de la sesión, ONNXRuntime puede producir un archivo JSON que contiene el tiempo de ejecución empleado en cada fase y la explosión de todos los operadores en el gráfico que se ha ejecutado. Esta herramienta puede proporcionar detalles adicionales, como si el modelo se ejecuta en CPU o GPU, o si se ejecuta secuencialmente o en paralelo. La creación de perfiles puede ayudar a ajustar la ejecución de una red y verificar si se está ejecutando en otro acelerador.

  • 00:45:00 En esta sección, el orador demuestra el impacto de la optimización en el tiempo de carga y el tiempo de ejecución de un modelo usando ONNX y ONNXRuntime en C++. Deshabilitar la optimización da como resultado un tiempo de ejecución significativamente más largo, mientras que habilitarla conduce a un tiempo de carga más largo. Sin embargo, es posible guardar una versión optimizada del modelo que equilibre la optimización y el tiempo de carga. El orador muestra a la audiencia cómo optimizar el modelo usando diferentes opciones disponibles y guardarlo. Además, el orador aborda brevemente la ejecución en paralelo y demuestra cómo puede reducir significativamente el tiempo de procesamiento de un lote de imágenes.

  • 00:50:00 En esta sección, el orador analiza la ejecución de imágenes secuenciales y la contención en el grupo de subprocesos global, lo que provoca un tiempo de ejecución más largo para cada imagen. También mencionan el uso de una herramienta de creación de perfiles para refinar las mediciones de tiempo para entradas individuales y la explosión de todos los operadores que ejecutan por imagen. El orador explica el uso de la biblioteca Extensor para la manipulación de tensores, similar a numpy para Python, que se usa para el preprocesamiento de imágenes en un clasificador ResNet más simple. También se menciona la distinción de ONNX Runtime para los niveles básico, intermedio y avanzado, con funciones avanzadas como operadores personalizados, áreas de memoria y asignadores. También se analizan el soporte comercial y los ejemplos de Python, con enlaces a demostraciones y diapositivas proporcionadas.

  • 00:55:00 En esta sección, los presentadores analizan un punto de referencia que realizaron sobre algoritmos de detección de objetos, centrándose en detectores de una etapa que son útiles para dispositivos integrados. Compararon con FPGA, GPU y CPU y descubrieron que los dispositivos NVIDIA, las CPU Intel Core E7 y las FPGA eran las mejores plataformas para ciertos tipos de operaciones. También mencionaron que existe cierto soporte para entrenar modelos en ONNX, aunque solo en Python. Cuando se les preguntó si considerarían usar ONNXRuntime en producción, dijeron que ya lo están usando en las pruebas y en la transición a producción. Señalaron que Microsoft también lo está usando en muchos proyectos, incluido Windows ML, y que ha estado en desarrollo durante tres años.
[CppDay20] Interoperable AI: ONNX & ONNXRuntime in C++ (M. Arena, M.Verasani)
[CppDay20] Interoperable AI: ONNX & ONNXRuntime in C++ (M. Arena, M.Verasani)
  • 2020.12.02
  • www.youtube.com
Event page: https://italiancpp.org/cppday20/Slides: https://github.com/italiancpp/cppday20---ONNX is an open source format built to represent machine learnin...
 

Aceleración del aprendizaje automático con ONNX Runtime y Hugging Face



Aceleración del aprendizaje automático con ONNX Runtime y Hugging Face

El video "Acelerar el aprendizaje automático con ONNX Runtime y Hugging Face" analiza la creación de la biblioteca Optimum de Hugging Face, que se enfoca en acelerar los modelos de transformadores desde el entrenamiento hasta la inferencia aplicando fácilmente el tiempo de ejecución de ONNX. La biblioteca simplifica el puente entre la biblioteca de transformadores y la aceleración de hardware, creando un conjunto de herramientas fácil de usar para el rendimiento de producción. Al aplicar las optimizaciones proporcionadas por ONNX Runtime, los usuarios pueden beneficiarse de toda la aceleración del hardware, lo que da como resultado canalizaciones de inferencia más rápidas. Una colaboración dentro de la comunidad Hugging Face está habilitando la optimización del modelo de secuencia a secuencia utilizando estas clases de canalización de inferencia aceleradas, y un ejemplo de extremo a extremo mostró que el uso de Optimum Library puede generar un aumento del rendimiento del 44 % o una disminución de la latencia mientras se conserva 99,6% de la precisión del modelo original.

  • 00:00:00 En esta sección, Jeff de Hugging Face analiza el objetivo de la empresa de hacer que la potencia de los modelos de transformadores sea accesible para todas las empresas del mundo a través de herramientas y modelos previamente capacitados y de fácil acceso. Él explica que el aprendizaje por transferencia y la atención es todo lo que necesita el papel cambió el campo del aprendizaje automático, logrando un rendimiento innovador en las tareas de procesamiento del lenguaje natural y produciendo resultados de vanguardia en cada modalidad de aprendizaje automático. Jeff presenta la biblioteca Optimum, diseñada para acelerar los modelos de transformadores aplicando fácilmente el tiempo de ejecución de ONNX, lo que facilita a los ingenieros y desarrolladores de software el uso de estos modelos en producción.

  • 00:05:00 En esta sección, el orador analiza la creación de la biblioteca Hugging Face Optimum, que se centra en acelerar los modelos de transformadores desde el entrenamiento hasta la inferencia. La biblioteca ofrece un conjunto de herramientas de referencia para la aceleración de hardware con API de alto nivel dedicadas al rendimiento de producción. El paquete Onnx Runtime dentro de Optimum brinda integración nativa de DeepSpeed, una forma de acelerar el entrenamiento. Optimum también ofrece Ort Optimizer para simplificar los modelos gráficos, Rt Quantizer para optimizar los pesos y apunta a proveedores de ejecución específicos para aprovechar las optimizaciones específicas del hardware. En general, Optimum simplifica el puente entre la biblioteca de transformadores y la aceleración de hardware, creando un conjunto de herramientas fácil de usar para el rendimiento de producción.

  • 00:10:00 En esta sección, el orador habla sobre la optimización de los modelos de aprendizaje automático mediante ONNX Runtime y la biblioteca Optimize de Hugging Face. Al cambiar de Auto Model for Task a RT Model for Task, los usuarios pueden aplicar fácilmente las optimizaciones proporcionadas por ONNX Runtime y beneficiarse de toda la aceleración de hardware, lo que resulta en canalizaciones de inferencia más rápidas. La comunidad Hugging Face también está colaborando para habilitar la optimización del modelo de secuencia a secuencia utilizando estas clases de canalización de inferencia acelerada. El ejemplo completo descrito en la publicación del blog muestra que el uso de Optimum Library puede resultar en un aumento del rendimiento del 44 % o una disminución de la latencia mientras se conserva el 99,6 % de la precisión del modelo original.
Accelerating Machine Learning with ONNX Runtime and Hugging Face
Accelerating Machine Learning with ONNX Runtime and Hugging Face
  • 2022.07.13
  • www.youtube.com
Hugging Face has democratized state of the art machine learning with Transformers and the Hugging Face Hub, but deploying these large and complex models into...
 

Acelerando la inferencia de ML a escala con ONNX, Triton y Seldon | PyData Global 2021



Acelerando la inferencia de ML a escala con ONNX, Triton y Seldon | PyData Global 2021

En el video "Acelerar la inferencia de ML a escala con ONNX, Triton y Seldon | PyData Global 2021", Alejandro Saucedo de Seldon Technologies analiza los desafíos de escalar la inferencia de aprendizaje automático y cómo usar ONNX y Triton para optimizar y producir modelos. Usando el modelo GPT-2 TensorFlow como caso de uso, la sesión cubre el preprocesamiento, la selección de tokens óptimos y la implementación del modelo usando Tempo y el servidor de inferencia Triton. Saucedo enfatiza la necesidad de abstraer las complejidades de la infraestructura y facilitar la implementación fácil al tiempo que garantiza la reproducibilidad y el cumplimiento. La charla concluye con colaboraciones con proyectos de código abierto para componentes de implementación y capacitación de extremo a extremo.

  • 00:00:00 En esta sección, Alejandro Saucedo se presenta a sí mismo y a su empresa, Seldon Technologies, que se enfoca en la implementación y el monitoreo del aprendizaje automático. Explica que la sesión cubrirá el desafío de acelerar la inferencia de aprendizaje automático a escala mediante la adopción de un enfoque práctico, utilizando el modelo GPT-2 TensorFlow como caso de uso. El objetivo es optimizar el modelo usando ONNX y probarlo localmente usando una herramienta llamada Tempo antes de producirlo en Kubernetes. El objetivo principal es abstraer las complejidades de la infraestructura subyacente para que los profesionales de la ciencia de datos puedan centrarse en el lado de la ciencia de datos. Saucedo también explica qué es GPT-2 y sus aplicaciones, señalando que es un modelo relativamente complejo que requiere una cantidad significativa de cómputo para entrenamiento e inferencia.

  • 00:05:00 En esta sección del video, el orador analiza el uso de modelos previamente entrenados, específicamente GPT-2, y cómo se pueden aprovechar para diversas aplicaciones, como juegos y generación de código. El orador explica cómo usar la biblioteca Hugging Face para obtener el modelo GPT-2 preentrenado y analiza los componentes del modelo, incluidos el tokenizador y el modelo principal, que se usan para el preprocesamiento y la inferencia. Luego, el orador explica un ejemplo de preprocesamiento de una oración legible por humanos usando el tokenizador y usando la función de generación para predecir 20 tokens. Finalmente, el orador explica el flujo de trabajo subyacente de la función de generación, que ejecuta la inferencia varias veces para el modelo, y cómo convertir la salida legible por máquina a un formato legible por humanos usando el decodificador del tokenizador.

  • 00:10:00 En esta sección, el orador explica el proceso de selección del token óptimo para un modelo y los desafíos que enfrentan los profesionales al escalar el modelo. Los desafíos incluyen el requisito de hardware especializado, dependencias complejas entre componentes y la necesidad de reproducibilidad y cumplimiento. Luego, el orador presenta el formato ONNX, que es ampliamente adoptado en la industria y permite la transformación de los modelos Python o PyTorch en un formato estandarizado para que los servidores optimizados lean y modifiquen para un rendimiento óptimo. Sin embargo, la conversión a ONNX no es necesaria y los profesionales aún pueden implementar sus modelos directamente. El orador también presenta el marco Tempo, que simplifica el proceso de implementación y escalado de modelos.

  • 00:15:00 En esta sección, el orador explica cómo producir el modelo usando Tempo y el servidor de inferencia Triton. El primer paso es definir un contenedor Tempo para el modelo GPT-2 y luego ejecutar el modelo optimizado en el servidor optimizado de Nvidia. A continuación, se debe definir una lógica de transformador personalizada para convertir tokens legibles por máquina en cadenas legibles por humanos, lo que permite a los usuarios interactuar con el modelo de una manera fácil y sencilla. Después de probar el modelo en Docker localmente, se puede implementar en la pila de Kubernetes con un simple comando. Se muestra el código para definir el envoltorio y el orador explica que este método permite utilizar diferentes tipos de marcos de modelos, lo que lo convierte en una herramienta versátil para producir inferencias de ML.

  • 00:20:00 En esta sección, el orador analiza cómo crear una lógica de transformador personalizada utilizando modelos PyTorch con ONNX y Triton. Primero, la transcripción explica cómo enviar tokens a través de esta lógica personalizada, utilizando la conversión de cadenas y la función de predicción. Luego, el orador explica cómo cargar artefactos del modelo GPT2 y definir la función de predicción como un punto final REST, antes de iterar a través de los tokens y generar la respuesta. La conclusión clave es que, al pasar tokens a través del modelo e iterar varias ejecuciones, podemos devolver una cadena de esta infraestructura compleja. Además, el orador menciona que este enfoque se puede implementar fácilmente en Kubernetes a través de la función de implementación remota.

  • 00:25:00 En esta sección, el orador analiza la aceleración del aprendizaje automático a escala, centrándose específicamente en optimizar un modelo GPT-2 TensorFlow con ONNX y ejecutarlo con Triton usando Docker, y luego implementarlo en Kubernetes siguiendo las mejores prácticas. El objetivo es minimizar las fugas de la infraestructura subyacente y garantizar una implementación confiable con el mínimo esfuerzo. El orador también menciona sus colaboraciones con los equipos de Tempo y Metaflow para proporcionar componentes de implementación y capacitación de extremo a extremo en proyectos de código abierto. La charla concluye con una sesión de preguntas y respuestas.
Accelerating ML Inference at Scale with ONNX, Triton and Seldon | PyData Global 2021
Accelerating ML Inference at Scale with ONNX, Triton and Seldon | PyData Global 2021
  • 2022.01.19
  • www.youtube.com
Accelerating ML Inference at Scale with ONNX, Triton and SeldonSpeaker: Alejandro SaucedoSummaryIdentifying the right tools for high performant production ma...