Transformador ~ 45

Esta es la oportunidad y el desafío de los chips de inteligencia artificial de extremo a lado en la era de los transformadores. Me gustaría agradecer primero al hermano mayor. No es sorprendente que me haya mudado aquí para aprender por mí mismo.

Transformer parece haberse tragado gradualmente la posición de CNN, y Transformer requiere una mayor cantidad de cálculo y es más probable que esté limitado por el ancho de banda y el caché Entonces, ¿cómo deberían las empresas de chips de IA a corto plazo lidiar con esta oportunidad y desafío? Este artículo analiza y resume los modelos de transformadores típicos de cada modo y sus ventajas y desventajas desde la perspectiva de extremo a extremo.

Parece que en los últimos dos años, Transformer ha aplastado silenciosamente a CNN en los modos de voz, visión y radar. Teniendo en cuenta que los modelos en estos campos casi contraen la carga de trabajo de un extremo a otro, ¿cómo debería abordarlo la mayoría de las empresas de chips de IA de un extremo a otro? ¿Cómo considerar el diseño y la selección de chips de próxima generación? Creo que los amigos en la industria deben haber investigado mucho: Transformer es muy bueno, pero bajo la escala de poder de cómputo del lado de la terminal, en comparación con CNN, Transformer a menudo necesita una mayor cantidad de cálculo para obtener una ventaja sustancial, y Transformer's la intensidad de cálculo es más fuerte Bajo, es más probable que esté limitado por el ancho de banda y el caché. . . Por lo tanto, es necesario adoptar una estrategia similar a la del chip de IA de computación grande orientado a LLM: agregar caché y aumentar el ancho de banda.

¿Es esto realmente suficiente? Hace dos meses, realmente lo pensé. Lamenté que había llegado la era de la unificación de transformadores, y es bueno acumular materiales. Incluso saqué una actitud un poco pesimista hacia el desarrollo futuro del campo de AiSys en la siguiente respuesta. Pero recientemente, después de investigar la estructura de los transformadores populares en estos campos y comunicarme con amigos de algunos algoritmos, descubrí que el paradigma de aplicación de los transformadores en otras modalidades es bastante diferente al de NLP, y traté de diseñar chips orientados a LLM. No es apropiado que las decisiones se apliquen directamente al extremo. 

A continuación, enumeraré los modelos de transformadores típicos de cada modo y sus ventajas y desventajas desde la perspectiva del lado final. El pensamiento y el resumen se darán al final. Los amigos que no estén interesados ​​en el modelo pueden saltarse el presagio e ir directamente al resumen.

Además, para una mejor comunicación (armonía), como siempre, defina el tema de discusión. El chip de IA del extremo al que se hace referencia en este artículo representa el círculo en la figura a continuación. Móvil, Edge, Autónomo. Por un lado, los chips de IA en este rango son más sensibles al costo y el apilamiento de caché y ancho de banda es relativamente conservador, por otro lado, DSA con más eficiencia energética tiene una mayor proporción, lo que resulta en una flexibilidad de programación relativamente débil. Inventario de modelos de transformadores típicos de extremo a lado

Artículos visuales de columna vertebral

Vit:  UNA IMAGEN VALE 16X16 PALABRAS: TRANSFORMADORES PARA EL RECONOCIMIENTO DE IMÁGENES A ESCALA, 2020

Introducción

  • En el proceso general: la imagen se empaqueta y codifica directamente a través de la incrustación de parches y se convierte en una característica de secuencia del tipo transformador.Después de conectar la codificación de posición del parche, el siguiente bloque transformador clásico se hace cargo.

  • Desde la perspectiva del algoritmo: la estructura Vit convierte la información visual en características secuenciales con solo una pequeña cantidad de preprocesamiento de características, lo cual es bastante elegante y conciso. Sin embargo, dado que la información de escala está determinada únicamente por patch_size en la etapa de incrustación de parches, la información de múltiples escalas que es crucial para las tareas de visión está ausente. Por lo tanto, en otras tareas visuales además de la clasificación, el desempeño de Vit no es ideal.

Ventajas y desventajas desde la perspectiva del lado final

  • Ventaja:

    • Excepto por la incrustación de parches y la forma de salida, la estructura de Vit es la misma que la estructura de transformador clásica, por lo que puede disfrutar directamente de la mayoría de las estrategias de optimización de inferencia de transformador que ignoran kv-cache.

  • Desventajas:

    • La cantidad de cálculo aumenta cuadráticamente con la resolución (seqlen=(H/patch_size)x(W/patch_size)). Cuando se aplica a escenas de gran resolución (como la segmentación de detección), ni FFN ni la multiplicación de matriz en MHA se pueden cargar directamente en la memoria caché cercana al núcleo del lado final con recursos limitados. Aunque existen varias estrategias de segmentación paralela para admitirlo, la sobrecarga de ancho de banda causada por el intercambio excesivo de entrada y salida entre el caché y la memoria principal aún restringe seriamente su eficiencia informática.

    • El conv2d especial del nivel patch_size (16/32) no tiene una buena eficiencia de utilización. Por supuesto, el enfoque sigue estando en 1), el problema de 2) es muy similar a la convolución del primer inchannel=3 de CNN, no es un cuello de botella, y 2) también se puede convertir a permute+gemm para evitar él.

swintransformer:Transformador Swin: Transformador de visión jerárquica usando ventanas desplazadas, ICCV, 2021简介

  • Proceso general: con referencia a la figura anterior, PatchMerging reduce la escala etapa por etapa (la primera PatchPartition+LinearEmbedding se puede considerar como una PatchMerging especializada); un solo SwinTransformer primero convierte las funciones visuales en funciones secuenciales con ventanas locales como granularidad a través de WindowPartition, y envía Después de procesar la estructura clásica de Transformer, las características visuales se transfieren de vuelta a través de WindowUnpartition; cada SwinTransformer realiza un deslizamiento de ventana para lograr un flujo de información global.

  • Perspectiva del algoritmo: WindowAttention modificada mágicamente de SwinTransformer todavía afirma las características locales en las tareas visuales. Además, alternar entre características visuales y características secuenciales a lo largo de la canalización hace posible la extracción de información de múltiples escalas basada en la atención. Esto es de gran importancia para la implementación de Transformer en tareas visuales como detección y segmentación.

Ventajas y desventajas desde la perspectiva del lado final

  • Ventaja

    • El mecanismo WindowAttention hace que la cantidad de cálculo aumente linealmente con la resolución, lo que resuelve el principal problema de ViT. Además, el tamaño de la secuencia seqlen solo está relacionado con el tamaño de la ventana ws (seqlen=ws x ws). Siempre que embed_dim esté diseñado correctamente, la operación de la matriz puede residir en el caché cercano al núcleo del chip de IA independientemente de la resolucion

    • Este mecanismo también aumenta el tamaño del Lote disfrazado (Batch=batch_origin x (H/ws) x (W/ws), ws se refiere al tamaño de la ventana). Paralelo sin sincronización, ¡totalmente gratis! ! Esta es definitivamente una sorpresa para el diseño de arquitectura multinúcleo.

  • desventaja

    • Además de heredar la convolución especial de PatchEmbedding, WindowPartition/Unpartition y el deslizamiento de ventana de ViT, se introduce permute/torch.roll, y el tamaño de ventana y la resolución no coinciden con la introducción de Pad. Estos reordenamientos de datos de alta frecuencia sin duda tienen un mayor impacto en el rendimiento. gran impacto.

Evolución posterior

  • Sobre el mecanismo de atención: la combinación de atención de ventana (SwinTransformer) y atención global (ViT). Por ejemplo, ViTDet: Exploración de las redes troncales de transformadores de visión simple para la detección de objetos, ECCV, 2022. Es decir, algunos Transformers usan Atención de ventana y otros usan Atención.

  • Codificación de posición: aplicar la innovación de la codificación de posición en el campo de la PNL a tareas de visión, como RoPE: ROFORMER: ENHANCED TRANSFORMER WITH ROTARY POSITION EMBEDDING, 2021. Como se muestra a continuación, el cálculo principal es la rotación par-impar y la desinversión par, (x, y) --> (-y, x). En el nivel onnx, se dividirá en subgrafos de división de baja dimensión+neg+concatenación de baja dimensión. Convertir un 1 paso obvio en varios pasos tiene un ligero impacto en el rendimiento.

def rotate_half(x):
    x = rearrange(x, '... (d r) -> ... d r', r = 2)
    x1, x2 = x.unbind(dim = -1)
    x = torch.stack((-x2, x1), dim = -1)
    return rearrange(x, '... d r -> ... (d r)')
Inspección visual

DETR : Detección de objetos de extremo a extremo con transformadores, ECCV, 2020简介

  • Proceso general: como se muestra arriba. La característica principal se extrae, después de hacer un ChannelMapping y una codificación de posición, se envía al módulo de códec Transformer clásico y finalmente se entrega al marco FFN. Vale la pena señalar que la consulta incrustada en la parte de decodificación es un valor fijo preestablecido (parámetro de aprendizaje).

  • Desde la perspectiva de un algoritmo: Marco de extremo a extremo basado en transformadores, sin NMS, sin características artificiales ni conocimientos previos, pero la capacitación es difícil. Desde la perspectiva del despliegue, es simplemente un diseño asombroso.

Ventajas y desventajas desde la perspectiva del lado final

  • Ventaja

    • No hay nms de extremo a extremo, y no hay necesidad de descargar a la CPU para el procesamiento posterior.

    • Al igual que ViT, básicamente puede usar sin problemas la mayoría de las estrategias de optimización de inferencia de transformadores.

  • desventaja

    • Desde la perspectiva de la carga típica detectada, la cantidad de cálculo sigue siendo demasiado grande. Para lograr el mismo efecto de algoritmo, en comparación con la combinación de cabezales de detección en la era de CNN, la sobrecarga es demasiado grande, lo que no vale la pena.

DETR deformable : DETR DEFORMABLE: TRANSFORMADORES DEFORMABLES PARA LA DETECCIÓN DE OBJETOS DE EXTREMO A EXTREMO, 2020简介

  • En términos del proceso general: el proceso de Deformable DETR es un poco complicado. Solo escaneé el código y transfirí el modelo para comenzar. Parece que no es fácil de entender en base a los dos diagramas estructurales anteriores. Trato de interpretarlo de manera concisa desde la perspectiva de la estructura del modelo: Deformable DETR recibe las características visuales de múltiples escalas extraídas por la columna vertebral y las envía a su estructura DeformableTransformer personalizada. Dentro de esta estructura, las funciones de consulta existen en dos representaciones: multiescala visual y secuencia. Prediga las coordenadas (puntos de referencia en la Fig. 2) y el desplazamiento (desplazamiento en la Fig. 2) de los puntos característicos de interés en función de las características de la secuencia, y luego extraiga los puntos característicos de las características visuales multiescala de acuerdo con las coordenadas y combine los pesos calculados por las características de la secuencia para obtener la entrada de consulta de la próxima ronda de DeformableTransformer.

  • Desde una perspectiva algorítmica: reduce la dificultad del entrenamiento.

Ventajas y desventajas desde la perspectiva del lado final

  • Ventaja

    • Parece que es difícil encontrar una ventaja a nivel de implementación para Deformable DETR, si hay que decirlo, el cálculo de la matriz DeformableAttention para su modificación mágica es un poco menor.

  • desventaja

    • Si el reordenamiento de datos (permutación) insertado continuamente en el modelo por WindowPartition y WindowUnpartition tiene un impacto en el rendimiento del lado final, creo que la operación de grid_sample de alta frecuencia de DeformableAttention para extraer puntos característicos solo puede describirse como un desastre para los inflexibles. y lado final de bajo ancho de banda.

    • Sin mencionar la división especializada (segmentación no igual) y la permutación de alta dimensión introducida al cambiar entre funciones visuales de escala múltiple y funciones de secuencia.

Evolución posterior

  • DINO: DETR con cuadros de anclaje de eliminación de ruido mejorados para la detección de objetos de extremo a extremo, 2022, introduce además la selección de consultas basada en DeformableDETR y agrega la selección de objetivos (topk+gather) en la etapa de decodificación.

Punto de nube

DSVT : DSVT: Transformador de vóxel disperso dinámico con conjuntos rotados CVPR 2023简介

  • Proceso general: toda la canalización de DSVT (la parte de DSVT en la figura anterior) puede entenderse como una versión de nube de puntos del swintransformer. 1) Autoatención local paralela: DSVT divide el vóxel disperso en múltiples ventanas y finalmente lo divide en un número igual de conjuntos, y realiza la atención para cada conjunto. 2) Circulación de información global (cambio de ventana deslizante): Particiones DSVT x/y respectivamente.

  • Método de cambio de datos: grabe previamente el índice correspondiente a la característica de vóxel en la dirección x/y, y realice el cambio de datos entre el espacio de característica de nube de puntos de vóxel y el espacio de característica de secuencia de transformador a través de recopilación/dispersión.

  • Voxelization y BEV en el proceso son términos de dominio y no se tratarán en este artículo. Para la parte de voxel, consulte VoxelNet: Aprendizaje de extremo a extremo para la detección de objetos 3D basada en nubes de puntos CVPR 2018.

  • Además del proceso, DSVT y SwinTransformer tienen cargas típicas similares (establecidas en DSVT)

Ventajas y desventajas desde la perspectiva del lado final

  • Ventaja

    • Heredó todos los beneficios de WindowAttention. Reduce la cantidad de cálculo, la escala de cálculo de una sola matriz y mejora el paralelismo del cálculo.

  • desventaja

    • El costo de cambio de datos en el espacio de características de la secuencia del transformador y el espacio de características de la nube de puntos de vóxel es mucho más alto que el de las características visuales. En primer lugar, el acceso aleatorio a los datos (reproducción aleatoria), como la dispersión/recopilación, requiere mucho más tiempo que la operación de reorganización de datos (reordenación) y, en segundo lugar, el soporte de estas operaciones en el lado del dispositivo es un signo de interrogación. ¿Se da toda la descarga a la CPU? Esto no es una broma.

    • En una palabra, la hostilidad del lado de la terminal no tiene nada que ver con DSVT en sí, es la pérdida de los genes malos y la estructura de datos de la nube de puntos.

Evolución del cabezal de detección 3D

La ruta de evolución del algoritmo del cabezal de detección 3D es relativamente complicada y hay muchos preparativos por hacer, como CenterNet y CenterPoint en la era CNN, pero el final es el mismo que el de la detección 2D, que es DETR. Entonces, en lugar de demasiada tinta.

Artículos multimodales

CLIP : aprendizaje de modelos visuales transferibles a partir de la supervisión del lenguaje natural ICML 2021简介

  • En el proceso general: las partes de codificación de imagen y codificación de texto pasan a través del codificador transformador (u otras estructuras de codificación), y luego realizan una fusión multimodal (norma) en sus respectivas características de codificación, y luego calculan la similitud del coseno (matmul, cos) de el uno al otro

Ventajas y desventajas desde la perspectiva del lado final

  • ventaja

    • Al igual que ViT, la estructura simple y sin adornos, y los practicantes de la simplicidad, son buenos para la implementación de un extremo a otro.

  • defecto

    • El codificador de texto que incluye la ingeniería de avisos, cuya secuencia de texto de entrada cambiará en tiempo real con el contexto de la aplicación, presenta requisitos más altos para el soporte de formas dinámicas de la pila de software del lado final.

Transformador ligero

Desde la perspectiva de la estructura del modelo, divido el Transformador ligero en dos facciones: la escuela de combinación orgánica y la escuela de reforma profunda.

combinación orgánica

Los representantes de esta facción son:

  • EfficientFormer: Transformadores de visión a la velocidad de MobileNet NIPS 2022

  • MobileViT: Vision Transformerarxiv 2021 liviano, de uso general y compatible con dispositivos móviles

Solo desde la descripción general de la arquitectura, podemos encontrar sus pistas: el conocido conv+relu+bn, reducción de muestreo paso a paso. Este tipo de modelo aún conserva las características típicas de la arquitectura CNN, y solo la cabeza y el torso están implantados con unidades de Transformador.

Aunque este tipo de algoritmo puede cambiar el linaje de manera flexible (ajustar la proporción de su unidad de Transformador), para lograr un equilibrio entre el efecto del algoritmo y el rendimiento del razonamiento. Pero desde la perspectiva del sistema, siento que el posicionamiento de este tipo de algoritmo es bastante vago: ¿es para el rango de potencia de cómputo de CNN, el rango de potencia de cómputo de Transformer o el término medio entre los dos? Al menos por lo que he leído hasta ahora, el término medio es el escenario principal de esta facción.

reformista profundo

Los representantes de esta facción son:

  • Next-ViT: Transformador de visión de próxima generación para una implementación eficiente en escenarios industriales realistas, 2022

  • EfficientViT: atención multiescala ligera para la segmentación semántica en el dispositivo, ECCV, 2022

Esta facción ya no está satisfecha con la implantación superficial de Transformer. Transforman la estructura de Transformer a un nivel más profundo, utilizan la agrupación para reducir el número de atención para reducir el tamaño de la matriz de atención y utilizan relu/agrupación para lograr una atención global. mecanismo similar a softmax.

En comparación con la facción de integración orgánica, esta facción se adapta a la transformación del algoritmo de las características del chip de IA existente, pero tiene un objetivo claro, que es competir en el rango de potencia informática de CNN. Diseñar un "algoritmo específico de dominio" es, naturalmente, lo mejor para la implementación y la optimización. Sin embargo, la adaptación inversa de este algoritmo a la plataforma y la idea de seguir adelante con los grilletes del chip de IA antiguo, siempre siento que va en contra de las principales ideas de innovación.

Resumir

mejor programabilidad

La diferencia de paranoia inductiva ha afectado profundamente el modo de evolución de CNN y Transformer. Las características locales de CNN sin duda guían más innovaciones a nivel estructural global de la red, como ResNet, FPN, etc., mientras que la naturaleza global de Transformer en a su vez hace mejoras La optimización se refleja más en el ajuste de los detalles de Atención y FFN, es decir, a nivel del operador. Además, los transformadores a menudo se apilan en forma de bloque/capa en el modelo, por lo que la innovación del operador introducida en torno al transformador se copiará en todas las unidades de transformadores. Por lo tanto, en la era de los transformadores, la proporción de estos operadores especializados en modelos modales será mucho mayor que en el pasado. Las mejores son las grid_sample/gather/scatter y los tensores de alta dimensión de DeformableDETR/DSVT, las operaciones WindowPartition y Unpartition (Pad adicional y Permute de alta dimensión) introducidas por SwinT y VitDet, y las operaciones especiales de codificación de posición como RoPE. ilustración.

En este momento, si aún sigue la idea de la era CNN y descarga la carga de cálculo que no pueden manejar las pilas de software de compilación como grid_sample/gather/scatter a la CPU, interrumpirá la canalización con frecuencia y ocupará ancho de banda adicional. , que debe ser un gran error. En cambio, sería una mejor dirección de diseño configurar una unidad de aceleración programable que comparta un caché con TensorCore, o integrar TensorCore en DSP.

Teniendo en cuenta la aplicación de FlashAttention, una estrategia de optimización que requiere una flexibilidad computacional extremadamente alta (me refiero a la versión cuantitativa de FA), la decisión anterior solo se fortalecerá aún más. Entonces, imaginemos más, bajo esta tendencia, ¿los chips de inteligencia artificial de almacenamiento y computación que toman la ruta del lado del dispositivo enfrentarán mayores desafíos (después de todo, no todas las operaciones y optimizaciones son adecuadas para la cuantificación)? ¿Qué software  es?  http://143ai.com

Asignación de recursos más razonable

Mejor tamaño de caché . Ya sea la columna vertebral visual y la nube de puntos DSVT limitada por WindowAttention, o la tarea de detección QueryEmbedding limitada por Objetos de detección, o el mensaje simplificado multimodal, el diseño de estos algoritmos implica que la longitud de la secuencia no varía con el modelo. el cálculo aumenta y se expande infinitamente. Simplemente calcule los escenarios de configuración de parámetros grandes de cada transformador modal (mlp_ratio=4, queryobj=seqlen=1024, embed_dim=1024), la memoria caché de 8M puede cubrir completamente los datos de peso de cualquier cálculo único durante el razonamiento de un solo lote de 8 bits. Por lo tanto, no hay necesidad de apilar materiales infinitamente, siempre que el tamaño esté en su lugar.

Hay ventajas potenciales en los diseños de múltiples núcleos . Desde la perspectiva de cargas de trabajo como SwinTransformer/ViTDet, el modelado de algoritmos en tareas que enfatizan la localidad tiene una mayor voluntad de transformar la entrada de atención de Transformer en subsecuencias mutuamente independientes que representan características locales. En este caso, los beneficios del diseño multinúcleo serán más evidentes.

Posicionamiento de potencia informática más preciso.  En la actualidad, hay dos modos innovadores en el algoritmo de la era de los transformadores. Uno es el Transformador liviano, que está profundamente integrado con CNN. Bajo la premisa de que la estructura original permanece sin cambios, se introduce una pequeña cantidad de módulos Transformadores para tomar la el resultado final, el otro se basa en la modalidad. Características, introducir nuevos operadores para adaptar los datos de características y personalizar Transformador, tomando la ruta de nivel superior. No me atrevo a discutir la disputa de la ruta, pero una cosa es cierta, los rangos de potencia informática de los dos son completamente diferentes. El diseño y posicionamiento de un chip de IA no puede ser ambiguo y solo puede elegir uno de los dos. Se necesitan ambos extremos, la ruta subyacente no tiene una ventaja de precio y los recursos de potencia informática de la ruta superior no pueden seguir el ritmo, el resultado puede ser feo. Por lo tanto, es necesario que los investigadores colaborativos de software y hardware del equipo inviertan más en la fase de diseño y comprendan los puntos límite de las ventajas del efecto transformador.

Modelado de zonas de influencia más detallado

Estas cargas de trabajo reflejan completamente:

  • La solución de modelos no lingüísticos a través de espacios de características. Los datos se alternan entre características secuenciales y otras características modales en busca de una mejor extracción de características. Por ejemplo, desplazamiento y reducción de resolución en funciones de imagen en SwinT, Atención y FFN en funciones de secuencia y agrupación de funciones en funciones de nube de puntos de DSVT y Atención/FFN en las mismas funciones de secuencia.

  • Una descripción de codificación elegante de la información de ubicación. Por ejemplo, RoPE y la operación de posición del decodificador en DINO.

Si el modelado de la zona de influencia en el nivel IR puede abarcarse linealmente desde la granularidad del tensor hasta la granularidad de los elementos, entonces, por un lado, las operaciones de reordenación (permutar) y barajar (grid_sample/gather) introducidas al cambiar entre espacios de características se describirán mejor. de esta manera, hay espacio para una mayor exploración de su fusión con los nodos predecesor y sucesor eltwise/gemm Por otro lado, la colección y la relación de dependencia entre cada Buffer en el subgrafo de cálculo de la codificación de posición elegante (RoPE, etc.) También será mejor Modelado, de modo que sea posible convertir todo el subgrafo de multipaso a 1 paso. Es probable que la superposición de estos beneficios de rendimiento se convierta en el ganador de la evaluación comparativa de rendimiento final.

Pila de software de mayor escalabilidad

Estas características del algoritmo Transformer también tienen un cierto impacto en el soporte de la pila de software:

  • Entre los operadores especiales introducidos por cada Transformador modal, a excepción de las operaciones aleatorias, la mayoría de las cargas de trabajo (operaciones de tensor de alta dimensión, permutación de alta dimensión, división desigual, etc.) son responsabilidad de la pila de software de compilación, que Estas cargas se trivializan y se realiza la adaptación del hardware.

  • Aunque las cargas de trabajo distintas de la multimodalidad no tienen un gran atractivo para las formas dinámicas, dado el enorme potencial que muestra el modelo multimodal, aún es necesario diseñar las formas dinámicas con anticipación y hacer una planificación de versión razonable para compilar la pila de software.

Y es posible que estos no se hayan incluido en los casos de prueba o incluso en la lista de funciones en la era de CNN. Obviamente, este es un requisito más alto para la escalabilidad de la pila de software de compilación de chips de IA. Hay demasiadas dimensiones para considerar en el diseño, pero en términos de pruebas, siento que es hora de lanzar Fuzz.

Tal vez pueda obtener un vistazo de la respuesta de cada empresa a partir de los cambios posteriores de la versión del SDK y las notas de la versión.

Supongo que te gusta

Origin blog.csdn.net/qq_29788741/article/details/132309467
Recomendado
Clasificación