Red de conocimiento informático - Material del sitio web - Práctica y experiencia de implementación cuantitativa de Transformers basados ​​en el chip Zhengtu 5

Práctica y experiencia de implementación cuantitativa de Transformers basados ​​en el chip Zhengtu 5

El 28 de marzo concluyó con éxito la decimosexta conferencia de la "Conferencia para nuevos jóvenes sobre conducción autónoma" organizada por Smart Open Class. En esta conferencia, Yang Zhigang, el desarrollador principal de la cadena de herramientas Horizon, dio una conferencia in situ titulada "Práctica y experiencia del despliegue cuantitativo de transformadores basados ​​en el chip Zongheng 5".

El profesor Yang presentó por primera vez la tendencia de desarrollo de Transformer y los problemas existentes en 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 utilizó SwinT. Como ejemplo, el ejemplo explica en detalle la mejora de la precisión de la cuantificación y la optimización del rendimiento de la implementación y, finalmente, analiza cómo implementar el modelo Transformer de forma rápida y eficaz en Journey 5. Modelo de transformador.

Esta conferencia se divide en dos partes: conferencia principal y preguntas y respuestas. La siguiente es una revisión del contenido de la conferencia:

Hola a todos, mi nombre es Yang Zhigang. Soy el principal responsable del desarrollo de la cadena de herramientas Skyworks en Horizon, como el desarrollo y la verificación en Eminent Worker 2. , Eminent Worker 3 y Eminent Worker 5. Una serie de herramientas cuantitativas y algorítmicas. Como resultado, tenemos un compromiso más profundo con el equipo de algoritmos internos y el equipo de compiladores.

El tema que compartiré hoy es "Práctica y experiencia de cuantificación e implementación de Transformer basado en el chip Zhengtu 5. A continuación, también analizaré cómo usar Swin-Transformer en Zhengtu desde dos aspectos: cuantificación y". Implementación funcionando rápido y bien en 5.

El siguiente es el contenido principal de esta conferencia, que se divide aproximadamente en cuatro partes:

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

2. Tome "Viaje 5" como ejemplo para presentar el proceso de desarrollo de algoritmos en chips inteligentes integrados

3. Mejora de la precisión de la cuantificación y optimización del rendimiento de la implementación

4. Implementar modelos de Transformer rápida y correctamente en Journey 5

01

Tendencias de desarrollo de Transformers

y su implementación en chips inteligentes integrados

El La primera parte es la tendencia de desarrollo de Transformer y su implementación en chips inteligentes integrados. Recientemente, creo que todo el mundo es consciente de la imparable tendencia de desarrollo de Transformer. De hecho, ha desempeñado 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, debido a su modelado de secuencia superior y capacidades de modelado global, la estructura del modelo Transformer se ha vuelto cada vez más importante en toda la estructura del modelo inteligente.

Por un lado, lidera la tendencia de los modelos grandes (por supuesto, esta tendencia se refiere principalmente al campo de PNL. Por ejemplo, los recientemente populares modelos basados ​​en Transformer como BERT y GPT). Ya en el campo de la PNL ha desempeñado un papel revolucionario fundamental, y el número de parámetros de modelos como GPT ha aumentado de cientos de millones a cientos de miles de millones. Se puede ver que la capacidad y la estructura del modelo de Transformer se han vuelto cada vez más. Importante en toda la estructura del modelo inteligente. Las tendencias de desarrollo de modelos y capacidad de transformadores se están moviendo hacia tamaños cada vez mayores. Por supuesto, la premisa de crecer cada vez más es que podemos obtener una mayor precisión a través de modelos más grandes, por lo que la escala básicamente ha aumentado de miles de millones a cientos de miles de millones y billones.

Por otro lado, Transformer no sólo lidera la tendencia de los grandes modelos en el campo de la PNL, sino que también ocupa una posición cada vez más importante en el campo de las imágenes. El gráfico que dibujé aquí (que se muestra en la Figura 1) es principalmente su gráfico de tendencia de rendimiento en Backbone (es decir, ImageNet en el campo de clasificación). Puede ver que a medida que aumentan la cantidad de cálculos y parámetros, su precisión también aumenta. y más alto.

De hecho, cuando actualiza la lista de tareas básicas comunes (como detección común, segmentación, seguimiento, etc.), puede ver que Transformer está básicamente clasificado en la parte superior.

Por lo tanto, por ejemplo, el codificador común toma Swin-Transformer como ejemplo, el decodificador toma DETR como ejemplo y la fusión de tiempo, BEV y otras características con Transformer, sin importar en qué etapa del campo de imagen, podemos combinar Transformer y Las características de CNN incluso reemplazan la estructura del modelo de CNN. Ya sea reemplazando a CNN o combinándolo con CNN, estas dos direcciones de desarrollo se han convertido en prácticas comunes en el campo visual. Por lo tanto, en general, Transformer se ha convertido en una estructura modelo inevitable en el campo de la imagen.

De hecho, agregué una nueva oración en el título, "Una puerta a la inteligencia artificial general". Por supuesto, no me atrevo a decir esta oración. También la vi en otros materiales. Básicamente, pensamos que Transformer es un componente de la inteligencia artificial general en la etapa de extracción de características, por lo que también se le llama puerta, pero este no es el enfoque de lo que vamos a compartir hoy.

Transformer juega un papel cada vez más importante en la estructuración del modelo, pero por otro lado, la cuestión de implementarlo en el lado integrado también recibirá cada vez más atención. Específicamente, existen diferencias en los puntos de partida de las dos direcciones de Transformers que se hacen cada vez más grandes y en la implementación de chips inteligentes integrados. Por ejemplo, los modelos de Transformers se hacen cada vez más grandes durante el desarrollo, pero los chips inteligentes integrados son limitados. Debido al costo, el consumo de energía y otras limitaciones, está limitado en muchas funciones, como la potencia informática y el ancho de banda. Esto dificulta que los chips inteligentes integrados actuales implementen modelos Transformers más grandes o más pequeños.

Aquí hablo principalmente de tres ejemplos. En primer lugar, debido a que los chips inteligentes integrados están limitados por el costo y el consumo de energía, están sujetos a ciertas limitaciones en aritmética, ancho de banda, memoria, etc., lo que conduce directamente a restricciones en el despliegue de modelos grandes como Transformers. Porque si se utiliza un modelo grande para implementar una plataforma de potencia informática pequeña, incluso si no es un Transformer, o incluso una CNN normal, su rendimiento obviamente puede ser extremadamente pobre, y mucho menos implementar un modelo grande como Transformers en una plataforma informática pequeña. plataforma de poder. Obviamente habrá algunas fallas.

La segunda característica es que los chips inteligentes integrados actualmente populares en el mercado generalmente procesan modelos de implementación con baja precisión. Por supuesto, además de la baja precisión, se admitirá una pequeña cantidad de coma flotante con cierta precisión. Esta razón es la misma que la limitación de la aritmética y el ancho de banda. Se considera principalmente desde los aspectos de costo, consumo de energía, etc. ., por lo que esto conduce directamente a si desea utilizar un modelo integrado cuando se implementa en un chip inteligente, es posible que el modelo deba someterse a cierta cuantificación, pero al mismo tiempo, la cuantificación no puede causar una cierta pérdida de precisión. De lo contrario, no tiene sentido implementarlo si la pérdida de precisión es grande.

El tercer punto es que el desarrollo de chips en realidad va por detrás de los algoritmos. Con respecto a este punto, hay una introducción más detallada en el intercambio anterior del maestro de nuestra compañía, Luo (Dr. Horizon Luo Heng: Cómo construir un chip de IA autónomo, si está interesado, puede echar un vistazo). En pocas palabras, el chip debe pasar por un largo proceso desde el diseño hasta la producción formal en masa, que puede tardar entre 2 y 4 años. Por lo tanto, los chips inteligentes integrados populares en el mercado actual se originaron básicamente a partir de diseños de hace 1 o 2 años o incluso hace más tiempo. Los chips inteligentes integrados diseñados en ese momento probablemente no tuvieron en cuenta la situación de Transformers, porque en ese momento, el mercado La mayoría de los modelos populares en Internet todavía se basan en CNN, por lo que esto ha provocado que la mayoría de los chips inteligentes integrados actuales sean muy amigables con el despliegue de CNN, pero no amigables con el despliegue de Transformers. Hoy discutiremos la verdadera fuente de esta brecha.

Analicemos en detalle los temas que acabamos de discutir: ¿Qué problemas encontraremos durante el proceso de implementación de Transformer?

La primera es la cuestión de la cuantificación. De hecho, los problemas de cuantificación de Transformer se pueden encontrar en muchos artículos o blogs de la comunidad. Primero, ¿por qué es necesaria la cuantificación? Solo dije brevemente que se basa en el costo, el consumo de energía y otros aspectos. Si se utiliza int8 o cuantificación de bits bajos, los beneficios son obvios, como un menor consumo de energía, una mayor velocidad de cálculo y un menor uso de memoria y espacio de almacenamiento. Aquí hay una comparación de datos. La implementación de Transformer en realidad tiene algunos problemas comunes. Los estudiantes que están familiarizados con el entrenamiento cuantitativo deben tener claro que el modelo Transformer tiene una gran cantidad de funciones no lineales, como GeLU y LayerNorm.

Por lo tanto, el valor de activación generado será bastante diferente de la distribución gaussiana, lo que conduce directamente a un problema de precisión muy obvio en una gran cantidad de los métodos de cuantificación simétricos más utilizados antes de usar CNN.

Si desea resolver el problema de precisión de cuantificación de Transformer, existen muchas experiencias comunes en la sociedad. Aquí daré dos ejemplos, como el uso de cuantificación asimétrica y otros métodos para lidiar con distribuciones desiguales o grandes diferencias en la distribución gaussiana. En otros casos, SoftMax o LayerNorm de punto flotante se pueden usar directamente en el hardware. Ciertamente es posible para resolver el problema de la cuantificación, en realidad necesitamos combinarlo con el hardware, y si el lado del hardware puede admitir punto flotante o si puede admitir la cuantificación 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 int8 pura. Obviamente, no es razonable implementar SoftMax o LayerNorm de punto flotante en una plataforma de inteligencia integrada int8 pura. En algunos casos, incluso int8 puro puede no admitir la cuantificación asimétrica. Por lo tanto, si desea resolver el problema de que la cuantificación del transformador no sea amigable, debe considerar las características del hardware.

El segundo problema con la implementación del modelo Transformer es que Transformer requiere una potencia informática relativamente alta. 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. Este trabajo también ganó el premio más alto en el campo de la visión artificial. , el Premio Marr. Aquí tomamos Swin-Transformer como ejemplo. Consideremos el modelo más pequeño, Swin-Transformer, que tiene un coste computacional de aproximadamente 4,5G.

Hablando de 4.5G, es posible que muchas personas no tengan un concepto intuitivo. Hice dos comparaciones simples. Es aproximadamente equivalente a EffcientNetB4 y ResNet50 entre nuestros modelos más utilizados. Hablando de ResNet50, muchas personas tienen este concepto. Si utilizamos el nivel ResNet50 para la implementación, de hecho, muchos chips inteligentes integrados de menor potencia en el mercado serán difíciles de implementar. Si alguien conoce la historia de Horizon, por ejemplo, el chip de la generación anterior de Horizon puede ejecutar ResNet50, pero su eficiencia no es muy alta. Esta sigue siendo la eficiencia de implementar CNN. Si se usa en Transformers, la eficiencia se reducirá aún más. Desde esta perspectiva, el requisito previo para toda la implementación de SwinT es que la potencia informática del chip cumpla ciertos requisitos.

Además de los fundamentos de SwinT y la cuestión de la cuantificación que acabamos de mencionar, hay una pregunta más importante: ¿cuál es la diferencia entre los modelos Transformer y CNN que hemos estado discutiendo? ¿Por qué mi chip puede implementar ResNet50 pero no Transformer? En realidad, esta es una de las diferencias más importantes entre los modelos CNN y los modelos Transformer. Si estamos familiarizados con el modelo CNN, sabremos que CNN básicamente tiene solo un operador de convolución o varios operadores no convolucionales de principio a fin, como RoiAlign, por lo que todo el modelo CNN en realidad se basa en convolución y multiplicación de matrices. Es decir, este tipo de operador se caracteriza por ser principalmente intensivo en términos computacionales. La razón por la que nuestros primeros chips inteligentes tienen una alta concurrencia es porque los chips inteligentes se diseñaron con un modelo CNN en mente y se centraron en utilizar la concurrencia para resolver problemas computacionalmente intensivos.

Pero las cosas son diferentes en Transformer Además de la convolución y la multiplicación de matrices que acabamos de mencionar, también tiene una gran cantidad de operadores de acceso intensivo como Elementwise y Reduce.

Existe una clara diferencia entre los operadores de acceso intensivo y los operadores de cálculo intensivo, que requieren un mayor ancho de banda de acceso o la capacidad de almacenamiento de la propia memoria de acceso. Al mismo tiempo, el procesamiento de datos es más irregular, pero CNN se diferencia en eso. se puede procesar desde cero hasta La cola usa un tensor 4d. Las reglas de mi tensor 4d pueden ser muy obvias: descargue muestras en la dimensión W / H y realice un alargamiento de características en la dimensión C. Las características de este tensor 4d pueden ser muy. importante para todo el sistema integrado. -Las funciones de Tensor son muy amigables con toda la plataforma de inteligencia integrada.

Pero el procesamiento de datos irregular en Transformer será más obvio. Por ejemplo, como Swin-Transformer, cuando realizamos división e inversión de ventanas, habrá una gran cantidad de operaciones de remodelación y transposición. de funcionamiento Esto conducirá a una mayor reducción de la eficiencia. Esta operación provocará una mayor reducción de la eficiencia. De hecho, este es un problema que enfrenta todo Transformer o toda la industria de chips, no solo los chips inteligentes integrados, sino también los chips de entrenamiento.

Recuerdo que NVIDIA hizo una estadística simple sobre OPS en la prueba hace unos años. No entraré en detalles. La conclusión general es que los operadores de cálculo puro como la convolución y la multiplicación de matrices lo son. mejor, la cantidad de cálculo representa aproximadamente el 99,8%, pero el tiempo de ejecución real en el chip NVIDIA solo representa el 60% (tomando el chip de entrenamiento como ejemplo). En otras palabras, el chip de entrenamiento en sí tiene una baja proporción de operadores no computacionales, pero estos operadores ocupan el 40% del tiempo. Este problema se magnifica enormemente cuando Transformer implementa chips inteligentes integrados. Los chips inteligentes integrados ordinarios pierden mucho tiempo en operaciones de acceso y procesamiento irregular de datos.

Para resumir la primera parte, debido al costo, el consumo de energía y otras limitaciones, existe una gran diferencia entre las ideas de diseño de los chips inteligentes integrados y los modelos Transformer que realmente deben implementarse.

02

Proceso de desarrollo de algoritmos de chips inteligentes integrados

La segunda parte presenta principalmente el proceso de desarrollo de chips inteligentes integrados. La segunda parte se centra en el proceso de desarrollo de chips inteligentes integrados. Aunque "Journey 5" se utiliza como ejemplo, de hecho, a juzgar por la investigación actual o la situación general de la mayoría de los chips inteligentes integrados, el proceso de desarrollo es básicamente el mismo. así que cambiemos. En resumen, los problemas que queremos resolver son básicamente similares.

En primer lugar, me gustaría hablar brevemente sobre la situación básica de Zhengtu 5. Esto se presentó completamente en la serie de cursos anteriores, que trata sobre cómo está diseñado Zhengtu 5 y su innovación o ¿Qué efecto tiene en la plataforma de conducción inteligente? No diré mucho más. Hablaré principalmente sobre cómo estas situaciones básicas cumplen con los requisitos previos para implementar Transformers. Y esto también corresponde a los errores comunes en la implementación de chips inteligentes integrados de los que acabamos de hablar.

El primer punto es una plataforma informática con gran potencia informática. Primero, debemos tener una plataforma informática con gran potencia informática como requisito previo y luego podemos implementar los modelos de la serie Transformers. Si tiene poca potencia de cálculo, como acabo de decir, por ejemplo, la generación anterior de "Journey 3", puede resultar difícil implementar Transformers.

El segundo enfoque es el rico soporte aritmético. En el diagrama de estructura del Transformador de ahora, también podemos ver la importancia de esto. El cuerpo principal del modelo CNN se basa en la convolución, y también hay una pequeña cantidad de otros operadores, como RoiAlign, etc. Pero, de hecho, Transformer tiene un rico conjunto de operadores que pueden usarse para admitir modelos CNN. Pero Transformer en realidad tiene muchos operadores diversos, como LayerNorm, SoftMax, Reshape, Transpose, etc. Por lo tanto, el requisito previo para que los chips inteligentes implementen Swin-Transformer u otros Transformers no es solo una enorme potencia informática, sino también un conocimiento muy rico del operador.

El otro es el rendimiento informático más sólido. Creo que no tiene mucho valor de referencia en nuestra implementación de Transformer, porque se basa en un modelo estadístico basado en CNN, que es un modelo estadístico computacionalmente intensivo. , pero todavía existe una clara brecha entre las capacidades de Transformer y esto.

El último punto es el consumo de energía ultrabajo, que necesita algunas palabras más, porque esto en sí mismo es uno de los aspectos más destacados del Journey 5. Las cadenas de herramientas de Horizon's Journey 5 y Skyworks en realidad han acumulado un conjunto relativamente completo de herramientas de software. Comienzan con el modelo de punto flotante entrenado por el usuario, luego llevan a cabo la cuantificación, capacitación, compilación, implementación, optimización, etc., y finalmente lo implementan. hasta el extremo incrustado. Tomando la cuantificación como ejemplo, básicamente toda la cadena de herramientas del chip proporcionará dos métodos de cuantificación: poscuantización PTQ y entrenamiento de cuantificación QAT. En la etapa 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 se pueda implementar en el extremo integrado después de ser cuantificado y optimizado. Es necesario mencionar aquí que la acumulación temprana de toda la cadena de herramientas de TGI en realidad se basa en el modelo CNN. Más adelante también hablaré sobre por qué toda la cadena de herramientas de chip acumulada según el modelo CNN tiene ciertos problemas al procesar el Transformador. modelo, ya sean defectos de implementación de cuantificación o optimización.

A continuación se presentará cómo utilizar toda la cadena de herramientas de Skyworks 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 cada cadena de herramientas de chip y cada chip inteligente integrado tiende a ser consistente. En general, se considera que el costo de migración del algoritmo es lo suficientemente pequeño, por lo que es básicamente un estándar. proceso. Luego, echemos un vistazo a este proceso. Comienza con el entrenamiento de punto flotante y se calibra después de la cuantificación PTQ. Si la precisión de la cuantificación cumple con los requisitos, podemos compilarla y optimizarla directamente y, finalmente, implementarla; , podemos realizar entrenamiento de percepción cuantificado y cuantificación a la inversa. El propósito del entrenamiento de percepción es hacer que la precisión cumpla con los requisitos y, finalmente, definir el modelo. Entonces, si desea abordar el proceso de optimización de la implementación de Transformer, los dos puntos clave a tratar son el ajuste de cuantificación y la optimización de la compilación, principalmente utilizando fórmulas de cuantificación para mejorar la precisión de la cuantificación. El segundo es utilizar métodos manuales o automáticos durante el proceso de compilación para obtener un mejor rendimiento de implementación.

Cuando Swin-Transformer se implementó por primera vez en Journey 5 a través de la cadena de herramientas TGI, no encontró demasiadas dificultades. Por supuesto, esto también tiene la premisa que acabo de mencionar. tiene una gran potencia informática y un rico conocimiento aritmético que hacen que nuestro proceso de implementación en Journey 5 sea relativamente simple. Aquí hay una breve introducción a los operadores compatibles. De hecho, cualquiera que conozca Swin-Transformer debería saberlo, como Reshape, roll, LayerNorm, matmul, etc. ¿Por qué necesitamos soporte completo del operador aquí? Cuando comenzamos a hacer esto, descubrimos que el opset ONNX no soportaba completamente el balanceo, por lo que cuando medimos los resultados de Swin-Transformer en otras marcas, aún teníamos que lidiar con la situación del balanceo por separado. Recientemente, descubrimos que opset ahora admite el desplazamiento, pero esto también muestra que para que algunas plataformas de chips inteligentes integrados admitan completamente la informática, existen ciertas limitaciones debido a las limitaciones de las herramientas utilizadas o los umbrales de los chips finalmente implementados.

上篇: Cómo planificar juegos de Pascua para niños 9 formas de planificar juegos de Pascua para niños 下篇: ¿Qué tal Tianjin Smart Factory Online E-Commerce Co., Ltd.?