Red de conocimiento de divisas - Empezando con las acciones - Práctica y experiencia de configuración cuantitativa de transformadores basada en Journey 5

Práctica y experiencia de configuración cuantitativa de transformadores basada en Journey 5

El 28 de marzo, concluyó con éxito la 16ª "Conferencia para nuevos jóvenes sobre conducción autónoma" celebrada por Zhixixi Open Class. En esta conferencia, Yang Zhigang, el desarrollador principal de Horizon Toolchain, dio una conferencia in situ sobre el tema "Práctica y experiencia de implementación de transformadores cuantificados basadas en Journey 5".

Yang Zhigang introdujo por primera vez la tendencia de desarrollo de Transformer y su implementación en chips inteligentes integrados, y luego se centró en el proceso de desarrollo de algoritmos de chips inteligentes integrados utilizando Journey 5 como ejemplo y tomó SwinT como ejemplo para Se explicaron en detalle la mejora de la precisión cuantitativa y la optimización del rendimiento de la implementación. Finalmente, analizó cómo implementar el modelo Transformer en Journey 5 de manera rápida y eficaz.

Esta conferencia se divide en uno o dos enlaces de conferencia y preguntas y respuestas, los siguientes son comentarios sobre el orador:

Hola a todos, mi nombre es Yang Zhigang, soy el principal responsable de Herramientas Tiangong Wu Kai en Horizon El desarrollo de la cadena, como el desarrollo y verificación de una serie de herramientas cuantitativas y herramientas algorítmicas en Zhengtu 2, Zhengtu 3 y Zhengtu 5. Por lo tanto, tenemos un profundo compromiso con el equipo de algoritmos y el equipo de compiladores dentro de la empresa.

El tema que comparto hoy es "Práctica y experiencia de implementación cuantitativa de Transformer basada en Zhengtu 5". A continuación, analizaré cómo hacer Swin-Transformer en Zhengtu 5 desde dos aspectos: cuantificación e implementación. Carrera rápida y buena.

El siguiente es el contenido principal de esta conferencia, dividido en cuatro partes:

1. La tendencia de desarrollo de los transformadores y su implementación en chips inteligentes integrados.

2. Tome Journey 5 como ejemplo del proceso de desarrollo de algoritmos de chips inteligentes integrados.

3. Tome SwinT como ejemplo para mejorar la precisión de la cuantificación y optimizar el rendimiento de la implementación.

4. ¿Cómo implementar modelos de Transformers de forma rápida y eficiente en Journey 5?

01

Tendencias de desarrollo de transformadores

y problemas implementados en chips inteligentes integrados.

La primera parte es la tendencia de desarrollo de los transformadores y su implementación en chips inteligentes integrados. Creo que todo el mundo es consciente de la reciente tendencia imparable de Transformers. Realmente juega un papel insustituible en el campo de la PNL e incluso en el campo de las imágenes. Por ejemplo, desde que se propuso Transformer en 2017, la estructura del modelo de Transformer ha desempeñado un papel cada vez más importante en toda la estructura del modelo inteligente debido a su modelado de secuencia superior y sus capacidades de modelado global.

Por un lado, lidera la tendencia de los modelos grandes (por supuesto, esta tendencia se refiere principalmente al campo de la PNL). Por ejemplo, los recientemente populares modelos basados ​​​​en transformadores como BERT y GPT han realizado algunos cambios fundamentales en el campo de la PNL. Los parámetros de modelos como GPT oscilan entre 100 millones y 100 mil millones. Podemos ver que las tendencias de desarrollo de modelos y capacidad de los transformadores se están desarrollando en una dirección cada vez mayor. Por supuesto, la premisa del crecimiento es que podemos obtener una mayor precisión a través de modelos más grandes, por lo que este orden de magnitud básicamente ha aumentado de mil millones a cien mil millones o un billón.

Por otro lado, Transformer no solo lidera la tendencia de los modelos grandes en el campo de la PNL, sino que también juega un papel cada vez más importante en el campo de la imagen. La imagen que corté aquí (como se muestra en la Figura 1) es principalmente un gráfico de tendencias en el tronco, que es la clasificación ImageNet. Se puede ver que a medida que aumentan la cantidad de cálculos y parámetros, su precisión será cada vez mayor.

De hecho, cuando enumera tareas básicas comunes como detección, segmentación, seguimiento, etc. ), podemos ver que los primeros están básicamente envueltos en la sombra de "Transformers". Entonces, por ejemplo, el codificador común toma Swin-Transformer como ejemplo, el decodificador toma DETR como ejemplo, así como temporización, BEV, etc. En este caso, Transformer se utiliza para la fusión de características, sin importar en qué etapa del campo de la imagen se encuentre, podemos combinar las características de Transformer con CNN, o incluso reemplazar la estructura del modelo de CNN. Ya sea reemplazando a CNN o combinándola con CNN, estas dos direcciones de desarrollo se han convertido en prácticas comunes en el campo visual, por lo que, en general, "Transformers" es una estructura modelo inevitable en el campo de la imagen actual.

De hecho, agregué una nueva frase "Una puerta a la inteligencia artificial general" en el título. Por supuesto, no me atrevo a decir esto.

También lo vi en alguna otra información. Ahora básicamente se cree que en la etapa de extracción de características, Transformer es un componente de la inteligencia artificial general, por lo que también se le llama puerta, pero este no es el enfoque de lo que queremos compartir hoy.

Transformer juega un papel cada vez más importante en la estructura del modelo, pero por otro lado, su implementación en el lado integrado también recibirá cada vez más atención. En concreto, existe una diferencia entre el tamaño cada vez mayor de los transformadores y el despliegue de chips inteligentes integrados. Por ejemplo, los modelos de transformadores se están volviendo cada vez más grandes en el desarrollo, pero los chips inteligentes integrados tienen limitaciones en cuanto a potencia de cálculo, ancho de banda y muchas otras funciones debido a limitaciones de costo y consumo de energía, lo que hace que los chips inteligentes integrados actuales sean ligeramente más grandes o más pequeños. algunas dificultades en la implementación del modelo transformador.

Aquí hablaré de tres ejemplos principales. En primer lugar, debido a que los chips inteligentes integrados están limitados por el costo y el consumo de energía, su potencia informática, ancho de banda, memoria, etc. serán limitados, lo que conduce directamente a restricciones en el despliegue de modelos grandes como Transformer. Porque si se implementa un modelo grande en una plataforma con menor potencia informática, incluso si no es un Transformer o simplemente una CNN normal, el rendimiento puede ser significativamente pobre, sin mencionar que si un modelo grande como Transformer se implementa en una plataforma. con una potencia informática menor, obviamente habrá algunos defectos.

La segunda característica es que los chips inteligentes integrados populares en el mercado generalmente procesan modelos implementados con baja precisión. Por supuesto, además de la baja precisión, también habrá una pequeña cantidad de soporte de punto flotante con cierta precisión. Esta razón es la misma que las limitaciones de la potencia informática y el ancho de banda, principalmente desde los aspectos de costo y consumo de energía, por lo que esto lleva directamente al hecho de que si desea implementarlo en un chip inteligente integrado, es posible que este modelo deba implementarse. cuantificarse hasta cierto punto, pero al mismo tiempo, la cuantificación no puede tener una cierta pérdida de precisión. De lo contrario, esta implementación no tiene sentido cuando la pérdida de precisión es relativamente grande.

El tercer punto es que el desarrollo de chips en realidad va por detrás de los algoritmos. Esto se describe en detalle en el intercambio anterior del maestro de nuestra empresa, Luo ("Dr. Horizon: Cómo construir un buen chip de IA para conducción autónoma"). Los que estén interesados ​​pueden echar un vistazo. En pocas palabras, se necesita mucho tiempo para que un chip pase del diseño a la producción formal en masa, lo que puede llevar de 2 a 4 años. Por lo tanto, los chips inteligentes integrados populares en el mercado actual se derivan básicamente de diseños de hace 1 o 2 años o incluso más. Los chips inteligentes integrados diseñados en ese momento probablemente no tuvieron en cuenta la situación de los "Transformers", porque en ese momento. Hay muchos productos en el mercado. La mayoría de los modelos populares se basan en CNN, lo que significa que la mayoría de los chips inteligentes integrados actuales son muy amigables con CNN, pero existe una cierta brecha en la implementación de "Transformers". Hoy discutiremos de dónde viene esta brecha.

Analicemos en detalle los problemas que acabamos de mencionar: ¿Qué problemas encontrará durante la implementación de Transformer?

La primera es la cuantificación. De hecho, la cuantificación de Transformer se puede ver en muchos artículos comunitarios o en algunos blogs. Primero, ¿por qué cuantificar? Lo dije brevemente, considerando el costo y el consumo de energía. Si se implementa con int8 o cuantificación de bits bajos, los beneficios son obvios, como la reducción del consumo de energía, el aumento de la velocidad informática y la reducción del uso de memoria y almacenamiento. Aquí hay una comparación de datos. De hecho, existen algunos problemas comunes en la implementación de Transformer. Si está familiarizado con el entrenamiento cuantificado, debe saber que existe una gran cantidad de funciones no lineales en el modelo de transformador, como GeLU y LayerNorm. Por lo tanto, la salida de su valor de activación será muy diferente de la distribución gaussiana, lo que conduce directamente a una gran cantidad de métodos de cuantificación simétricos comúnmente utilizados antes de CNN, que pueden tener problemas obvios de precisión.

Si desea resolver el problema de la precisión de la cuantificación de Transformer, la comunidad tiene mucha experiencia en común. Aquí daré dos ejemplos, como el uso de cuantificación asimétrica para lidiar con distribuciones desiguales o grandes diferencias en la distribución gaussiana. En algunos casos, puede usar SoftMax o LayerNorm de punto flotante directamente en el hardware, lo que definitivamente funcionará. problema de cuantificación, en realidad necesitamos combinarlo con hardware. Si el hardware puede admitir cuantificación de punto flotante o asimétrica es otro tema que debemos considerar. La plataforma Zhengtu 5 de la que vamos a hablar hoy es una plataforma de inteligencia integrada puramente int8.

Obviamente, no es razonable implementar SoftMax o LayerNorm de punto flotante en una plataforma de inteligencia integrada puramente int8. Incluso en algunos casos, incluso int8 puro puede no admitir la cuantificación asimétrica, por lo que para resolver el problema de la cuantificación del transformador hostil, debe considerarse en combinación con las características del hardware.

El segundo problema con la implementación del modelo de transformador es que los transformadores requieren una mayor potencia informática. Como se mencionó al principio, Transformer es el modelo de red neuronal más popular en los últimos años, y la aplicación más importante y completa de Transformer en el campo de la visión artificial es Swin Transformer, y este trabajo también ganó el Premio Mar, el premio más alto en El campo de la visión artificial. Aquí tomamos Swin-Transformer como ejemplo. Consideramos el modelo más pequeño, Swin-Transformer, que tiene una carga computacional de aproximadamente 4,5G.

Es posible que muchas personas no tengan un concepto intuitivo para decir 4.5G. Hice dos comparaciones simples, que son aproximadamente equivalentes a EfficientNetB 4 y ResNet50 entre nuestros modelos comunes. Hablando de ResNet50, mucha gente tiene un concepto. Si se implementa en el nivel ResNet50, en realidad sería un poco difícil implementar muchos chips inteligentes integrados en el mercado con una potencia informática ligeramente menor. Si alguien conoce la historia de Horizon, por ejemplo, la generación anterior de chips Horizon puede ejecutar ResNet50, pero la eficiencia no es muy alta, que también es la eficiencia de implementación de CNN. Si se utiliza en un transformador, la eficiencia se reducirá aún más. De esta manera, el requisito previo para toda la implementación de SwinT es que la potencia informática del chip cumpla ciertos requisitos.

Además de la base de SwinT que acabamos de mencionar, hay una pregunta más importante: ¿Cuál es la diferencia entre los modelos Transformer y CNN de los que hemos estado hablando? ¿Por qué puedo decir que mi chip puede implementar ResNet50, pero no Transformer? De hecho, esta es una diferencia importante entre el modelo CNN y el modelo Transformer. Si estamos familiarizados con el modelo CNN, sabremos que CNN básicamente tiene solo una convolución de principio a fin, o tiene varios operadores de deconvolución, como RoiAlign. Entonces, todo el modelo CNN se basa en realidad en la convolución y la multiplicación de matrices. En otras palabras, este tipo de operadores se caracterizan principalmente por ser operadores computacionalmente intensivos. ¿Por qué nuestros primeros chips inteligentes son tan potentes en concurrencia? Debido a que el diseño de chips inteligentes se basa en este modelo CNN desde el principio, su objetivo es utilizar la concurrencia para resolver problemas computacionales intensivos.

Pero en "Transformers", la situación es diferente. En Transformer, además de la convolución y la multiplicación de matrices de las que acabamos de hablar, hay muchos operadores que consumen mucha memoria como Elementwise y Reduce. Habrá una clara diferencia entre los operadores con uso intensivo de memoria y los operadores con uso intensivo de cálculo, que requerirán un mayor ancho de banda de acceso a la memoria o capacidades de acceso a la memoria e implicarán un procesamiento de datos más irregular. A diferencia de CNN, un tensor 4d se puede usar de principio a fin. El patrón de mi tensor 4d puede ser muy obvio: se descargarán las dimensiones W/H y la dimensión C será más larga. Esta característica de los tensores de cuatro dimensiones es muy amigable para toda la plataforma de inteligencia integrada.

Sin embargo, habrá un procesamiento de datos más irregular en Transformer, como Swin-Transformer. Cuando hacemos división e inversión de ventanas, habrá muchas operaciones de actualización y transposición, y el problema causado por esta operación es que la eficiencia se reducirá aún más. De hecho, este problema es un problema que enfrentará toda la industria de transformadores o chips. No solo los chips inteligentes integrados tendrán tales problemas, sino que los chips de entrenamiento también tendrán problemas similares.

Recuerdo que NVIDIA hizo una estadística simple sobre OPS hace unos años, así que no entraré en detalles. En general, la conclusión es que los operadores puramente computacionales, como la convolución y la multiplicación de matrices, representan aproximadamente el 99,8% de los cálculos, pero en realidad solo toman el 60% del tiempo de ejecución en el chip NVIDIA (en términos de chips de entrenamiento). En otras palabras, el chip de entrenamiento en sí tiene una gran cantidad de operadores no computacionales, pero estos operadores pasan el 40% del tiempo. Este problema se amplificará enormemente cuando Transformer implemente chips inteligentes integrados. Los chips inteligentes integrados comunes pueden hacer perder mucho tiempo a los operadores de acceso a la memoria y al procesamiento irregular de datos.

Para resumir la primera parte, debido a las limitaciones de costo y consumo de energía, existe una gran diferencia entre las ideas de diseño de los chips inteligentes integrados y el modelo de transformador real que debe implementarse.

02

Tomemos el Viaje 5 como ejemplo.

Proceso de desarrollo de algoritmos de chips inteligentes integrados

La segunda parte se centra en el proceso de desarrollo de chips inteligentes integrados. Aunque aquí usamos Zhengtu 5 como ejemplo, de hecho, a través de nuestra investigación actual o para la mayoría de los chips inteligentes integrados, el proceso de desarrollo es básicamente el mismo, en otras palabras, los problemas que queremos resolver son básicamente similares.

En primer lugar, permítanme hablar brevemente sobre la situación básica de Zhengtu 5, que se describió completamente en la serie anterior de lecciones. Se trata de cómo está diseñado el Journey 5 y no hablaré de cuán innovadora o útil es la plataforma de conducción inteligente. Aquí hablaré principalmente sobre cómo estas situaciones básicas cumplen con los requisitos previos para la implementación del transformador. Así que esto también corresponde a los defectos comunes en la implementación de chips inteligentes integrados que acabamos de mencionar.

El primer punto es la gran plataforma informática. En primer lugar, necesitamos una gran plataforma informática como requisito previo para implementar los modelos de la serie Transformer. Si se trata de una pequeña cantidad de potencia informática, como lo que acabo de decir, puede ser más difícil implementar "Transformers" en la generación final de "Journey 3".

El segundo punto es el amplio soporte del operador. También podemos ver por qué esto es más importante en el diagrama de estructura del Transformador de ahora. El cuerpo principal del modelo CNN es la convolución y hay algunos otros operadores, como RoiAlign. Sin embargo, en realidad hay muchos operadores diversos en Transformer, como LayerNorm, SoftMax, forma, Transpose, etc. Por lo tanto, el requisito previo para implementar Swin-Transformer u otros transformadores en chips inteligentes no es solo una gran potencia informática, sino también un conocimiento muy rico del operador.

Además, tiene el rendimiento informático más potente. Creo que la implementación de nuestro Transformer no tiene mucho valor de referencia, porque se basa en un modelo CNN, que es un modelo computacional intensivo, pero todavía hay una gran brecha entre las capacidades de Transformer y este.

El último punto es el consumo de energía ultrabajo. Es necesario decirlo más porque también es uno de los aspectos más destacados del Journey 5. Las cadenas de herramientas Horizon Journey 5 y Tiangong Wu Kai han acumulado un conjunto relativamente completo de herramientas de software. Esta herramienta de software comienza con un modelo de punto flotante entrenado por el usuario y continúa con la cuantificación, el entrenamiento, la compilación, la implementación, la optimización y más. Y finalmente se desplegó en el lado incrustado. Tomando la cuantificación como ejemplo, básicamente toda la cadena de herramientas del chip proporcionará capacitación posterior a la cuantificación para PTQ y capacitación de cuantificación para QAT. En la fase de optimización y compilación, se pueden proporcionar herramientas como Checker, Calibrator, análisis y simulación para, en última instancia, garantizar que el modelo del usuario esté cuantificado y optimizado antes de implementarse en el extremo integrado. Es necesario decir aquí que la acumulación de toda la cadena de herramientas en los primeros días en realidad se basó en el modelo CNN. También hablaré más adelante sobre por qué toda la cadena de herramientas de chip basada en la acumulación de modelos CNN tiene ciertas fallas cuando se trata de modelos de transformadores, tanto cuantitativamente como de manera óptima.

A continuación se explica cómo utilizar toda la cadena de herramientas de Tiangong Wukai para ayudar a los usuarios a implementar rápidamente modelos de punto flotante en chips integrados. Esto es lo que dije al principio. El proceso de implementación de cadenas de herramientas de chips y chips inteligentes integrados se ha vuelto el mismo. En general, considerando que el costo de la migración del algoritmo es bastante pequeño, es básicamente un proceso estándar. Entonces, echemos un vistazo al proceso. Comienza con el entrenamiento de punto flotante y se somete a una calibración posterior a la cuantificación PTQ. Si la precisión posterior a la cuantificación cumple con los requisitos, se puede compilar y optimizar directamente y, finalmente, implementarla; los requisitos, puede ir seguido de un entrenamiento consciente de la cuantificación. El propósito del entrenamiento consciente de la cuantificación es lograr la precisión requerida y, en última instancia, definir el modelo. Por lo tanto, si desea abordar el proceso de optimización de la implementación del transformador, los dos puntos clave que deben abordarse son la optimización cuantitativa y la optimización de la programación. El objetivo principal es utilizar fórmulas cuantitativas para mejorar la precisión cuantitativa. El segundo es obtener un mejor rendimiento de implementación, ya sea de forma manual o automática durante la compilación.

La cadena de herramientas Tiangong Wukai implementó Swin-Transformer en Zhengtu 5 por primera vez. De hecho, no encontramos demasiadas dificultades. Por supuesto, de lo que acabo de hablar es de esta premisa. Uno es la gran potencia informática y el otro es el rico conocimiento del operador. Nuestro proceso de implementación en Journey 5 fue relativamente simple.

Hablemos brevemente sobre qué operadores son compatibles. De hecho, cualquiera que conozca Swin-Transformer debería conocerlo, como forma, rollo, LayerNorm, matmul, etc. ¿Por qué necesita soporte completo del operador? Cuando hicimos esto por primera vez, descubrimos que el opset ONNX no era totalmente compatible con el rollo, por lo que al probar los resultados de otras marcas de Swin-Transformer, el rollo debía procesarse por separado. Recientemente, descubrimos que roll ha sido compatible con el opset, pero, por otro lado, también muestra que existe un cierto umbral para que algunas plataformas de chips inteligentes integrados admitan completamente a los operadores, ya sea debido a restricciones en las herramientas utilizadas, o los chips finales desplegados.

& ltP class="ql-alEste artículo proviene del autor de Cheyi y los derechos de autor pertenecen al autor. Si se reproduce de cualquier forma, comuníquese con el autor. El contenido solo representa la propiedad del autor. punto de vista y no tiene nada que ver con la modificación del coche.

上篇: ¿Cuál es el número de teléfono para consultas sobre seguros médicos de Siping? 下篇: ¿Son hermanas Summer Odyssey?
Artículos populares