Estudiamos ONNX para aplicarlo al trading - página 15

 

Cuantificación práctica posterior al entrenamiento de un modelo ONNX



Cuantificación práctica posterior al entrenamiento de un modelo ONNX

El video analiza cómo implementar la cuantificación para reducir el tamaño de un modelo TensorFlow a un modelo cuantificado ONNX. El modelo ONNX es significativamente más pequeño en tamaño y se puede ejecutar más rápido en una CPU. El autor proporciona fragmentos de código e instrucciones sobre cómo implementar la cuantificación dinámica y cómo verificar la velocidad de la CPU.

El video muestra el proceso de cuantificación de un modelo de aprendizaje automático para hacerlo más rápido y liviano, al tiempo que reconoce que puede conducir a una caída en la precisión. Los modelos ONNX y TensorFlow se comparan con un modelo cuantificado, y se descubrió que este último es más rápido y liviano. Sin embargo, el modelo cuantizado no se beneficia tanto del uso de GPU como los otros modelos. A continuación, se evalúa la precisión del modelo cuantificado y se encuentra que solo tiene una ligera caída. También se analiza el proceso de visualización de modelos ONNX, y se demuestra el uso de la aplicación Loot Rodas Neutron. El proceso general da como resultado una reducción en el tamaño del modelo de un gigabyte a 83 megabytes con una pérdida mínima de precisión.

Practical Post Training Quantization of an Onnx Model
Practical Post Training Quantization of an Onnx Model
  • 2023.02.02
  • www.youtube.com
In this section we continue our human emotions detection project. We shall focus on practically quantizing our already trained model with Onnxruntime.Colab N...
 

QONNX: una propuesta para representar NN cuantificados con precisión arbitraria en ONNX



QONNX: una propuesta para representar NN cuantificados con precisión arbitraria en ONNX

El ponente analiza la cuantificación de baja precisión, con un ejemplo de su aplicación en la comunicación inalámbrica. Proponen QONNX, un dialecto para representar redes neuronales cuantificadas de precisión arbitraria en ONNX. QONNX simplifica la representación de cuantificación, la extiende a un conjunto más amplio de escenarios y ofrece opciones para diferentes tipos de redondeo y cuantificación binaria. Se está utilizando para la implementación en FPGA y está integrado en la biblioteca de cuantificación Brevitas Python, con NQCDQ configurado para integrarse en la próxima versión.

  • 00:00:00 En esta sección, el ponente habla sobre el concepto de cuantificación de baja precisión, lo que significa cuantificación por debajo de 8 bits. El orador brinda un ejemplo de cómo se utilizó la cuantificación de baja precisión en una tarea de clasificación de modulación para la comunicación inalámbrica, logrando un alto rendimiento con una latencia reducida gracias al entrenamiento consciente de la cuantificación. El orador explica los fundamentos de la cuantificación uniforme y propone extender el poder de representación de ONNX para redes neuronales de baja precisión utilizando el recorte como una función adicional sobre los límites de enteros entre los nodos cuantificados y descuantificados. Sin embargo, el orador reconoce que este enfoque tiene limitaciones, entre ellas, estar limitado a operadores lineales cuantificados con una salida de 8 bits y la incapacidad de adoptar diferentes tipos de redondeos.

  • 00:05:00 En esta sección, el orador presenta QONNX, que es un dialecto para representar redes neuronales cuantificadas de precisión arbitraria en ONNX. QONNX simplifica la representación de la cuantificación al fusionar una secuencia de operaciones para la cuantificación falsa en un solo nodo, al mismo tiempo que la extiende a un conjunto más amplio de escenarios. Ofrece opciones para diferentes tipos de redondeos, entradas de bits de transmisión y cuantificación binaria. El formato se está aprovechando para su implementación en FPGA como parte del esfuerzo de aprendizaje automático rápido, con varias herramientas disponibles para manejar QONNX que se integran con el tiempo de ejecución de ONNX y modelos de baja precisión preentrenados. QONNX ya está integrado en la biblioteca de cuantificación Brevitas Python, y NQCDQ está configurado para integrarse en la próxima versión.
QONNX: A proposal for representing arbitrary-precision quantized NNs in ONNX
QONNX: A proposal for representing arbitrary-precision quantized NNs in ONNX
  • 2022.07.13
  • www.youtube.com
We present extensions to the Open Neural Network Exchange (ONNX) intermediate representation format to represent arbitrary-precision quantized neural network...
 

GRCon20 - Inferencia de aprendizaje profundo en GNU Radio con ONNX



GRCon20 - Inferencia de aprendizaje profundo en GNU Radio con ONNX

El video analiza el uso de ONNX como un formato abierto para integrar el aprendizaje profundo como una solución flexible de código abierto en el dominio de la radiofrecuencia. El orador presenta su nuevo módulo GR DNN DN4, que utiliza interfaces de Python tanto para GNU Radio como para ONNX, y demuestra sus capacidades con un ejemplo de clasificación de modulación automática utilizando un modelo de red neuronal convolucional profundo entrenado en datos simulados generados por GNU Radio. También discuten los requisitos y desafíos de usar el aprendizaje profundo para la clasificación de datos SDR con el modelo BGG16 y sugieren usar aceleración de hardware, como una GPU, para mejorar la inferencia y lograr resultados en tiempo real. El proyecto es de código abierto y se fomenta la colaboración.

  • 00:00:00 En esta sección del video, Oscar Rodríguez analiza su trabajo con la inferencia de aprendizaje profundo en GNU Radio con ONNX. El objetivo principal de su proyecto era integrar el aprendizaje profundo como una solución flexible y de código abierto para el dominio de la radiofrecuencia. Eligieron ONNX porque es un formato abierto que permite la interoperabilidad del aprendizaje automático entre diferentes marcos, resolviendo el problema de los marcos de aprendizaje profundo incompatibles. Sin embargo, hay un costo de adaptar los modelos a ONNX y puede haber problemas de disponibilidad operativa con ciertas operaciones, aunque esto se mitiga por el hecho de que ONNX está desarrollado y respaldado activamente por Microsoft. En última instancia, ONNX proporciona una capa de abstracción entre el modelo del usuario y diferentes marcos de aprendizaje profundo.

  • La sección 00:05:00 analiza el uso de ONNX, que permite diseñar y entrenar modelos de aprendizaje automático en varios marcos, como TensorFlow y PyTorch, antes de convertirlos en un formato común para usar en el bloque ONNX. ONNX define un conjunto de operaciones básicas comúnmente utilizadas en modelos de aprendizaje profundo, y su tiempo de ejecución proporciona interfaces y soporte para varias aceleraciones de software y hardware. El tiempo de ejecución también crea una representación gráfica del modelo que asigna operaciones a diferentes proveedores de ejecución en función de los aceleradores disponibles.

  • 00:10:00 En esta sección, el orador analiza la extensibilidad de los proveedores de ejecución en ONNX, lo que permite admitir nuevas plataformas de hardware siempre que todas las operaciones de ONNX se hayan implementado en esa plataforma. Luego presentan su nuevo módulo, GR DNN DN4, que utiliza interfaces de Python tanto para GNU Radio como para ONNX. El módulo de sincronización adapta las entradas al formato esperado del modelo, ajusta el modelo con los datos transformados y luego transforma la salida a un formato unidimensional. El módulo también permite la selección de diferentes proveedores de ejecución compatibles con ONNX. El orador continúa demostrando las capacidades de GR DNN DN4 con un ejemplo de clasificación de modulación automática utilizando un modelo de red neuronal convolucional profundo entrenado en datos simulados generados por GNU Radio.

  • 00:15:00 En esta sección, el orador analiza el uso del aprendizaje profundo para la clasificación de datos SDR con el modelo BGG16. Explican que la entrada del modelo requiere un vector de 128 valores de IQ, que debe adaptarse a la salida del dispositivo SDR. También señalan que la inferencia de aprendizaje profundo es computacionalmente intensiva y que el rendimiento depende de la complejidad del modelo. El orador concluye sugiriendo que el uso de aceleración de hardware, como una GPU, puede mejorar la inferencia y lograr resultados en tiempo real.

  • 00:20:00 En esta sección, el orador analiza una nueva implementación de radio que puede integrar la inferencia de aprendizaje profundo y la radio definida por software (SDR) utilizando un formato estándar para la representación de modelos de aprendizaje profundo y admite varios métodos de aceleración. El orador demuestra cómo se puede usar el módulo para la clasificación de modulación automática y lograr una inferencia en tiempo real con aceleración de hardware. El orador también analiza las mejoras futuras del módulo, incluida la flexibilidad para diferentes tipos de modelos de aprendizaje profundo y la inclusión de la funcionalidad de preprocesamiento dentro del bloque. El proyecto es de código abierto y se fomenta la colaboración.
GRCon20 - Deep learning inference in GNU Radio with ONNX
GRCon20 - Deep learning inference in GNU Radio with ONNX
  • 2020.09.24
  • www.youtube.com
Presented by Oscar Rodriguez and Alberto Dassatti at GNU Radio Conference 2020 https://gnuradio.org/grcon20This paper introduces gr-dnn, an open source GNU R...