Estudiamos ONNX para aplicarlo al trading - página 6

 

AI Show Live - Episodio 62 - Inferencia multiplataforma con ONNX Runtime



AI Show Live - Episodio 62 - Inferencia multiplataforma con ONNX Runtime

En el episodio "Inferencia multiplataforma con ONNX Runtime" de AI Show Live, los anfitriones muestran cómo implementar un modelo de superresolución y un modelo de detección de objetos en múltiples plataformas utilizando el marco ONNX Runtime. Analizan los pasos de preprocesamiento y posprocesamiento para plataformas móviles y web, demuestran los beneficios de usar una única solución, explican el proceso de convertir un modelo PyTorch en un modelo ONNX y muestran cómo preprocesar datos para inferencia con ONNX. tiempo de ejecución. Además, demuestran la implementación del modelo de procesamiento de lenguaje natural BERT utilizando Onnx Runtime en C#. Los modelos de código y código abierto están disponibles para la personalización de las soluciones de los usuarios.

En la segunda parte de AI Show Live, los presentadores cubren una variedad de temas relacionados con la ejecución de inferencias con ONNX Runtime. Demuestran el proceso de clasificación de texto usando un ejemplo de los ejemplos de inferencia de ONNX y exploran la instalación de paquetes y herramientas necesarias para construir modelos de clasificación BERT en C#. También analizan el uso de IntelliCode con VS 2022 y recorren los pasos de preparación para la inferencia del modelo, incluida la creación de tensores, la configuración de la sesión de inferencia de ONNX Runtime y el posprocesamiento de la salida. Además, mencionan la importancia de consultar la documentación del modelo y seleccionar el tokenizador correcto para obtener resultados precisos.

  • 00:00:00 En esta sección de AI Show Live, la presentadora Cassie Breviu presenta a los invitados especiales Victor, Kalia y David, pasantes del equipo de ONNX Runtime, quienes presentarán un proyecto sobre cómo implementar un modelo de súper resolución y un modelo de detección de objetos en dispositivos móviles y web utilizando el marco ONNX Runtime. El proyecto tiene como objetivo mejorar la detección de objetos en las imágenes a través de una salida de superresolución, lo que demuestra la capacidad de ONNX Runtime para la implementación multiplataforma.

  • 00:05:00 En esta sección, los anfitriones presentan un proyecto que usa React Native y Expo para crear una aplicación que se puede implementar en diferentes plataformas para dispositivos móviles y web. Explican que el uso de la función de módulos nativos de React Native permite la implementación de funciones y modelos en otros lenguajes como C ++ y Java, que se pueden usar en código JavaScript. Esta característica les permite escribir funciones de preprocesamiento en un lenguaje diferente, como su función de obtener píxeles escrita en Java, para manejar mejor los datos, lo que facilita la obtención de datos de píxeles de una imagen para sus modelos de aprendizaje automático.

  • 00:10:00 En esta sección del video de YouTube, el orador analiza los pasos de preprocesamiento y posprocesamiento de una aplicación móvil que utiliza un modelo de súper resolución. A diferencia de otros modelos que funcionan con valores RGB, este modelo solo funciona con el componente de luminancia (Y) de una imagen. Por lo tanto, el orador muestra cómo convertir una imagen RGB en una imagen YCbCr para extraer el componente Y. El orador también demuestra cómo cargar el modelo en el entorno móvil utilizando el formato ONNX Runtime, que proporciona una compilación optimizada y de tamaño reducido para aplicaciones móviles y web. Finalmente, se realiza el paso de posprocesamiento para procesar la salida del modelo.

  • 00:15:00 En esta sección del video, el anfitrión y el invitado demuestran la función de procesamiento posterior que toma una matriz de su modelo y cambia el YCbCr nuevamente a RGB. Luego usan la función de un modelo nativo para obtener la fuente de la imagen para su visualización. El preprocesamiento y el posprocesamiento en lenguajes que no son Python tienden a ser la parte difícil cuando se operacionalizan e infieren modelos en otros lenguajes. Muestran una demostración donde el modelo se implementa localmente en un dispositivo móvil y luego reutilizan el código para implementar el mismo modelo en un navegador web. Un espectador pregunta si se puede hacer lo mismo en C#, a lo que el invitado cree que es posible.

  • 00:20:00 en esta sección, Kalia demuestra las diferencias en el procesamiento previo y posterior para ejecutar el modelo en plataformas web versus móviles. En la web, el lienzo fuera de la pantalla y la API de Canvas se utilizan para obtener los datos de la imagen, mientras que en los dispositivos móviles no es necesario alternar entre las API. Una vez que el lienzo fuera de la pantalla dibuja la imagen, la función de preprocesamiento ajusta los datos de la imagen al canal y, que utiliza el modelo de súper resolución. La función de posprocesamiento luego convierte los datos de y cbcr al formato rgb para que se puedan mostrar en una pantalla. El código de Kalia para las funciones de procesamiento previo y posterior se puede usar en Java, C# o React.

  • 00:25:00 En esta sección del video, los presentadores analizan los beneficios de usar una solución única para múltiples dispositivos, como ONNX Runtime. Demuestran cómo ejecutar un modelo móvil en una plataforma web y las ventajas de la inferencia en el dispositivo, incluida la rentabilidad y la privacidad. Los presentadores también explican el proceso de convertir un modelo PyTorch a un modelo ONNX y luego a un formato ONNX Runtime. Finalmente, presentan el aspecto de detección de objetos del proyecto y explican cómo usaron ONNX Runtime para detectar objetos en las imágenes.

  • 00:30:00 En esta sección del video, el presentador analiza los detalles del modelo utilizado en su proyecto, que es un modelo de IA de detección de objetos que utiliza superresolución para aumentar la precisión de la detección general. Explican las diferencias en el procesamiento previo y posterior entre su modelo y el modelo discutido anteriormente y detallan los cuatro resultados de su modelo, incluida la ubicación, las clases, la puntuación y la cantidad de detecciones. Además, muestran cómo utilizaron la herramienta Netron para analizar y desglosar su modelo, y cómo ajustaron el preprocesamiento para mantener los valores RGB constantes para que el modelo detecte objetos con precisión.

  • 00:35:00 En esta sección, el presentador demuestra la ejecución de un modelo en una foto de súper resolución y muestra los resultados de la detección de objetos, que identifica con precisión al perro en la foto. El uso del modelo de súper resolución mejora la imagen y conduce a una caja de detección más precisa y más pequeña. Esto demuestra la portabilidad y el uso práctico de ONNX Runtime y muestra las capacidades de ejecutar el modelo en un modelo optimizado en el dispositivo. Los modelos de código y código abierto también están disponibles para que los usuarios accedan y personalicen sus propias soluciones.

  • 00:40:00 ver en esta sección es una demostración del modelo de procesamiento de lenguaje natural BERT usando Onnx Runtime en C#. El anfitrión explica que si bien hay muchos ejemplos del uso de BERT en Python, prefirieron usar C#. Comenzaron con el modelo básico sin carcasa de BERT antes de pasar a un ejemplo de los documentos de Onnx Runtime para responder preguntas. Con la API de transformadores Hugging Face, pudieron obtener fácilmente el modelo previamente entrenado y exportarlo al formato Onnx. Luego muestran cómo proporcionar entradas al modelo y ejecutarlo con Onnx Runtime en C#.

  • 00:45:00 En esta sección, el orador analiza el paso de preprocesamiento del modelo, donde se tokeniza el texto. Muestran cómo se usan los ejes dinámicos para permitir diferentes longitudes de entrada y cómo usan el tokenizador para preprocesar la entrada en C sostenido. También presentan Boat Tokenizer, un proyecto de código abierto que les permite tokenizar el modelo BERT en C sostenido, lo que no es posible con el paquete de transformadores basado en Python. La entrada codificada luego se devuelve como ID de entrada, que son los diferentes tokens que se adjuntan a diferentes palabras en el modelo.

  • 00:50:00 En esta sección, el presentador analiza la implementación de modelos BERT en C# mediante la creación de una aplicación de consola. Explican que el uso de una aplicación de consola es útil cuando se experimenta con diferentes implementaciones de modelos de C#, y se puede integrar en una aplicación de producción si es necesario. El presentador demuestra cómo usar la tokenización para obtener los tokens reales de una oración y cómo codificar la entrada con los ID asociados con los tokens. También muestran los grandes vocabularios utilizados y cómo se convierten en objetos para ser utilizados en la tokenización.

  • 00:55:00 En esta sección, el presentador analiza cómo preprocesar datos y prepararlos para la inferencia con ONNX Runtime. Demuestran cómo convertir datos en tensores, que son necesarios para el proceso de inferencia, y cómo crear una lista de objetos de valor ONNX con nombre para pasar a la sesión de inferencia. También mencionan la importancia de establecer etiquetas correctas para los datos de entrada. En general, brindan consejos útiles para trabajar con ONNX Runtime y preparar datos para la inferencia de aprendizaje automático.

  • 01:00:00 En esta sección, el hablante ejecuta los valores de inferencia y obtiene los logits inicial y final. Los resultados se devuelven en el orden del índice de las etiquetas. Para obtener la respuesta pronosticada, primero se debe obtener el valor máximo y el índice del valor máximo de los logits inicial y final. Se muestran los nombres de salida y se pueden ver los valores de los tokens codificados, que se utilizan para comparar si los tokens son correctos. El orador también demuestra el proceso de convertir el código de inferencia de Python en C# para poner en funcionamiento los modelos. Finalmente, sugieren experimentar con más modelos, convertir el código de inferencia de Python en C# y ajustar los modelos.

  • 01:05:00 En esta sección del video, el anfitrión explora la clasificación de texto usando el tiempo de ejecución de ONNX y un ejemplo de los ejemplos de inferencia de ONNX, que es un buen recurso para encontrar ejemplos de cómo usar ONNX. El ejemplo usa un tokenizador de Hugging Face y una versión más pequeña y destilada del tokenizador base encapsulado. El host establece la ruta en función del nombre del modelo, luego establece las entradas para el modelo, que tiene ejes dinámicos debido a la longitud variable de la oración. Las entradas para el modelo de clasificación de texto son los identificadores de entrada y la máscara de atención. El anfitrión menciona que se están desarrollando extensiones para ONNX y que la nueva versión del tiempo de ejecución es compatible con .NET seis y Maui. Aunque el ejemplo de preprocesamiento del modelo no está disponible, el host planea usar Netron para resolverlo.

  • 01:10:00 resume esta sección. En esta sección del video, el locutor cambia el nombre del modelo anterior de una manera menos informativa y le agrega clasificación de texto. Continúan creando un nuevo proyecto usando C# y .NET 6 y explican la nueva característica de tener una plantilla de consola con script simple. El orador copia y pega un código del proyecto anterior en el nuevo y agrega la entrada BERT, que ahora solo tiene dos salidas. El hablante reconoce que debe crear un archivo separado para esta entrada, pero opta por escribirlo en su lugar.

  • 01:15:00 En esta sección, el orador analiza la instalación de varios paquetes y herramientas para crear modelos de clasificación Burp en C#. Instalan el paquete de tokenizador requerido y los paquetes de tiempo de ejecución de ONNX, junto con el paquete administrado. Los paquetes de atributos innecesarios se comentan y el hablante agrega una oración de entrada y un tokenizador para obtener los tokens para la codificación. El orador también menciona el VS 2022 IntelliCode, que usa el modelo GPT-2 para entrenar en la base del código y se ejecuta localmente.

  • 01:20:00 En esta sección del video, el presentador habla sobre el uso de Intellicode (anteriormente conocido como Intellisense) con VS 2022, que es una herramienta impulsada por IA que puede aprender de una base de código existente. Luego pasan a trabajar con el tokenizador y el valor codificado de una oración. También analizan la ruta del modelo y cómo pegar el modelo en una aplicación de consola con fines experimentales, aunque existen mejores formas de manejar esto para una aplicación de producción. Finalmente, el presentador crea una sesión de inferencia para el modelo BERT.

  • 01:25:00 En esta sección del video, los presentadores siguen los pasos necesarios para prepararse para ejecutar una inferencia usando ONNX Runtime. Comienzan creando tensores y convirtiéndolos en un tensor. Luego crean una entrada usando ID de entrada y una máscara de atención, y una lista de listas de listas. Después de crear un valor de ONNX con nombre, ejecutan el modelo y analizan las opciones para configurar la sesión de inferencia de ONNX Runtime, incluidas diferentes optimizaciones de gráficos y proveedores de ejecución. Finalmente, recuperan la salida, que en este caso solo tiene un valor.

  • 01:30:00 En esta sección de la transcripción, el orador revisa el código para usar un modelo con ONNX Runtime. Están explicando cómo nombraron las etiquetas para que sean iguales para usar el modelo ONNX y cómo pueden ejecutar una prueba de cordura para ver si todo funciona. Establecen un punto de interrupción para recorrer el código y verificar si la entrada, la máscara de atención y las identificaciones son correctas. Una vez que la entrada es correcta, cargan el modelo, crean su tensor, sesión e inferencia. Luego explican que necesitan un posprocesamiento para descubrir cómo convertir esto nuevamente en un resultado y fueron a buscar un código de preprocesamiento.

  • 01:35:00 En esta sección del video, el orador analiza el proceso de procesamiento de dos valores obtenidos de un modelo de clasificación para determinar el sentimiento positivo y negativo de una oración determinada. Demuestran el uso de un tokenizador para tokenizar la oración y obtener sus tokens, que usan para confirmar su comprensión de cómo realizar el proceso en C#. También mencionan la importancia de consultar la documentación del modelo y seleccionar el tokenizador correcto para garantizar una tokenización precisa.

  • 01:40:00 En esta sección, los anfitriones de AI Show Live analizan el proyecto Optimum de Hugging Face que implementa optimizaciones para el aprendizaje automático, incluidos aceleradores para capacitación y diferentes integraciones de hardware utilizando el tiempo de ejecución ONNX en el back-end. Los anfitriones también revisan los pasos de procesamiento previo para el tokenizador y la creación de la sesión para el modelo de clasificación de texto. Exploran la versión codificada de una oración y reutilizan algún código escrito previamente para crear la sesión para su modelo.

  • 01:45:00 En esta sección, el presentador se prepara para la inferencia del modelo exportando el modelo y procesando los datos de entrada. Confirman que se usó el tokenizador correcto para tokenizar los datos de entrada al realizar una verificación de cordura de los tokens codificados. Sin embargo, descubren que falta la máscara de entrada y vuelven a examinar el modelo y el código para identificar el problema. A pesar de la incertidumbre sobre el tokenizador utilizado, confirman que los tokens codificados son correctos y proceden a generar la máscara de entrada.

  • 01:55:00 En esta sección del video, el presentador intenta configurar las entradas y salidas para ejecutar el modelo. Se encuentran con algunos problemas con la máscara de entrada y la máscara de atención y, en última instancia, se dan cuenta de que pueden tomar los tokens y enviarlos sin tener que realizar ningún procesamiento adicional. Luego cambian su enfoque a la entrada del modelo, que es un poco más complicado ya que requiere dos entradas y necesita especificar la forma del lote. El presentador usa ONNX Runtime para configurar las entradas y salidas y lo prueba para ver si produce los mismos resultados que el modelo C#.
AI Show Live - Episode 62 - Multiplatform Inference with the ONNX Runtime
AI Show Live - Episode 62 - Multiplatform Inference with the ONNX Runtime
  • 2022.07.29
  • www.youtube.com
Join Cassie Breviu as she takes us on a tour of what the ONNX Runtime can do when it comes to inference AND on multiple platforms to boot.
 

Aprendizaje automático aplicado con ONNX Runtime



Aprendizaje automático aplicado con ONNX Runtime

Jennifer Looper, principal defensora de la nube de educación en Microsoft, analiza la convergencia de la creación de aplicaciones, el aprendizaje automático y la ciencia de datos en este video. Ella recomienda crear aplicaciones inteligentes para la web y explora varias API de JavaScript, incluidas ml5.js, Magenta.js, PoseNet y Brain.js, para incorporar tecnología de aprendizaje automático en las aplicaciones. Looper enfatiza la utilidad de scikit-learn para el aprendizaje automático clásico y lo recomienda como una herramienta poderosa sin la pesada solución de las redes neuronales. También analiza Onnx Runtime, que optimiza el entrenamiento y la inferencia mediante la definición de un conjunto común de operadores para crear modelos de aprendizaje automático y aprendizaje profundo, y obtiene datos de Kaggle para explicar el proceso de realizar una tarea de clasificación básica mediante el aprendizaje automático supervisado. Luego, el orador demuestra cómo crear un motor de recomendaciones utilizando modelos de aprendizaje automático y sugiere visitar los recursos en línea de Microsoft para obtener más información sobre el aprendizaje automático. Ella concluye que Onnx Runtime es adecuado para principiantes como parte de su plan de estudios o para cualquier persona que quiera aprender más sobre el aprendizaje automático.

  • 00:00:00 En esta sección, Jen Looper, principal defensora de la nube educativa en Microsoft, analiza la convergencia entre la creación de aplicaciones y el aprendizaje automático y la ciencia de datos. Ella explica los desafíos de crear aplicaciones móviles hoy en día, particularmente frente a nuevas aplicaciones que están infundidas con inteligencia y ejecutan algoritmos de aprendizaje automático en segundo plano. Looper sostiene que esta nueva demanda de experiencias inteligentes primero ha contribuido a los desafíos que enfrentan los desarrolladores de aplicaciones independientes.

  • 00:05:00 En esta sección, el orador analiza cómo crear aplicaciones inteligentes y qué decisiones arquitectónicas y técnicas guiarían este proceso. Las opciones incluyen crear una aplicación nativa, crear para la web o crear para el escritorio. El orador recomienda apegarse a la web para crear aplicaciones inteligentes y explica que, a pesar de las diferencias en los conjuntos de habilidades entre los desarrolladores web y los ingenieros de aprendizaje automático, hay formas de que estos campos converjan. El orador ilustra la colaboración entre los desarrolladores y los ingenieros de aprendizaje automático, citando el uso de desarrollos, obtención y limpieza de datos, capacitación e iteración, así como el equipo de ML Ops que garantiza la entrega precisa y la mejora continua de los modelos de aprendizaje automático.

  • 00:10:00 anécdotas personales, el orador explica cómo cerrar las brechas en la ingeniería de aprendizaje automático y crear aplicaciones web puede ser menos desalentador que superar el miedo a los puentes. El orador presenta varias herramientas para incorporar tecnología de aprendizaje automático en aplicaciones web, incluidas TensorFlow.js, Brain.js y ONNX. Ella destaca los beneficios de cada herramienta y alienta a los espectadores a explorar el sitio web de TensorFlow para descubrir las interesantes demostraciones que ofrecen. También se centra en ONNX Runtime y su capacidad para llevar modelos basados en ONNX a aplicaciones web. En general, el orador tiene como objetivo proporcionar a los desarrolladores de aplicaciones el conocimiento de las herramientas disponibles para mejorar sus aplicaciones con tecnología de aprendizaje automático.

  • 00:15:00 En esta sección del video, el orador analiza varias API de Javascript que se pueden usar con modelos previamente entrenados para explorar y crear inteligencia artificial en el navegador. Uno de ellos es ml5.js, que se basa en Tensorflow y proporciona ejemplos sobre reconocimiento de imágenes y análisis de sonido. Otra API mencionada es Magenta.js, que utiliza modelos preentrenados para crear música y arte en el navegador. El orador también habla sobre PoseNet, que se puede usar para estimar poses únicas o múltiples para todo el cuerpo, la cara o solo la mano. Finalmente, el orador presenta Brain.js, que permite que las redes neuronales se ejecuten en Javascript en navegadores y Node.js.

  • 00:20:00 En esta sección, el orador analiza las limitaciones del uso de JavaScript y el navegador para entrenar modelos de aprendizaje automático, lo que sugiere que no es un gran entorno para este propósito y es más adecuado para ejecutar modelos estándar o reentrenamiento de los existentes. Recomiendan que para modelos de aprendizaje automático más robustos y adecuados, Python es el camino a seguir, y los programadores pueden aprender suficiente Python para ser peligrosos y trabajar con Jupyter Notebooks para entrenar sus modelos. También discuten el uso de servicios como loeb.ai para capacitación en imágenes y otros medios.

  • 00:25:00 En esta sección, el orador analiza una alternativa al uso de TensorFlow para el aprendizaje automático, scikit-learn. El orador explica que no todos los problemas de aprendizaje automático requieren redes neuronales y crearon un plan de estudios en GitHub que no usa redes neuronales. También muestran cómo usaron scikit-learn para crear una aplicación de recomendación de cocina, impulsada por un tiempo de ejecución ONNX, que permite a los usuarios ingresar ingredientes y recibir sugerencias para un tipo de cocina que pueden hacer con esos ingredientes. El orador enfatiza la utilidad de scikit-learn para el aprendizaje automático clásico y lo recomienda como una herramienta poderosa sin la pesada solución de las redes neuronales.

  • 00:30:00 En esta sección del video, el orador presenta scikit-learn, un marco de aprendizaje automático de código abierto que proporciona ejemplos y documentación para tareas básicas de aprendizaje automático, como clasificación, regresión y agrupación. Explican que scikit-learn es un marco popular entre los científicos de datos y es accesible para todos, ya que viene incluido con numpy, scipy y matplotlib. Luego, el orador analiza Onnx Runtime, un producto de Open Neural Network Exchange (Onnx) que optimiza el entrenamiento y la inferencia al definir un conjunto común de operadores para construir modelos de aprendizaje automático y aprendizaje profundo. Onnx Runtime admite una variedad de marcos, herramientas y tiempos de ejecución, y permite a los desarrolladores de IA usar su marco preferido con el motor de inferencia elegido. El orador describe un flujo de trabajo típico de aprendizaje automático que implica la limpieza de datos con Python, el entrenamiento de modelos con scikit-learn y la conversión de modelos para usar con Onnx Runtime con la biblioteca skl to Onnx.

  • 00:35:00 En esta sección del video, el orador obtiene datos de Kaggle sobre diferentes tipos de cocinas y explica cómo limpiar y equilibrar los datos. El conjunto de datos contiene 100 ingredientes potenciales que se clasifican como indios, tailandeses, coreanos, japoneses o chinos. Para construir el modelo, el orador explica que debe elegir un algoritmo, un clasificador y un solucionador para optimizar los resultados. El conjunto de datos es pequeño, con solo alrededor de 700 puntos de datos. Los datos están etiquetados, lo que significa que se puede usar el aprendizaje supervisado, y el orador enfatiza la importancia de comprender los datos antes de darles forma y limpiarlos para usarlos en aplicaciones de aprendizaje automático.

  • 00:40:00 En esta sección, el presentador analiza el proceso de realizar una tarea de clasificación básica mediante el aprendizaje automático supervisado y la elección de un algoritmo de clasificación de varias clases. El presentador presenta una hoja de trucos para la clasificación de clases múltiples y descarta las redes neuronales debido a la naturaleza del conjunto de datos y el entrenamiento local. Los dos algoritmos de clasificación multiclase que quedan son la regresión logística y los bosques de decisión. El presentador elige la regresión logística y opta por uno contra el resto para manejar la clasificación de clases múltiples. Luego, el presentador explica la importancia de elegir el solucionador correcto y elige el solucionador liblineal. El presentador entrena el modelo usando el ajuste lr y prueba su precisión usando una receta con cilantro, cebollas, guisantes, papas, tomates y aceites vegetales, informando una precisión del 71 %. El presentador también presenta la hoja de trucos del algoritmo Scikit-learn para ayudar en la selección de un algoritmo apropiado en función de la cantidad de datos y etiquetas disponibles.

  • 00:45:00 En esta sección, el orador analiza la importancia de elegir el algoritmo de clasificación correcto al construir un modelo de aprendizaje automático. Demuestran cómo experimentaron con diferentes clasificadores y solucionadores para ver cuál daba la mejor precisión. Después de elegir el clasificador de vectores de soporte (SVC), reconstruyeron el modelo y probaron su precisión. Una vez que estuvieron satisfechos con la precisión del modelo, lo convirtieron en un archivo Onyx y utilizaron el tiempo de ejecución de Onyx para crear una aplicación web. El orador explica cómo crearon una aplicación web simple con una serie de casillas de verificación para enviar datos de ingredientes a un modelo importado y usaron una función asíncrona para iniciar la inferencia. Luego hicieron una demostración de la aplicación web y comprobaron lo que sugería el modelo.

  • 00:50:00 Esta sección del video demuestra cómo construir un motor de recomendación utilizando modelos de aprendizaje automático. Al ingresar una lista de ingredientes, el modelo sugiere qué tipo de cocina se podría crear. Además, el orador invita a los espectadores a obtener más información sobre el aprendizaje automático a través de los recursos en línea de Microsoft, que ofrecen contenido gratuito sobre diversos temas, incluidos la agrupación, la regresión, la clasificación, el aprendizaje por refuerzo, el procesamiento del lenguaje natural y las aplicaciones de series temporales. El orador alienta a los espectadores a hacer preguntas e interactuar con el contenido del sitio web mycommworld.com.

  • 00:55:00 En esta sección, se pregunta si Onnx Runtime es una buena herramienta para principiantes. La respuesta es sí, ya que uno de los oradores es un desarrollador web autodidacta que cree que cualquiera puede aprender cualquier cosa si se esfuerza lo suficiente. Por lo tanto, Onnx Runtime es adecuado para principiantes como parte de su plan de estudios o para cualquiera que quiera aprender más sobre el aprendizaje automático.
Applied Machine Learning with Onnx Runtime
Applied Machine Learning with Onnx Runtime
  • 2021.12.02
  • www.youtube.com
This conference talk was delivered via the One Million Arab Coders initiative. It gives an overview of what applied ML is, how we need to bridge the divide b...
 

Lleve el poder de ONNX a Spark como nunca antes



Lleve el poder de ONNX a Spark como nunca antes

En este video, Shivan Wang de Huawei explica cómo llevar el poder de ONNX a Spark para la inferencia. Habla sobre los desafíos en la implementación de modelos DL en Spark y cómo la comunidad de Spark ha iniciado una propuesta llamada Spip para simplificar el proceso. El orador también analiza el procesador de IA de Huawei, Ascent y el ecosistema de IA de Ascent, que incluye múltiples modelos de procesadores de Ascent y hardware Atlas. Sugiere agregar Con como un nuevo proveedor de ejecución en el próximo tiempo de ejecución para usar modelos ONNX en el hardware de Ascent directamente, sin necesidad de traducción de modelos. Finalmente, menciona que el código POC para llevar el poder de ONNX a Spark está casi completo y da la bienvenida a los usuarios interesados a dejar un mensaje para discutir y potencialmente proporcionar recursos para fines de prueba.

  • 00:00:00 En esta sección, Shivan Wang de Huawei analiza cómo llevar el poder de Onyx a Spark para la inferencia. Él explica que la interfaz de inferencia de marco de datos bien definida es muy amigable para los ingenieros de datos, quienes pueden cargar datos fácilmente y completar la ingeniería de características. Sin embargo, existen brechas entre los marcos de IA y las muestras previas internas, lo que dificulta la implementación de modelos DL en Spark. Para simplificar el proceso, la comunidad de Spark ha iniciado un debate sobre una propuesta llamada Spip, que proporcionará una API simple para hacer que el proceso de Spark y la IA influyan en las células pequeñas. Finalmente, al ejecutar la inferencia de Onyx en el ejecutor de Spark, los usuarios pueden completar fácilmente la influencia de Onyx en Big Data con la ayuda de la plataforma de inferencia de Onyx.

  • 00:05:00 En esta sección, el orador analiza el procesador de IA de Huawei llamado Ascent y el ecosistema de IA de Ascent, que incluye múltiples modelos de procesadores de Ascent y hardware Atlas. La capa de software del ecosistema Ascent se llama Cam y proporciona API para ayudar a los desarrolladores a crear rápidamente aplicaciones de IA bajo servicios basados en la plataforma Ascent. Para ejecutar un modelo ONNX en otro hardware, el usuario primero debe usar una herramienta de traducción de modelos proporcionada por Con para traducir el modelo de ONNX a Ascent. Sin embargo, el orador sugiere que una mejor solución es agregar Con como un nuevo proveedor de ejecución en el próximo tiempo de ejecución, para que los usuarios puedan usar modelos ONNX en el hardware de Ascent directamente, sin necesidad de traducción de modelos. Planean terminar todo el soporte del operador ONNX para fines de este año y garantizar que todos los modelos en el modelo Zoo de ONNX funcionen bien en Ascent, seguido de un mayor desarrollo el próximo año.

  • 00:10:00 En esta sección, el orador menciona que el código POC para llevar el poder de ONNX a Spark está casi completo y que las operaciones básicas, como la operación de agregar, pueden ejecutarse correctamente. También invitan a los usuarios interesados a dejar un mensaje para discutir y potencialmente proporcionar recursos con fines de prueba. La sección concluye agradeciendo a los espectadores por mirar.
Bring the power of ONNX to Spark as it never happened before
Bring the power of ONNX to Spark as it never happened before
  • 2022.07.13
  • www.youtube.com
Both data processing platforms and deep learning frameworks are evolving in their own fields. Usually, Spark is used for offline data processing, and then va...
 

Builders Build n.º 3: de Colab a producción con ONNX



Builders Build n.º 3: de Colab a producción con ONNX

El video ilustra el proceso de implementación de un proyecto de Colab a producción mediante ONNX. El presentador cubre varios aspectos, como el preprocesamiento de señales, la modificación del código para la implementación, la creación de un controlador en AWS Lambda, la aceptación de entradas de audio en un sitio web, la carga de una función en S3 y la implementación de dependencias para ONNX. A pesar de encontrar algunas dificultades, el orador implementa con éxito su modelo con AWS y sugiere que puede usar un objeto de archivo base64 de carga del navegador o fragmentos de lectura de archivos de sonido para pasos futuros.

Además, el video muestra el uso del modelo SimCLR para el aprendizaje contrastivo en audio, la creación de un catálogo de canciones introduciéndolas en el modelo y entrenándolo con PyTorch para lograr cero pérdidas y recuperación en k=1. El presentador analiza los desafíos de usar PyTorch en producción y propone ONNX como solución. El video muestra cómo exportar y cargar el modelo PyTorch en formato ONNX y ejecutar la inferencia. También muestra cómo procesar archivos de audio con las bibliotecas Torch Audio y Numpy y soluciona problemas al configurar un modelo PyTorch para su implementación. El video ofrece información sobre cómo cambiar modelos de desarrollo en portátiles Colab a entornos de producción.

  • 00:00:00 En esta sección, el orador analiza un marco simple para el aprendizaje contrastivo de la representación visual utilizando el modelo SimCLR, que implica muestrear dos transformaciones aleatorias de un conjunto de transformaciones diferentes aplicadas a una imagen, lo que da como resultado dos imágenes diferentes (x tilde i y x tilde j), que luego se pasan a un codificador (resnet 50) para dar dos vectores (hi y hj) pasados a una función de proyección (MLP) para devolver dos proyecciones (zi y zj). El objetivo es maximizar la similitud del coseno de las dos proyecciones utilizando una pérdida de contraste para aprender f y g de modo que la salida de las dos proyecciones del modelo esté muy próxima entre sí. El hablante aplica este marco al audio, donde la entrada no es una imagen sino una señal transformada en un espectrograma, y usa un filtro de paso bajo para cambiar la velocidad de reproducción como una de las diferentes transformaciones.

  • 00:05:00 En esta sección, el presentador analiza la implementación de la pérdida NT_Xent que se usó para el modelo, que es una pérdida de entropía cruzada que involucra un par de pares positivos y la suma de pares negativos. También hablan de hacer un poco de trampa durante la evaluación usando los mismos datos de prueba que los datos de entrenamiento y usando recordar en k como la métrica. Finalmente, mencionan que encontraron una implementación de la función de pérdida en un sitio web llamado lightning y funcionó bien cuando se probó con datos ficticios.

  • 00:10:00 En esta sección, el orador explica cómo construyeron un catálogo de canciones introduciéndolas en el modelo para obtener un conjunto de vectores que representan cada canción, que luego se guardaron con sus correspondientes títulos, señales de audio y índice de representaciones. Luego calcularon las similitudes tomando el producto escalar de las características y el índice del catálogo, normalizaron los vectores y calcularon la recuperación en k para determinar las mejores coincidencias. Usaron un ciclo de entrenamiento normal en PyTorch y agregaron el optimizador LARS, lo que ayudó al modelo a converger a una pérdida cero y lograr una recuperación en k igual a uno, lo que significa que predijo constantemente la canción correcta. Luego, el orador analiza el desafío de usar PyTorch en producción y presenta una solución que usa ONNX, un formato que permite una integración perfecta con otros marcos y la implementación en diferentes dispositivos.

  • 00:15:00 En esta sección, el orador analiza el uso de ONNX, un marco ligero para la inferencia que permite importar modelos de otros marcos como PyTorch y TensorFlow para alojarlos en la nube. El orador tiene la intención de crear una función de controlador de Python que aprovechará ONNX para ejecutar inferencias en datos de audio, obtener el espectrograma del audio, ejecutar el modelo en el espectrograma y devolver un objeto JSON con predicciones. El orador señala que para usar ONNX, el modelo debe guardarse como una extensión de archivo .onnx y explica el proceso para exportar el modelo de PyTorch a ONNX.

  • 00:20:00 En esta sección, el ponente explica cómo exportar un modelo de PyTorch a formato ONNX utilizando las funciones torch.one y x.export. La entrada ficticia permite que el formato ONNX comprenda la forma esperada del archivo de entrada, y los nombres de entrada y salida se especifican mediante un diccionario o un objeto JSON. El orador brinda un ejemplo de cómo exportar un modelo llamado simclr con la marca de tiempo actual, usa parámetros de exportación para almacenar los pesos de los parámetros del tren dentro del archivo del modelo y muestra cómo agregar una función lambda para recuperar la marca de tiempo del modelo.

  • 00:25:00 comienza una nueva sección donde el creador del video explora cómo cargar y ejecutar inferencias en un modelo usando ONNX. Analizan la creación de una sesión de inferencia y la carga del modelo desde una ruta de modelo. El creador planea incorporar el modelo en una API, pero no está seguro de cómo colocar el audio en el controlador. Consideran usar una cosa base 64 y crear un nuevo archivo para probarlo. Luego pasan a discutir cómo ejecutar la inferencia sin cargar un modelo y deciden centrarse en eso.

  • 00:30:00 En esta sección, el orador analiza la modificación del código para usar audio de antorcha en lugar de usar una matriz numpy. El orador descubre que puede usar el audio de antorcha y lo instala para seguir adelante. Luego discuten la modificación de los nombres de entrada y salida y llaman a la salida "proyección" para hacer una similitud de coseno con su biblioteca. La biblioteca está configurada como un objeto JSON con una variedad de títulos, una variedad de formas de onda y una variedad de proyecciones que el hablante pretende usar en sus cálculos de similitud de coseno.

  • 00:35:00 En esta sección, se ve al hablante escribiendo código y explicando el proceso en voz alta. Escriben un guión para ordenar una lista de canciones en una biblioteca de música, discutiendo varias técnicas como la multiplicación de matrices, similitudes y algoritmos de clasificación en el camino. El orador también carga una biblioteca JSON y la utiliza en el script. El video es parte de una serie sobre la creación de software desde la colaboración hasta la producción utilizando el marco ONNX.

  • 00:40:00 En esta sección, el presentador demuestra cómo usar ONNX para producir y guardar un catálogo en formato JSON. El catálogo se crea a partir de matrices y el presentador verifica las formas antes de volcar el catálogo como un archivo JSON usando la función `dump()`. El error resultante se resuelve cambiando el `catálogo` a una copia de la `biblioteca`. Luego, el presentador convierte las matrices en listas utilizando el método `tolist()` y descarga el archivo JSON. Finalmente, el presentador muestra cómo cargar el archivo JSON guardado usando la función `load()`.

  • 00:45:00 En esta sección, el orador analiza su enfoque para procesar archivos de audio desde rutas de archivos utilizando las bibliotecas Torch Audio y Numpy en Python. Explican que han descargado Torch Audio y usarán su método de "señal de preprocesamiento" para volver a muestrear y preprocesar el archivo de audio. Luego usan la función de media de Numpy para calcular la media de la señal procesada mientras mantienen las dimensiones, y luego rellenan la señal usando np.pad. En general, el orador brinda una explicación clara y concisa de su método de procesamiento.

  • 00:50:00 En esta sección del video, el hablante intenta obtener un espectrograma de una forma de onda usando una función. Sin embargo, parece haber algunos problemas con la función que no reconoce la frecuencia de muestreo objetivo y genera un mensaje de error. El orador intenta usar un clip de prueba para solucionar problemas e imprime la forma del espectrograma, que devuelve un resultado inesperado. No está claro qué está causando exactamente los problemas, ya sea un problema de entrada o de modelo.

  • 00:55:00 En esta sección, el orador evalúa algunos de los mensajes de error que aparecieron al intentar configurar un modelo PyTorch para su implementación e identifica problemas con el tamaño del paquete Torch y las dependencias incompatibles. Señalan que un archivo cargado con Torch Audio especifica que necesita más de 1 GB de memoria, lo que puede generar problemas al ejecutar modelos con entradas de archivos grandes. Para resolver esto, sugieren cargar archivos con librosa en su lugar y reemplazar Torch Audio al convertir especificaciones como frecuencia y cargar archivos. En general, esta sección se centra en resaltar algunos de los problemas que pueden surgir al hacer la transición de modelos desde el desarrollo en portátiles de Colab a la implementación en entornos de producción.

  • 01:00:00 En esta sección, el locutor instala Torch y Torch audio para seguir construyendo el proyecto, que aún tiene un tamaño reducido de menos de 500 megas. Utilizan Librosa y vuelven a muestrear para garantizar que la señal regrese con la frecuencia de muestreo original y una frecuencia de muestreo objetivo. Encuentran algunos errores al ejecutar el script y se dan cuenta de que necesitan mezclar diferentes canales para asegurarse de que el resultado no sea extraño. Continúan solucionando problemas para garantizar que el proyecto funcione como se esperaba.

  • 01:05:00 En esta sección, el locutor está trabajando con el preprocesamiento de la señal y la carga de diferentes canales. Se encuentran con un problema en el que la señal solo tiene un canal y necesitan expandirlo más de una vez. El orador usa numpy y squeeze expand dims para resolver el problema y, en última instancia, confirma los cambios.

  • 01:10:00 En esta sección, el orador está modificando el código para permitir la implementación de la API REST de SpeakFluent, que es una función que manejaría una solicitud y luego ejecutaría la inferencia. Modifican el controlador para obtener una solicitud que tenga el archivo de audio y el nombre del archivo, y luego guardan el archivo localmente. Ejecutan la inferencia usando el tiempo de ejecución de ONNX sin Torch y luego devuelven la mejor coincidencia.

  • 01:15:00 En esta sección, el orador analiza el controlador Python de origen para la aplicación, que actualmente devuelve una serie de títulos de canciones y sus correspondientes títulos de mejor coincidencia. El orador también menciona futuras adiciones al controlador que incluirán la devolución del URI para un depósito S3 y el porcentaje de coincidencia para la mejor coincidencia. El orador planea tomarse un descanso y volverá a construir un controlador real que pueda cargarse e implementarse en una función de AWS Lambda.

  • 01:25:00 En esta sección del video, el presentador explica cómo crear un controlador en AWS Lambda mediante un script y un evento. El controlador de Lambda está diseñado para tomar un evento y no una solicitud, y recibirá la parte de audio del formulario del evento. El presentador explica que el proceso consiste en crear un formulario en la interfaz y obtener la identificación de la entrada de audio.

  • 01:30:00 En esta sección del video, un desarrollador analiza el proceso de aceptar entrada de audio en un sitio web usando Javascript y cargar el archivo a un servidor para su procesamiento. El desarrollador explica que agregará un botón de grabación al sitio web y usará Javascript para crear un archivo y subirlo automáticamente al servidor. Luego analizan la inferencia de llamada en el archivo cargado y la devolución de un código de estado 200 con un cuerpo mediante JSON.dumps. El desarrollador también considera usar la codificación base64 del audio en lugar de un archivo para aumentar la eficiencia. Exploran el proceso de ejecutar la inferencia de ONNX con Python en AWS utilizando el tiempo de ejecución de Lambda.

  • 01:35:00 En esta sección, el orador analiza el proceso de cargar una función en S3 y crear una nueva función desde cero para el proyecto llamado Diva. El orador expresa molestia por el proceso, pero procede a crear una nueva función usando Python 3.9, debatiendo sobre la diferencia en ARM y también considerando cargar archivos directamente a la función.

  • 01:40:00 En esta sección, el orador explora el tablero de Cloud Functions y demuestra cómo cargar un archivo zip, cambiar los formatos de eventos a JSON y crear un nuevo evento. También analizan la necesidad de configuraciones adicionales para la memoria y las variables de entorno. Luego, el orador intenta agregar una grabación con audio base64, pero encuentra un problema con las opciones disponibles.

  • 01:45:00 En esta sección, el hablante parece estar copiando y pegando un gran archivo JSON y guardándolo como un paquete de implementación de AWS Lambda. Mencionan querer usar un método diferente, pero finalmente lo eliminan y deciden usar el controlador Lambda en su lugar. Sin embargo, necesitan instalar algunas cosas e intentar encontrar una forma de cargar el paquete en AWS. También discuten las funciones de exportación.

  • 01:50:00 En esta sección, el orador analiza los pasos para compilar e implementar las dependencias necesarias para ONNX, un proyecto de gestión de modelos de código abierto. Explican que es importante compilar en un entorno similar a Lambda para evitar problemas de compatibilidad y sugieren encontrar la carpeta de tiempo de ejecución de ONNX y copiarla en el paquete de implementación. Si bien este proceso puede considerarse "desagradable", el orador explica que es necesario asegurarse de que el código funcione correctamente. Luego enumeran las dependencias necesarias, incluidas librosa, scipy y numpy, y analizan el tamaño del paquete de implementación, que puede ser de hasta 200 megabytes.

  • 01:55:00 En esta sección, el orador analiza los pasos que deben seguir para implementar su modelo con AWS. Necesitan crear un controlador Lambda liviano, descubrir cómo implementarlo con el límite de AWS y decidir si almacenarlo en S3, ya que tiene más de 50 megabytes. El siguiente paso es actualizar la función de procesamiento para tomar un objeto de audio base64 en lugar de un archivo, y el orador considera usar un objeto de archivo base64 de carga del navegador o fragmentos de lectura de archivos de sonido para lograr esto. Concluyen afirmando que creen que pueden hacer eso.
Builders Build #3 - From Colab to Production with ONNX
Builders Build #3 - From Colab to Production with ONNX
  • 2022.03.21
  • www.youtube.com
Last week, we built a Shazam clone using Self-supervised learning (SimCLR).Let's get the model out of Colab and run inference in production with ONNX!I have ...
 

Combinando el poder de Optimum, OpenVINO™, ONNX Runtime y Azure



Combinando el poder de Optimum, OpenVINO™, ONNX Runtime y Azure

El video muestra la combinación de Optimum, OpenVINO, ONNX Runtime y Azure para simplificar el flujo de trabajo del desarrollador y mejorar la precisión y la velocidad de sus modelos. Los oradores demuestran el uso de funciones auxiliares, ONNX Runtime y OpenVINO Execution Provider para optimizar los modelos de aprendizaje profundo. También muestran cómo optimizar los modelos de caras abrazadas mediante la cuantificación en el marco de compresión de redes neuronales e ilustran el proceso de entrenamiento e inferencia mediante Azure ML, Optimum, ONNX Runtime y OpenVINO. La demostración destaca el poder de estas herramientas para mejorar el rendimiento de los modelos y minimizar la pérdida de precisión.

  • 00:00:00 En esta sección del video, Cassie habla con representantes de Intel sobre el kit de herramientas OpenVINO y el tiempo de ejecución de Onyx. El kit de herramientas de OpenVINO utiliza técnicas de optimización avanzadas diseñadas específicamente para Intel Hardware para impulsar el rendimiento de los modelos de aprendizaje profundo. Con la biblioteca de tiempo de ejecución de Onyx y una simple modificación de la línea de código de la sesión instantánea, los desarrolladores pueden utilizar el proveedor de ejecución OpenVINO de Intel para acelerar la inferencia de los modelos de Onyx. La demostración que se muestra en el video muestra el rendimiento acelerado de YOLO V7, un popular modelo de aprendizaje profundo, en una CPU Intel.

  • 00:05:00 En esta sección del video, el orador analiza las diversas funciones auxiliares utilizadas en la demostración para realizar el preprocesamiento, asignar valores de color a etiquetas específicas y leer y reprocesar imágenes. La demostración utiliza ONNX Runtime para crear una sesión de inferencia y ejecutar la tarea de inferencia, y OpenVINO Execution Provider para acelerar los modelos de aprendizaje profundo en una CPU Intel. El proceso se simplifica al realizar una modificación simple en la línea de código, lo que implica instalar las bibliotecas ONNX y OpenVINO, importar la biblioteca ONNX Runtime y configurar el proveedor OpenVINO. El orador también brinda una breve descripción general de la arquitectura de cómo el modelo ONNX se convierte en una representación gráfica en memoria y entra en Graph Practitioner para consultas de back-end.

  • 00:10:00 En esta sección, los oradores analizan cómo optimizar los modelos de rostros abrazados mediante la cuantificación en el marco de compresión de redes neuronales. Recorren un ejemplo de código que muestra cómo habilitar la cuantificación durante el entrenamiento con Optimum Intel y OV Config. También muestran un flujo de trabajo de IA que integra la preparación de datos, el entrenamiento de modelos, la inferencia, la implementación y la automatización para ayudar a los desarrolladores y clientes a realizar actividades complejas de manera más eficiente. Los oradores demuestran cómo usar Azure ML para admitir estos flujos de trabajo para un mejor rendimiento.

  • 00:15:00 En esta sección del video, el orador analiza el proceso de capacitación e inferencia mediante Azure ML, Optimum, ONNX Runtime y OpenVINO. Comienzan discutiendo los archivos y scripts usados para la canalización de capacitación y cómo enviar el trabajo a Azure ML. Luego pasan a analizar el script de inferencia y cómo utiliza ONNX Runtime y el proveedor de ejecución OpenVINO. El orador brinda detalles sobre los resultados de la puntuación F1 para la cuantificación y el entrenamiento del modelo, lo que demuestra que solo hubo una pequeña pérdida de precisión durante este proceso. En general, la sección proporciona una descripción detallada del proceso de entrenamiento e inferencia utilizando estas tecnologías.

  • 00:20:00 En esta sección, el ponente demuestra cómo funciona el proceso de cuantificación mostrando el modelo original fp32 y el modelo optimizado int 8, que ha sido visualizado a través de Netron. También analizan cómo se pueden aprovechar Azure ML y OpenVINO para mejorar la precisión y el rendimiento durante el proceso de capacitación e inferencia. Mencionan el uso de ONNX Runtime para optimizar y mejorar aún más el rendimiento, y alientan a los espectadores a consultar el código y la publicación del blog para obtener más información. En general, la demostración muestra el poder de combinar varias herramientas para simplificar el flujo de trabajo del desarrollador y mejorar la precisión y la velocidad de sus modelos.
Combining the power of Optimum, OpenVINO™, ONNX Runtime, and Azure
Combining the power of Optimum, OpenVINO™, ONNX Runtime, and Azure
  • 2023.01.27
  • www.youtube.com
Devang Aggarwal, and Akhila Vidiyala from Intel join Cassie Breviu to talk about Intel OpenVINO + ONNX Runtime. We'll look at how you can optimize large BERT...
 

Inferencia más rápida de modelos ONNX | Serie Edge Innovation para desarrolladores | Software de Intel



Inferencia más rápida de modelos ONNX | Serie Edge Innovation para desarrolladores | Software de Intel

El proveedor de ejecución de OpenVINO para ONNX Runtime se analiza en este video. Se trata de un acelerador de modelos de aprendizaje automático multiplataforma que permite la implementación de modelos de aprendizaje profundo en una variedad de dispositivos informáticos de Intel. Mediante el uso del kit de herramientas OpenVINO, que está optimizado para el hardware de Intel, y la configuración del proveedor como proveedor de ejecución de OpenVINO en el código, los desarrolladores pueden acelerar la inferencia de modelos ONNX con técnicas de optimización avanzadas. El video enfatiza la simplicidad de la modificación requerida para utilizar las herramientas discutidas.

Faster Inference of ONNX Models | Edge Innovation Series for Developers | Intel Software
Faster Inference of ONNX Models | Edge Innovation Series for Developers | Intel Software
  • 2022.11.30
  • www.youtube.com
Join Ragesh in his interview with Devang Aggarwal, a product manager at Intel with Intel’s OpenVINO™ AI framework engineering team doing work around deep lea...
 

Inferencia de modelos más rápida y liviana con ONNX Runtime de la nube al cliente



Inferencia de modelos más rápida y liviana con ONNX Runtime de la nube al cliente

En este video, Emma del grupo Microsoft Cloud and AI explica Open Neural Network Exchange (ONNX) y ONNX Runtime, que es un motor de alto rendimiento para inferir modelos ONNX en diferentes hardware. Emma analiza la importante mejora del rendimiento y la reducción del tamaño del modelo que puede proporcionar la cuantificación de ONNX Runtime INT8, así como la importancia de la precisión. Demuestra el flujo de trabajo de extremo a extremo de la cuantificación INT8 de ONNX Runtime y presenta los resultados de un modelo de línea de base utilizando la cuantificación PyTorch. Además, Emma analiza la capacidad de ONNX Runtime para optimizar la inferencia de modelos de la nube al cliente y cómo puede alcanzar un tamaño de menos de 300 kilobytes en las plataformas Android e iOS de forma predeterminada.

  • 00:00:00 En esta sección, Emma, gerente sénior de programas en el equipo de marco de trabajo de IA en Microsoft Cloud and AI group, explica el rol de ONNX y ONNX Runtime en la pila de software de IA. ONNX, que significa Open Neural Network Exchange, es un formato estándar para representar modelos tradicionales de aprendizaje automático y redes neuronales de aprendizaje profundo. ONNX Runtime es un motor de alto rendimiento para inferir modelos ONNX en diferentes hardware. ONNX Converters y ONNX Runtime son las piezas principales en el flujo de trabajo para poner en funcionamiento un modelo ONNX, que se puede activar desde cualquier marco utilizando las herramientas de conversión de ONNX. Hay muchos marcos populares que admiten ONNX, incluidos PyTorch, TensorFlow y Caffe.

  • 00:05:00 En esta sección, se analizan los beneficios y las características de ONNX Runtime. ONNX Runtime es un motor de inferencia de alto rendimiento para modelos ONNX que ofrece API para una variedad de lenguajes y aceleraciones de hardware para CPU, GPU y VPU. ONNX Runtime también es abierto y extensible, lo que permite una fácil optimización y aceleración de la inferencia de aprendizaje automático. Ya se ha integrado en múltiples plataformas internas y externas y ha estado impulsando muchos productos emblemáticos. Una de las características más nuevas y emocionantes de ONNX Runtime es la cuantificación INT8 para la CPU, que se aproxima a los números de punto flotante con bits más bajos, lo que reduce la memoria del tamaño del modelo y mejora el rendimiento. Los resultados de referencia en varios modelos y hardware muestran aceleraciones significativas con ONNX Runtime.

  • 00:10:00 En esta sección, el orador analiza la importante mejora del rendimiento de la cuantificación INT8 de ONNX Runtime, que puede acelerar el rendimiento de la inferencia hasta tres veces en una máquina grande y alrededor del 60 % en máquinas más pequeñas, así como reducir el modelo tamaño casi cuatro veces. El orador también enfatiza la importancia de la precisión y proporciona un ejemplo de cómo los modelos cuantificados de ONNX Runtime pueden mantener una precisión similar a la de los modelos FP32 en una tarea común de NLP. Luego, el orador demuestra el flujo de trabajo integral de la cuantificación INT8 de ONNX Runtime, que implica convertir modelos al formato ONNX, usar la herramienta de cuantificación para obtener un modelo INT8 y luego realizar inferencias en ONNX Runtime. Finalmente, el orador presenta los resultados de un modelo de referencia utilizando la cuantificación de PyTorch y evalúa el rendimiento utilizando la función Tokenize y evaluación de Hugging Face.

  • 00:15:00 En esta sección, los oradores analizan el proceso de cuantificación de ONNX Runtime para optimizar el rendimiento y el tamaño del modelo. El proceso implica un paso de optimización antes de la cuantificación, que solo es necesario para los modelos de transformadores. Una vez optimizado, el modelo se puede cuantificar en un formato de 8 bits utilizando la API de cuantificación de ONNX Runtime, lo que da como resultado un tamaño de modelo mucho más pequeño. Los resultados de rendimiento y precisión muestran que la cuantificación de ONNX Runtime supera a la cuantificación de PyTorch en términos de puntuación F1. Otra característica interesante de ONNX Runtime es la capacidad de minimizar el tamaño del tiempo de ejecución para la inferencia en el dispositivo en teléfonos inteligentes y dispositivos periféricos.

  • 00:20:00 En esta sección, se analiza la capacidad de ONNX Runtime para optimizar la inferencia del modelo desde la nube hasta el cliente. Se habilitan dos técnicas principales para ONNX Runtime móvil: la introducción de un nuevo formato optimizado llamado formato ONNX Runtime y la creación de ONNX Runtime con operadores que solo necesitan modelos predefinidos para reducir el tamaño del tiempo de ejecución. Esto reduce significativamente el tamaño del tiempo de ejecución al deshacerse de los operadores no utilizados, lo que lo hace más factible para la inferencia del propio dispositivo y cumple con los requisitos de memoria. El paquete móvil principal ONNX Runtime puede alcanzar un tamaño de menos de 300 kilobytes en las plataformas Android e iOS de forma predeterminada. ONNX Runtime es un proyecto de código abierto con tutoriales y ejemplos disponibles en su repositorio de GitHub.
Faster and Lighter Model Inference with ONNX Runtime from Cloud to Client
Faster and Lighter Model Inference with ONNX Runtime from Cloud to Client
  • 2020.10.16
  • www.youtube.com
ONNX Runtime is a high-performance inferencing and training engine for machine learning models. This show focuses on ONNX Runtime for model inference. ONNX R...
 

Inferencia de CPU de modelo de transformador T5 rápido con conversión y cuantificación ONNX



Inferencia de CPU de modelo de transformador T5 rápido con conversión y cuantificación ONNX

Al convertir el modelo de transformador T5 a ONNX e implementar la cuantificación, es posible reducir el tamaño del modelo 3 veces y aumentar la velocidad de inferencia hasta 5 veces. Esto es particularmente útil para implementar un modelo de generación de preguntas como T5 en una CPU con una latencia inferior a un segundo. Además, la aplicación Gradio ofrece una interfaz visualmente atractiva para el modelo. Se utiliza el modelo de transformador T5 de Huggingface y la biblioteca FastT5 se utiliza para ONNX y cuantificación. La implementación de estas optimizaciones puede resultar en ahorros de costos significativos para las implementaciones de producción de estos sistemas.

  • 00:00 Introducción y Agenda

  • 01:07 Instala la biblioteca de transformadores desde la cara abrazada

  • 02:18 Descargar Modelo De Cara Abrazada

  • 02:40 Ejemplo de generar una pregunta

  • 04:00 Implementación de la aplicación Gradio en GUI

  • 08:11 Convertir T5 Pytorch a ONNX y cuantificar con FastT5

  • 17:22 Guarda el modelo en el disco

  • 18:30 Ejecute la aplicación Gradio con el nuevo modelo

  • 21:55 Episodio futuro y conclusión
Fast T5 transformer model CPU inference with ONNX conversion and quantization
Fast T5 transformer model CPU inference with ONNX conversion and quantization
  • 2021.04.26
  • www.youtube.com
Question Generation using NLP course link: https://bit.ly/2PunWiWThe Colab notebook shown in the video is available in the course.With the conversion of T5 t...
 

Tiempo de ejecución de Azure AI y ONNX



Tiempo de ejecución de Azure AI y ONNX

El texto cubre varios aspectos del aprendizaje automático y su implementación. Analiza la evolución de la ciencia de datos, los desafíos de la compatibilidad del marco, el uso de Azure AI y ONNX Runtime para la implementación de modelos, la creación de entornos ML y las limitaciones de ONNX Runtime. El orador enfatiza la estandarización de ONNX y su soporte para múltiples marcos, lo que facilita la optimización para diferentes hardware. El video también menciona la ausencia de un punto de referencia para las preferencias de hardware y la necesidad de usar múltiples herramientas para superar las limitaciones de ONNX.

  • 00:00:00 En esta sección de la transcripción, el orador analiza la evolución de la ciencia de datos y cómo se ha transformado de una ciencia de trabajo de laboratorio a un mundo de interconexión. El ponente comparte su experiencia trabajando con sistemas IoT y cómo han evolucionado de creados a mano a utilizar servicios en la nube. El ponente también destaca la importancia de poder trabajar en entornos donde no está permitido el uso de servicios en la nube y cómo se necesitan empresas especializadas en estas situaciones. Finalmente, el orador aborda los desafíos de tener que cambiar de marco o proveedor de nube y explica por qué los clientes a menudo cambian de proveedor en lugar de cambiar de marco.

  • 00:05:00 En esta sección, el orador habla sobre el tema de la compatibilidad entre diferentes marcos de IA y cómo afecta a las empresas. Con el ejemplo de un banco, explica que si una empresa hubiera creado su sistema en un marco de IA, pero luego llega un nuevo cliente que quiere usar un marco diferente, la empresa tendría que reconstruir completamente el sistema desde cero, lo que les costaría tanto tiempo como dinero. Luego analiza el tiempo de ejecución de Onex, que permite a las empresas convertir sus marcos y modelos existentes a un formato compatible sin necesidad de una reconstrucción completa. El ponente también menciona las herramientas disponibles para analizar y optimizar estos modelos convertidos.

  • 00:10:00 En esta sección, el orador explica cómo Azure AI y ONNX Runtime se pueden usar para implementar fácilmente modelos de aprendizaje automático en diferentes plataformas. Al seleccionar las opciones apropiadas para su plataforma e idioma, las empresas pueden usar el software para cargar las secuencias de 0 y 1 de su red neuronal y utilizar la plataforma y el idioma de su elección para exportar el sistema y facilitar su implementación. La sesión también cubre cómo se puede usar Onex para optimizar la capacitación a lo largo del proceso de desarrollo, lo que conduce a resultados más rápidos y precisos. El orador también presenta el sistema de optimización automática de Intel serrandello para GPU y CPU, lo que simplifica aún más el desarrollo de modelos.

  • 00:15:00 En esta sección, el orador analiza la creación de su entorno ML y el desarrollo de un clasificador de especies de plantas basado en la longitud y el ancho de los sépalos y pétalos. El orador señala que la creación de un entorno ML solía implicar la compra de grupos de servidores y la configuración manual de todo, pero ahora pueden crear su propio entorno ML y lanzar su propio estudio sin necesidad de hardware. Su entorno de ML incluye una máquina virtual normal y ONNX, que se usa para guardar modelos de TensorFlow. Luego, el orador demuestra la creación de una red neuronal simple para clasificar las especies de plantas según los parámetros dados.

  • 00:20:00 En esta sección, el orador muestra cómo cargar un modelo ONNX guardado y ejecutar una predicción en él. Ella importa el marco Tensorflow, carga el modelo ONNX y asigna un nombre de entrada único a los valores de entrada. Luego crea un campo de enlace para generar valores de entrada aleatorios para ejecutar la expresión ONNX. Por último, ejecuta la llamada y obtiene la categoría del valor de salida obtenido de la predicción. El modelo ONNX creado anteriormente es un archivo único que no necesita documentación, lo que facilita su uso a los desarrolladores.

  • 00:25:00 En esta sección, el orador explica cómo Azure AI y ONNX Runtime facilitan la integración de modelos de aprendizaje automático en varias aplicaciones. Con Azure AI, el cliente solo necesita crear su modelo en su idioma preferido y luego puede usar Azure AI para cargar el modelo y crear los datos de entrada necesarios para invocar el modelo. Luego, ONNX Runtime se puede usar para integrar el modelo en diferentes aplicaciones, como Xamarin, Android o Mac, independientemente de la plataforma subyacente. Esto hace posible integrar modelos de aprendizaje automático con facilidad en varios dispositivos y plataformas. El orador también señala que ONNX Runtime se optimiza para varios procesadores, incluidos los de dispositivos móviles.

  • 00:30:00 En esta sección, el orador explica que ONNX se ha convertido en el estándar de facto para los modelos de aprendizaje automático, ya que admite todos los marcos principales y cuenta con el apoyo de muchas empresas. Esta estandarización permite una optimización más sencilla para diferentes hardware, sin necesidad de una optimización manual como en el pasado. Además, ONNX no se limita a las redes neuronales y también se puede utilizar para otros algoritmos. El orador también señala que ONNX admite las mismas funciones y operaciones matemáticas en diferentes plataformas, lo que permite una implementación perfecta en diferentes hardware y plataformas, siempre que coincidan los opsets admitidos.

  • 00:35:00 En esta sección, el orador analiza las limitaciones del tiempo de ejecución de ONNX en términos de rendimiento. Si bien ONNX es una gran herramienta que funciona bien para casos de uso general, no utiliza el hardware en todo su potencial. Aquí es donde otras herramientas más allá de ONNX, como pytorch, pueden ser más beneficiosas. Sin embargo, si el enfoque de una persona es exportar el modelo, ONNX puede reemplazar otras herramientas por completo. Además, el orador explica que ONNX no maneja la comunicación de máquina a máquina como el renderizado de varias máquinas. El orador sugiere usar otras herramientas junto con ONNX para superar estas limitaciones.

  • 00:40:00 En esta sección, el orador analiza la ausencia de un punto de referencia para las preferencias de hardware y destaca que la mayoría de los puntos de referencia se pueden encontrar en el sitio web del fabricante del hardware. También señalan que muchas empresas ahora escriben para el hardware, y no al revés. Luego, el orador menciona las plataformas más utilizadas para la aceleración, incluidas Core ml, ONNX Runtime y RT. Mencionan cómo se acelera la fase de formación y una vez finalizada es más fácil vender a los clientes. Los oradores sugieren que se avecinan pocos cambios en los próximos años y que xeon y programas similares seguirán siendo prominentes.
Azure AI and ONNX Runtime
Azure AI and ONNX Runtime
  • 2023.03.09
  • www.youtube.com
Language: ItalianoAbstract:We will see how to create an AI model with Azure, turn it into ONNX, and use it in our .NET services natively with ONNX Runtime. A...
 

Implemente Machine Learning en cualquier lugar con ONNX. Modelo Python SKLearn ejecutándose en una función Azure ml.net



Implemente Machine Learning en cualquier lugar con ONNX. Modelo Python SKLearn ejecutándose en una función Azure ml.net

El video muestra cómo el tiempo de ejecución de ONNX simplifica y estandariza la implementación de modelos de aprendizaje automático creados en diferentes lenguajes y marcos. Demuestra el proceso de empaquetar un modelo Python scikit-learn en un modelo ONNX e implementarlo en una función Azure ML .NET. El video destaca que la función de Azure se puede activar fácilmente a través de una solicitud HTTP POST, lo que facilita la llamada desde cualquier aplicación o sitio web y, independientemente del lenguaje utilizado para construir el modelo de aprendizaje automático, se puede convertir a un modelo ONNX y implementado a través de ML.NET para ejecutarse de manera consistente.

  • 00:00:00 En esta sección, el video presenta el tiempo de ejecución de ONNX y cómo simplifica el proceso de implementación de modelos de aprendizaje automático creados en varios lenguajes y marcos. El tiempo de ejecución de ONNX permite que los modelos se encapsulen de una manera que se pueda implementar fácilmente en un entorno diferente. Reemplaza el proceso de decapado y proporciona un tiempo de ejecución estándar que funciona en Python, R, .NET, Java y otros lenguajes. El video continúa demostrando un ejemplo completo de cómo crear un modelo simple en Python, empaquetarlo en un modelo ONNX y ejecutarlo en una función ML .NET. El código utilizado en este ejemplo está disponible en el GitHub público del canal Advancing LLS YouTube.

  • 00:05:00 En esta sección, el orador demuestra cómo implementar un modelo de aprendizaje automático mediante ONNX en una función de Azure. La demostración comienza mostrando un modelo básico de Python que usa scikit-learn para entrenar un modelo de regresión lineal usando datos de precios de viviendas de San Francisco. El modelo se entrena mediante un conjunto de entrenamiento que consta de valores numéricos y categóricos, y una vez que se entrena el modelo, se selecciona para conservarlo e implementarlo en un contenedor. Finalmente, el hablante prueba el modelo llamando a predecir en el conjunto de entrenamiento y recupera algunos valores. Este proceso se puede utilizar para implementar y ejecutar modelos de aprendizaje automático en cualquier lugar mediante ONNX.

  • 00:10:00 En esta sección del video, el presentador configura el modelo para que se ejecute en ONNX de modo que Python no sea necesario para usarlo. Se especifica la cantidad de características que se incluyen en el entrenamiento del modelo y se inicializa el modelo ONNX para saber qué esperar. La entrada inicial se denomina entrada de características, que se necesita para la puntuación. Para puntuar el modelo, se crea una sesión y una línea de código se encarga de predecir en función de los datos de entrenamiento. Luego se imprimen las predicciones.

  • 00:15:00 En esta sección, el orador analiza la ejecución de un modelo de Python en ONNX y cómo se puede ejecutar de manera consistente en Python, independientemente de los paquetes utilizados. El orador muestra cómo convertir un modelo de Python a ONNX y ejecutarlo en una función de Azure mediante HTTP POST con un objeto JSON. La función extrae datos importantes, como el año, la mayor superficie habitable y la condición de venta, y los pasa al modelo, que usa ONNX para calificar los datos y devolver el resultado. El orador explica que la función de Azure es un activador HTTP estándar con una API REST en la parte posterior, lo que facilita llamar desde cualquier aplicación o sitio web.

  • 00:20:00 En esta sección, el orador explica los pasos necesarios para crear una variable llamada entrada y usarla para dar forma al tensor de entrada para que sea aceptable para que se ejecute la sesión. La sesión se inicia y se inicia para ejecutar la nueva sesión en la ruta y puntuar con la entrada designada. Luego, el resultado de la puntuación se extrae y se empaqueta como un objeto de resultado y se devuelve a la función. El orador demuestra cómo probar el modelo implementado en Postman al pasar los parámetros del modelo de objetos JSON sin procesar, como el año de construcción y el área de vivienda, para recuperar la puntuación. La ventaja de implementar modelos de aprendizaje automático a través de ONNX y ML.NET es que no importa en qué idioma las personas construyan sus modelos, siempre que se pueda convertir en un modelo ONNX, luego se puede implementar y ejecutar de manera consistente.
Deploy Machine Learning anywhere with ONNX. Python SKLearn Model running in an Azure ml.net Function
Deploy Machine Learning anywhere with ONNX. Python SKLearn Model running in an Azure ml.net Function
  • 2020.07.21
  • www.youtube.com
Deploying Machine Learning Models is hard. ONNX tries to make this process easier. You can build a model in almost any framework you're comfortable with and ...